api
Gemini API 调用指南:Interactions 与 GenerateContent
直接答案Google 已推荐新项目使用 Interactions API;本站当前公开的 Gemini 原生兼容路径仍以 GenerateContent 为主,两套请求与流式解析不能混用。
更新 · 审核信息
先区分官方推荐与本站兼容范围
Google 已在 2026 年 6 月把 Interactions API 设为 GA,并推荐所有新项目使用;原 generateContent 仍受支持,但已归为 Legacy。本站是否支持某个端点取决于网关适配,不能因为 Google 已发布 /v1beta/interactions 就假设本站也已开放。当前公开的 Gemini 原生兼容路径确定是 GenerateContent。
通过本站调用 GenerateContent
本站推荐使用 Authorization: Bearer;为兼容 Gemini 原生客户端,/v1beta/models/... 路径也接受本站密钥形式的 x-goog-api-key。模型名位于 URL 中并应来自模型广场。contents[].parts 可组合文本和模型支持的多模态输入;不要发送官方单模型页未声明的内容类型。
curl "$BASE_URL/v1beta/models/MODEL_NAME:generateContent" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"只回复:连接成功"}]}]}'
直连 Google 的 Interactions 形态
直连 Google 使用 x-goog-api-key。Interactions 调用 POST /v1beta/interactions,把 model 和 input 放入 JSON;响应包含 id、status、usage 与类型化 steps[]。SDK 的 output_text 适合读取简单最终文本,遇到思考、工具、图片或音频交错时必须按 type 遍历 steps。
多轮可用 previous_interaction_id,但工具、system instruction 和 generation config 不会自动继承,应在后续请求中重发。store=false 适合不希望服务端保存交互的场景,但不能再依赖已存储交互续接。
两套响应和流式事件不能混用
GenerateContent 返回 candidates、finishReason、promptFeedback 和安全信息;Interactions 使用 interaction.created、step.start/delta/stop 与 interaction.completed 等类型化 SSE 事件。函数调用在新协议中也是独立 step,不再是简单替换 function response part。HTTP 200 后仍可能出现流内错误,客户端要容忍未知事件并等待明确完成事件。
错误与重试
401 检查认证,403 检查权限,404 检查模型或资源,429 可能是速率或配额。先读错误 status 和 message 再处理 5xx:过载或临时服务故障可有限退避,但 GenerateContent 的输入或上下文过长也可能表现为 500 或 504,此时必须缩短请求而不是重试。参数、安全拦截和配额问题同样需要修正请求或账户。保存请求 ID、错误 code、status 与最终 step,参见 API 报错排查。
迁移前必须核验的边界
Interactions 尚未覆盖 GenerateContent 的全部能力,例如部分视频 metadata、Batch、显式缓存和自定义安全设置。迁移前逐项核验目标型号、/v1 或 /v1beta、文件限制、工具、结构化输出、存储策略与数据政策,并分别保留两套契约测试;不要只改 URL。
适用场景
- 多模态理解
- 长上下文推理
- 文本与媒体生成
API 协议
/v1beta/models/{model}:generateContent/v1beta/models/{model}:streamGenerateContent
FAQ
新项目应该使用 Interactions 还是 GenerateContent?
直连 Google 的新项目优先评估 Interactions;通过本站调用时,只能使用模型广场和协议页明确列出的已适配端点,当前 Gemini 原生兼容路径仍以 GenerateContent 为主。
能否只把 generateContent 的 URL 改成 /interactions?
不能。Interactions 把 model 与 input 放入请求体,响应改为 status、steps 和 usage,流式事件与函数结果也不同,必须更换请求构造和解析器。
generateContent 已经不能使用了吗?
不是。Google 将其标为 Legacy,但仍明确表示继续支持;已有项目可按业务节奏迁移,并先核验 Interactions 尚未覆盖的能力。
为什么 HTTP 200 却没有可见文本?
检查 Interactions 的 status 与各类 steps,或 GenerateContent 的 candidates、finishReason、promptFeedback 和安全反馈;工具调用、拦截和流内错误都可能没有普通文本。
本站和直连 Google 的认证请求头一样吗?
本站推荐统一使用 Authorization: Bearer,也兼容 Gemini 原生路径的 x-goog-api-key;直连 Google 使用 x-goog-api-key。两种方式都不要在浏览器代码、URL 或日志中暴露长期密钥。
关联指南
官方来源
- Gemini API Documentation Official
- Gemini Interactions API Overview Official
- Gemini API Getting Started Official
- Migrate to the Interactions API Official
- Gemini API Streaming Official
- Gemini Function Calling Official
- Gemini API Errors Official
- Gemini GenerateContent API Errors Official
兔子API