Module: RCrewAI::ProviderSchema

Defined in:
lib/rcrewai/provider_schema.rb

Class Method Summary collapse

Class Method Details

.for(provider, canonical) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rcrewai/provider_schema.rb', line 7

def for(provider, canonical)
  case provider.to_sym
  when :openai, :azure, :ollama
    { type: 'function', function: canonical }
  when :anthropic
    {
      name: canonical[:name],
      description: canonical[:description],
      input_schema: canonical[:parameters]
    }
  when :google
    {
      function_declarations: [{
        name: canonical[:name],
        description: canonical[:description],
        parameters: canonical[:parameters]
      }]
    }
  else
    raise ArgumentError, "unknown provider #{provider.inspect}"
  end
end

.for_many(provider, canonicals) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/rcrewai/provider_schema.rb', line 30

def for_many(provider, canonicals)
  if provider.to_sym == :google
    { function_declarations: canonicals.map { |c| self.for(:google, c)[:function_declarations].first } }
  else
    canonicals.map { |c| self.for(provider, c) }
  end
end