Module: Rach::Provider
- Defined in:
- lib/rach/provider.rb,
lib/rach/provider/base.rb,
lib/rach/provider/openai.rb,
lib/rach/provider/anthropic.rb
Defined Under Namespace
Classes: Anthropic, Base, OpenAI
Constant Summary
collapse
- AVAILABLE_PROVIDERS =
[
Provider::OpenAI,
Provider::Anthropic
].to_h { |p| [p.key, p] }.freeze
Class Method Summary
collapse
Class Method Details
.create_client(provider_key, access_token) ⇒ Object
16
17
18
19
|
# File 'lib/rach/provider.rb', line 16
def self.create_client(provider_key, access_token)
provider_class = get_provider_class(provider_key)
provider_class.new(access_token:)
end
|
.for(model) ⇒ Object
9
10
11
12
13
14
|
# File 'lib/rach/provider.rb', line 9
def self.for(model)
_key, provider_class = AVAILABLE_PROVIDERS.find { |_, p| p.supports?(model) }
raise ArgumentError, "Unsupported model: #{model}" unless provider_class
provider_class
end
|
.get_provider_class(key) ⇒ Object
21
22
23
24
25
|
# File 'lib/rach/provider.rb', line 21
def self.get_provider_class(key)
provider_class = AVAILABLE_PROVIDERS[key.to_sym]
raise ArgumentError, "Unknown provider: #{key}" unless provider_class
provider_class
end
|