Class: RubyLlmAgents::TranscriberGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- RubyLlmAgents::TranscriberGenerator
- Defined in:
- lib/generators/ruby_llm_agents/transcriber_generator.rb
Overview
Transcriber generator for creating new transcribers
Usage:
rails generate ruby_llm_agents:transcriber Meeting
rails generate ruby_llm_agents:transcriber Interview --model whisper-1
rails generate ruby_llm_agents:transcriber Podcast --language en
This will create:
- app/agents/audio/meeting_transcriber.rb
Instance Method Summary collapse
Instance Method Details
#create_transcriber_file ⇒ Object
47 48 49 50 51 |
# File 'lib/generators/ruby_llm_agents/transcriber_generator.rb', line 47 def create_transcriber_file # Support nested paths: "interview/meeting" -> "app/agents/audio/interview/meeting_transcriber.rb" transcriber_path = name.underscore template "transcriber.rb.tt", "app/agents/audio/#{transcriber_path}_transcriber.rb" end |
#ensure_base_class_and_skill_file ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/generators/ruby_llm_agents/transcriber_generator.rb', line 28 def ensure_base_class_and_skill_file audio_dir = "app/agents/audio" # Create directory if needed empty_directory audio_dir # Create base class if it doesn't exist base_class_path = "#{audio_dir}/application_transcriber.rb" unless File.exist?(File.join(destination_root, base_class_path)) template "application_transcriber.rb.tt", base_class_path end # Create skill file if it doesn't exist skill_file_path = "#{audio_dir}/TRANSCRIBERS.md" unless File.exist?(File.join(destination_root, skill_file_path)) template "skills/TRANSCRIBERS.md.tt", skill_file_path end end |
#show_usage ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/generators/ruby_llm_agents/transcriber_generator.rb', line 53 def show_usage # Build full class name from path transcriber_class_name = name.split("/").map(&:camelize).join("::") full_class_name = "Audio::#{transcriber_class_name}Transcriber" say "" say "Transcriber #{full_class_name} created!", :green say "" say "Usage:" say " # From file path" say " #{full_class_name}.call(audio: \"recording.mp3\")" say "" say " # From URL" say " #{full_class_name}.call(audio: \"https://example.com/audio.mp3\")" say "" say " # Get subtitles" say " result = #{full_class_name}.call(audio: \"video.mp4\")" say " result.srt # SRT format" say " result.vtt # VTT format" say "" end |