Sha256: 388a4c3df6f03c56e44ac9cee322d5cde72f7603c559e2ec1c469ba3a43b2de1

Contents?: true

Size: 1.25 KB

Versions: 6

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

require_relative 'providers/openai'
require_relative 'providers/ollama'
require_relative 'providers/mistral'
require_relative 'providers/google'
require_relative 'providers/cohere'
require_relative 'providers/maritaca'

module NanoBot
  module Components
    class Provider
      def self.new(provider, environment: {})
        case provider[:id]
        when 'openai'
          Providers::OpenAI.new(nil, provider[:settings], provider[:credentials], environment:)
        when 'ollama'
          Providers::Ollama.new(provider[:options], provider[:settings], provider[:credentials], environment:)
        when 'mistral'
          Providers::Mistral.new(provider[:options], provider[:settings], provider[:credentials], environment:)
        when 'google'
          Providers::Google.new(provider[:options], provider[:settings], provider[:credentials], environment:)
        when 'cohere'
          Providers::Cohere.new(provider[:options], provider[:settings], provider[:credentials], environment:)
        when 'maritaca'
          Providers::Maritaca.new(provider[:options], provider[:settings], provider[:credentials], environment:)
        else
          raise "Unsupported provider \"#{provider[:id]}\""
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
nano-bots-3.3.0 components/provider.rb
nano-bots-3.2.0 components/provider.rb
nano-bots-3.0.1 components/provider.rb
nano-bots-3.0.0 components/provider.rb
nano-bots-2.5.1 components/provider.rb
nano-bots-2.5.0 components/provider.rb