Class: Llm::Agent::Rails::Registry
- Inherits:
-
Object
- Object
- Llm::Agent::Rails::Registry
- Defined in:
- lib/llm/agent/rails/registry.rb
Instance Method Summary collapse
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #register!(name:, version:, schema:, description:, handler:) ⇒ Object
- #tool(name, version: "v1") ⇒ Object
- #tools_for_llm ⇒ Object
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
8 9 10 |
# File 'lib/llm/agent/rails/registry.rb', line 8 def initialize @tools = {} end |
Instance Method Details
#register!(name:, version:, schema:, description:, handler:) ⇒ Object
12 13 14 |
# File 'lib/llm/agent/rails/registry.rb', line 12 def register!(name:, version:, schema:, description:, handler:) @tools[key_for(name, version)] = Tool.new(name:, version:, schema:, description:, handler:) end |
#tool(name, version: "v1") ⇒ Object
16 17 18 |
# File 'lib/llm/agent/rails/registry.rb', line 16 def tool(name, version: "v1") @tools.fetch(key_for(name, version)) end |
#tools_for_llm ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/llm/agent/rails/registry.rb', line 20 def tools_for_llm @tools.values.map do |t| { type: "function", function: { name: "#{t.name}_#{t.version}", description: t.description, parameters: t.schema } } end end |