使用LangChainJS调用OpenAI微调模型遇404错误,求排查方案
问题原因及解决方案
核心原因
你遇到的404错误源于API接口不匹配:
- 你创建的微调模型(基于GPT-3.5-turbo)只能通过
v1/completions接口调用,这也是你用CLI命令openai api completions.create能成功的原因。 - 但代码中使用的
ChatOpenAI类默认调用v1/chat/completions接口,该接口仅支持原生聊天模型(如gpt-3.5-turbo、gpt-4),不兼容微调后的GPT-3.5-turbo模型,因此返回404。
解决方案
将代码中的ChatOpenAI替换为对应completions接口的OpenAI类,具体修改如下:
// 导入OpenAI类而非ChatOpenAI const { OpenAI } = require("langchain/llms/openai"); // 初始化OpenAI实例,传入微调模型名 const llm = new OpenAI({ modelName: <FINE_TUNED_MODEL>, openAIApiKey: openAIKey, }); // 向量存储部分代码保持不变 const vectorStore = await SupabaseVectorStore.fromExistingIndex( new OpenAIEmbeddings(), { client, tableName: "documents", queryName: "match_documents", } ); // 链初始化时传入llm实例而非chat实例 let chain = ConversationalRetrievalQAChain.fromLLM( llm, vectorStore.asRetriever(), { returnSourceDocuments: true } );
注意事项
- 确保微调模型的提示词格式与训练时一致,
OpenAI类使用纯文本输入,无需像ChatOpenAI那样传入消息数组。 - 若需要聊天格式交互,可在提示词中手动构造符合微调模型要求的对话结构。
内容的提问来源于stack exchange,提问作者Rodrigo Rubio
相关产品推荐
相关产品推荐

