现象
本地Docker部署FastGPT,使用原生OpenAI地址和密钥可正常对话。本地部署one-api作为第三方API代理服务后,通过postman或notebook直接访问代理地址http://127.0.0.1:3000/v1/chat/completions可正常对话。但在FastGPT的docker-compose.yml中替换OPENAI_BASE_URL和CHAT_API_KEY为代理服务的对应配置后,发起聊天时提示错误“Not Found”。
可能原因
- 部署FastGPT的Docker容器的本地回环地址与宿主机器隔离,无法通过
127.0.0.1访问宿主机器上的第三方API代理服务。 - 配置的
OPENAI_BASE_URL路径格式可能导致API请求路径拼接出现错误。 - 未正确匹配第三方API代理服务的接口路径规范。
排查步骤
- 在宿主机器上使用postman或notebook访问第三方API代理地址
http://127.0.0.1:3000/v1/chat/completions,确认服务可正常响应对话请求。 - 进入FastGPT运行的Docker容器内部,执行
curl http://127.0.0.1:3000/v1/chat/completions命令,确认容器内是否可以访问该代理服务。 - 检查docker-compose.yml中的
OPENAI_BASE_URL配置项,确认格式为http://[服务地址]:[端口]/v1,无多余或缺失的路径片段。 - 核对
CHAT_API_KEY配置是否与第三方API代理服务生成的令牌完全一致。
解决与验证
若排查发现是容器网络隔离导致无法访问宿主机器的代理服务,需将docker-compose.yml中的OPENAI_BASE_URL替换为宿主机器的局域网IP地址,例如http://192.168.1.100:3000/v1(需替换为实际宿主机器IP)。修改配置后重启FastGPT容器,再次发起聊天测试。若不再提示“Not Found”错误且能正常获取对话结果,则问题解决。