Gemini 接入

使用 Google Gemini 原生格式接入 Gemini 模型。

适合已有 Gemini 原生代码、要保留 generateContent 调用方式的场景。只适用于 Gemini 模型。

新项目建议优先走 OpenAI Compatible 快速入门。

基础规则

项目值
Base URLhttps://ergouzi.life
非流式POST /v1beta/models/{model}:generateContent
流式 SSEPOST /v1beta/models/{model}:streamGenerateContent?alt=sse
鉴权头x-goog-api-key: <API_KEY>

和 OpenAI 不同:头是 x-goog-api-key,请求体用 contents + parts,不是 messages。

curl 示例

非流式

curl --request POST \
  --url "https://ergouzi.life/v1beta/models/gemini-2.5-flash:generateContent" \
  --header "Content-Type: application/json" \
  --header "x-goog-api-key: $DOGZEE_API_KEY" \
  --data '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "请用一句话介绍 Dogzee API。"}]
      }
    ]
  }'

流式 SSE

curl --request POST \
  --url "https://ergouzi.life/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  --header "Content-Type: application/json" \
  --header "x-goog-api-key: $DOGZEE_API_KEY" \
  --data '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "给我一个 3 条的集成建议清单。"}]
      }
    ]
  }'

SDK 接入

Python

pip install -U google-genai
from google import genai
from google.genai import types
import os

client = genai.Client(
    api_key=os.environ["GEMINI_API_KEY"],
    http_options=types.HttpOptions(base_url="https://ergouzi.life"),
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="请用一句话介绍 Dogzee API。",
)

print(response.text)

Node.js

npm install @google/genai
import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({
  apiKey: process.env.GEMINI_API_KEY,
  httpOptions: {
    baseUrl: "https://ergouzi.life",
  },
});

const response = await ai.models.generateContent({
  model: "gemini-2.5-flash",
  contents: "请用一句话介绍 Dogzee API。",
});

console.log(response.text);

排错

  • 用这条路调非 Gemini 模型 → 这条线只适用于 Gemini 模型
  • 用了 Bearer 头 → 这里用 x-goog-api-key,不是 Authorization: Bearer
  • 请求体写成 OpenAI 格式 → 用 contents + parts,不是 messages