Gemini APIを使ってみた

2026-01-08 ai ruby

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": "..."
}