Class: SkillBench::Clients::ProviderSchemas

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/clients/provider_schemas.rb

Overview

Registry of provider configuration schemas with default placeholder values. Each provider defines its required configuration keys and sensible defaults.

Constant Summary collapse

PROVIDER_SCHEMAS =
{
  openai: {
    api_key: nil,
    model: 'gpt-4o'
  }.freeze,
  anthropic: {
    api_key: nil,
    model: 'claude-opus-4-7'
  }.freeze,
  gemini: {
    api_key: nil,
    model: 'gemini-1.5-flash-latest',
    location: 'us-central1',
    project_id: nil
  }.freeze,
  ollama: {
    api_key: nil,
    model: 'qwen:7b',
    base_url: nil
  }.freeze,
  azure: {
    api_key: nil,
    model: 'gpt-4',
    endpoint: nil,
    api_version: nil
  }.freeze,
  groq: {
    api_key: nil,
    model: 'llama-3.3-70b-versatile'
  }.freeze,
  deepseek: {
    api_key: nil,
    model: 'deepseek-chat'
  }.freeze,
  opencode: {
    api_key: nil,
    model: 'opencode-model',
    base_url: nil
  }.freeze,
  openrouter: {
    api_key: nil,
    model: 'anthropic/claude-3.5-sonnet'
  }.freeze
}.freeze

Class Method Summary collapse

Class Method Details

.for(provider) ⇒ Hash

Returns the configuration schema for a given provider.

Parameters:

  • provider (Symbol)

    Provider name

Returns:

  • (Hash)

    Provider configuration schema with placeholder values

Raises:

  • (ArgumentError)

    if provider is not registered



58
59
60
61
62
63
# File 'lib/skill_bench/clients/provider_schemas.rb', line 58

def self.for(provider)
  schema = PROVIDER_SCHEMAS.fetch(provider) do
    raise(ArgumentError, "Unknown provider: #{provider}. Available: #{PROVIDER_SCHEMAS.keys.join(', ')}")
  end
  schema.dup
end

.namesArray<Symbol>

Returns list of all registered provider names.

Returns:

  • (Array<Symbol>)

    Provider names



68
69
70
# File 'lib/skill_bench/clients/provider_schemas.rb', line 68

def self.names
  PROVIDER_SCHEMAS.keys
end