现象
用户在使用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,可能的原因包括:
- 发送至OpenAI API的请求参数存在格式错误、缺失必要字段或超出长度限制等问题;
- 调用配置与当前SDK版本存在兼容性异常;
- 其他与请求链路相关的异常情况,需按实际运行环境确认。
排查步骤
- 记录报错中的request id:
20231207170859382448428osT77lIq,通过该ID查询完整的请求日志与OpenAI API返回内容。 - 核对
/app/projects/app/.next/server/pages/api/core/ai/agent/createQuestionGuide.js接口中调用OpenAI SDK时传入的所有参数,确认符合v4.16.1版本OpenAI SDK的请求格式要求。 - 检查OpenAI API的调用配置,确认密钥、模型名称等信息无误。
- 复现报错场景,抓取完整的请求与响应数据,定位具体异常点。
解决与验证
- 根据排查获取的请求参数与日志,修正不符合OpenAI API规范的内容,例如补全缺失参数、调整格式错误等。
- 重新调用
createQuestionGuide.js相关接口,验证报错是否消失。 - 确认接口返回的结果符合业务预期,完成修复。
- 若参数与配置均无异常,需结合实际运行环境进一步排查OpenAI API的调用限制等问题。