mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-11-01 05:15:22 +08:00
doc: 更换VitePress后的初步内容
This commit is contained in:
@@ -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": [
|
||||
"!",
|
||||
"!",
|
||||
"#"
|
||||
]
|
||||
```
|
||||
@@ -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`为最多保留多少回合的历史消息
|
||||
@@ -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接口出现异常时,会返回一个错误的提示给用户。而把报错详情输出在控制台。
|
||||
@@ -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#人格预设合集)
|
||||
@@ -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 命令时的输出
|
||||
Reference in New Issue
Block a user