如何解决LangChain调用gpt-3.5-turbo-16k模型的API错误?
问题解决方法
问题根源是你用错了LangChain中的模型类:OpenAI类对应OpenAI的文本补全API(v1/completions),而gpt-3.5-turbo-16k属于聊天模型,必须使用OpenAI的聊天API(v1/chat/completions),对应的LangChain类是ChatOpenAI。
具体解决步骤:
导入正确的模型类
在代码顶部导入ChatOpenAI:from langchain.chat_models import ChatOpenAI替换模型实例化代码
将原来的OpenAI实例替换为ChatOpenAI,参数基本兼容,直接修改类名即可:self.llm = ChatOpenAI( model='gpt-3.5-turbo-16k', temperature=self.config.llm.temperature, openai_api_key=self.config.llm.openai_api_key, max_tokens=self.config.llm.max_tokens )适配Chain的提示词(可选但推荐)
如果你的Sequential Chain中使用的是普通PromptTemplate,建议替换为ChatPromptTemplate来更好地适配聊天模型的格式,示例:from langchain.prompts import ChatPromptTemplate # 替换原来的PromptTemplate prompt = ChatPromptTemplate.from_messages([ ("system", "你是一个专业助手"), ("user", "{input_text}") ])
这样修改后,就能正确调用gpt-3.5-turbo-16k的16K令牌窗口,解决提示词过长的问题,同时避免API端点错误。
内容的提问来源于stack exchange,提问作者redmage123
相关产品推荐
相关产品推荐

