You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit部署ChatOpenAI报错:意外关键字参数'proxies'求助

Streamlit部署后ChatOpenAI报错:Client.init()收到意外关键字参数'proxies'

问题描述

本地运行Streamlit应用完全正常,但部署到Streamlit平台后出现报错。此前应用运行正常,代码更新后突然报错,即使回滚至原可运行代码状态,问题仍存在。代码中调用ChatOpenAI函数时未传入proxies参数,但报错提示Client.__init__() got an unexpected keyword argument 'proxies'。

报错栈信息

────────────────────── Traceback (most recent call last) ───────────────────────
  /home/adminuser/venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/exec_code.py:88 in exec_func_with_error_handling                         
                                                                                
  /home/adminuser/venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py:579 in code_to_exec                                     
                                                                                
  /mount/src/langgraph_agent/app/app_st.py:212 in <module>                      
    209                                                                          
    210                                                                          
    211 if __name__ == "__main__":                                              
  ❱ 212 │   main()                                                              
    213                                                                         

....
....
....

  /mount/src/langgraph_agent/agents/agents.py:40 in get_llm                     

     37 │                                                                       
     38 │   def get_llm(self, json_model=True):                                 
     39 │   │   if self.server == 'openai':                                     
  ❱  40 │   │   │   return get_open_ai_json(model=self.model, temperature=self  
     41 │   │   if self.server == 'ollama':                                     
     42 │   │   │   return OllamaJSONModel(model=self.model, temperature=self.  
     43 │   │   if self.server == 'vllm':                                       

  /mount/src/langgraph_agent/models/openai_models.py:11 in get_open_ai          

     8                                                                           
     9 def get_open_ai(temperature=0, model='gpt-3.5-turbo'):                   
    10 │                                                                         
  ❱ 11 │   llm = ChatOpenAI(                                                    
    12 │   model=model,                                                         
    13 │   temperature = temperature,                                           
    14 )                                                                        

  /home/adminuser/venv/lib/python3.12/site-packages/pydantic/v1/main.py:341 in  
  __init__                                                                      

     338 │   │   # Uses something other than `self` the first arg to allow "se  
     339 │   │   values, fields_set, validation_error = validate_model(__pydan  
     340 │   │   if validation_error:                                           
  ❱  341 │   │   │   raise validation_error                                     
     342 │   │   try:                                                           
     343 │   │   │   object_setattr(__pydantic_self__, '__dict__', values)       
     344 │   │   except TypeError as e:                                         
────────────────────────────────────────────────────────────────────────────────
ValidationError: 1 validation error for ChatOpenAI
__root__
  Client.__init__() got an unexpected keyword argument 'proxies' 
(type=type_error)

已尝试的排查操作

  • 重启应用
  • 检查环境配置
  • 排查依赖包更新情况
  • 确认代码中无proxies变量传入ChatOpenAI
  • 回滚至之前可运行的代码版本

解决方案

1. 锁定依赖版本

本地和Streamlit云端的依赖包版本不一致是核心原因,需在项目根目录创建requirements.txt,明确指定所有相关包的具体版本(与本地运行环境一致):

streamlit==1.35.0
langchain==0.1.17
openai==1.30.1
# 其他项目依赖包

部署时Streamlit会严格按照该文件安装依赖,避免版本差异问题。

2. 显式禁用代理参数

Streamlit云端可能存在全局代理配置,被OpenAI底层客户端自动读取并传入proxies参数。在初始化ChatOpenAI时,通过client_kwargs显式覆盖:

llm = ChatOpenAI(
    model=model,
    temperature=temperature,
    client_kwargs={"proxies": None}
)

3. 清理云端缓存

在Streamlit部署页面选择「重新部署」,并勾选「清空缓存」选项,清除云端残留的旧依赖或配置。

4. 验证依赖兼容性

确保langchain与openai版本兼容:

  • langchain 0.1.x 适配 openai 1.x 版本
  • 若使用旧版langchain(0.0.x),需对应使用openai 0.28.x版本

内容的提问来源于stack exchange,提问作者gogr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:39:57