Class: RubyLlmAgents::ImageGeneratorGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- RubyLlmAgents::ImageGeneratorGenerator
- Defined in:
- lib/generators/ruby_llm_agents/image_generator_generator.rb
Overview
ImageGenerator generator for creating new image generators
Usage:
rails generate ruby_llm_agents:image_generator Logo
rails generate ruby_llm_agents:image_generator Product --model gpt-image-1 --size 1024x1024
rails generate ruby_llm_agents:image_generator Avatar --quality hd --style vivid
This will create:
- app/agents/images/logo_generator.rb
Instance Method Summary collapse
- #create_image_generator_file ⇒ Object
- #ensure_base_class_and_skill_file ⇒ Object
- #show_usage ⇒ Object
Instance Method Details
#create_image_generator_file ⇒ Object
51 52 53 54 55 |
# File 'lib/generators/ruby_llm_agents/image_generator_generator.rb', line 51 def create_image_generator_file # Support nested paths: "product/hero" -> "app/agents/images/product/hero_generator.rb" generator_path = name.underscore template "image_generator.rb.tt", "app/agents/images/#{generator_path}_generator.rb" end |
#ensure_base_class_and_skill_file ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/generators/ruby_llm_agents/image_generator_generator.rb', line 32 def ensure_base_class_and_skill_file images_dir = "app/agents/images" # Create directory if needed empty_directory images_dir # Create base class if it doesn't exist base_class_path = "#{images_dir}/application_image_generator.rb" unless File.exist?(File.join(destination_root, base_class_path)) template "application_image_generator.rb.tt", base_class_path end # Create skill file if it doesn't exist skill_file_path = "#{images_dir}/IMAGE_GENERATORS.md" unless File.exist?(File.join(destination_root, skill_file_path)) template "skills/IMAGE_GENERATORS.md.tt", skill_file_path end end |
#show_usage ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/generators/ruby_llm_agents/image_generator_generator.rb', line 57 def show_usage # Build full class name from path generator_class_name = name.split("/").map(&:camelize).join("::") full_class_name = "Images::#{generator_class_name}Generator" say "" say "Image generator #{full_class_name} created!", :green say "" say "Usage:" say " # Generate a single image" say " result = #{full_class_name}.call(prompt: \"A beautiful sunset\")" say " result.url # => \"https://...\"" say " result.save(\"sunset.png\")" say "" say " # Generate multiple images" say " result = #{full_class_name}.call(prompt: \"Logos\", count: 4)" say " result.urls # => [\"https://...\", ...]" say "" say " # Override settings at runtime" say " result = #{full_class_name}.call(" say " prompt: \"High quality portrait\"," say " quality: \"hd\"," say " size: \"1792x1024\"" say " )" say "" end |