Telegram Bot调用OpenAI API切换gpt-3.5-turbo遇404错误求助
解决gpt-3.5-turbo调用404错误的问题
你遇到的404错误核心原因是gpt-3.5-turbo属于聊天模型,无法用针对补全模型(如text-davinci-003)的createCompletion方法调用,必须使用专属的createChatCompletion接口,同时参数结构也需要调整。
以下是修改后的可运行代码:
import { Configuration, OpenAIApi } from "openai"; import { env } from "../utils/env.js"; const model = "gpt-3.5-turbo"; const configuration = new Configuration({ apiKey: env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); export async function getChatGptResponse(request) { try { const response = await openai.createChatCompletion({ model, messages: [ { role: "user", content: request } ], max_tokens: 2000, temperature: 1, stream: false }); console.log("Full response: ", response, `Choices: `, ...response.data.choices) return response.data.choices[0].message.content; } catch (err) { console.log(`ChatGPT error: ` + err); return err; } }
关键修改点说明:
- 替换接口方法:将
createCompletion改为createChatCompletion,这是OpenAI为聊天模型提供的专属接口,补全接口不兼容gpt-3.5-turbo,因此会返回404。 - 调整参数结构:把单个
prompt参数改为messages数组,聊天模型要求按角色(user/assistant/system)组织对话内容,单条用户请求直接用{ role: "user", content: 请求内容 }的格式即可。 - 修改响应提取逻辑:聊天模型的响应内容存储在
message.content字段中,而非补全模型的text字段。
内容的提问来源于stack exchange,提问作者Jakhongir
相关产品推荐
相关产品推荐

