Class: SkillBench::Client

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

Overview

Facade for calling LLM clients. Delegates to the configured provider.

Class Method Summary collapse

Class Method Details

.call(system_prompt:, messages:, provider: nil, **options) ⇒ Hash

Calls the configured LLM provider with the given parameters.

Parameters:

  • system_prompt (String)

    System prompt for the LLM

  • messages (Array<Hash>)

    Conversation messages

  • provider (Symbol, nil) (defaults to: nil)

    Override the configured LLM provider (e.g., :deepseek, :openai)

  • options (Hash)

    Provider-specific options (api_key, model, etc.)

Returns:

  • (Hash)

    Response from the LLM



16
17
18
19
20
21
# File 'lib/skill_bench/client.rb', line 16

def self.call(system_prompt:, messages:, provider: nil, **options)
  resolved = provider || Config.current_llm_provider || :openai
  client_class = Clients::ProviderRegistry.for(resolved)
  warn "WARNING: LLM provider '#{resolved}' is not configured. Falling back to null client." if client_class == Clients::Providers::NullClient
  client_class.call(system_prompt: system_prompt, messages: messages, **options)
end