这几天我使用python的openai sdk的时候,碰到一个问题:

self.client = OpenAI(base_url=self.endpoint, api_key=api_key)
File "/app/.venv/lib/python3.10/site-packages/openai/_client.py", line 123, in __init__
super().__init__(
File "/app/.venv/lib/python3.10/site-packages/openai/_base_client.py", line 857, in __init__
self._client = http_client or SyncHttpxClientWrapper(
File "/app/.venv/lib/python3.10/site-packages/openai/_base_client.py", line 755, in __init__
super().__init__(**kwargs)
TypeError: Client.__init__() got an unexpected keyword argument 'proxies'

从描述的问题来看,是sdk接口不兼容,然后跟了一把后发现是因为openai的sdk使用了httpx,openai传递了proxies参数来构造httpx的client,但是httpx里面却没有定义这个参数。

又仔细去看了下版本发布,原因是因为在httpx的0.28的版本开始,httpx移除了proxies参数来构造httpx的client,但是由于openai的版本管理是采用兼容高版本自动升级的方式,所以同样的openai的版本安装出来的httpx版本会不一样。

这就导致出现了不兼容的问题,既然知道了原因,解决方式就简单多了,降级httpx到0.28以下的版本就行了。


扫码手机观看或分享: