> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini OpenAI 兼容格式

> 基于生产环境复核，通过 /v1/chat/completions 调用 Gemini 3 Pro

> 更新日期：2026-06-06

# Gemini OpenAI 兼容格式

你可以通过 OpenAI Chat Completions 兼容格式调用 Gemini。

```
POST /v1/chat/completions
```

本文页只写入 `2026-03-22` 已在 Crazyrouter 生产环境复核过的兼容层行为。

当前主示例模型：

* `gemini-3.1-pro`

## 当前主结论

本轮生产复核确认：

* `gemini-3.1-pro` 可以通过 `/v1/chat/completions` 正常对话
* 流式返回兼容 `chat.completion.chunk` SSE 结构
* 如果你需要 Gemini 的结构化输出、Google Search、thinking 等能力，当前仍应优先看 [Gemini 原生格式](/chat/gemini/native)

***

## 基本对话

```bash cURL theme={null}
curl https://api.crazyrouter.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gemini-3.1-pro",
    "messages": [
      {
        "role": "system",
        "content": "You are a concise assistant."
      },
      {
        "role": "user",
        "content": "Explain quantum entanglement in one sentence."
      }
    ],
    "max_tokens": 128
  }'
```

当前生产验证返回的关键结构：

```json theme={null}
{
  "object": "chat.completion",
  "model": "gemini-3.1-pro",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "..."
      }
    }
  ]
}
```

***

## Python 示例

```python Python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.crazyrouter.com/v1"
)

response = client.chat.completions.create(
    model="gemini-3.1-pro",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain quantum entanglement in one sentence."}
    ],
    max_tokens=128
)

print(response.choices[0].message.content)
```

***

## 流式输出

本轮生产也复核了流式兼容返回：

```python Python theme={null}
stream = client.chat.completions.create(
    model="gemini-3.1-pro",
    messages=[
        {"role": "user", "content": "Write one short sentence about AI."}
    ],
    max_tokens=64,
    stream=True
)

for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content is not None:
        print(delta.content, end="")
```

当前生产收到的 SSE 片段形态类似：

```text theme={null}
data: {"object":"chat.completion.chunk","model":"gemini-3.1-pro",...}
data: {"choices":[{"delta":{"content":"..."}}],...}
data: [DONE]
```

***

## 何时用兼容格式，何时用原生格式

* 已有 OpenAI SDK 代码，且只需要标准对话：优先用兼容格式
* 需要 Gemini 的结构化输出、Google Search、thinking、原生字段：优先用 [Gemini 原生格式](/chat/gemini/native)

<Note>
  这页只覆盖 `/v1/chat/completions` 兼容层。对于 Gemini 图片工作负载，请使用统一 Images API：`POST https://api.crazyrouter.com/v1/images/generations`，并参考 [Nano Banana](/images/nano-banana)、[Nano Banana Pro](/images/nano-banana-pro)、[Nano Banana 2](/images/nano-banana-2)。
</Note>
