本指南可帮助您诊断和解决调用 Gemini API 时出现的常见问题。您可能会遇到 Gemini API 后端服务或客户端 SDK 的问题。我们的客户端 SDK 在以下代码库中开源:
如果您遇到 API 密钥问题,请按照 API 密钥设置指南验证您是否已正确设置 您的 API 密钥。
Gemini API 后端服务错误代码
下表列出了您可能会遇到的常见后端错误代码,以及对这些错误代码的原因和问题排查步骤的说明:
| HTTP 代码 | 状态 | 说明 | 示例 | 解决方案 |
| 400 | INVALID_ARGUMENT | 请求正文格式不正确。 | 您的请求中存在拼写错误或缺少必填字段。 | 请查看 API 参考文档,了解请求格式、示例和支持的版本。使用较新 API 版本中的功能和较旧的端点可能会导致错误。 |
| 400 | FAILED_PRECONDITION | Gemini API 免费层级在您所在的国家/地区不可用。请在 Google AI Studio 中为您的项目启用结算功能。 | 您在不支持免费层级的区域发出请求,并且未在 Google AI Studio 中为您的项目启用结算功能。 | 如需使用 Gemini API,您需要使用 Google AI Studio 设置付费方案。 |
| 403 | PERMISSION_DENIED | 您的 API 密钥没有所需的权限。 | 您使用的 API 密钥不正确;您 尝试使用经过调优的模型,但未通过适当的身份验证。 | 检查您的 API 密钥是否已设置且具有正确的访问权限。另外,请务必通过适当的身份验证来使用经过调优的模型。 |
| 404 | NOT_FOUND | 找不到所请求的资源。 | 找不到您的请求中引用的图片、音频或视频文件。 | 检查您的请求中的所有 参数对于您的 API 版本是否有效。 |
| 429 | RESOURCE_EXHAUSTED | 您已超出速率限制。 | 您使用免费层级的 Gemini API 每分钟发送的请求过多。 | 验证您是否在模型的速率限制范围内。如有需要,请申请增加配额。 |
| 500 | INTERNAL | Google 端发生了意外错误。 | 您的输入上下文过长。 | 缩短输入上下文,或暂时切换到其他模型(例如从 Gemini 2.5 Pro 切换到 Gemini 2.5 Flash),看看是否有效。或者,稍等片刻,然后重试您的请求。如果重试后问题仍然存在,请使用 Google AI Studio 中的发送反馈 按钮报告该问题。 |
| 503 | UNAVAILABLE | 服务可能暂时过载或关闭。 | 服务暂时容量不足。 | 暂时切换到其他模型(例如从 Gemini 2.5 Pro 切换到 Gemini 2.5 Flash),看看是否有效。或者,稍等片刻,然后重试您的请求。如果重试后问题仍然存在,请使用 Google AI Studio 中的发送反馈 按钮报告该问题。 |
| 504 | DEADLINE_EXCEEDED | 服务无法在截止期限内完成处理。 | 您的提示(或上下文)过大,无法及时处理。 | 在客户端请求中设置较大的“超时”时间,以避免此错误。 |
检查 API 调用是否存在模型参数错误
验证您的模型参数是否在以下值范围内:
| 模型参数 | 值(范围) |
| 候选对象数量 | 1-8(整数) |
| 温度 | 0.0-1.0 |
| 输出 token 数量上限 | 使用 模型页面 确定您所用模型的 token 数量上限。 |
| TopP | 0.0-1.0 |
除了检查参数值之外,还要确保您使用的是正确的
API 版本(例如 /v1 或 /v1beta)和
支持所需功能的模型。例如,如果某项功能处于 Beta 版发布阶段,则仅在 /v1beta API 版本中可用。
检查您是否使用了正确的模型
验证您是否使用了模型 页面上列出的受支持模型。
2.5 模型延迟时间较长或 token 使用量较高
如果您发现 2.5 Flash 和 Pro 模型的延迟时间较长或 token 使用量较高,这可能是因为这些模型默认启用了思考功能 ,以提高质量。如果您优先考虑速度或需要尽可能降低费用,可以调整或停用思考功能。
如需指南和示例代码,请参阅 思考功能页面。
安全问题
如果您看到提示因 API 调用中的安全设置而被屏蔽,请根据您在 API 调用中设置的过滤条件检查该提示。
如果您看到 BlockedReason.OTHER,则查询或响应可能违反 服务
条款或不受支持。
背诵问题
如果您看到模型因 RECITATION 原因而停止生成输出,这意味着模型输出可能与某些数据相似。如需解决此问题,请尝试使提示 / 上下文尽可能独特,并使用较高的温度。
重复 token 问题
如果您看到重复的输出 token,请尝试以下建议,以帮助减少或消除这些 token。
| 说明 | 原因 | 建议的解决方法 |
|---|---|---|
| Markdown 表格中重复的连字符 | 当表格内容较长时,模型会尝试 创建视觉上对齐的 Markdown 表格,因此可能会出现此问题。不过,Markdown 中的对齐对于正确呈现来说不是必需的。 |
在提示中添加说明,为模型提供生成 Markdown 表格的具体指南 提供遵循这些 指南的示例。您还可以尝试调整温度。对于生成 代码或结构非常化的输出(如 Markdown 表格), 较高的温度效果更好 (>= 0.8)。 以下是一组示例指南,您可以将其添加到您的 提示中以防止出现此问题:
# Markdown Table Format
* Separator line: Markdown tables must include a separator line below
the header row. The separator line must use only 3 hyphens per
column, for example: |---|---|---|. Using more hypens like
----, -----, ------ can result in errors. Always
use |:---|, |---:|, or |---| in these separator strings.
For example:
| Date | Description | Attendees |
|---|---|---|
| 2024-10-26 | Annual Conference | 500 |
| 2025-01-15 | Q1 Planning Session | 25 |
* Alignment: Do not align columns. Always use |---|.
For three columns, use |---|---|---| as the separator line.
For four columns use |---|---|---|---| and so on.
* Conciseness: Keep cell content brief and to the point.
* Never pad column headers or other cells with lots of spaces to
match with width of other content. Only a single space on each side
is needed. For example, always do "| column name |" instead of
"| column name |". Extra spaces are wasteful.
A markdown renderer will automatically take care displaying
the content in a visually appealing form.
|
| Markdown 表格中重复的 token | 与重复的连字符类似,当模型尝试 在视觉上对齐表格内容时,就会出现此问题。Markdown 中的对齐对于正确呈现来说不是必需的。 |
|
结构化输出中重复的换行符 (\n)
|
当模型输入包含 Unicode 或转义序列(如
\u 或 \t)时,可能会导致重复的换行符。
|
|
| 使用结构化输出时重复的文本 | 当模型输出的字段顺序与定义的结构化架构不同时,可能会导致文本重复。 |
|
| 重复的工具调用 | 如果模型丢失了先前思考的上下文,并且/或者 调用了它被迫调用的不可用端点,则可能会出现此问题。 |
指示模型在其思考过程中保持状态。
将此内容添加到系统指令的末尾:
When thinking silently: ALWAYS start the thought with a brief
(one sentence) recap of the current progress on the task. In
particular, consider whether the task is already done.
|
| 不属于结构化输出的重复文本 | 如果模型卡在无法解决的请求上,则可能会出现此问题。 |
|
API 密钥被屏蔽或无法正常使用
本部分介绍了如何检查 Gemini API 密钥是否被屏蔽,以及如何解决此问题。
了解密钥被屏蔽的原因
我们发现了一个漏洞,导致某些 API 密钥可能已公开泄露。为了保护您的数据并防止未经授权的访问,我们已主动屏蔽这些已知的泄露密钥,使其无法访问 Gemini API。
确认您的密钥是否受到影响
如果您的密钥已知已泄露,您将无法再将该密钥与 Gemini API 搭配使用。您可以使用 Google AI Studio 查看是否有任何 API 密钥被屏蔽而无法调用 Gemini API,并生成新 密钥。尝试使用这些密钥时,您可能还会看到返回以下错误:
Your API key was reported as leaked. Please use another API key.
针对被屏蔽的 API 密钥采取的操作
您应使用 Google AI Studio 为 Gemini API 集成生成新的 API 密钥。我们强烈建议您查看 API 密钥管理实践,以确保新密钥安全无虞且不会公开泄露。
因漏洞而产生意外费用
提交结算支持请求。 我们的结算团队正在处理此问题,我们会尽快通知您最新进展。
Google 针对泄露密钥采取的安全措施
如果我的 API 密钥泄露,Google 将如何帮助我保护账号免遭费用超支和滥用?
- 我们正在逐步实现以下目标:当您使用 Google AI Studio 请求新密钥时,系统会发出 API 密钥,该密钥默认仅限于 Google AI Studio,并且不接受来自其他服务的密钥。 这有助于防止任何意外的跨密钥使用。
- 我们默认屏蔽泄露并与 Gemini API 搭配使用的 API 密钥,以帮助防止滥用费用和您的应用数据。
- 您将能够在 Google AI Studio 中找到 API 密钥的状态,并且当我们发现您的 API 密钥泄露时,我们会主动通知您,以便您立即采取行动。
改进模型输出
如需获得更高质量的模型输出,请探索编写结构化程度更高的提示。提示工程指南页面介绍了一些基本概念、策略和最佳实践,可帮助您入门。
了解 token 限制
请阅读我们的 token 指南,以便更好地了解如何统计 token 及其限制。
已知问题
- 该 API 仅支持部分选定的语言。以不受支持的语言提交提示可能会生成意外甚至被屏蔽的响应。如需了解最新信息,请参阅 支持的语言。
提交 bug
如果您有任何疑问,请加入 Google AI 开发者论坛 的讨论。