Gemini 互換 API

TokenCode は Google Gemini API プロトコルに互換です。Google AI SDK または Gemini プロトコル互換の任意のクライアントから直接接続できます。

Base URL

text
https://tokencode.dev

認証

Gemini プロトコルでは URL クエリパラメータによる認証を使用します:

  • API Key パラメータ?key=<your-api-key>

ヘッダーによる認証も使用可能です:

  • Bearer TokenAuthorization: Bearer <your-api-key>
  • x-api-key ヘッダーx-api-key: <your-api-key>

Generate Content

Gemini 互換のコンテンツ生成エンドポイント。

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "量子コンピューティングについて説明して"}
        ]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

リクエストパラメータ:

パラメータ 必須 説明
contents array はい 会話履歴を含むコンテンツ配列
generationConfig object いいえ 生成設定
generationConfig.temperature number いいえ サンプリング温度(0-2)
generationConfig.maxOutputTokens integer いいえ 最大出力 Token 数
generationConfig.topP number いいえ 核サンプリング確率
generationConfig.topK integer いいえ Top-K サンプリング
generationConfig.stopSequences array いいえ ストップシーケンス
systemInstruction object いいえ システム命令
tools array いいえ Function Calling ツール定義

レスポンス例:

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {"text": "量子コンピューティングは量子力学の原理を利用した..."}
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 25,
    "candidatesTokenCount": 128,
    "totalTokenCount": 153
  },
  "modelVersion": "gemini-2.5-pro"
}

Stream Generate Content

ストリーミングコンテンツ生成エンドポイント。

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key&alt=sse" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "量子コンピューティングについて説明して"}
        ]
      }
    ]
  }'

ストリーミングレスポンスは SSE 形式を使用し、各イベントには部分的な生成内容が含まれます。

モデル一覧

利用可能な Gemini モデル一覧を返します。

bash
curl "https://tokencode.dev/v1beta/models?key=sk-your-api-key"

プロトコル自動変換

Gemini プロトコルエンドポイントから Google 以外のモデルを呼び出すと、TokenCode が自動的にプロトコル変換を行います:

  • リクエスト変換:Gemini の generateContent 形式を対象モデルのネイティブ形式に変換
  • レスポンス変換:対象モデルのレスポンスを Gemini 形式に変換して返却
  • ストリーミング適応:ストリーミングレスポンスを Gemini SSE イベント形式に自動適応

Google AI SDK の使用

python
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    client_options={"api_endpoint": "https://tokencode.dev"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("こんにちは!")
print(response.text)
javascript
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI("sk-your-api-key");
// カスタム Base URL の設定
const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });

マルチモーダル入力

Gemini はネイティブでマルチモーダル入力に対応しています:

python
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content([
    "この画像を説明して",
    {"inline_data": {"mime_type": "image/png", "data": "<base64-encoded-image>"}}
])

エラーレスポンス

エラーレスポンスは Gemini エラー形式に従います:

json
{
  "error": {
    "code": 400,
    "message": "API key not valid",
    "status": "INVALID_ARGUMENT"
  }
}
HTTP ステータスコード 意味
400 リクエストパラメータが無効
401 認証失敗
403 権限不足
404 モデルが存在しない
429 レート制限または残高不足
500 サーバー内部エラー