Class: Llm::Agent::Rails::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/agent/rails/registry.rb

Instance Method Summary collapse

Constructor Details

#initializeRegistry

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_llmObject



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