docs/troubleshooting/model_errors.md
在使用 GPT Academic 与大语言模型交互时,您可能会遇到各种错误提示。这些错误通常以 [Local Message] 开头显示在对话区域,表明请求未能成功完成。本文档将帮助您理解这些错误的含义,并提供相应的解决方案。
理解错误信息是解决问题的第一步。GPT Academic 的错误处理机制会将模型 API 返回的原始错误信息转换为更易理解的中文提示,同时保留关键的技术细节供排查使用。
当遇到模型调用错误时,建议按照以下顺序进行排查:
<div class="workflow-single"> <div class="workflow-header">错误诊断流程</div> <div class="workflow"> <ol class="workflow-steps"> <li><strong>确认错误类型</strong>查看对话区显示的错误信息,识别是认证问题、额度问题还是网络问题。错误信息通常包含关键词如 "API key"、"quota"、"timeout" 等。</li>
<li><strong>检查基础配置</strong>确认 config_private.py 中的 API 密钥配置正确,没有多余空格或引号嵌套。验证所选模型与配置的密钥匹配。</li>
对于需要代理的服务(如 OpenAI),确认代理软件正常运行且配置正确。对于国产模型,确认网络可以正常访问对应平台。</li>
<li><strong>查阅错误详情</strong>根据具体错误信息,在本文档中找到对应章节,按照指引解决问题。</li>
</ol> </div> </div>认证错误是最常见的问题类型,通常发生在首次配置或密钥过期时。这类错误的核心原因是系统无法使用您提供的凭证访问模型服务。
当您看到 "Incorrect API key" 或 "API_KEY 无效" 的提示时,说明提供的 API 密钥无法通过服务商的验证。
这种情况最常见的原因是复制密钥时出现问题。API 密钥通常是一串以特定前缀开头的字符(如 OpenAI 的 sk-),在复制粘贴过程中可能会意外包含空格、换行符或其他不可见字符。另一个常见原因是密钥已被服务商撤销或过期。
# 正确的配置格式
API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 常见错误:包含多余空格
API_KEY = " sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "
# 常见错误:引号嵌套
API_KEY = "'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'"
???+ tip "排查建议" 1. 重新登录服务商平台,复制一个新的 API 密钥 2. 使用纯文本编辑器粘贴密钥,确保没有格式问题 3. 确认密钥前后没有多余的空格或换行 4. 检查配置文件的引号是否匹配
此错误表明您的 API 密钥曾经有效,但现在已被服务商停用。可能的原因包括:账户长期未使用被自动清理、违反了服务商的使用条款、或者您主动在平台上删除了该密钥。
解决方法是登录对应平台的 API 管理页面,检查密钥状态。如果密钥确实已被停用,您需要创建一个新的密钥并更新配置。
账户状态错误与密钥本身无关,而是涉及您在服务商平台上的账户整体状态。
这个错误通常出现在新注册账户尚未完成验证,或账户因某些原因被服务商暂停的情况下。
对于 OpenAI 账户,您可能需要完成手机号验证或绑定支付方式才能激活 API 访问权限。对于国产模型平台,可能需要完成实名认证。建议登录对应平台的控制台,查看是否有待完成的验证步骤或账户状态提示。
当您的 API 调用额度耗尽时,会收到此错误。不同服务商的额度机制有所不同:OpenAI 采用预充值模式,余额用完即停止服务;部分国产模型平台提供免费额度,超出后需要付费。
!!! warning "注意区分免费额度和付费额度" 许多平台为新用户提供免费体验额度,这些额度通常有使用期限。免费额度耗尽后,即使账户中有付费余额,也可能需要在平台上手动切换到付费模式。
解决此问题的方法包括:登录平台充值或购买额度、切换到有余额的其他 API 密钥、或者改用免费额度更充裕的替代模型(如通义千问)。
如果您使用 API2D 等中转服务,可能会遇到特有的错误信息:
这些错误的解决方式是登录 API2D 平台进行充值。
请求格式错误通常与您发送给模型的内容有关,而非配置问题。
这是使用过程中最常遇到的错误之一。每个模型都有上下文长度限制(以 Token 计算),当您的输入文本加上对话历史超过这个限制时,就会触发此错误。
GPT Academic 在遇到此错误时会自动尝试裁剪对话历史,释放部分空间。如果裁剪后仍然超限,通常是因为单次输入的文本本身就过长。
处理长文本的推荐做法是:将长文本分段处理,每次只发送一部分;或者使用函数插件区的批量处理功能(如 PDF 翻译、代码分析),这些插件会自动将长内容分割成合适的片段。
您也可以在配置中启用自动上下文裁剪功能:
AUTO_CONTEXT_CLIP_ENABLE = True # 启用自动裁剪
???+ note "不同模型的上下文限制" | 模型 | 上下文长度 | |-----|-----------| | gpt-3.5-turbo | 16K tokens | | gpt-4 | 8K tokens | | gpt-4-turbo | 128K tokens | | qwen-max | 32K tokens | | deepseek-chat | 64K tokens |
如果您经常处理长文本,建议选择上下文窗口更大的模型。
此错误表示发送给模型的请求不符合 API 规范。常见原因包括:输入内容包含模型不支持的特殊字符、消息格式不正确、或者使用了模型不支持的参数。
如果您在正常对话中遇到此错误,尝试简化输入内容,移除特殊符号或格式。如果问题持续出现,可能是插件或自定义功能的配置问题。
当您请求的模型名称不在服务商的可用列表中时,会收到此错误。这通常有几种可能:
模型名称拼写错误是最常见的原因。OpenAI 的模型名称区分大小写,应使用小写形式如 gpt-4o 而非 GPT-4o。另一种情况是您的账户没有访问该模型的权限——某些高级模型(如早期的 GPT-4)需要单独申请访问权限。
# 正确的模型名称示例
LLM_MODEL = "gpt-4o" # OpenAI
LLM_MODEL = "qwen-max" # 通义千问
LLM_MODEL = "deepseek-chat" # DeepSeek
LLM_MODEL = "glm-4" # 智谱
如果您使用第三方中转服务,还需要确认该服务支持您请求的模型。
当短时间内发送过多请求时,API 服务商会暂时限制您的访问。这是一种保护机制,防止 API 被滥用。
遇到此错误时,最简单的解决方法是等待一分钟后重试。如果您需要进行大量批量处理,可以采取以下措施:
DEFAULT_WORKER_NUM 的值API_KEY = "sk-key1,sk-key2,sk-key3"超时错误表示请求发送后在规定时间内未收到响应。这可能是网络问题、代理配置问题,或者服务商端的拥堵。
对于访问 OpenAI 等海外服务,超时通常与代理配置有关。请确认:
USE_PROXY 设置为 Trueproxies 中配置的地址和端口与代理软件一致USE_PROXY = True
proxies = {
"http": "http://127.0.0.1:7890",
"https": "http://127.0.0.1:7890",
}
如果网络状况不佳,可以适当增加超时时间:
TIMEOUT_SECONDS = 60 # 默认为 30 秒
MAX_RETRY = 3 # 增加重试次数
!!! tip "国内用户建议" 如果您在国内且没有稳定的代理环境,强烈建议使用国产模型(如通义千问、DeepSeek、智谱 GLM),这些服务无需代理即可直接访问,稳定性更好。
此错误表示模型服务端当前负载较高,无法处理您的请求。这种情况在热门模型发布初期或高峰时段较为常见。
解决方法是等待片刻后重试,或者临时切换到负载较低的备用模型。
下表汇总了常见错误及其快速解决方案:
| 错误关键词 | 含义 | 快速解决 |
|---|---|---|
Incorrect API key | 密钥无效 | 重新复制密钥,检查格式 |
API key has been deactivated | 密钥已停用 | 创建新密钥 |
account is not active | 账户未激活 | 完成平台验证 |
exceeded your current quota | 额度不足 | 充值或切换密钥 |
Model does not exist | 模型不存在 | 检查模型名称拼写 |
reduce the length | 内容过长 | 减少输入或清除历史 |
rate_limit | 请求频率超限 | 等待后重试 |
timeout | 连接超时 | 检查网络和代理 |
bad_request | 请求格式错误 | 简化输入内容 |
authentication_error | 认证失败 | 检查 API 密钥配置 |
如果按照上述指引仍无法解决问题,您可以:
查看完整错误信息:GPT Academic 会在错误提示中包含原始的错误详情,这些技术信息有助于定位问题根源。
搜索 GitHub Issues:访问 项目 Issues 页面 搜索类似问题,很可能其他用户已经遇到并解决了相同的问题。
加入社区讨论:QQ 交流群 610599535 有活跃的用户社区,可以获得实时帮助。
提交 Issue:如果确认是 Bug,请在 GitHub 提交 Issue,附上完整的错误信息、使用的模型、以及复现步骤。