Client.__init__() got an unexpected keyword argument 'proxies'
🚨 错误信息
Client.__init__() got an unexpected keyword argument 'proxies'
Traceback (most recent call last):
File "/data/sunyongan/sunyongan/digirl-master/digirl/environment/android/evaluate.py", line 714, in <module>
evaluator = EndResultEvaluator(
File "/data/sunyongan/sunyongan/digirl-master/digirl/environment/android/evaluate.py", line 616, in __init__
self.client = OpenAI(
File "/data/sunyongan/sunyongan/miniconda3/envs/DIGIRL-qwen/lib/python3.10/site-packages/openai/_client.py", line 123, in __init__
super().__init__(
File "/data/sunyongan/sunyongan/miniconda3/envs/DIGIRL-qwen/lib/python3.10/site-packages/openai/_base_client.py", line 846, in __init__
self._client = http_client or SyncHttpxClientWrapper(
File "/data/sunyongan/sunyongan/miniconda3/envs/DIGIRL-qwen/lib/python3.10/site-packages/openai/_base_client.py", line 744, in __init__
super().__init__(**kwargs)
TypeError: Client.__init__() got an unexpected keyword argument 'proxies'
🤖 AI解决方案
错误分析
1. 错误翻译
原文:Client.__init__() got an unexpected keyword argument 'proxies'
译文:Client.__init__() 接收到了一个意外的关键字参数 'proxies'
2. 原因分析
proxies 参数。OpenAI Python SDK 的最新版本(≥1.0.0)已更改 API 结构,不再直接在 OpenAI() 构造函数中支持 proxies 参数。/data/sunyongan/sunyongan/digirl-master/digirl/environment/android/evaluate.py 文件的第 616 行,初始化 OpenAI() 客户端时传入了 proxies 参数。3. 解决方案
在新版 OpenAI SDK 中,需要通过
http_client 参数配置代理:python
修改前的代码(问题所在):
self.client = OpenAI(proxies="http://your-proxy:port")
修改后的代码:
from openai import OpenAI
import httpx创建一个带有代理配置的 HTTP 客户端
http_client = httpx.Client(
proxies="http://your-proxy:port", # 或使用字典格式:{"http://": "http://proxy:port", "https://": "http://proxy:port"}
timeout=30.0 # 建议设置超时时间
)使用自定义的 HTTP 客户端初始化 OpenAI
self.client = OpenAI(
api_key="your-api-key",
http_client=http_client # 替换原来的 proxies 参数
)
4. ️ 预防措施
python
import openai
print(openai.__version__) # 查看当前版本
python
class OpenAIConfig:
def __init__(self, api_key, proxy=None):
self.api_key = api_key
self.proxy = proxy
def create_client(self):
if self.proxy:
http_client = httpx.Client(proxies=self.proxy)
return OpenAI(api_key=self.api_key, http_client=http_client)
return OpenAI(api_key=self.api_key)
注意:如果不需要代理,直接删除 proxies 参数即可正常初始化 OpenAI 客户端。