未调用openai.ChatCompletion却遇APIRemovedInV1错误求助
问题原因
你遇到的报错是因为LangChain旧版本与OpenAI SDK 1.0+不兼容——虽然你没直接调用openai.ChatCompletion,但LangChain底层的OpenAI集成代码仍在使用OpenAI已废弃的V0接口,而新版SDK(1.0+)已经移除了这些接口,所以触发了错误。
解决方案
有两种可行的修复方式,按需选择:
方案1:升级LangChain并适配新版代码
新版LangChain已经拆分了OpenAI相关模块到独立包,同时适配了OpenAI SDK 1.0+,操作步骤如下:
- 升级依赖包:
pip install --upgrade langchain langchain-openai
- 修改代码适配新版API:
如果用的是普通文本模型(如gpt-3.5-turbo-instruct、text-davinci-003):
from langchain_openai import OpenAI from langchain.prompts import PromptTemplate # 初始化LLM实例 llm = OpenAI(model_name=model, openai_api_key=api_key) # 定义提示模板 prompt = PromptTemplate( input_variables=["question", "text"], template=template, ) # 调用模型生成结果(新版用invoke方法) result = llm.invoke(prompt.format(question=var1, text=var2)) print(result)
如果用的是聊天模型(如gpt-3.5-turbo、gpt-4):
from langchain_openai import ChatOpenAI from langchain.prompts import PromptTemplate from langchain.schema import HumanMessage llm = ChatOpenAI(model_name=model, openai_api_key=api_key) prompt = PromptTemplate( input_variables=["question", "text"], template=template, ) # 聊天模型需要传入消息对象列表 result = llm.invoke([HumanMessage(content=prompt.format(question=var1, text=var2))]) print(result.content)
方案2:降级OpenAI SDK到兼容版本
如果暂时不想修改代码,可以把OpenAI SDK固定到旧版本,让它和原有LangChain版本兼容:
pip install openai==0.28.1
执行后原有代码即可正常运行。
内容的提问来源于stack exchange,提问作者soup
相关产品推荐
相关产品推荐

