项目简介
🤖 一个简单的 ChatGPT TO API 代理
🌟 无需账号即可使用免费、无限的
GPT-3.5
💥 支持 AccessToken 使用账号,支持
GPT-4
、
GPT-4o
、
GPTs
🔍 回复格式与真实 API 完全一致,适配几乎所有客户端
功能
最新版 v1.1.13
已完成
-
流式、非流式传输
-
免登录 GPT-3.5 对话
-
GPT-3.5 对话(传入模型名不包含 gpt-4,则默认使用 gpt-3.5,也就是 text-davinci-002-render-sha)
-
GPT-4 对话(传入模型名包含: gpt-4,gpt-4o,gpt-4-moblie 即可使用对应模型,需传入 AccessToken)
-
GPT-4 画图、代码、联网
-
支持 GPTs(传入模型名:gpt-4-gizmo-g-*)
-
支持 Team Plus 账号(需传入 team account id)
-
上传图片、文件(格式为 API 对应格式,支持 URL 和 base64)
-
WebUI(http://127.0.0.1:5005,不支持登录使用)
-
可作为网关使用,可多机分布部署
-
多账号轮询,同时支持 AccessToken 和 RefreshToken
-
请求失败重试,自动轮询下一个 Token
-
Tokens 管理,支持上传、清除
TODO
Tokens 管理
首先配置环境变量 AUTHORIZATION,然后运行程序。
访问 /tokens 或者 /api_prefix/tokens 可以查看现有 Tokens 数量,也可以上传新的 Tokens ,或者清空 Tokens。
请求时传入 AUTHORIZATION 中你配置的值即可多账号轮询, AUTHORIZATION 可以配置多个值,用英文逗号分隔。
环境变量
每个环境变量都有默认值,如果不懂环境变量的含义,请不要设置,更不要传空值,字符串无需引号。
分类
|
变量名
|
示例值
|
默认值
|
描述
|
安全相关
|
API_PREFIX
|
your_prefix
|
None
|
API 前缀密码,不设置容易被人访问,设置后需请求
/your_prefix/v1/chat/completions
|
|
AUTHORIZATION
|
your_first_authorization
,
your_second_authorization
|
[]
|
你自己为使用多账号轮询 Tokens 设置的授权,英文逗号分隔
|
|
AUTH_KEY
|
your_auth_key
|
None
|
私人网关需要加
auth_key
请求头才设置该项
|
请求相关
|
CHATGPT_BASE_URL
|
https://chatgpt.com
|
https://chatgpt.com
|
ChatGPT 网关地址,设置后会改变请求的网站,多个网关用逗号分隔
|
|
PROXY_URL
|
http://ip:port
,
http://username:password@ip:port
|
[]
|
代理 URL,多个代理用逗号分隔
|
|
ARKOSE_TOKEN_URL
|
https://example.com/token
|
[]
|
获取 Arkose token 的地址
|
功能相关
|
HISTORY_DISABLED
|
true
|
true
|
是否不保存聊天记录并返回 conversation_id
|
|
POW_DIFFICULTY
|
00003a
|
00003a
|
要解决的工作量证明难度,不懂别设置
|
|
RETRY_TIMES
|
3
|
3
|
出错重试次数,使用 AUTHORIZATION 会自动轮询下一个账号
|
|
ENABLE_GATEWAY
|
true
|
true
|
是否启用网关模式(WEBUI)
|
|
CONVERSATION_ONLY
|
false
|
false
|
是否直接使用对话接口,如果你用的网关支持自动解决pow和arkose才启用
|
|
ENABLE_LIMIT
|
true
|
true
|
开启后不尝试突破官方次数限制,尽可能防止封号
|
|
UPLOAD_BY_URL
|
false
|
false
|
开启后按照
URL+空格+正文
进行对话,自动解析 URL 内容并上传,多个 URL 用空格分隔
|
|
CHECK_MODEL
|
false
|
false
|
检查账号是否支持传入模型,开启后可以稍微避免4o返回3.5内容,但是会增加请求时延,且并不能解决降智问题
|
部署
直接部署
git clone https://github.com/LanQian528/chat2api
cd chat2api
pip install -r requirements.txt
python app.py
Docker 部署
您需要安装 Docker 和 Docker Compose。
docker run -d \
--name chat2api \
-p 5005:5005 \
lanqian528/chat2api:latest
(推荐,可用 PLUS 账号) Docker Compose 部署
创建一个新的目录,例如 chat2api,并进入该目录:
mkdir chat2api
cd chat2api
在此目录中下载库中的 docker-compose.yml 文件:
wget https://raw.githubusercontent.com/LanQian528/chat2api/main/docker-compose.yml
修改 docker-compose.yml 文件中的环境变量,保存后:
使用
-
在网页使用,直接访问以下地址,仅支持使用免登 GPT-3.5:
-
使用 API ,支持传入 AccessToken 或 RefreshToken,可用 GPT-4, GPT-4o, GPTs:
curl --location 'http://127.0.0.1:5005/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{OpenAI APIKEY}}' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"stream": true
}'
将你账号的 AccessToken 或 RefreshToken 当作 OpenAI APIKEY 传入。
如果有team账号,可以传入 ChatGPT-Account-ID,使用 Team 工作区:
如果设置了 AUTHORIZATION 环境变量,可以将设置的值当作 OpenAI APIKEY 传入进行多 Tokens 轮询。
ArkoseToken
目前支持外部服务提供 ArkoseToken
推荐使用 docker-compose 方式部署,已内置 Arkose 服务
-
设置环境变量 ARKOSE_TOKEN_URL
-
在需要 ArkoseToken 的时候,chat2api 会向 ARKOSE_TOKEN_URL 发送 POST 请求