请问一个openai官方api代理的问题

由于我用openAI的python 包调用的api不是request的方式,类似
from openai import OpenAI
response = client.chat.completions.create
我每次调用都需要翻墙才能调用openai 的api,请问有没有代理能填入base_url的参数让我可以本地跑不用翻墙就能调用api呢?
吾皇的代理我不明白是怎么用的,是不是只能request方式在请求头带accesstoken的?我拿着sk就不明白怎么做了。
先谢谢指点了。

2 个赞

你看看这个帖子呢,我看说到了设置代理https://blog.csdn.net/qq_46106285/article/details/136923724

3 个赞

测试了下确实可以,谢谢分享

1 个赞

openai 库也支持填 base_url 的呀

1 个赞

对的,只是我不知道应该填什么代理地址

1 个赞

那要么就是本地设置代理,要么就是做api地址反代

1 个赞

我看很多代理的地址,都是用的自己的sk或者吾皇用的是accesstoken,我拿着官方的sk不知道怎么用代理了。

但上面的朋友教用python的代理地址翻墙也是可以。我想看看有那个代理地址可以用base_url中而不需要翻墙。

这条路还能走通吗现在?

反代 api.openai.com 就行,我在cf有域名,所以搞了个 cf worker,有vps用vps反代也可以

cf worker
const TELEGRAPH_URL = 'https://api.openai.com';

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url);
  const headers_Origin = request.headers.get("Access-Control-Allow-Origin") || "*"
  url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');
  const modifiedRequest = new Request(url.toString(), {
    headers: request.headers,
    method: request.method,
    body: request.body,
    redirect: 'follow'
  });
  const response = await fetch(modifiedRequest);
  const modifiedResponse = new Response(response.body, response);
  // 添加允许跨域访问的响应头
  modifiedResponse.headers.set('Access-Control-Allow-Origin', headers_Origin);
  return modifiedResponse;
}
1 个赞

套个能直连的代理

明白了,我找朋友有cf的域名的,我蹭他一个worker做一个。

我记得可以这么用

import os

os.environ['HTTP_PROXY'] = 'http://192.168.0.58:9999'
os.environ['HTTPS_PROXY'] = 'http://192.168.0.58:9999'
1 个赞

先可以用

client = OpenAI(
    base_url=config['openai']['base_url'],
    api_key=config['openai']['api_key']
)

初始化一个自定义的 OpenAI 对象。

然后正常用 client.chat.completions.create 就是走的 base_url

CF的AI gateway也可以吧,相当于CF给你做个api代理

CF上的AI gateway是不是要收费的?我怕蹭别人的用爆别人的credit了

现在是免费的,我连卡都没绑都能用 :rofl:不过写的beta,也不知道以后会不会收费