故障排查GitHub issue4 分钟阅读排错/错误码

FastGPT调用OpenAI接口返回400错误的排查与解决方法

用户在使用FastGPT时,调用相关接口抛出如下错误: 错误栈显示该报错源于OpenAI SDK的请求流程,具体触发点为/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js中的异步调用逻辑,从OpenAI的…

现象

用户在使用FastGPT时,调用相关接口抛出如下错误:

Error: 400  (request id: 20231207170859382448428osT77lIq)
    at APIError.generate (file:///app/node_modules/.pnpm/registry.npmmirror.com+openai@4.16.1_encoding@0.1.13/node_modules/openai/error.mjs:39:20)
    at OpenAI.makeStatusError (file:///app/node_modules/.pnpm/registry.npmmirror.com+openai@4.16.1_encoding@0.1.13/node_modules/openai/core.mjs:244:25)
    at OpenAI.makeRequest (file:///app/node_modules/.pnpm/registry.npmmirror.com+openai@4.16.1_encoding@0.1.13/node_modules/openai/core.mjs:283:30)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async o (/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js:1:1963)
    at async c (/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js:1:3163)

错误栈显示该报错源于OpenAI SDK的请求流程,具体触发点为/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js中的异步调用逻辑,从OpenAI的错误生成到请求发送环节均出现异常。

可能原因

该报错的400状态码代表客户端请求不符合API规范,结合错误栈与使用的v4.16.1版本OpenAI SDK,可能的原因包括:

  1. 发送至OpenAI API的请求参数存在格式错误、缺失必要字段或超出长度限制等问题;
  2. 调用配置与当前SDK版本存在兼容性异常;
  3. 其他与请求链路相关的异常情况,需按实际运行环境确认。

排查步骤

  1. 记录报错中的request id:20231207170859382448428osT77lIq,通过该ID查询完整的请求日志与OpenAI API返回内容。
  2. 核对/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js接口中调用OpenAI SDK时传入的所有参数,确认符合v4.16.1版本OpenAI SDK的请求格式要求。
  3. 检查OpenAI API的调用配置,确认密钥、模型名称等信息无误。
  4. 复现报错场景,抓取完整的请求与响应数据,定位具体异常点。

解决与验证

  1. 根据排查获取的请求参数与日志,修正不符合OpenAI API规范的内容,例如补全缺失参数、调整格式错误等。
  2. 重新调用createQuestionGuide.js相关接口,验证报错是否消失。
  3. 确认接口返回的结果符合业务预期,完成修复。
  4. 若参数与配置均无异常,需结合实际运行环境进一步排查OpenAI API的调用限制等问题。

来源:FastGPT GitHub issue