openai如何使用socks代理

1,063 阅读1分钟

openai==0.27.8

使用方法:

通过给openai.proxy赋值设置代理,默认情况下是支持http/https代理,不支持socks代理。需要做额外修改,根据不同的需求,使用socks代理所需要的依赖和修改是不同的。

不需要流式返回

不需要流式返回时,openai调用requests库实现,它通过安装依赖即可以使用socks代理

pip install requests[socks]

需要流式返回

需要流式返回时,openai调用aiohttp库实现,这类情况比较麻烦。

aiohttp包不支持socks,需要装了一个让它适配socks的包, pip install aiosocksy

同时aiohttp库支持socks需要额外传入变量,因此需要修改源码。

openai/api_requestor.py 770行aiohttp_session方法

原来的代码775行

        async with aiohttp.ClientSession() as session:  
            yield session  

修改为:

 
        from aiosocksy.connector import ProxyConnectorProxyClientRequest  
        connector = ProxyConnector()  
        async with aiohttp.ClientSession(connector=connector, request_class=ProxyClientRequestas session:  
            yield session