Class: CleoQualityReview::LlmProviders::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/cleo_quality_review/llm_providers/registry.rb

Overview

Registry for available LLM provider implementations.

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ Object

Resolve a provider name to a provider instance.

Parameters:

  • name (String, Symbol)

    provider identifier

Returns:

  • (Object)

    provider instance

Raises:



26
27
28
29
30
# File 'lib/cleo_quality_review/llm_providers/registry.rb', line 26

def fetch(name)
  providers.fetch(provider_name(name)).new
rescue KeyError
  raise UnsupportedLlmProviderError, unsupported_provider_message(name)
end

.register(name, provider_class) ⇒ nil

Register an LLM provider implementation.

Parameters:

  • name (String, Symbol)

    provider identifier

  • provider_class (Class)

    provider class that responds to validate_config and build_client

Returns:

  • (nil)


16
17
18
19
# File 'lib/cleo_quality_review/llm_providers/registry.rb', line 16

def register(name, provider_class)
  providers[provider_name(name)] = provider_class
  nil
end

.registeredArray<String>

Returns registered provider names.

Returns:

  • (Array<String>)

    registered provider names



34
35
36
# File 'lib/cleo_quality_review/llm_providers/registry.rb', line 34

def registered
  providers.keys.sort
end

.registered?(name) ⇒ Boolean

Parameters:

  • name (String, Symbol)

    provider identifier

Returns:

  • (Boolean)


41
42
43
# File 'lib/cleo_quality_review/llm_providers/registry.rb', line 41

def registered?(name)
  providers.key?(provider_name(name))
end