站点图标 AI技术聚合

Nodejs和python 设置 openai 的API正向代理和反向代理入口链接连接方式,用于国内访问openAI接口

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 Path
from openai import OpenAI

client = 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 os
import openai

#已经过时了
openai.api_key = "yourAPIKey"
openai.proxy = "http://your.proxy.address:port" #在这里设置你的代理信息即可

2023年11月10日更新,支持1.2版本


from pathlib import Path
from openai import OpenAI
# 在代码开始部分添加
import os

proxy_url = 'http://127.0.0.1'
proxy_port = '8080'

# Set the http_proxy and https_proxy environment variables
os.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 httpx
from openai import OpenAI

client = OpenAI(
    api_key="",
    http_client=httpx.Client(
        proxies="http://127.0.0.1:7890",
        transport=httpx.HTTPTransport(local_address="0.0.0.0"),
    ),
)

文章出处登录后可见!

已经登录?立即刷新
退出移动版