Module: RailsAIPromptable::Providers

Defined in:
lib/rails_ai_promptable/providers.rb,
lib/rails_ai_promptable/providers/base_provider.rb,
lib/rails_ai_promptable/providers/cohere_provider.rb,
lib/rails_ai_promptable/providers/gemini_provider.rb,
lib/rails_ai_promptable/providers/openai_provider.rb,
lib/rails_ai_promptable/providers/mistral_provider.rb,
lib/rails_ai_promptable/providers/anthropic_provider.rb,
lib/rails_ai_promptable/providers/openrouter_provider.rb,
lib/rails_ai_promptable/providers/azure_openai_provider.rb

Defined Under Namespace

Classes: AnthropicProvider, AzureOpenAIProvider, BaseProvider, CohereProvider, GeminiProvider, MistralProvider, OpenAIProvider, OpenRouterProvider

Class Method Summary collapse

Class Method Details

.available_providers ⇒ Object

Helper method to list all available providers



37
38
39
# File 'lib/rails_ai_promptable/providers.rb', line 37

def self.available_providers
  %i[openai anthropic gemini cohere azure_openai mistral openrouter]
end

.for(provider_sym, configuration) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rails_ai_promptable/providers.rb', line 14

def self.for(provider_sym, configuration)
  case provider_sym.to_sym
  when :openai
    OpenAIProvider.new(configuration)
  when :anthropic, :claude
    AnthropicProvider.new(configuration)
  when :gemini, :google
    GeminiProvider.new(configuration)
  when :cohere
    CohereProvider.new(configuration)
  when :azure_openai, :azure
    AzureOpenAIProvider.new(configuration)
  when :mistral
    MistralProvider.new(configuration)
  when :openrouter
    OpenRouterProvider.new(configuration)
  else
    raise ArgumentError,
          "Unknown provider: #{provider_sym}. Supported providers: :openai, :anthropic, :gemini, :cohere, :azure_openai, :mistral, :openrouter"
  end
end