Class: LLM::Fillin::Registry

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

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



7
8
9
# File 'lib/llm/fillin/registry.rb', line 7

def initialize
  @tools = {}
end

Instance Method Details

#register!(name:, version:, schema:, description:, handler:) ⇒ Object



11
12
13
# File 'lib/llm/fillin/registry.rb', line 11

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



15
16
17
# File 'lib/llm/fillin/registry.rb', line 15

def tool(name, version: "v1")
  @tools.fetch(key_for(name, version))
end

#tools_for_llmObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/llm/fillin/registry.rb', line 19

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