Class: CompletionKit::LlmClient
- Inherits:
-
Object
- Object
- CompletionKit::LlmClient
show all
- Defined in:
- app/services/completion_kit/llm_client.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(config = {}) ⇒ LlmClient
Returns a new instance of LlmClient.
7
8
9
|
# File 'app/services/completion_kit/llm_client.rb', line 7
def initialize(config = {})
@config = config
end
|
Class Method Details
.for_model(model_name, config = {}) ⇒ Object
42
43
44
45
46
47
|
# File 'app/services/completion_kit/llm_client.rb', line 42
def self.for_model(model_name, config = {})
provider = ApiConfig.provider_for_model(model_name)
raise ArgumentError, "Unsupported model: #{model_name}" unless provider
for_provider(provider, config)
end
|
.for_provider(provider_name, config = {}) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'app/services/completion_kit/llm_client.rb', line 27
def self.for_provider(provider_name, config = {})
case provider_name.to_s
when "openai"
OpenAiClient.new(config)
when "anthropic"
AnthropicClient.new(config)
when "ollama"
OllamaClient.new(config)
when "openrouter"
OpenRouterClient.new(config)
else
raise ArgumentError, "Unsupported provider: #{provider_name}"
end
end
|
Instance Method Details
#available_models ⇒ Object
15
16
17
|
# File 'app/services/completion_kit/llm_client.rb', line 15
def available_models
raise NotImplementedError, "Subclasses must implement available_models"
end
|
#configuration_errors ⇒ Object
23
24
25
|
# File 'app/services/completion_kit/llm_client.rb', line 23
def configuration_errors
[]
end
|
19
20
21
|
# File 'app/services/completion_kit/llm_client.rb', line 19
def configured?
raise NotImplementedError, "Subclasses must implement configured?"
end
|
#generate_completion(prompt, options = {}) ⇒ Object
11
12
13
|
# File 'app/services/completion_kit/llm_client.rb', line 11
def generate_completion(prompt, options = {})
raise NotImplementedError, "Subclasses must implement generate_completion"
end
|