由于我用openAI的python 包调用的api不是request的方式,类似
from openai import OpenAI
response = client.chat.completions.create
我每次调用都需要翻墙才能调用openai 的api,请问有没有代理能填入base_url的参数让我可以本地跑不用翻墙就能调用api呢?
吾皇的代理我不明白是怎么用的,是不是只能request方式在请求头带accesstoken的?我拿着sk就不明白怎么做了。
先谢谢指点了。
2 个赞
测试了下确实可以,谢谢分享
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了
现在是免费的,我连卡都没绑都能用 不过写的beta,也不知道以后会不会收费