mirror of
https://github.com/Xueheng-Li/SynologyChatbotGPT.git
synced 2025-07-23 05:19:15 +00:00
Update README.md
This commit is contained in:
102
README.md
102
README.md
@ -12,40 +12,7 @@
|
||||
|
||||
3. 可调用一众搜索引擎(Google, Bing, Baidu, DuckDuckGo)搜索实时信息回答问题。
|
||||
|
||||
## Docker 部署
|
||||
### 示例
|
||||
|
||||
```
|
||||
docker run -d --name synobot \
|
||||
-p 5008:5008 \
|
||||
-e OPENAI_API_KEY="YOUR_OPENAI_API_KEY" \
|
||||
-e INCOMING_WEBHOOK_URL="YOUR_INCOMING_WEBHOOK_URL" \
|
||||
-e WEBHOOK_TOKEN="YOUR_WEBHOOK_TOKEN" \
|
||||
xueheng/synogpt:latest
|
||||
```
|
||||
|
||||
### 所有Docker参数说明
|
||||
|
||||
| 变量名 | 描述 | 默认值 | 必填 |
|
||||
| --- |----------------------------------|---------------------------------------------------------------------------------------| --- |
|
||||
| `OPENAI_API_KEY` | 你的 OpenAI API 密钥 | 无 | 是 |
|
||||
| `INCOMING_WEBHOOK_URL` | Synology Chat 机器人的传入 Webhook URL | 无 | 是 |
|
||||
| `WEBHOOK_TOKEN` | Synology Chat 机器人的传出 Webhook 令牌 | 无 | 是 |
|
||||
| `SERVER_IP` | 运行脚本的服务器 IP 地址 | 127.0.0.1 | 否 | | 否 |
|
||||
| `system_prompt` | 聊天机器人的角色 | '你是全能君,一名智能助手。你的使命是尽可能地用详尽的、温暖的、友善的话语帮助我和我的家人,在各种方面提供帮助和支持。无论我需要什么帮助或建议,你都会尽力提供详尽信息。' | 否 |
|
||||
| `max_conversation_length` | 对话历史记录次数长度 | 10 | 否 |
|
||||
| `max_time_gap` | 启动新对话的最大空闲时间间隔 | 15 | 否 |
|
||||
| `temperature` | OpenAI API 的一个参数,控制生成文本的随机性。 | 0.5 | 否 |
|
||||
| `stream` | 使用stream方法传回 GPT 答复 | True | 否 |
|
||||
| `image_size` | 使用 ai 生成图像时的图像大小 | 'medium' | 否 |
|
||||
| `translate_to_chinese` | 是否将非中文文本翻译为中文(必须和下面的Deepl_api_key配合使用) | False | 否 |
|
||||
| `Deepl_api_key` | DeepL API 密钥 | None | 否 |
|
||||
| `bing_key` | Bing API 密钥 | None | 否 |
|
||||
| `serpapi_key` | SerpApi 密钥,以启用 google 搜索 | None | 否 |
|
||||
|
||||
|
||||
|
||||
## 使用说明
|
||||
## 功能说明
|
||||
|
||||
1. 默认启用 stream 方法来传回 ChatGPT 的回复,即当 GPT 的回复有好几个小段落时,不需要等待所有段落都生成结束以后才把整个回复发送回群晖 Chat 的聊天窗口,而是会在每一个新的小段生成结束时就即刻发送回群晖 Chat。这样可以大大减少等待回复的时间。注意:如果要让 gpt 生成代码,并实时执行,记得在settings.py中关闭stream回传方法,即设置为`stream=False`。
|
||||
|
||||
@ -74,36 +41,69 @@ xueheng/synogpt:latest
|
||||
(2) `basicBot`只具备上述`talentBot`的第一项功能,任何和`basicBot.py`的对话都传给 ChatGPT-3.5 生成答复,`basicBot`已经很久没更新了,未来可能只会删去,只保留`talentBot`。
|
||||
|
||||
(3) 目前 basicBot 和 talentBot 共用同一个 settings.py 文件,所以在同一个文件夹中两者只能同时运行其一,但其实只要再另建一个文件夹重新复制配置一遍所有文件,就能同时运行两个或者多个机器人。
|
||||
|
||||
|
||||
## 配置说明
|
||||
|
||||
1. 在 Synology Chat 中请按照以下步骤添加聊天机器人:
|
||||
## 安装及配置方法
|
||||
|
||||
1. 用有管理员权限的账户登录 Synology Chat。
|
||||
### 1. 群晖 Chat 客户端按照以下步骤添加聊天机器人:
|
||||
|
||||
2. 点击右上角你的头像,在菜单中选择「整合」(Integration),点击「机器人」(Bots)。
|
||||
1. 用有管理员权限的账户登录 Synology Chat。
|
||||
|
||||
3. 点击「+ 创建」按钮,然后选择「创建新机器人」。
|
||||
2. 点击右上角你的头像,在菜单中选择「整合」(Integration),点击「机器人」(Bots)。
|
||||
|
||||
4. 为你的机器人输入名称(例如:ChatGPT机器人)。点击「创建」。
|
||||
3. 点击「+ 创建」按钮,然后选择「创建新机器人」。
|
||||
|
||||
5. 在创建的机器人详情页面,找到「传出 Webhook」部分,将 Webhook URL 设置为你在代码中设置的 URL(即 `http://your_server_ip:PORT/webhook`, 其中 `your_server_ip` 应该是运行上述代码的机器的 IP 地址,`PORT`为你接下来在`settings.py`设置的端口号,默认 5008)。
|
||||
4. 为你的机器人输入名称(例如:ChatGPT机器人)。点击「创建」。
|
||||
|
||||
6. 在机器人详情页面的「传入 Webhook」部分,将生成一个 Webhook URL 和一个 Token,记录下这些值,按照下面第 3 步修改 `settings.py`中的`INCOMING_WEBHOOK_URL`和`OUTGOING_WEBHOOK_TOKEN`。
|
||||
|
||||
7. 最后点击「确认」(OK)保存。
|
||||
5. 在创建的机器人详情页面,找到「传出 Webhook」部分,将 Webhook URL 设置为你在代码中设置的 URL(即 `http://your_server_ip:PORT/webhook`, 其中 `your_server_ip` 应该是运行上述代码的机器的 IP 地址,`PORT`为你接下来在`settings.py`设置的端口号,默认 5008)。
|
||||
|
||||
### 使用Docker的用户请参考前述Docker的部署方法,以下为不使用 Docker 进行部署的方法:
|
||||
6. 在机器人详情页面的「传入 Webhook」部分,将生成一个 Webhook URL 和一个 Token,记录下这些值,按照下面第 3 步修改 `settings.py`中的`INCOMING_WEBHOOK_URL`和`OUTGOING_WEBHOOK_TOKEN`。
|
||||
|
||||
2. 在<https://platform.openai.com/account/api-keys>申请 OpenAI API 密钥,用你的 OpenAI API 密钥替换`settings.py`中的`openai.api_key`:
|
||||
7. 最后点击「确认」(OK)保存。
|
||||
|
||||
### 2. 使用Docker进行部署
|
||||
#### 示例
|
||||
|
||||
```
|
||||
docker run -d --name synobot \
|
||||
-p 5008:5008 \
|
||||
-e OPENAI_API_KEY="YOUR_OPENAI_API_KEY" \
|
||||
-e INCOMING_WEBHOOK_URL="YOUR_INCOMING_WEBHOOK_URL" \
|
||||
-e WEBHOOK_TOKEN="YOUR_WEBHOOK_TOKEN" \
|
||||
xueheng/synogpt:latest
|
||||
```
|
||||
|
||||
#### 所有Docker环境参数说明
|
||||
|
||||
| 变量名 | 描述 | 默认值 | 必填 |
|
||||
| --- |----------------------------------|---------------------------------------------------------------------------------------| --- |
|
||||
| `OPENAI_API_KEY` | 你的 OpenAI API 密钥 | 无 | 是 |
|
||||
| `INCOMING_WEBHOOK_URL` | Synology Chat 机器人的传入 Webhook URL | 无 | 是 |
|
||||
| `WEBHOOK_TOKEN` | Synology Chat 机器人的传出 Webhook 令牌 | 无 | 是 |
|
||||
| `SERVER_IP` | 运行脚本的服务器 IP 地址 | 127.0.0.1 | 否 | | 否 |
|
||||
| `system_prompt` | 聊天机器人的角色 | '你是全能君,一名智能助手。你的使命是尽可能地用详尽的、温暖的、友善的话语帮助我和我的家人,在各种方面提供帮助和支持。无论我需要什么帮助或建议,你都会尽力提供详尽信息。' | 否 |
|
||||
| `max_conversation_length` | 对话历史记录次数长度 | 10 | 否 |
|
||||
| `max_time_gap` | 启动新对话的最大空闲时间间隔 | 15 | 否 |
|
||||
| `temperature` | OpenAI API 的一个参数,控制生成文本的随机性。 | 0.5 | 否 |
|
||||
| `stream` | 使用stream方法传回 GPT 答复 | True | 否 |
|
||||
| `image_size` | 使用 ai 生成图像时的图像大小 | 'medium' | 否 |
|
||||
| `translate_to_chinese` | 是否将非中文文本翻译为中文(必须和下面的Deepl_api_key配合使用) | False | 否 |
|
||||
| `Deepl_api_key` | DeepL API 密钥 | None | 否 |
|
||||
| `bing_key` | Bing API 密钥 | None | 否 |
|
||||
| `serpapi_key` | SerpApi 密钥,以启用 google 搜索 | None | 否 |
|
||||
|
||||
|
||||
### 3. 不使用 Docker 进行部署的方法:
|
||||
|
||||
|
||||
(1) 在<https://platform.openai.com/account/api-keys>申请 OpenAI API 密钥,用你的 OpenAI API 密钥替换`settings.py`中的`openai.api_key`:
|
||||
|
||||
|
||||
```python
|
||||
openai_api_key = "your_api_key_here"
|
||||
```
|
||||
|
||||
3. 更改`settings.py`中的其他设置:
|
||||
(2) 更改`settings.py`中的其他设置:
|
||||
|
||||
```
|
||||
# Replace with your Synology Chat bot details
|
||||
@ -143,7 +143,7 @@ xueheng/synogpt:latest
|
||||
|
||||
```
|
||||
|
||||
3. 安装所需的库:
|
||||
(3) 安装所需的库:
|
||||
|
||||
在bash shell中运行:
|
||||
|
||||
@ -151,7 +151,7 @@ xueheng/synogpt:latest
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
4. 运行 Python 文件:
|
||||
(4) 运行 Python 文件:
|
||||
|
||||
在bash shell中运行`basicBot`:
|
||||
|
||||
@ -166,7 +166,7 @@ xueheng/synogpt:latest
|
||||
```
|
||||
|
||||
|
||||
5. 在 Synology Chat 中与机器人进行对话。如果运行的是`basicBot.py`,那么任何你的输入,机器人都将使用OpenAI的 gpt-3.5-turbo 模型生成回复。关于`talentBot.py`的使用请参考前述更新说明。
|
||||
(5) 在 Synology Chat 中与机器人进行对话。如果运行的是`basicBot.py`,那么任何你的输入,机器人都将使用OpenAI的 gpt-3.5-turbo 模型生成回复。关于`talentBot.py`的使用请参考前述更新说明。
|
||||
|
||||
|
||||
## Star History
|
||||
|
Reference in New Issue
Block a user