联系我们

实验室

河南省郑州市经济开发区哈航海东路1319号

张经理

15639981097

0371-12345678

0371-12345678

hnysnet@qq.com

三种方式让OpenAI API国内直接访问

发布者:backup2k发布时间:2024-04-10访问量:905

代理搭建

Nginx反向代理

购买海外服务器

racknerd上经常有活动,2核4G一年才不到300块

部署Nginx

如何安装nginx就不展开了,比较简单,网上资料也非常多。

参考nginx配置如下:

server {
    listen 80;
    server_name proxy.hehanwang.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name proxy.hehanwang.com;

    ssl_certificate xxx.crt;
    ssl_certificate_key xxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass https://api.openai.com/;
        proxy_ssl_server_name on;
        proxy_set_header Host api.openai.com;
        proxy_buffering off;
        proxy_send_timeout 600s;
    }
}

云函数反向代理

使用github.com/Ice-Hazymoon部署到腾讯云上

在 cloud.tencent.com/ 注册账号

进入云函数控制台:console.cloud.tencent.com

依次点击【新建】->【从头开始】,然后按照以下配置,没写出来的就不用管,使用默认设置

  • 函数类型:Web函数

  • 函数名称:openai-proxy(也可以随便取个名字)

  • 地域:香港(也可以是中国之外的任何国家)

  • 运行环境:Nodejs 16.13(或者更高的版本)

  • 高级配置:

    • 内存:64M

    • 执行超时时间:900 秒

    • 请求多并发:2 并发


  • 日志配置 -> 日志投递:启用(可以选择不开,开的话一个月应该几分钱)

  • 函数代码:本地上传zip包(点我下载 ZIP 包

  • 触发器配置(这里可能要创建一个新的触发器):

    • 默认触发器

    • 触发别名/版本:默认流量

    • 请求方法:ANY

    • 发布环境:发布

    • 鉴权方法:免鉴权

之后点击“完成”按钮,进入【函数管理】,点击【函数代码】,往下拉,找到【访问路径】,这里就是你的代理地址

使用的时候需要把 "/release" 部分删除

例如:https://service-aaaaa.hk.apigw.tencentcs.com/release/

改为:https://service-aaaaa.hk.apigw.tencentcs.com/

本地代理(不推荐)

使用clashX+魔法
  1. 下载clashx

  2. 注入魔法(懂得都懂)

  3. 启动命令增加下面环境变量
    export https_proxy=127.0.0.1:7890 http_proxy=127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7

注意!这种方式由于多人共用一个ip访问OpenAI,很容易封key!

使用中转服务

one-api不仅可以实现代理功能,还提供了账号池,多种模型统一等能力,非常强大。

如何部署到 Zeabur

Zeabur 的服务器在国外,自动解决了网络的问题,同时免费的额度也足够个人使用。

  1. 首先 fork 一份代码。

  2. 进入 Zeabur,登录,进入控制台。

  3. 新建一个 Project,在 Service -> Add Service 选择 Marketplace,选择 MySQL,并记下连接参数(用户名、密码、地址、端口)。

  4. 复制链接参数,运行 create database one-api`` 创建数据库。

  5. 然后在 Service -> Add Service,选择 Git(第一次使用需要先授权),选择你 fork 的仓库。

  6. Deploy 会自动开始,先取消。进入下方 Variable,添加一个 PORT,值为 3000,再添加一个 SQL_DSN,值为 <username>:<password>@tcp(<addr>:<port>)/one-api ,然后保存。 注意如果不填写 SQL_DSN,数据将无法持久化,重新部署后数据会丢失。

  7. 选择 Redeploy。

  8. 进入下方 Domains,选择一个合适的域名前缀,如 "my-one-api",最终域名为 "my-one-api.zeabur.app",也可以 CNAME 自己的域名。

  9. 等待部署完成,点击生成的域名进入 One API。

设置代理

给大家免费提供一个调用api中转的key,支持3.5和4.0。额度不多测试是够了。 openai的域名换成这个:https://key.wenwen-ai.com

key:sk-NYsoG3VBKDiTuvdtC969F95aFc4f45379aD3854a93602327

python代码示例如下

import openai

openai.api_key = "sk-NYsoG3VBKDiTuvdtC969F95aFc4f45379aD3854a93602327"
openai.api_base="https://key.wenwen-ai.com/v1"

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ]
)

print(completion.choices[0].message)