跳转到主要内容

请求地址

模型 ID 放在 URL 中。将 YOUR_GEMINI_MODEL 替换为账号可用的完整模型 ID,不要重复添加 models/。

鉴权

这里使用 ViVi-API 密钥。设置环境变量 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:
按 SSE 事件读取 data: 中的 JSON,从每个事件的 candidates[].content.parts 提取文本。Gemini 不使用 OpenAI 的 choices[].delta 结构,也不应依赖 [DONE] 作为结束标记。

接入提示

  • 路径是 /v1beta/models/...,不要拼接成 /v1/v1beta/...。
  • 模型名在 URL 中,生成参数位于 JSON 请求体内。
  • 图片、文件、工具调用等能力依模型和接入渠道而定;本文先覆盖文本调用。
  • 遇到错误时,检查 HTTP 状态码与返回的 error 内容,再对照错误排查。
协议参考:Google Gemini generateContent。ViVi-API 的模型范围与可选功能以实际服务为准。