mirror of
https://github.com/Yanyutin753/RefreshToV1Api.git
synced 2025-12-13 02:00:14 +08:00
Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
013b8b43a9 | ||
|
|
46fc26db57 | ||
|
|
de7d645533 | ||
|
|
3b4f0d453f | ||
|
|
1f0c5a31a0 | ||
|
|
ccc4ce3bc0 | ||
|
|
ba26e9c49a | ||
|
|
e82ffcc912 | ||
|
|
0701530bb3 | ||
|
|
2d421b0a71 | ||
|
|
b8b0a38f1e | ||
|
|
26e6af6317 | ||
|
|
b559ec151f | ||
|
|
25468bdf38 | ||
|
|
51f732abc6 | ||
|
|
971cdada64 | ||
|
|
38a10e8f2d | ||
|
|
8a6be9013c | ||
|
|
81724dae50 | ||
|
|
3cc275502a | ||
|
|
21fd5b81be | ||
|
|
9017ec892f | ||
|
|
12f7d616d7 | ||
|
|
10782fbe1f | ||
|
|
8a9932b18d | ||
|
|
4b706bfb8d | ||
|
|
7a1d7541bf | ||
|
|
39d394e28b | ||
|
|
816e78ab81 | ||
|
|
81d32e753a | ||
|
|
3c9b6c12cc | ||
|
|
6530dc6029 | ||
|
|
a23f6a6440 | ||
|
|
b0ec95520d | ||
|
|
2c9b3d72f6 | ||
|
|
faa3c2c825 | ||
|
|
62925a7f72 | ||
|
|
be60a8fe71 | ||
|
|
17bfdb5dae | ||
|
|
ee0ce60272 | ||
|
|
040a0b8d26 | ||
|
|
e5c1fd5936 | ||
|
|
579c02e270 | ||
|
|
ce494a27f8 | ||
|
|
fa971cf108 | ||
|
|
10ae0b415c | ||
|
|
b850592a57 | ||
|
|
719e6f83a9 | ||
|
|
c07d1f3268 | ||
|
|
33fb486c82 | ||
|
|
6203fb3535 | ||
|
|
b19586e24a | ||
|
|
9f80493866 | ||
|
|
36eede643d | ||
|
|
6032546b5d | ||
|
|
7328dadefb | ||
|
|
b7e2af8afd | ||
|
|
04c1599756 | ||
|
|
06665924f6 | ||
|
|
6787069afb | ||
|
|
abbdebc24e | ||
|
|
e599e2a0cc | ||
|
|
0c0dd0e8a7 | ||
|
|
5524ad2b11 | ||
|
|
ef27e47f91 | ||
|
|
26539a0d79 | ||
|
|
a3b5ae310c | ||
|
|
c85a228fb9 | ||
|
|
4a7338637d | ||
|
|
d02e2d0eb1 | ||
|
|
ebd3c3974f | ||
|
|
ab88debcf3 | ||
|
|
73b14891dd | ||
|
|
1f50b3d3a9 | ||
|
|
227781a12c | ||
|
|
f06821d54f | ||
|
|
3637133b2e |
46
.github/workflows/ninja-image.yml
vendored
Normal file
46
.github/workflows/ninja-image.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: ninja Build and Push Docker Image
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Tag Name'
|
||||
required: true
|
||||
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Set tag name
|
||||
id: tag_name
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "release" ]; then
|
||||
echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"
|
||||
elif [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||
echo "::set-output name=tag::${{ github.event.inputs.tag }}"
|
||||
fi
|
||||
|
||||
- name: Build and push Docker image with Release tag
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
yangclivia/pandora-to-api:${{ steps.tag_name.outputs.tag }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
build-args: TARGETPLATFORM=${{ matrix.platform }}
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Build and Push Docker Image
|
||||
name: oaifree Build and Push Docker Image
|
||||
|
||||
on:
|
||||
release:
|
||||
46
.github/workflows/xyhelper-deploy.yml
vendored
Normal file
46
.github/workflows/xyhelper-deploy.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: xyhelper Build and Push Docker Image
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Tag Name'
|
||||
required: true
|
||||
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Set tag name
|
||||
id: tag_name
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "release" ]; then
|
||||
echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"
|
||||
elif [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||||
echo "::set-output name=tag::${{ github.event.inputs.tag }}"
|
||||
fi
|
||||
|
||||
- name: Build and push Docker image with Release tag
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
yangclivia/pandora-to-api:${{ steps.tag_name.outputs.tag }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
build-args: TARGETPLATFORM=${{ matrix.platform }}
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
*.log
|
||||
6
.idea/encodings.xml
generated
Normal file
6
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/log/access.log" charset="GBK" />
|
||||
</component>
|
||||
</project>
|
||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,4 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Python 3.8 (pythonProject7)" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (pythonProject7)" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
@@ -10,15 +10,13 @@ COPY . /app
|
||||
# 设置环境变量
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
RUN chmod +x /app/start.sh
|
||||
|
||||
RUN apt update && apt install -y jq
|
||||
RUN chmod +x /app/main.py
|
||||
|
||||
# # 设置 pip 源为清华大学镜像
|
||||
# RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
# 安装任何所需的依赖项
|
||||
RUN pip install --no-cache-dir flask flask_apscheduler gunicorn requests Pillow flask-cors tiktoken fake_useragent redis websocket-client pysocks requests[socks] websocket-client[optional]
|
||||
RUN pip install --no-cache-dir flask flask_apscheduler requests Pillow flask-cors tiktoken fake_useragent redis websocket-client pysocks requests[socks] websocket-client[optional]
|
||||
|
||||
# 在容器启动时运行 Flask 应用
|
||||
CMD ["/app/start.sh"]
|
||||
CMD ["python3", "main.py"]
|
||||
|
||||
88
Readme.md
88
Readme.md
@@ -1,20 +1,29 @@
|
||||
## 项目简介
|
||||
# [RefreshToV1Api](https://github.com/Yanyutin753/RefreshToV1Api)
|
||||
[](https://github.com/Yanyutin753/refresh-gpt-chat/stargazers)
|
||||
|
||||
## [项目简介](https://github.com/Yanyutin753/RefreshToV1Api)
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> Respect Zhile大佬 , Respect Wizerd!
|
||||
> Respect `oaiFree` , Respect `Wizerd`!
|
||||
|
||||
感谢pandoraNext和Wizerd的付出,敬礼!!!
|
||||
感谢oaiFree、Ink-Osier大佬们的付出,敬礼!!!
|
||||
|
||||
本项目支持:
|
||||
|
||||
1. 将 ninja `proxy` 模式下的 `backend-api` 转为 `/v1/chat/completions` 接口,支持流式和非流式响应。
|
||||
1. 将 oaiFree `proxy` 模式下的 `backend-api` 转为 `/v1/chat/completions` 接口,支持流式和非流式响应。
|
||||
|
||||
2. 将 ninja `proxy` 模式下的 `backend-api` 转为 `/v1/images/generations` 接口
|
||||
2. 将 oaiFree `proxy` 模式下的 `backend-api` 转为 `/v1/images/generations` 接口
|
||||
|
||||
3. 支持直接把refresh_token作为请求key,方便接入one_api
|
||||
|
||||
4. 支持 gpt-4-mobile 、gpt-4-s 、基本所有的GPTS
|
||||
4. 支持 gpt-4o 、gpt-4-s 、o1模型、基本所有的GPTS
|
||||
|
||||
* **oaiFree 的 backend-api 接口,无需打码**
|
||||
|
||||
* **oaiFree 的 backend-api 接口,只支持Chatgpt Plus账号**
|
||||
|
||||
* 之后可能跟[Linux.do](https://linux.do/latest)论坛挂钩,请提前做好准备
|
||||
|
||||
如果本项目对你有帮助的话,请点个小星星吧~
|
||||
|
||||
@@ -28,14 +37,16 @@
|
||||
|
||||
- [x] 支持 代码解释器、联网、绘图
|
||||
|
||||
- [x] 支持 o1-mini 和 o1-preview
|
||||
|
||||
- [x] 支持 gpt-4-s
|
||||
|
||||
- [x] 支持 gpt-4-mobile
|
||||
- [x] 支持 gpt-4o 和 gpt-4o-mini
|
||||
|
||||
- [x] 支持 gpt-3.5-turbo
|
||||
|
||||
- [x] 支持 gpts
|
||||
|
||||
|
||||
- [x] 支持 流式输出
|
||||
|
||||
- [x] 支持 非流式输出
|
||||
@@ -59,13 +70,13 @@
|
||||
## 注意
|
||||
|
||||
> [!CAUTION]
|
||||
> 1. 本项目的运行需要 ninja
|
||||
> 1. 本项目的运行需要 oaiFree 的免费接口
|
||||
>
|
||||
> 2. 本项目实际为将来自 `/v1/chat/completions` 的请求转发到ninja的 `/backend-api/conversation` 接口,因此本项目并不支持高并发操作,请不要接入如 `沉浸式翻译` 等高并发项目。
|
||||
> 2. 本项目实际为将来自 `/v1/chat/completions` 的请求转发到oaiFree免费接口的 `/backend-api/conversation` 接口,因此本项目并不支持高并发操作,请不要接入如 `沉浸式翻译` 等高并发项目。
|
||||
>
|
||||
> 3. 本项目支持使用apple平台的refresh_token作为请求key.
|
||||
>
|
||||
> 4. 本项目并不能绕过 OpenAI 和 ninja 官方的限制,只提供便利,不提供绕过。
|
||||
> 4. 本项目并不能绕过 OpenAI 和 oaiFree 官方的限制,只提供便利,不提供绕过。
|
||||
>
|
||||
> 5. 提问的艺术:当出现项目不能正常运行时,请携带 `DEBUG` 级别的日志在 `Issue` 或者社区群内提问,否则将开启算命模式~
|
||||
|
||||
@@ -77,33 +88,32 @@
|
||||
|
||||
2. gpt-4-mobile:支持代码解释器、bing联网、dalle绘图的 GPT-4,对应的是官方的手机版 GPT-4,截止至2023年12月15日,本模型使用量不计入 GPT-4 用量(即不受每 3 小时 40 次的限制)
|
||||
|
||||
3. 几乎所有的 GPTS(配置方式见下文)
|
||||
3. 由于oaiFree未提供GPTS接口,暂不支持几乎所有的 GPTS(配置方式见下文)
|
||||
|
||||
4. gpt-3.5-turbo
|
||||
|
||||
## Docker-Compose 部署
|
||||
## 部署说明
|
||||
<details>
|
||||
|
||||
### Docker-Compose 部署
|
||||
|
||||
仓库内已包含相关文件和目录,拉到本地后修改 docker-compose.yml 文件里的环境变量后运行`docker-compose up -d`即可。
|
||||
|
||||
## config.json 变量说明:
|
||||
### config.json 变量说明:
|
||||
|
||||
- `log_level`: 用于设置日志等级,可选值为:`DEBUG`、`INFO`、`WARNING`、`ERROR`,默认为 `DEBUG`
|
||||
|
||||
- `need_log_to_file`: 用于设置是否需要将日志输出到文件,可选值为:`true`、`false`,默认为 `true`,日志文件路径为:`./log/access.log`,默认每天会自动分割日志文件。
|
||||
|
||||
- `process_workers`: 用于设置进程数,如果不需要设置,可以保持不变,如果需要设置,可以设置为需要设置的值,如果设置为 `1`,则会强制设置为单进程模式。
|
||||
- `upstream_base_url`: oaiFree 的接口地址,如:`https://chat.oaifree.com`,注意:不要以 `/` 结尾。
|
||||
|
||||
- `process_threads`: 用于设置线程数,如果不需要设置,可以保持不变,如果需要设置,可以设置为需要设置的值,如果设置为 `1`,则会强制设置为单线程模式。
|
||||
|
||||
- `upstream_base_url`: ninja 的部署地址,如:`https://pandoranext.com`,注意:不要以 `/` 结尾。可以填写为本项目可以访问到的 PandoraNext 的内网地址。
|
||||
|
||||
- `upstream_api_prefix`: PandoraNext Proxy 模式下的 API 前缀
|
||||
- `upstream_api_prefix`: 默认为["dad04481-fa3f-494e-b90c-b822128073e5"],之后可多填
|
||||
|
||||
- `backend_container_url`: 用于dalle模型生成图片的时候展示所用,需要设置为使用如 [ChatGPT-Next-Web](https://github.com/ChatGPTNextWebTeam/ChatGPT-Next-Web) 的用户可以访问到的本项目地址,如:`http://1.2.3.4:50011`,同原环境变量中的 `UPLOAD_BASE_URL`
|
||||
|
||||
- `backend_container_api_prefix`: 用于设置本项目 `/v1/xxx` 接口的前缀,如果留空则与官方api调用接口一致。设置示例:`666 `
|
||||
|
||||
- `key_for_gpts_info`: 填入refresh_token(每天自动转成access_token 推荐)或者access_token(不推荐), 仅获取 GPTS 信息的 access_token,需要该 access_token 能够访问所有配置的 GPTS。后续发送消息仍需要在请求头携带请求所用的 access_token,如果未配置该项,请将 `gpts.json` 文件修改为:
|
||||
- `key_for_gpts_info(选填)`: 填入refresh_token(每天自动转成access_token 推荐)或者access_token(不推荐), 仅获取 GPTS 信息的 access_token,需要该 access_token 能够访问所有配置的 GPTS。后续发送消息仍需要在请求头携带请求所用的 access_token,如果未配置该项,请将 `gpts.json` 文件修改为:
|
||||
|
||||
```json
|
||||
{}
|
||||
@@ -143,7 +153,8 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
|
||||
- `enableOai`:用于设置是否使用官网通过refresh_token刷新access_token,仅在 `enableOai` 为 `true` 时生效。
|
||||
|
||||
- `ninja_refreshToAccess_Url`:用于设置使用ninja来进行使用refresh_token刷新access_token,enableOai为false的时候必填。
|
||||
- `oaifree_refreshToAccess_Url`:用于设置使用oaiFree来进行使用refresh_token刷新access_token,enableOai为false的时候必填
|
||||
- 默认为"https://token.oaifree.com/api/auth/refresh"
|
||||
|
||||
- `redis`
|
||||
|
||||
@@ -155,7 +166,7 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
|
||||
- `db`: Redis的数据库,默认:0,如有特殊需求,你可以将此值设置为其他数据库
|
||||
|
||||
## GPTS配置说明
|
||||
### GPTS配置说明
|
||||
|
||||
如果需要使用 GPTS,需要修改 `gpts.json` 文件,其中每个对象的key即为调用对应 GPTS 的时候使用的模型名称,而 `id` 则为对应的模型id,该 `id` 对应每个 GPTS 的链接的后缀。配置多个GPTS的时候用逗号隔开。
|
||||
|
||||
@@ -176,13 +187,13 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
|
||||
注意:使用该配置的时候需要保证正确填写 `docker-compose.yml` 的环境变量 `KEY_FOR_GPTS_INFO`,同时该变量设置的 `key` 允许访问所有配置的 GPTS。
|
||||
|
||||
## 绘图接口使用说明
|
||||
### 绘图接口使用说明
|
||||
|
||||
接口URI:`/v1/images/generations`
|
||||
|
||||
请求方式:`POST`
|
||||
|
||||
请求头:正常携带 `Authorization` 和 `Content-Type` 即可,`Authorization` 的值为 `Bearer <ninja 的 fk>`,`Content-Type` 的值为 `application/json`
|
||||
请求头:正常携带 `Authorization` 和 `Content-Type` 即可,`Authorization` 的值为 `Bearer <refresh_token>`,`Content-Type` 的值为 `application/json`
|
||||
|
||||
请求体格式示例:
|
||||
|
||||
@@ -213,7 +224,7 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
}
|
||||
```
|
||||
|
||||
## 文件识别接口使用说明
|
||||
### 文件识别接口使用说明
|
||||
|
||||
调用方式同官方 `gpt-4-vision-preview` API
|
||||
|
||||
@@ -312,8 +323,18 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
}
|
||||
}
|
||||
```
|
||||
### 获取ChatGPT-Account-ID接口
|
||||
|
||||
## 示例
|
||||
接口URI:`/getAccountID`
|
||||
|
||||
请求方式:`POST`
|
||||
|
||||
```
|
||||
请求头加上
|
||||
Authorization:Bearer refresh_token 或 access_token
|
||||
```
|
||||
|
||||
### 示例
|
||||
|
||||
以ChatGPT-Next-Web项目的docker-compose部署为例,这里提供一个简单的部署配置文件示例:
|
||||
|
||||
@@ -321,7 +342,7 @@ PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取
|
||||
version: '3'
|
||||
services:
|
||||
chatgpt-next-web:
|
||||
image: yidadaa/chatgpt-next-web
|
||||
image: yangclivia/chatgpt-next-web-langchain
|
||||
ports:
|
||||
- "50013:3000"
|
||||
environment:
|
||||
@@ -330,6 +351,8 @@ services:
|
||||
- CUSTOM_MODELS=+gpt-4-s,+gpt-4-mobile,+<gpts.json 中的模型名>
|
||||
|
||||
```
|
||||
</details>
|
||||
|
||||
|
||||
## 功能演示
|
||||
<details>
|
||||
@@ -372,11 +395,12 @@ services:
|
||||
> * 本项目只提供转发接口🥰
|
||||
> * 开源项目不易,请点个星星吧!!!
|
||||
|
||||
### 新增群聊,点了⭐️可以进群讨论部署,我把你们拉进群,无广,广子踢掉
|
||||
<img src="https://github.com/Yanyutin753/PandoraNext-TokensTool/assets/132346501/6544e8ed-6673-48f9-95a6-c13255acbab1" width="300" height="300">
|
||||
## Sponsor
|
||||
|
||||
### 如果你觉得我的开源项目对你有帮助,可以赞助我一杯咖啡嘛,十分感谢!!!
|
||||
<img src="https://github.com/Yanyutin753/RefreshToV1Api/assets/132346501/e5ab5e80-1cf2-4822-ae36-f9d0b11ed1b1" width="300" height="300">
|
||||
|
||||
### 请给我一个免费的⭐吧!!!
|
||||
|
||||
## Star History
|
||||
|
||||
[](https://star-history.com/#Yanyutin753/ninjaToV1Api_refresh&Date)
|
||||
[](https://star-history.com/#Yanyutin753/oaiFreeV1Api_refresh&Date)
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
{
|
||||
"log_level": "INFO",
|
||||
"need_log_to_file": "true",
|
||||
"process_workers": 2,
|
||||
"process_threads": 2,
|
||||
"proxy": "",
|
||||
"upstream_base_url": "",
|
||||
"upstream_api_prefix": "",
|
||||
"upstream_base_url": "https://chat.oaifree.com",
|
||||
"upstream_api_prefix": ["dad04481-fa3f-494e-b90c-b822128073e5"],
|
||||
"backend_container_url": "",
|
||||
"backend_container_api_prefix": "",
|
||||
"key_for_gpts_info": "",
|
||||
"gpt_4_s_new_name": "gpt-4-s",
|
||||
"gpt_4_mobile_new_name": "gpt-4-mobile,dall-e-3",
|
||||
"gpt_3_5_new_name": "gpt-3.5-turbo",
|
||||
"gpt_4_o_new_name": "gpt-4-o,gpt-4o",
|
||||
"gpt_4_o_mini_new_name": "gpt-4o-mini",
|
||||
"o1_preview_new_name": "o1_preview",
|
||||
"o1_mini_new_name": "o1_mini",
|
||||
"need_delete_conversation_after_response": "true",
|
||||
"use_oaiusercontent_url": "false",
|
||||
"custom_arkose_url": "false",
|
||||
"arkose_urls": "",
|
||||
"upload_success_text": "`🤖 文件上传成功,搜索将不再提供额外信息!`\n",
|
||||
"dalle_prompt_prefix": "请严格根据我的以下要求完成绘图任务,如果我没有发出指定的绘画指令,则绘制出我发出的文字对应的图片:",
|
||||
"bot_mode": {
|
||||
"enabled": "false",
|
||||
@@ -26,8 +29,8 @@
|
||||
},
|
||||
"refresh_ToAccess": {
|
||||
"stream_sleep_time": 0,
|
||||
"enableOai":"true",
|
||||
"ninja_refreshToAccess_Url": ""
|
||||
"enableOai":"false",
|
||||
"oaifree_refreshToAccess_Url": "https://token.oaifree.com/api/auth/refresh"
|
||||
},
|
||||
"redis": {
|
||||
"host": "redis",
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
{
|
||||
"gpt-4-classic": {
|
||||
"id":"g-YyyyMT9XH-chatgpt-classic"
|
||||
}
|
||||
}
|
||||
{}
|
||||
@@ -2,7 +2,7 @@ version: '3'
|
||||
|
||||
services:
|
||||
backend-to-api:
|
||||
image: yangclivia/pandora-to-api:latest
|
||||
image: yangclivia/pandora-to-api
|
||||
restart: always
|
||||
ports:
|
||||
- "50011:33333"
|
||||
|
||||
34
start.sh
34
start.sh
@@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 记录当前日期和时间
|
||||
NOW=$(date +"%Y-%m-%d-%H-%M")
|
||||
|
||||
# 尝试从环境变量获取参数,如果不存在,则从 config.json 文件中读取
|
||||
# 如果这些值仍然不存在,将它们设置为默认值
|
||||
|
||||
if [ -z "$PROCESS_WORKERS" ]; then
|
||||
PROCESS_WORKERS=$(jq -r '.process_workers // empty' /app/data/config.json)
|
||||
export PROCESS_WORKERS
|
||||
|
||||
if [ -z "$PROCESS_WORKERS" ]; then
|
||||
PROCESS_WORKERS=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$PROCESS_THREADS" ]; then
|
||||
PROCESS_THREADS=$(jq -r '.process_threads // empty' /app/data/config.json)
|
||||
export PROCESS_THREADS
|
||||
|
||||
if [ -z "$PROCESS_THREADS" ]; then
|
||||
PROCESS_THREADS=2
|
||||
fi
|
||||
fi
|
||||
|
||||
export PROCESS_WORKERS
|
||||
export PROCESS_THREADS
|
||||
|
||||
echo "PROCESS_WORKERS: ${PROCESS_WORKERS}"
|
||||
echo "PROCESS_THREADS: ${PROCESS_THREADS}"
|
||||
|
||||
# 启动 Gunicorn 并使用 tee 命令同时输出日志到文件和控制台
|
||||
exec gunicorn -w ${PROCESS_WORKERS} --threads ${PROCESS_THREADS} --bind 0.0.0.0:33333 main:app --access-logfile - --error-logfile -
|
||||
Reference in New Issue
Block a user