Class: Soka::LLMs::Gemini

Inherits:
Base
  • Object
show all
Defined in:
lib/soka/llms/gemini.rb

Overview

Google Gemini LLM provider implementation

Constant Summary collapse

ENV_KEY =
'GEMINI_API_KEY'

Instance Attribute Summary

Attributes inherited from Base

#api_key, #model, #options

Instance Method Summary collapse

Methods inherited from Base

#initialize, #streaming_chat, #supports_streaming?

Constructor Details

This class inherits a constructor from Soka::LLMs::Base

Instance Method Details

#chat(messages, **params) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/soka/llms/gemini.rb', line 29

def chat(messages, **params)
  request_params = build_request_params(messages, params)

  response = connection.post do |req|
    req.url "/v1beta/models/#{model}:generateContent"
    req.params['key'] = api_key
    req.body = request_params
  end

  parse_response(response)
rescue Faraday::Error => e
  handle_error(e)
end