Gemini 兼容接口

最后更新:2026-04-24 · 预计阅读 8 分钟

TTToken 同时支持 Google generativelanguage v1beta 的原生格式,以及 google-genai 官方 SDK。

BASEhttps://tttoken.xyz/v1beta

generateContent

POST/v1beta/models/{model}:generateContent
curl "https://tttoken.xyz/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "x-goog-api-key: $TTT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "用两句话解释黑洞"}]
    }],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 512
    }
  }'

响应示例

{
  "candidates": [{
    "content": {
      "role": "model",
      "parts": [{"text": "黑洞是..."}]
    },
    "finishReason": "STOP",
    "index": 0
  }],
  "usageMetadata": {
    "promptTokenCount": 8,
    "candidatesTokenCount": 40,
    "totalTokenCount": 48
  }
}

streamGenerateContent

POST/v1beta/models/{model}:streamGenerateContent?alt=sse

默认返回 NDJSON。加 ?alt=sse 得到 SSE 格式,和官方一致。

curl "https://tttoken.xyz/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: $TTT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"role":"user","parts":[{"text":"讲个笑话"}]}]
  }'

多模态输入

Gemini 原生支持图片、音频、视频、PDF。使用 inline_data 内联,或用 Files API 上传后以 file_data 引用。

{
  "contents": [{
    "role": "user",
    "parts": [
      {"inline_data": {"mime_type":"image/jpeg","data":"/9j/4AAQ..."}},
      {"text": "描述这张图"}
    ]
  }]
}

Thought 输出

Gemini 2.5 支持输出 thought(思考摘要)。开启方式:

{
  "contents": [...],
  "generationConfig": {
    "thinkingConfig": {
      "thinkingBudget": 2048,
      "includeThoughts": true
    }
  }
}

embedContent

POST/v1beta/models/{model}:embedContent
{
  "model": "models/gemini-embedding-001",
  "content": {"parts": [{"text": "猫"}]}
}

OpenAI 形式调用 Gemini

如果不想改代码,也可以用 OpenAI SDK 直接调 Gemini 模型:

from openai import OpenAI

client = OpenAI(
    api_key="$TTT_KEY",
    base_url="https://tttoken.xyz/v1",
)

resp = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[{"role":"user","content":"你好"}],
)

官方 SDK

from google import genai

client = genai.Client(
    api_key="$TTT_KEY",
    http_options={"base_url": "https://tttoken.xyz"},
)

resp = client.models.generate_content(
    model="gemini-2.5-pro",
    contents="介绍一下光合作用",
)
print(resp.text)
import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({
  apiKey: process.env.TTT_KEY,
  httpOptions: { baseUrl: "https://tttoken.xyz" },
});

const r = await ai.models.generateContent({
  model: "gemini-2.5-pro",
  contents: "介绍一下光合作用",
});
console.log(r.text);