Teakowa / cf-openai-azure-proxy

⚡ A Cloudflare worker script with Serverless to proxy OpenAI‘s request to Azure OpenAI Service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cf-openai-azure-proxy with ⚡ Severless

serverless

English | 中文

大多数 OpenAI 客户端不支持 Azure OpenAI Service,但Azure OpenAI Service的申请和绑卡都非常简单,并且还提供了免费的额度。此脚本使用免费的 Cloudflare Worker 作为代理,使得支持 OpenAI 的客户端可以直接使用 Azure OpenAI Service。

本项目在源项目的基础上,使用 Serverless Framework 实现了自动部署与自动更新,无需手动部署,无需手动更新。

项目说明:

  • 我没有服务器可以使用吗?
    • 这段脚本跑在Cloudflare Worker, 不需要服务器, 不需要绑卡, 每天 10W 次请求 免费
  • 我没有自己的域名可以使用吗?
  • 实现打印机模式:
    • Azure OpenAI Service's 回复是一段一段回复的
    • 返回给客户端的时候, 本项目拆出一条条的消息, 依次给, 达到打印机模式
  • 项目支持 Serverless 部署(基于 Serverless Framework)

部署 (with Serverless)

代理 OpenAI 的请求到 Azure OpenAI Service,基于 Serverless 自动部署步骤:

  1. 注册并登录到 Cloudflare 账户
  2. 获得部署需要用到的 CLOUDFLARE_AUTH_KEY (Global API Key)、 CLOUDFLARE_AUTH_EMAILCLOUDFLARE_ACCOUNT_IDCLOUDFLARE_ZONE_ID
  3. 点击 'Fork' 按钮,创建一个新的 Worker 项目
  4. 在你新创建的项目中,设置上面获得的环境变量到 secrets 中(设置 secrets 的方法见下图)
  5. 保存后切换到 Actions 选项卡,选中 Cloudflare Workers,点击 Run workflow 按钮,等待部署完成
  6. haibbo#3 可选绑定自定义域名: 在 Worker 详情页 -> Trigger -> Custom Domains 中为这个 Worker 添加一个自定义域名

使用说明

先得到 resourceNamedeployment mapper, 登录到Azure的后台:

env

  • 设置仓库的 secrets

    new repository secrets new secret

需要设置的环境变量:

  • CLOUDFLARE_AUTH_KEY: Cloudflare 的 Global API Key
  • CLOUDFLARE_AUTH_EMAIL: Cloudflare 账户的邮箱
  • CLOUDFLARE_ACCOUNT_ID: Cloudflare 账户的 ID
  • CLOUDFLARE_ZONE_ID: Cloudflare 账户的域名 ID
  • RESOURCE_NAME:Azure OpenAI Service 的名称
  • DEPLOY_NAME_GPT35: Azure OpenAI Service 的 GPT-3.5 部署名称
  • DEPLOY_NAME_GPT4: Azure OpenAI Service 的 GPT-4 部署名称

客户端

以 OpenCat 为例: 自定义 API 域名填写 第六步绑定的域名:

opencat

我已经尝试了多种客户端, 如果遇到其他客户端有问题, 欢迎创建issue.

更新

在你 fork 的仓库中, 点击 sync fork 按钮, 即可与本仓库同步。

About

⚡ A Cloudflare worker script with Serverless to proxy OpenAI‘s request to Azure OpenAI Service

License:MIT License


Languages

Language:JavaScript 95.6%Language:Dockerfile 4.4%