messages 请求体或 /v1/chat/completions 网关的客户。客户通常只需要替换 base_url、API Key 和 model,即可把文本生成请求路由到 Gemini 模型。
OpenAI 兼容格式便于迁移;Gemini 原生格式更适合使用 Gemini 专属字段和多模态
fileData。同一个模型是否支持该 endpoint,以平台开通的模型能力为准。接口地址
POST https://{your-domain}/v1/chat/completions
base_url:
https://{your-domain}/v1
gemini-3.5-flash
鉴权
OpenAI 兼容接口使用 Bearer 鉴权:Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
请求结构
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | Gemini 模型名称,例如 gemini-3.5-flash。 |
messages | array | 是 | OpenAI 风格消息数组。 |
messages[].role | string | 是 | system、user、assistant 等。 |
messages[].content | string 或 array | 是 | 文本生成通常传字符串。多模态时传内容数组。 |
max_tokens | integer | 否 | 最大输出 token 数。 |
temperature | number | 否 | 随机性,越高越发散。 |
stream | boolean | 否 | true 时返回 SSE 流。 |
stream_options.include_usage | boolean | 否 | 流式时建议开启,平台也会尽量补齐 usage。 |
非流式文本生成
curl
curl --request POST \
--url 'https://{your-domain}/v1/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "system",
"content": "你是一个面向企业客户的中文技术顾问,回答要准确、简洁、可落地。"
},
{
"role": "user",
"content": "请用三句话介绍 Gemini OpenAI 兼容文本生成接口。"
}
],
"max_tokens": 512,
"temperature": 0.4,
"stream": false
}'
请求体
{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "system",
"content": "你是一个面向企业客户的中文技术顾问,回答要准确、简洁、可落地。"
},
{
"role": "user",
"content": "请用三句话介绍 Gemini OpenAI 兼容文本生成接口。"
}
],
"max_tokens": 512,
"temperature": 0.4,
"stream": false
}
响应示例
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1784700000,
"model": "gemini-3.5-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Gemini OpenAI 兼容文本生成接口使用标准 /v1/chat/completions 请求结构,适合已经接入 OpenAI SDK 的客户快速迁移。客户只需要配置平台 base_url、API Key 和 Gemini 模型名,就可以发起普通问答、摘要、改写、分类等任务。需要图片、文档等多模态输入时,也可以继续使用 messages[].content 数组。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 82,
"total_tokens": 130
}
}
流式文本生成
curl
curl -N --request POST \
--url 'https://{your-domain}/v1/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "user",
"content": "请流式输出一段中文说明,介绍企业如何通过 OpenAI 兼容接口调用 Gemini。"
}
],
"max_tokens": 512,
"stream": true,
"stream_options": {
"include_usage": true
}
}'
请求体
{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "user",
"content": "请流式输出一段中文说明,介绍企业如何通过 OpenAI 兼容接口调用 Gemini。"
}
],
"max_tokens": 512,
"stream": true,
"stream_options": {
"include_usage": true
}
}
响应示例
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1784700000,"model":"gemini-3.5-flash","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}],"usage":null}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1784700000,"model":"gemini-3.5-flash","choices":[{"index":0,"delta":{"content":"企业可以"},"finish_reason":null}],"usage":null}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1784700000,"model":"gemini-3.5-flash","choices":[{"index":0,"delta":{"content":"通过 OpenAI SDK 设置 base_url 和 API Key,然后把 model 改为 Gemini 模型名。"},"finish_reason":null}],"usage":null}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1784700000,"model":"gemini-3.5-flash","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":36,"completion_tokens":47,"total_tokens":83}}
data: [DONE]
Python SDK 示例
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://{your-domain}/v1",
)
completion = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "你是一个中文技术顾问。"},
{"role": "user", "content": "请用三句话介绍 Gemini OpenAI 兼容文本生成接口。"},
],
max_tokens=512,
temperature=0.4,
)
print(completion.choices[0].message.content)
JavaScript SDK 示例
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://{your-domain}/v1",
});
const completion = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [
{ role: "system", content: "你是一个中文技术顾问。" },
{ role: "user", content: "请用三句话介绍 Gemini OpenAI 兼容文本生成接口。" },
],
max_tokens: 512,
temperature: 0.4,
});
console.log(completion.choices[0].message.content);
常见问题
| 场景 | 表现 | 处理方式 |
|---|---|---|
base_url 配错 | 请求变成 /v1/v1/chat/completions 或 404 | SDK 使用 https://{your-domain}/v1,curl 使用完整 /v1/chat/completions。 |
| API Key 没有权限 | 返回 model_not_allowed 或类似错误 | 检查模型是否对该 Key 开通。 |
| 模型 endpoint 不匹配 | 返回 model_endpoint_mismatch | 使用已开通 OpenAI 兼容 chat/completions 的 Gemini 模型。 |
| 流式没有 usage | 最后一个 chunk 没有用量 | 请求里加 stream_options.include_usage: true,并以平台账单记录为准。 |
| 输出不按 JSON | 返回自然语言或 Markdown | 增加 system 指令,必要时传 response_format 并做下游 JSON 校验。 |
.png?fit=max&auto=format&n=v_sJS-AFS6goKAv3&q=85&s=e03202fddb83c95be2a503ab9c79163a)