🚀 Openai api forward · OpenAI 接口转发服务 · stream forwarding
Project description
中文 | English
OpenAI Forward
OpenAI API 接口转发服务
The fastest way to deploy openai api forwarding
本项目用于解决一些地区无法直接访问OpenAI的问题,将该服务部署在可以正常访问openai api的服务器上,通过该服务转发OpenAI的请求。即搭建反向代理服务
由本项目搭建的长期代理地址:
目录
功能
基础功能
高级功能
- 实时记录聊天记录(包括流式响应的聊天内容)
- 允许输入多个openai api key 组成轮询池
- 自定义 api key (见高级配置)
- 支持请求IP验证(IP白名单与黑名单)
部署指南
提供三种部署方式
- vps + pip 安装部署 (推荐)
- vps + Docker (推荐)
- 一键Vercel部署
应用
聊天应用
基于开源项目ChatGPT-Next-Web搭建自己的chatgpt服务
替换docker启动命令中的 BASE_URL
为我们自己搭建的代理服务地址
docker run -d \
-p 3000:3000 \
-e OPENAI_API_KEY="sk-******" \
-e BASE_URL="https://api.openai-forward.top" \
-e CODE="kunyuan" \
yidadaa/chatgpt-next-web
这里部署了一个,供大家轻度使用:
https://chat.beidongjiedeguang.top , 访问密码: kunyuan
在代码中使用
JS/TS
import { Configuration } from "openai";
const configuration = new Configuration({
+ basePath: "https://api.openai-forward.top/v1",
apiKey: "sk-******",
});
Python
import openai
+ openai.api_base = "https://api.openai-forward.top/v1"
openai.api_key = "sk-******"
gpt-3.5-turbo
curl https://api.openai-forward.top/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-******" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Image Generation (DALL-E)
curl --location 'https://api.openai-forward.top/v1/images/generations' \
--header 'Authorization: Bearer sk-******' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "A photo of a cat",
"n": 1,
"size": "512x512"
}'
配置选项
openai-forward run
参数配置项
配置项 | 说明 | 默认值 |
---|---|---|
--port | 服务端口号 | 8000 |
--workers | 工作进程数 | 1 |
更多参数 openai-forward run --help
查看
环境变量配置项
支持从运行目录下的.env
文件中读取:
环境变量 | 说明 | 默认值 |
---|---|---|
OPENAI_API_KEY | 默认openai api key,支持多个默认api key, 以 sk- 开头, 以空格分割 |
无 |
FORWARD_KEY | 允许调用方使用该key代替openai api key,支持多个forward key, 以fk- 开头, 以空格分割 |
无 |
OPENAI_BASE_URL | 转发base url | https://api.openai.com |
LOG_CHAT | 是否记录聊天内容 | true |
ROUTE_PREFIX | 路由前缀 | 无 |
IP_WHITELIST | ip白名单, 空格分开 | 无 |
IP_BLACKLIST | ip黑名单, 空格分开 | 无 |
高级配置
设置api_key为自己设置的forward key
需要配置 OPENAI_API_KEY 和 FORWARD_KEY, 例如
OPENAI_API_KEY=sk-*******
FORWARD_KEY=fk-****** # 这里fk-token由我们自己定义
这里我们配置了FORWARD_KEY为fk-******
, 那么后面客户端在调用时只需设置OPENAI_API_KEY为我们自定义的fk-******
即可。
这样的好处是在使用一些需要输入OPENAI_API_KEY的第三方应用时,我们可以使用fk-******
搭配proxy使用(如下面的例子) 而无需担心OPENAI_API_KEY被泄露。
用例:
curl https://api.openai-forward.top/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer fk-******" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Python
import openai
+ openai.api_base = "https://api.openai-forward.top/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******"
Web application
docker run -d \
-p 3000:3000 \
-e OPENAI_API_KEY="fk-******" \
-e BASE_URL="https://api.openai-forward.top" \
-e CODE="<your password>" \
yidadaa/chatgpt-next-web
聊天日志
保存路径在当前目录下的Log/
路径中。
聊天日志以 chat_
开头, 默认每5轮对话写入一次文件
记录格式为
{'host': xxx, 'model': xxx, 'message': [{'user': xxx}, {'assistant': xxx}]}
{'assistant': xxx}
{'host': ...}
{'assistant': ...}
...
Backer and Sponsor
License
Openai-forward is licensed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for openai_forward-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29758ead1e586b221f80d5c436acb9a54fbed62ee9bb1f23b67de8f609873e80 |
|
MD5 | 8b173b18f5252f6f373298f5da09fbba |
|
BLAKE2b-256 | 8fb34d31d94bcf8129c2c11ae0bf6933bc3ae2ae9342ec0daa352e3e6f7aa91e |