doc: 更换VitePress后的初步内容

This commit is contained in:
lazy
2024-08-28 00:50:44 +08:00
parent f7d7dab296
commit d1698186e1
128 changed files with 3490 additions and 6886 deletions
+42
View File
@@ -0,0 +1,42 @@
# command.json 配置项
:::info 目录
[[toc]]
:::
`data/config/command.json` 中配置命令相关的配置项。
## 命令权限 privilege
设置每个命令的权限配置
普通用户权限级别为 1,管理员(`system.json`中设置的)权限级别为 2。
在这里设置每个命令的最低权限级别,若设置为1,则用户和管理员均可用,若为2,则仅管理员可用
需要设置子命令,以点号间隔,如`"plugin.on"` 示例:
```json
{
"plugin": 1,
"plugin.on": 2
}
```
意思是 plugin 命令的最低权限级别为 1,plugin.on 命令的最低权限级别为 2。 每个命令都有默认的权限级别
若不设置,则使用默认的级别。在`pkg/command/operators`里每个命令类有默认的权限级别
## 命令前缀 command-prefix
设置命令前缀。以数组形式设置,程序将前缀符合设置的消息视为命令(群内需要符合群响应规则)。
如下示例将设置命令前缀为`!`、`!`、`#`:
```json
"command-prefix": [
"!",
"!",
"#"
]
```
+199
View File
@@ -0,0 +1,199 @@
# pipeline.json 配置项
:::info 目录
[[toc]]
:::
`data/config/pipeline.json` 配置程序处理一个请求的过程中的操作流程,平台适配器获取到消息事件之后,发送给pipeline排队进行处理。可以设置黑白名单、群响应规则、是否检查传入消息、传入消息忽略规则、是否检查敏感词、百度云内容审核配置、传入消息长度设置、限速配置等功能。
## 访问控制 access-control
```json
"access-control":{
"mode": "blacklist",
"blacklist": [],
"whitelist": []
},
```
`mode`:设置模式白名单 `whitelist`(仅处理`whitelist`列表中的会话的消息)或黑名单 `blacklist`(忽略`blacklist`列表中的会话的消息)
`blacklist`:格式`{type}_{id}`,示例:`"blacklist": ["group_12345678","person_12341234"],`
`whitelist`:格式`{type}_{id}`,示例:`"whitelist": ["group_12345678","person_12341234"]`
## 群消息响应规则 respond-rules
仅处理`access-control`通过的会话的消息,其中可含有多个key,若要对特定群设置响应规则,则以群号作为键。未特指的群,将使用 default 中的响应规则
```json
"respond-rules": {
"default": {
"at": true,
"prefix": [
"/ai", "!ai", "!ai", "ai"
],
"regexp": [],
"random": 0.0
}
},
```
`at`:`true`或`false`,设置@响应
`prefix`:设置响应前缀
`regexp`:正则匹配
`random`:随机匹配,为1时所有消息都响应
你可以为单个群聊设置特定的响应规则,例如
```json
"respond-rules": {
"default": {
"at": true,
"prefix": [
"/ai", "!ai", "!ai", "ai"
],
"regexp": [],
"random": 0.0
},
"123456":{
"at": true,
"prefix": [
"/ai", "!ai", "!ai", "ai"
],
"regexp": [],
"random": 0.0
},
"789012":{
"at": true,
"prefix": [
"/ai", "!ai", "!ai", "ai"
],
"regexp": [],
"random": 0.0
}
},
```
## 检查传入消息内容开关 income-msg-check
```json
"income-msg-check": true,
```
`income-msg-check`:是否检查传入的消息
## 传入消息忽略规则 ignore-rules
```json
"ignore-rules": {
"prefix": ["/"],
"regexp": []
},
```
符合规则的传入消息将被忽略,仅`income-msg-check`为`true`时生效
`prefix`:前缀为`/`的忽略
`regexp`:正则匹配的忽略
## 本地敏感词检查 check-sensitive-words
```json
"check-sensitive-words": true,
```
`check-sensitive-words`:是否检查敏感词,敏感词词库为`data/config/sensitive-words.json`里面的
## 百度云内容审核配置 baidu-cloud-examine
```json
"baidu-cloud-examine": {
"enable": false,
"api-key": "",
"api-secret": ""
},
```
`baidu-cloud-examine`:控制是否使用是否进行百度云内容审核
`enable`:enable=true时启用,一定会检查AI响应结果,仅`income-msg-check`为true时检查传入消息
`api-key`:百度AI开放平台的`API_KEY`
`api-secret`:百度AI开放平台的`SECRET_KEY`
*`API_KEY`与`SECRET_KEY`是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的**应用列表**中查看*
## 请求限速规则 rate-limit
```json
"rate-limit": {
"strategy": "drop",
"algo": "fixwin",
"fixwin": {
"default": {
"window-size": 60,
"limit": 60
}
}
}
```
`strategy`:会话中的请求速率超过限制时的处理策略,`drop`为丢弃新请求,`wait`为等待请求速率降到限制以下
`algo`: 使用的算法,目前仅支持 `fixwin` (固定窗口),即窗口期内最多处理多少个请求,可自行实现其他限速算法,具体查看插件编写教程
`fixwin`:具体速率设置,设定的窗口期内最多处理多少个请求,支持对特定session指定限速,格式为 {type}_{id},示例:group_12345678,person_12341234
`window-size`:窗口期大小,单位秒
`limit`:窗口期内最多处理多少个请求
例如:
```json
"fixwin": {
"default": {
"window-size": 60,
"limit": 60
},
"group_12345678": {
"window-size": 30,
"limit": 60
},
"person_12341234": {
"window-size": 60,
"limit": 60
}
}
```
将设定:
- 默认群窗口期60秒内最多处理60个请求
- 群号为12345678的窗口期30秒内最多处理60个请求
- 用户号为12341234的窗口期60秒内最多处理60个请求
## 对话历史记录截断 msg-truncate
将在发送消息给模型之前对当前会话的历史消息进行截断,以限制传给模型的消息长度
```json
"msg-truncate": {
"method": "round",
"round": {
"max-round": 10
}
}
```
`method`:截断方法,`round`为按回合截断,目前仅支持`round`,可自行实现其他截断方法,具体查看插件编写教程
`round`:按回合截断,`max-round`为最多保留多少回合的历史消息
+134
View File
@@ -0,0 +1,134 @@
# platform.json 配置项
:::info 目录
[[toc]]
:::
`data/config/platform.json` 配置程序连接的消息平台和相关消息处理配置项。启用的消息适配器列表,是否跟踪内容函数调用过程,群内回复时是否引用原消息,群内回复时是否at原用户,强制消息延迟范围,长消息处理策略,是否向用户隐藏AI的异常信息等。
## 消息平台适配器 platform-adapters
```json
"platform-adapters": [
{
"adapter": "yiri-mirai",
"enable": false,
"host": "127.0.0.1",
"port": 8080,
"verifyKey": "yirimirai",
"qq": 123456789
},
{
"adapter": "nakuru",
"enable": false,
"host": "127.0.0.1",
"ws_port": 8080,
"http_port": 5700,
"token": ""
},
{
"adapter": "aiocqhttp",
"enable": false,
"host": "127.0.0.1",
"port": 8080,
"access-token": "",
},
{
"adapter": "qq-botpy",
"enable": false,
"appid": "",
"secret": "",
"intents": [
"public_guild_messages",
"direct_message"
]
}
],
```
目前支持 `mirai`、`go-cqhttp`、`aiocqhttp`、`qq-botpy` 四种消息平台适配器,也可以同时启用多个同种类或不同种类的平台适配器。
各个适配器的配置方式请查看[部署教程](../deploy/config.html)。
### 多开示例
```json
"platform-adapters": [
{
"adapter": "yiri-mirai",
"enable": true,
"host": "127.0.0.1",
"port": 8080,
"verifyKey": "yirimirai",
"qq": 123456789
},
{
"adapter": "nakuru",
"enable": true,
"host": "127.0.0.1",
"ws_port": 8081,
"http_port": 5701,
"token": "token"
}
]
```
## 跟踪内容函数调用 track-function-calls
```json
"track-function-calls": true,
```
是否跟踪内容函数调用过程,如果开启了,在对话中调用的内容函数记录也会发给用户
关闭后(false)仅会发给用户最终结果
> 内容函数功能请查看插件功能文档。
## 引用原消息 quote-origin
```json
"quote-origin": false,
```
在群内回复时是否引用原消息
## 是否at原用户 at-sender
```json
"at-sender": false,
```
在群内回复时是否at原用户
## 强制消息延迟范围 force-delay
```json
"force-delay": [0, 0],
```
在将响应内容发回给用户前的强制消息延迟时间范围,以防风控,单位是秒。
## 长消息处理策略 long-text-process
```json
"long-text-process": {
"threshold": 256,
"strategy": "forward",
"font-path": ""
},
```
`threshold`:阈值,文字长度大于此值的消息会使用长消息处理策略
`strategy`:长消息处理策略,目前支持forward(转发消息组件)和image(文字转图片)
`font-path`: image的渲染字体。未设置时,如果在windows下,会尝试寻找系统的微软雅黑字体,若找不到,则转为forward策略。未设置时,若不是windows系统,则直接转为forward策略。
## 向用户隐藏AI接口的异常信息 hide-exception-info
```
"hide-exception-info": true
```
是否向用户隐藏AI的异常信息,如果为true,当请求AI接口出现异常时,会返回一个错误的提示给用户。而把报错详情输出在控制台。
+165
View File
@@ -0,0 +1,165 @@
# provider.json 配置项
:::info 目录
[[toc]]
:::
`data/config/provider.json` 中配置AI接口提供商相关的配置项。
## 启用聊天功能 enable-chat
```json
"enable-chat": true,
```
`enable-chat`:是否开启AI聊天功能
## 启用 AI 视觉功能 enable-vision
```json
"enable-vision": true,
```
`enable-vision`:是否开启AI视觉功能。需要使用的模型同时支持视觉功能,详情见元数据板块。
## 模型接口密钥 keys
```json
"keys": {
"openai": [
"sk-1234567890"
],
"anthropic": [
"sk-1234567890"
],
"moonshot": [
"sk-1234567890"
],
"deepseek": [
"sk-1234567890"
]
},
```
`keys`:设置密钥组,以字典的形式设置若干个密钥组,每个密钥组的键为密钥组名称,值为密钥列表。模型与密钥组的对应关系,请查看元数据板块。
目前支持的密钥组:
- `openai`:OpenAI 的密钥组,如果你没有OpenAI API Key,你可以[在此获取](https://ai.lazyshare.top/)
- `anthropic`:Anthropic 的密钥组
- `moonshot`:Moonshot(月之暗面 kimi)的密钥组
- `deepseek`:Deepseek(深度求索)的密钥组
## 大模型请求器 requester
```json
"requester": {
"openai-chat-completions": {
"base-url": "https://api.openai.com/v1",
"args": {},
"timeout": 120
},
"anthropic-messages": {
"base-url": "https://api.anthropic.com",
"args": {
"max_tokens": 1024
},
"timeout": 120
},
"moonshot-chat-completions": {
"base-url": "https://api.moonshot.cn/v1",
"args": {},
"timeout": 120
},
"deepseek-chat-completions": {
"base-url": "https://api.deepseek.com",
"args": {},
"timeout": 120
},
"ollama-chat": {
"base-url": "http://127.0.0.1:11434",
"args": {},
"timeout": 600
}
},
```
`requester`:设置请求器,以字典的形式设置若干个请求器,每个请求器的键为请求器名称,值为请求器配置。模型与请求器的对应关系,请查看元数据板块。实现请求器的方式,请查看插件编写教程。
目前支持的请求器有:
- `openai-chat-completions`:OpenAI 的 ChatCompletion 请求器
- `anthropic-messages`:Anthropic 请求器(Claude)
- `moonshot-chat-completions`:Moonshot 请求器(月之暗面)
- `deepseek-chat-completions`:Deepseek 请求器(深度求索)
- `ollama-chat`:Ollama 请求器,不需要密钥,直接请求目标地址的 Ollama 服务
`base-url`:设置接口地址。
`args`:请求时除了model之外的其他参数,以字典的形式设置。
`timeout`:设置请求超时时间,以秒为单位,对于耗时较长的模型,建议设置较大值
## 使用的模型 model
```json
"model": "gpt-3.5-turbo",
```
`model`:设置要使用的模型名称。通常来说直接填写模型名称即可,但如果要使用原生接口不是 ChatCompletion 但以 ChatCompletion 接口格式接入的模型,请在模型名称前方加一个 `OneAPI/` 前缀以进行区分。
简单来说可以认为是:现阶段非 OpenAI 的模型接入都需要在模型名称前方加一个 `OneAPI/` 前缀。
例如:
1. 通过 OneAPI 等中转服务接入了 OpenAI 的 `gpt-4` 模型,由于 `gpt-4` 也是使用 ChatCompletion 接口格式进行请求,则可以直接填入 `gpt-4`;
2. 通过 OneAPI 等中转服务接入了 Google 的 `gemini-pro` 模型,由于 `gemini-pro` 原生接口格式并非 ChatCompletion,因此需要填入 `OneAPI/gemini-pro`。
具体支持的模型列表和各个模型对应的请求器和密钥组,请查看元数据板块 llm-models.json 。
## 情景预设(人格) prompt
```json
"prompt-mode": "normal",
"prompt": {
"default": "如果用户之后想获取帮助,请你说”输入!help获取帮助“。"
}
```
`prompt-mode`:设置情景预设模式,值为`normal`(单预设模式)和`full-scenario`(完整历史对话模式)
`normal`时,使用下面的`prompt`,可设置多个
```json
"prompt": {
"default": "如果用户之后想获取帮助,请你说”输入!help获取帮助“。",
"help": "如果用户之后想获取帮助,请你说”输入!help获取帮助“。"
}
```
`normal` 模式也支持读取`data/prompts`目录下的文件内容作为单个 System Prompt,文件名即为`prompt`的名称。
在使用中通过`!default set <预设名>`指令将其设为默认(将<预设名>整体替换)
### full-scenario模式配置方法
把完整的历史对话以文件形式添加到`data/scenario/`目录下,参考`data/scenario/default.json`
```json
{
"prompt": [
{
"role": "system",
"content": "You are a helpful assistant. 如果我需要帮助,你要说“输入!help获得帮助”"
},
{
"role": "assistant",
"content": "好的,我是一个能干的AI助手。 如果你需要帮助,我会说“输入!help获得帮助”"
}
]
}
```
`role` 为消息的角色,可以是`user`(用户)、`assistant`(AI)、`system`(系统)
`content` 为字符串,表示消息内容。
在使用中通过`!default set <文件名>`指令将其设为默认(将<预设名>整体替换)
> 社区资源:[人格预设合集1000+(测试版,不确保可用性)](../deploy/README.md#人格预设合集)
+91
View File
@@ -0,0 +1,91 @@
# system.json 配置项
:::info 目录
[[toc]]
:::
`data/config/system.json` 中配置系统设置,如管理员、网络代理、是否上报遥测数据供开发者分析、日志等级、会话消息处理并发数、流水线消息处理并发数、帮助消息等
## 管理员会话 admin-sessions
```json
"admin-sessions": [],
```
`admin-sessions`:设置管理员会话,格式为 {type}_{id},type 为 "group" 或 "person",如:
```json
"admin-sessions": ["group_123456789", "person_123456789"],
```
## 网络代理 network-proxies
```json
"network-proxies": {
"http": null,
"https": null
},
```
`network-proxies`:设置网络代理,为正向代理,http和https都要填,例如
```json
"network-proxies": {
"http": "http://127.0.0.1:7890",
"https": "http://127.0.0.1:7890"
},
```
正向代理也可以用环境变量设置:http_proxy 和 https_proxy
## 上报遥测数据 report-usage
```json
"report-usage": true,
```
`report-usage`:是否上报遥测数据供开发者分析,不包含敏感信息
## 日志等级 logging-level
```json
"logging-level": "info",
```
`logging-level`:暂时没用,现在只能通过环境变量 DEBUG=true 来设置调试日志输出
## 会话消息处理并发数 session-concurrency
```json
"session-concurrency": {
"default": 1
},
```
`session-concurrency`:会话消息处理并发数,粒度是每个会话,session格式为 {type}_{id},未指定的session使用 default 配置
## 流水线消息处理并发数 pipeline-concurrency
```json
"pipeline-concurrency": 20,
```
`pipeline-concurrency`:流水线消息处理并发数,粒度是整个程序,目前使用 FCFS 算法调度各个请求。
## 遥测服务器url qcg-center-url
QChatGPT 运行期间推送遥测数据的目标地址,默认为官方地址,若您自己部署了[qcg-center](https://github.com/RockChinQ/qcg-center),可以改为你的地址。
```json
"qcg-center-url": "https://api.qchatgpt.rockchin.top/api/v2"
```
## 帮助消息 help-message
```json
"help-message": "QChatGPT - 😎高稳定性、🧩支持插件、🦄多模态的 ChatGPT QQ 机器人🤖\n链接:https://q.rkcn.top"
```
`help-message`:帮助消息,用户发送 !help 命令时的输出