项目介绍:openai-api-proxy
openai-api-proxy 是一个简化部署的 OpenAI API 代理工具,它可以通过一行 Docker 命令轻松部署。该项目提供了为 OpenAI API 提供代理服务的能力,支持本地或者云上的多种环境部署方式。
特点
-
支持 SSE 数据流输出:通过 SSE(Server-Sent Events)技术,能够实时获得 API 返回的数据,这为应用的响应速度和数据更新的实时性提供了保障。
-
内置文本审核功能:文本内容在返回之前会进行审核,确保内容的安全性和合规性。这项功能需要配置腾讯云的密钥才能生效。
-
多种部署方式:可以在支持 NodeJS 的环境中部署,比如云函数和边缘计算平台。同时,也可以通过 Docker 快速启动服务。
部署指南
NodeJS 部署
你可以将 app.js
部署到任何支持 NodeJS 14+ 的环境中,如云函数平台。部署步骤如下:
- 将
app.js
和package.json
拷贝到目标目录。 - 使用
yarn install
来安装依赖。 - 通过
node app.js
启动服务。
Docker 部署
Docker 部署极其简单,只需一行命令:
docker run -p 9000:9000 easychen/ai.level06.com:latest
代理地址将是 http://${IP}:9000
,其中 ${IP}
是服务器的 IP 地址。
环境变量设置
以下是可以配置的环境变量列表:
PORT
:服务的端口号PROXY_KEY
:访问代理的密钥,用于限制访问TIMEOUT
:请求超时时间(默认为30秒)TENCENT_CLOUD_SID
:腾讯云 secret_idTENCENT_CLOUD_SKEY
:腾讯云 secret_keyTENCENT_CLOUD_AP
:腾讯云区域,比如ap-singapore
是新加坡区域
API 使用方法
当你在使用 OpenAI API 时,只需将请求地址中原有的域名/IP(例如 https://api.openai.com
)替换为代理所提供的域名/IP。若设置了 PROXY_KEY
,则在 OpenAI 的密钥后需加上 :<PROXY_KEY>
。此外,您可以设置 moderation
标志以启用/禁用文本审核功能。
注意事项
- 目前仅支持 GET 和 POST 请求方法,不支持文件相关的接口。
-
客户端使用示例
以下是使用 chatgpt 包的一个例子:
chatApi= new gpt.ChatGPTAPI({
apiKey: 'sk.....:<proxy_key_here>',
apiBaseUrl: "http://localhost:9001/v1", // 替换为代理的域名/IP
});
致谢
- SSE 功能参考了 chatgpt-api 项目的相关代码
此项目为开发者在复杂网络环境下访问 OpenAI API 提供了简便的代理方案,免去直接连接所可能遇到的麻烦,并为数据流的实时性和内容审核提供了完整的解决方案。