Module: Rager::Providers
- Extended by:
- T::Sig
- Defined in:
- lib/rager/providers.rb
Constant Summary collapse
- PROVIDERS =
T.let({ chat: { "openai" => -> { Rager::Chat::Providers::Openai.new } }, embed: { "openai" => -> { Rager::Embed::Providers::Openai.new } }, rerank: { "cohere" => -> { Rager::Rerank::Providers::Cohere.new } }, image_gen: { "replicate" => -> { Rager::ImageGen::Providers::Replicate.new } }, mesh_gen: { "replicate" => -> { Rager::MeshGen::Providers::Replicate.new } }, template: { "erb" => -> { Rager::Template::Providers::Erb.new } }, search: { "jina" => -> { Rager::Search::Providers::Jina.new } } }.freeze, T::Hash[Symbol, T::Hash[String, T.proc.returns(T.untyped)]])
Class Method Summary collapse
Class Method Details
.get_provider(operation, provider_name, options) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/rager/providers.rb', line 35 def self.get_provider(operation, provider_name, ) operation_providers = PROVIDERS[operation] if operation_providers&.key?(provider_name.downcase) return T.must(operation_providers[provider_name.downcase]).call end known_providers = operation_providers&.keys&.join(", ") || "none" raise Rager::Errors::OptionsError.new( , ["provider"], details: "Unknown #{operation} provider: #{provider_name}. Known providers: #{known_providers}" ) end |