Module: Seo::Providers
- Defined in:
- lib/seo/providers.rb,
lib/seo/providers/base.rb,
lib/seo/providers/gemini.rb,
lib/seo/providers/ollama.rb,
lib/seo/providers/openai.rb,
lib/seo/providers/anthropic.rb
Defined Under Namespace
Classes: Anthropic, Base, Gemini, Ollama, OpenAI
Constant Summary
collapse
- REGISTRY =
{
"anthropic" => Anthropic,
"openai" => OpenAI,
"gemini" => Gemini,
"ollama" => Ollama
}.freeze
Class Method Summary
collapse
Class Method Details
.build(provider_name:, api_key: nil, model: nil, host: nil) ⇒ Object
18
19
20
21
22
23
24
25
26
|
# File 'lib/seo/providers.rb', line 18
def self.build(provider_name:, api_key: nil, model: nil, host: nil)
klass = REGISTRY[provider_name.to_s.downcase]
raise ArgumentError, "Unknown provider '#{provider_name}'. Supported: #{REGISTRY.keys.join(", ")}" unless klass
args = { api_key: api_key }
args[:model] = model if model
args[:host] = host if host && provider_name.to_s == "ollama"
klass.new(**args)
end
|
.names ⇒ Object
28
29
30
|
# File 'lib/seo/providers.rb', line 28
def self.names
REGISTRY.keys
end
|