Gemini 原生接口

Google Gemini 原生格式的接口,供使用 Google SDK 的应用直接接入。

与 Google Gemini API 原生格式兼容的接口。已经在用 Google 官方 SDK(google-genai、@google/genai)的应用,改一下地址和密钥就能接入本站。只需要通用对话能力时,也可以直接用 Chat Completions 调用 Gemini 模型。

POST https://tokenfunc.com/v1beta/models/{model}:generateContent

cURL

curl "https://tokenfunc.com/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: sk-xxxxxxxxxxxxxxxx" \
  -d '{
    "contents": [{"role": "user", "parts": [{"text": "你好!"}]}]
  }'

Python

# pip install google-genai
from google import genai
from google.genai import types

# base_url 只填本站地址,SDK 会自动拼接 /v1beta/models/...
client = genai.Client(
    api_key="sk-xxxxxxxxxxxxxxxx",
    http_options=types.HttpOptions(base_url="https://tokenfunc.com"),
)

resp = client.models.generate_content(model="gemini-2.5-pro", contents="你好!")
print(resp.text)

Node.js

// npm install @google/genai
import { GoogleGenAI } from '@google/genai'

// baseUrl 只填本站地址,SDK 会自动拼接 /v1beta/models/...
const ai = new GoogleGenAI({
  apiKey: 'sk-xxxxxxxxxxxxxxxx',
  httpOptions: { baseUrl: 'https://tokenfunc.com' },
})

const resp = await ai.models.generateContent({
  model: 'gemini-2.5-pro',
  contents: '你好!',
})
console.log(resp.text)

鉴权

以下三种写法都可以,推荐第一种:

写法示例
请求头 x-goog-api-key(Google SDK 默认)x-goog-api-key: sk-xxxxxxxxxxxxxxxx
网址参数 key...:generateContent?key=sk-xxxxxxxxxxxxxxxx,容易被日志记录,不推荐
请求头 AuthorizationAuthorization: Bearer sk-xxxxxxxxxxxxxxxx

请求参数

parts 里除了 text,也可以放图片:{"inline_data": {"mime_type": "image/jpeg", "data": "<Base64>"}}。

200

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [{ "text": "你好!有什么可以帮你的吗?" }]
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 3,
    "candidatesTokenCount": 9,
    "thoughtsTokenCount": 0,
    "totalTokenCount": 12
  },
  "modelVersion": "gemini-2.5-pro",
  "responseId": "abc123"
}

响应字段

流式输出

把动作换成 streamGenerateContent 并加上 ?alt=sse,回复会以 SSE 事件流返回。本站一律返回 SSE,不带 ?alt=sse 也一样(官方不带时返回 JSON 数组)。SDK 中使用 generate_content_stream(Python)或 generateContentStream(Node.js)。

cURL

curl -N "https://tokenfunc.com/v1beta/models/gemini-2.5-pro:streamGenerateContent?alt=sse" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: sk-xxxxxxxxxxxxxxxx" \
  -d '{"contents": [{"role": "user", "parts": [{"text": "写一首关于秋天的四行短诗"}]}]}'

Python

for chunk in client.models.generate_content_stream(model="gemini-2.5-pro", contents="写一首关于秋天的四行短诗"):
    print(chunk.text, end="", flush=True)

Node.js

const stream = await ai.models.generateContentStream({
  model: 'gemini-2.5-pro',
  contents: '写一首关于秋天的四行短诗',
})
for await (const chunk of stream) process.stdout.write(chunk.text ?? '')

模型列表

GET https://tokenfunc.com/v1beta/models 按 Gemini 格式返回这把密钥可用的模型:

curl "https://tokenfunc.com/v1beta/models" -H "x-goog-api-key: sk-xxxxxxxxxxxxxxxx"

注意事项