GoogleのGemini APIを使ってみました。ChatGPT APIと似た感じでHTTP経由でリクエストを送ります。
require 'net/http'
require 'json'
url = URI("https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent")
api_key = "your-api-key-here"
headers = {
"Content-Type" => "application/json"
}
data = { contents: { parts: [text: "こんにちは。あなたは何ですか?"] } }
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new("#{url.path}?key=#{api_key}", headers)
request.body = data.to_json
response = http.request(request)
result = JSON.parse(response.body)
puts result
レスポンスは以下のようなJSONで返ってきます。
{
"candidates": [
{
"content": {
"parts": [
{
"text": "私は、Google によってトレーニングされた、大規模言語モデルです。\n"
}
],
"role": "model"
},
"finishReason": "STOP",
"avgLogprobs": -0.022314110627541177
}
],
"usageMetadata": {
"promptTokenCount": 6,
"candidatesTokenCount": 13,
"totalTokenCount": 19,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 6
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 13
}
]
},
"modelVersion": "gemini-2.0-flash",
"responseId": "..."
}