openai-api-proxy
可以部署到docker和云函数的OpenAI API代理 通过一个docker命令实现OpenAi API的简单代理
🌳 如果你懒得自己搭建,那么可以试试国内可以访问、可以微信充值的第三方OpenAI API服务:API2D.com,支持Chat酱、OpenCat、NextWeb、VSCode插件。
- 腾讯云函数部署教程 🔥 从4月25日起,腾讯云函数全地域支持SSE,推荐使用
- 简体中文使用说明
- 《如何快速开发一个OpenAI/GPT应用:国内开发者笔记》
🎉 已经支持SSE,可以实时返回内容
以下英文由GPT翻译。
⚠️ 这是代理的服务器端,不是客户端。需要部署到可以访问OpenAI API的网络环境中。
功能特点
- 支持SSE流输出
- 内置文本审核(需要腾讯云KEY配置)
- 💪 SSE流输出支持文本审核,非常强大。
NodeJS 部署
可以将./app.js部署到任何支持NodeJS 14+的环境中,如云函数和边缘计算平台。
- 将app.js和package.json复制到目录中
- 使用 yarn install 安装依赖
- 使用 node app.js 启动服务
Docker 部署
docker run -p 9000:9000 easychen/ai.level06.com:latest
代理地址为 http://${IP}:9000
可用环境变量
- PORT: 服务端口
- PROXY_KEY: 代理访问密钥,用于限制访问
- TIMEOUT: 请求超时,默认为30秒
- TENCENT_CLOUD_SID: 腾讯云 secret_id
- TENCENT_CLOUD_SKEY: 腾讯云 secret_key
- TENCENT_CLOUD_AP: 腾讯云区域(例如 ap-singapore 新加坡)
API 用法
- 将原项目中openai请求地址的域名/IP(带端口)改为此代理的域名/IP(如 https://api.openai.com)。
- 如果设置了PROXY_KEY,在openai key后加上
:<PROXY_KEY>
。如果没有设置则无需修改。 - moderation: true 启用审核,false 禁用审核
- moderation_level: high 拦截所有审核结果不通过的句子,low 只拦截审核结果为Block的句子。
注意事项
- 仅支持GET和POST方法,不支持文件相关接口。
当前不支持SSE,因此需要关闭流相关选项现在支持。
客户端使用示例
以 https://www.npmjs.com/package/chatgpt
为例:
chatApi = new gpt.ChatGPTAPI({
apiKey: 'sk.....:<proxy_key_here>',
apiBaseUrl: "http://localhost:9001/v1", // 替换为代理域名/IP
});
感谢
- SSE参考了chatgpt-api项目相关代码