Sha256: 402fb4fba6a4b14e28751771346121fdc0f9995c2ddc4454ed68a02a3633ce48

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 Bytes

Contents

# frozen_string_literal: true

require 'faraday'

require 'pry'
module GenAI
  class Language
    class Gemini < Base
      include GenAI::Api::Format::Gemini

      BASE_API_URL = 'https://generativelanguage.googleapis.com'

      def initialize(token:, options: {})
        @token = token
        build_client(token)
      end

      def complete(prompt, options = {}); end

      def chat(messages, options = {})
        response = client.post "/v1beta/models/gemini-pro:generateContent?key=#{@token}", {
          contents: format_messages(messages),
          generationConfig: options.except(:model)
        }

        build_result(model: 'gemini-pro', raw: response, parsed: extract_completions(response))
      end

      private

      def build_client(token)
        @client = GenAI::Api::Client.new(url: BASE_API_URL, token: nil)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gen-ai-0.4.0 lib/gen_ai/language/gemini.rb