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.
3
4
5
|
# File 'app/services/completion_kit/llm_client.rb', line 3
def initialize(config = {})
@config = config
end
|
Class Method Details
.for_model(model_name, config = {}) ⇒ Object
38
39
40
41
42
43
|
# File 'app/services/completion_kit/llm_client.rb', line 38
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'app/services/completion_kit/llm_client.rb', line 23
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
11
12
13
|
# File 'app/services/completion_kit/llm_client.rb', line 11
def available_models
raise NotImplementedError, "Subclasses must implement available_models"
end
|
#configuration_errors ⇒ Object
19
20
21
|
# File 'app/services/completion_kit/llm_client.rb', line 19
def configuration_errors
[]
end
|
15
16
17
|
# File 'app/services/completion_kit/llm_client.rb', line 15
def configured?
raise NotImplementedError, "Subclasses must implement configured?"
end
|
#generate_completion(prompt, options = {}) ⇒ Object
7
8
9
|
# File 'app/services/completion_kit/llm_client.rb', line 7
def generate_completion(prompt, options = {})
raise NotImplementedError, "Subclasses must implement generate_completion"
end
|