WhatsApp聊天机器人接入OpenAI API遇404错误的修复求助(附代码)
修复OpenAI API 404错误的解决方案
可能的原因及对应修复方法
1. 端点或模型兼容性问题
text-davinci-003属于旧版Completions API,虽未完全下线,但OpenAI已推荐使用更高效的Chat Completions API(基于gpt-3.5-turbo/gpt-4系列模型)。若你的API密钥权限不包含旧版模型访问权限,可能触发404错误。
修复代码(迁移到Chat Completions API):
修改ChatGPTRequest函数如下:
const ChatGPTRequest = async (text) => { const result = { success: false, data: "Aku gak tau", message: "", } try { const response = await axios({ method: 'post', url: 'https://api.openai.com/v1/chat/completions', // 更换为Chat Completions端点 data: { model: "gpt-3.5-turbo", // 使用官方推荐模型 messages: [{"role": "user", "content": text}], // 参数格式改为messages数组 max_tokens: 1000, temperature: 0 }, headers: { "Content-Type": "application/json", "Authorization": `Bearer ${API_KEY_OPEN_AI}`, }, }); if (response.status === 200) { const { choices } = response.data; if (choices && choices.length) { result.success = true; result.data = choices[0].message.content.trim(); // 调整回复内容提取逻辑 } } else { result.message = "Failed response"; } } catch (error) { result.message = `Error: ${error.response?.data?.error?.message || error.message}`; } return result; }
2. 错误信息排查不充分
原代码仅捕获error.message,无法获取OpenAI返回的具体错误详情(如模型不存在、权限不足等)。修改catch块,打印完整错误信息可明确404的根因:
.catch((error) => { console.error('OpenAI API Error Details:', error.response?.data); result.message = `Error : ${error.response?.data?.error?.message || error.message}`; return result; });
3. API密钥或区域限制
- 确认API密钥在OpenAI官方平台创建,且未被限制访问对应API端点。
- 若所在区域无法直接访问OpenAI API,需配置合规代理,确保代理不会篡改请求URL导致404。
4. 端点URL拼写检查
再次确认请求URL正确性:旧版Completions端点为https://api.openai.com/v1/completions,新版Chat Completions端点为https://api.openai.com/v1/chat/completions,避免拼写错误(如少写s、版本号错误)。
内容的提问来源于stack exchange,提问作者Galang Cakrabuana
相关产品推荐
相关产品推荐

