Skip to main content
排障时先用同一地址、令牌、模型的最小请求复现,再逐项恢复业务参数。错误与重试解释状态码;本页补充跨接口问题。

常见问题

能直接替换官方 SDK 的 Base URL 吗? 对支持的同协议端点通常从这里开始,但应显式配置模型并检查框架隐藏的资源调用。迁移清单列出需要一起调整的部分。 为什么不能给所有接口统一一个输出解析器? Chat 使用 choices,Responses 使用 output,Claude 使用内容块,Gemini 使用 candidates,媒体还可能返回字节或异步任务。HTTP 状态处理可复用,业务完成与内容提取必须按协议区分。 断线后可以直接重试吗? 先判断请求是否可能已被接收、有无部分输出或任务 ID。任务有 ID 就先查询;结果不确定时按业务策略处理重复风险。本站不承诺全局幂等键。 本地示例测试通过意味着模型可用吗? 不意味着。模拟测试检查客户端协议和失败路径;真实权限、模型能力、生成质量与密文可回放性仍需目标服务验收。

提供有效排障信息

提交以下非敏感信息给部署维护者:发生时间及时区、端点与方法、模型、SDK 版本、HTTP 状态、完成状态、网关请求 ID(若有)、经过脱敏的最小参数结构、预期与实际行为。不要发送令牌、Cookie、签名 URL、完整媒体或用户私密内容。复现步骤尽量减少请求次数。 Read in English

多模态与参数兼容问题

请求生命周期常见问题

点“停止”是否一定停止服务端任务? 客户端中止只说明不再等待或读取;不能证明上游停止、任务撤销或不会计费。不要把关闭 SSE 当作通用取消 API。已知任务 ID 应先查询状态,本项目也没有统一 Responses cancel 入口。 为什么复制官方示例仍多出接口错误? 检查 SDK 的默认方法、资源上传、历史检索和自动重试。responses.create、Chat、Files、Interactions 不是同一个入口;按 迁移检查 使用本站已列出的端点。 参数已发出为什么没有效果? 区分 SDK 是否序列化、DTO 是否表达、转换是否映射、渠道是否覆盖/过滤、上游是否支持。用最小请求逐项添加参数;保留非敏感诊断信息,参见 参数过滤。

工具策略与 JSON 常见问题

工具控制示例 · JSON 校验示例

Gemini 启用工具后只有文本,没有执行证据

启用内置工具允许模型使用,不会强制每次提示都执行。按工具检查 groundingMetadata、urlContextMetadata 或 codeExecutionResult。如果业务要求实际使用工具,缺少证据时应停止,不应把直接回答悄悄展示成搜索、抓取或执行后的结果。

搜索引用指向错误的字符

Gemini grounding 的片段偏移指向原始 part 中的 UTF-8 字节,endIndex 不包含末端字节。对中文和 emoji 使用 JavaScript 字符串切片或先拼接 part,容易发生错位。保留 partIndex 与来源顺序,在渲染前验证字节边界和 groundingChunkIndices。内置工具示例 展示单个非流式候选的处理。

URL 读取失败或代码执行报告错误

检查每项 URL 读取状态;付费墙、不安全 URL、重定向到其他 URL 或缺少元数据,都不代表已确认访问。代码执行可能失败或超时,但 HTTP 仍是 200。检查 outcome 和配对的代码/结果 part。示例遇到任何失败执行就停止,绝不在本地运行生成代码。自定义函数结果属于函数调用循环,不属于 codeExecutionResult。

新版 Gemini SDK 示例使用不支持的路由或丢失工具状态

选择 generateContent 兼容示例,不使用 Interactions 或 Files 管理调用。原生 JSON 使用 camelCase;将 Python snake_case 直接作为协议负载可能在网关 DTO 中丢失字段。原始响应元数据可能保留,但回放时较新的未知请求字段仍可能丢失。启用多轮工具组合前核对实际 DTO 与渠道,见原生工具范围。