Class: Seo::Providers::Gemini
Constant Summary collapse
- DEFAULT_MODEL =
"gemini-1.5-pro"- BASE_URL =
"https://generativelanguage.googleapis.com/v1beta/models"
Instance Method Summary collapse
- #complete(prompt, max_tokens:) ⇒ Object
-
#initialize(api_key:, model: DEFAULT_MODEL) ⇒ Gemini
constructor
A new instance of Gemini.
Constructor Details
#initialize(api_key:, model: DEFAULT_MODEL) ⇒ Gemini
Returns a new instance of Gemini.
14 15 16 17 |
# File 'lib/seo/providers/gemini.rb', line 14 def initialize(api_key:, model: DEFAULT_MODEL) @api_key = api_key @model = model end |
Instance Method Details
#complete(prompt, max_tokens:) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/seo/providers/gemini.rb', line 19 def complete(prompt, max_tokens:) uri = URI("#{BASE_URL}/#{@model}:generateContent?key=#{@api_key}") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req.body = JSON.generate({ contents: [{ parts: [{ text: prompt }] }], generationConfig: { maxOutputTokens: max_tokens } }) data = JSON.parse(http.request(req).body) data.dig("candidates", 0, "content", "parts", 0, "text").to_s end |