Class: RubyLlmAgents::EmbedderGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- RubyLlmAgents::EmbedderGenerator
- Defined in:
- lib/generators/ruby_llm_agents/embedder_generator.rb
Overview
Embedder generator for creating new embedders
Usage:
rails generate ruby_llm_agents:embedder Document
rails generate ruby_llm_agents:embedder Document --model text-embedding-3-large
rails generate ruby_llm_agents:embedder Document --dimensions 512
This will create:
- app/agents//.rb
Instance Method Summary collapse
Instance Method Details
#create_embedder_file ⇒ Object
47 48 49 50 51 |
# File 'lib/generators/ruby_llm_agents/embedder_generator.rb', line 47 def # Support nested paths: "search/document" -> "app/agents/embedders/search/document_embedder.rb" = name.underscore template "embedder.rb.tt", "app/agents/embedders/#{}_embedder.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/embedder_generator.rb', line 28 def ensure_base_class_and_skill_file = "app/agents/embedders" # Create directory if needed empty_directory # Create base class if it doesn't exist base_class_path = "#{}/application_embedder.rb" unless File.exist?(File.join(destination_root, base_class_path)) template "application_embedder.rb.tt", base_class_path end # Create skill file if it doesn't exist skill_file_path = "#{}/EMBEDDERS.md" unless File.exist?(File.join(destination_root, skill_file_path)) template "skills/EMBEDDERS.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/embedder_generator.rb', line 53 def show_usage # Build full class name from path = name.split("/").map(&:camelize).join("::") full_class_name = "Embedders::#{}Embedder" say "" say "Embedder #{full_class_name} created!", :green say "" say "Usage:" say " # Single text" say " #{full_class_name}.call(text: \"Hello world\")" say "" say " # Multiple texts (batch)" say " #{full_class_name}.call(texts: [\"Hello\", \"World\"])" say "" say " # With progress tracking" say " #{full_class_name}.call(texts: large_array) do |batch, idx|" say " puts \"Processed batch \#{idx}\"" say " end" say "" end |