Class: MagicQuery::Providers::Gemini

Inherits:
Base
  • Object
show all
Defined in:
lib/magic_query/providers/gemini.rb

Constant Summary collapse

API_URL_TEMPLATE =
'https://generativelanguage.googleapis.com/v1beta/models/%s:generateContent'

Instance Attribute Summary

Attributes inherited from Base

#api_key, #max_tokens, #model, #temperature

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from MagicQuery::Providers::Base

Instance Method Details

#apply_request_headers(req) ⇒ Object



29
30
31
# File 'lib/magic_query/providers/gemini.rb', line 29

def apply_request_headers(req)
  generate_headers.each { |key, value| req.headers[key] = value }
end

#generate(prompt) ⇒ Object



11
12
13
14
15
# File 'lib/magic_query/providers/gemini.rb', line 11

def generate(prompt)
  url = format(API_URL_TEMPLATE, model)
  response = make_request(url, prompt)
  handle_response(response)
end

#make_request(url, prompt) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/magic_query/providers/gemini.rb', line 17

def make_request(url, prompt)
  http_client.post(url) do |req|
    set_request_params(req, prompt)
    apply_request_headers(req)
    req.body = generate_body(prompt)
  end
end

#set_request_params(req, prompt) ⇒ Object



25
26
27
# File 'lib/magic_query/providers/gemini.rb', line 25

def set_request_params(req, prompt)
  generate_params(prompt).each { |key, value| req.params[key] = value }
end