Module: RubyCanUseLLM
- Defined in:
- lib/rubycanusellm.rb,
lib/rubycanusellm/cli.rb,
lib/rubycanusellm/chunk.rb,
lib/rubycanusellm/errors.rb,
lib/rubycanusellm/prompt.rb,
lib/rubycanusellm/response.rb,
lib/rubycanusellm/tool_call.rb,
lib/rubycanusellm/configuration.rb,
lib/rubycanusellm/providers/base.rb,
lib/rubycanusellm/providers/ollama.rb,
lib/rubycanusellm/providers/openai.rb,
lib/rubycanusellm/providers/voyage.rb,
lib/rubycanusellm/providers/mistral.rb,
lib/rubycanusellm/embedding_response.rb,
lib/rubycanusellm/providers/anthropic.rb
Defined Under Namespace
Modules: Providers
Classes: AuthenticationError, CLI, Chunk, Configuration, EmbeddingResponse, Error, Prompt, ProviderError, RateLimitError, Response, TimeoutError, ToolCall
Constant Summary
collapse
- PROVIDERS =
{
openai: Providers::OpenAI,
anthropic: Providers::Anthropic,
voyage: Providers::Voyage,
mistral: Providers::Mistral,
ollama: Providers::Ollama
}.freeze
Class Method Summary
collapse
Class Method Details
.chat(messages, **options, &block) ⇒ Object
65
66
67
|
# File 'lib/rubycanusellm.rb', line 65
def chat(messages, **options, &block)
client.chat(messages, **options, &block)
end
|
.client ⇒ Object
43
44
45
46
47
48
|
# File 'lib/rubycanusellm.rb', line 43
def client
configuration.validate!
@client ||= PROVIDERS.fetch(configuration.provider) do
raise Error, "Unknown provider: #{configuration.provider}"
end.new(configuration)
end
|
.configuration ⇒ Object
29
30
31
|
# File 'lib/rubycanusellm.rb', line 29
def configuration
@configuration ||= Configuration.new
end
|
33
34
35
|
# File 'lib/rubycanusellm.rb', line 33
def configure
yield(configuration)
end
|
.embed(text, **options) ⇒ Object
69
70
71
|
# File 'lib/rubycanusellm.rb', line 69
def embed(text, **options)
embedding_client.embed(text, **options)
end
|
.embedding_client ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/rubycanusellm.rb', line 50
def embedding_client
configuration.validate_embedding!
if configuration.embedding_provider
@embedding_client ||= begin
cfg = Configuration.new
cfg.provider = configuration.embedding_provider
cfg.api_key = configuration.embedding_api_key
cfg.timeout = configuration.timeout
PROVIDERS[configuration.embedding_provider].new(cfg)
end
else
client
end
end
|
.reset! ⇒ Object
37
38
39
40
41
|
# File 'lib/rubycanusellm.rb', line 37
def reset!
@configuration = Configuration.new
@client = nil
@embedding_client = nil
end
|