通过socks代理方式调用OpenAi API

socks代理怎么调用OpenAi API

根本原因:

openai调用aiohttp库实现流式返回。aiohttp包不支持socks

怎么改造,可以是Socks代理支持调用OpenAi API呢?

这边针对两个版本的改造

目前测试版本可行:0.28.0 和 1.13.1【目测大致可以分为1.0以下 和 1.0以上,各位去试下就行】

依赖包安装:

pip install pysocks
pin install openai==0.28.0 或者 pin install openai 直接安装最新版

openai==1.13.1的版本:

在自己的代码中加上如下代码:

import socket
import socks

# 127.0.0.1 1086 可能不一样,具体看下自己当前网络的代理地址,注意这边一定是 PROXY_TYPE_SOCKS5
socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1086)
socket.socket = socks.socksocket

创建会话需要改造成:

  # 创建会话实例
  res = openai.chat.completions.create(model=model,messages=messages,temperature=0)
  # 返回消息结果
  return res.choices[0].message.content

注意:如果改造完出现 request time out类似的报错,多试几次就行。

openai==0.28.0的版本:

在自己的代码中加上如下代码:

import socket
import socks
# 127.0.0.1 1086 可能不一样,具体看下自己当前网络的代理地址,
# 注意这边可以是 socks.SOCKS5 也可以是 socks.PROXY_TYPE_SOCKS5
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 1086)
socket.socket = socks.socksocket

创建会话需要改造成:

  # 创建会话实例
  res = openai.ChatCompletion.create(model=model, messages=messages, temperature=0)
  # 返回消息结果
  return res.choices[0].message.content

至于那些说要改造什么api_requestor.py全是胡扯一堆,反正我设置完这个就行。

但是有个一点需要注意:socks.SOCKS5只能在低版本中使用,高版本需要使用PROXY_TYPE_SOCKS5 否则会出现如错误:

httpcore.ConnectError: Error connecting to SOCKS5 proxy 127.0.0.1:1086: [Errno 61] Connection refused

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值