Class: SolidAgent::Generators::ReasonsGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- SolidAgent::Generators::ReasonsGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/solid_agent/reasons/reasons_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.next_migration_number(dirname) ⇒ Object
26 27 28 |
# File 'lib/generators/solid_agent/reasons/reasons_generator.rb', line 26 def self.next_migration_number(dirname) ActiveRecord::Generators::Base.next_migration_number(dirname) end |
Instance Method Details
#add_concern_to_model ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/generators/solid_agent/reasons/reasons_generator.rb', line 42 def add_concern_to_model model_file = "app/models/#{model_name.underscore}.rb" return unless File.exist?(model_file) inject_into_class model_file, model_name do " include SolidAgent::Reasonable\n\n" end say "Added SolidAgent::Reasonable to #{model_name}", :green end |
#create_migration ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/solid_agent/reasons/reasons_generator.rb', line 30 def create_migration @table_name = model_name.underscore.pluralize @content_column = [:content_column] @tokens_column = [:tokens_column] @metadata_column = [:metadata_column] migration_template( "add_reasoning_columns.rb.erb", "db/migrate/add_reasoning_to_#{@table_name}.rb" ) end |
#show_post_install_message ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/generators/solid_agent/reasons/reasons_generator.rb', line 54 def say "" say "Reasoning support added to #{model_name}!", :green say "" say "Next steps:", :yellow say " 1. Run migrations: rails db:migrate" say " 2. Use reasoning in your agents:" say "" say " class MyAgent < ApplicationAgent" say " include SolidAgent::HasReasons" say " include SolidAgent::HasContext" say "" say " has_reasons auto_capture: true, persist: true" say "" say " def analyze" say " result = prompt(" say " messages: messages," say " extended_thinking: true" say " )" say "" say " # Access reasoning" say " last_reasoning.content" say " total_reasoning_tokens" say " end" say " end" say "" end |