Nodejs和python 设置 openai 的API正向代理和反向代理入口链接连接方式,用于国内访问openAI接口
由于国内对openai的API接口网址进行了屏蔽,因此需要科学上网或对API进行反向代理才能使用API接口,那么该怎么使用反向代理的API接口呢?
1. 对于Nodejs
1.1 方法一:使用自己反向代理的API地址
在Configuration列表中添加一项basePath即可,下面是代码:
const { Configuration, OpenAIApi } = require("openai");const configuration = new Configuration({apiKey: process.env.OPENAI_API_KEY,basePath: "https://api.youraddress.com/v1",//在这里设置就可以了});const openai = new OpenAIApi(configuration);const completion = await openai.createChatCompletion({model: "gpt-3.5-turbo",messages: [{role: "user", content: "Hello world"}],});console.log(completion.data.choices[0].message);
1.2 方法二:在Nodejs中使用正向代理
在nodejs的代码中配置代理,添加下面的代码在nodejs 的正式代码之前:
process.env.HTTP_PROXY = "http://your.proxy.address:port"process.env.HTTPs_PROXY = "http://your.proxy.address:port"
2. 对于Python
2.1 方法一:使用自己反向代理的API地址
对openai对象设置api_base 的参数即可:
#老版本,过时了,1.2已经不支持了openai.api_base = "https://api.youraddress.com/v1" #在这里设置即可,需要特别注意这里的/v1是必须的,否则报错。前面的地址注意替换即可。
2023年11月10日更新,支持1.2版本
from pathlib import Pathfrom openai import OpenAIclient = OpenAI(base_url="https://myapi.myapi.com/v1",api_key="your_api_key")completion = client.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}])print(completion.choices[0].message)
2.2 方法二:在python中使用正向代理
直接通过openai.proxy设置openai的代理:
import osimport openai#已经过时了openai.api_key = "yourAPIKey"openai.proxy = "http://your.proxy.address:port" #在这里设置你的代理信息即可
2023年11月10日更新,支持1.2版本
from pathlib import Pathfrom openai import OpenAI# 在代码开始部分添加import osproxy_url = 'http://127.0.0.1'proxy_port = '8080'# Set the http_proxy and https_proxy environment variablesos.environ['http_proxy'] = f'{proxy_url}:{proxy_port}'os.environ['https_proxy'] = f'{proxy_url}:{proxy_port}'# 在代码开始部分添加client = OpenAI(api_key="your_api_key")completion = client.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}])print(completion.choices[0].message)
或者
import httpxfrom openai import OpenAIclient = OpenAI(api_key="",http_client=httpx.Client(proxies="http://127.0.0.1:7890",transport=httpx.HTTPTransport(local_address="0.0.0.0"),),)