运行LangChain入门示例报错:InvalidRequestError参数缺失
问题排查与解决方案
错误原因分析
错误提示InvalidRequestError:创建<class 'openai.api_resources.completion.Completion'>必须提供'engine'或'deployment_id'参数,核心原因是当前请求被识别为Azure OpenAI服务调用模式,但未配置对应引擎/部署ID;或是OpenAI SDK版本更新后,默认不再自动指定模型参数。
具体解决步骤
1. 清理Azure相关环境变量
若之前误配置了Azure OpenAI的环境变量,会导致LangChain默认走Azure调用流程:
- 查看本地
.env文件或系统环境变量,删除以下内容(如果存在):AZURE_OPENAI_API_KEY=xxx OPENAI_API_TYPE=azure OPENAI_API_BASE=xxx OPENAI_API_VERSION=xxx - 重新加载环境变量后运行代码。
2. 显式指定OpenAI模型参数
新版本的OpenAI SDK/LangChain可能不再默认设置模型,初始化OpenAI时需明确指定:
修改代码中的初始化部分:
llm = OpenAI(temperature=0.9, model="text-davinci-003")
可根据需求替换为其他支持的模型(如gpt-3.5-turbo-instruct)。
3. 强制指定API类型为OpenAI
若环境变量清理后仍有问题,可在代码中显式指定API类型:
llm = OpenAI( temperature=0.9, model="text-davinci-003", openai_api_type="openai" )
4. 核对依赖版本兼容性
若以上方法无效,检查依赖包版本:
- 执行
pip list | grep openai和pip list | grep langchain,确保OpenAI版本在0.27.0以上,LangChain版本适配当前OpenAI SDK。 - 若版本不兼容,可回退到之前能正常运行的版本,例如:
pip install openai==0.27.8 langchain==0.0.286
内容的提问来源于stack exchange,提问作者Andrey Tagaew
相关产品推荐
相关产品推荐

