Gemini 互換 API

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

Base URL

text
https://ai.tracup.com

認証

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://ai.tracup.com/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
    }
  }'

リクエストパラメータ:

パラメータ必須説明
contentsarrayはい会話履歴を含むコンテンツ配列
generationConfigobjectいいえ生成設定
generationConfig.temperaturenumberいいえサンプリング温度(0-2)
generationConfig.maxOutputTokensintegerいいえ最大出力 Token 数
generationConfig.topPnumberいいえ核サンプリング確率
generationConfig.topKintegerいいえTop-K サンプリング
generationConfig.stopSequencesarrayいいえストップシーケンス
systemInstructionobjectいいえシステム命令
toolsarrayいいえ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://ai.tracup.com/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://ai.tracup.com/v1beta/models?key=sk-your-api-key"

プロトコル自動変換

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

  • リクエスト変換: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://ai.tracup.com"}
)

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サーバー内部エラー