请求地址
YOUR_GEMINI_MODEL 替换为账号可用的完整模型 ID,不要重复添加 models/。
鉴权
VIVI_API_KEY 的方法见快速开始。
请求参数
Gemini 原生接口使用
contents 和 parts,助手角色是 model。不要直接发送 OpenAI 的 messages 请求体。调用示例
cURL 使用 Bash 语法。Python 示例需安装requests:python -m pip install requests。
返回结果
以下为结构示意。响应可能包含多个parts,不要只读取第一个内容块。
- 输出文本:
candidates[].content.parts[].text。 - 结束原因:
candidates[].finishReason,例如STOP、MAX_TOKENS。 - 用量:
usageMetadata,字段可能随模型变化。 - 无候选结果时,检查
promptFeedback;候选被拦截时也要检查finishReason。
系统指令与多轮对话
流式输出
将方法改为streamGenerateContent,并添加 alt=sse:
data: 中的 JSON,从每个事件的 candidates[].content.parts 提取文本。Gemini 不使用 OpenAI 的 choices[].delta 结构,也不应依赖 [DONE] 作为结束标记。
接入提示
- 路径是
/v1beta/models/...,不要拼接成/v1/v1beta/...。 - 模型名在 URL 中,生成参数位于 JSON 请求体内。
- 图片、文件、工具调用等能力依模型和接入渠道而定;本文先覆盖文本调用。
- 遇到错误时,检查 HTTP 状态码与返回的
error内容,再对照错误排查。