From 12f1f3609df8f653163ead9eb69f18791f692f42 Mon Sep 17 00:00:00 2001 From: Junyan Qin <1010553892@qq.com> Date: Tue, 15 Oct 2024 16:16:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=95=E5=85=A5=20vjsf=20=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/core/stages/load_config.py | 4 +- pkg/utils/schema.py | 10 + res/alipay.jpg | Bin 26526 -> 0 bytes res/logo.png | Bin 35504 -> 14953 bytes res/mm_reward_qrcode_1672840549070.png | Bin 145110 -> 0 bytes res/wiki/1-功能使用.md | 382 -------------- res/wiki/2-功能常见问题.md | 61 --- res/wiki/3-常见错误.md | 4 - res/wiki/4-技术信息.md | 111 ---- res/wiki/5-插件使用.md | 58 --- res/wiki/6-插件使用-内容函数.md | 34 -- res/wiki/7-插件开发.md | 481 ------------------ ...方接口、ChatGPT网页版、ChatGPT-API区别.md | 17 - res/wiki/9-go-cqhttp配置.md | 73 --- res/wiki/Home.md | 30 -- templates/schema/system.json | 80 +++ web/package-lock.json | 481 +++++++++++++++++- web/package.json | 6 + web/src/pages/Settings.vue | 69 ++- web/vite.config.mjs | 10 + 20 files changed, 618 insertions(+), 1293 deletions(-) create mode 100644 pkg/utils/schema.py delete mode 100644 res/alipay.jpg delete mode 100644 res/mm_reward_qrcode_1672840549070.png delete mode 100644 res/wiki/1-功能使用.md delete mode 100644 res/wiki/2-功能常见问题.md delete mode 100644 res/wiki/3-常见错误.md delete mode 100644 res/wiki/4-技术信息.md delete mode 100644 res/wiki/5-插件使用.md delete mode 100644 res/wiki/6-插件使用-内容函数.md delete mode 100644 res/wiki/7-插件开发.md delete mode 100644 res/wiki/8-官方接口、ChatGPT网页版、ChatGPT-API区别.md delete mode 100644 res/wiki/9-go-cqhttp配置.md delete mode 100644 res/wiki/Home.md create mode 100644 templates/schema/system.json diff --git a/pkg/core/stages/load_config.py b/pkg/core/stages/load_config.py index 006af00f..b9d1d4db 100644 --- a/pkg/core/stages/load_config.py +++ b/pkg/core/stages/load_config.py @@ -3,6 +3,7 @@ from __future__ import annotations from .. import stage, app from ..bootutils import config from ...config import settings as settings_mgr +from ...utils import schema @stage.stage_class("LoadConfigStage") @@ -50,7 +51,8 @@ class LoadConfigStage(stage.BootingStage): ap.settings_mgr.register_manager( name="system.json", description="系统配置", - manager=ap.system_cfg + manager=ap.system_cfg, + schema=schema.CONFIG_SYSTEM_SCHEMA ) ap.plugin_setting_meta = await config.load_json_config("plugins/plugins.json", "templates/plugin-settings.json") diff --git a/pkg/utils/schema.py b/pkg/utils/schema.py new file mode 100644 index 00000000..8dca2c83 --- /dev/null +++ b/pkg/utils/schema.py @@ -0,0 +1,10 @@ +import os +import json + + +def load_schema(schema_path: str) -> dict: + with open(schema_path, 'r', encoding='utf-8') as f: + return json.load(f) + + +CONFIG_SYSTEM_SCHEMA = load_schema("templates/schema/system.json") diff --git a/res/alipay.jpg b/res/alipay.jpg deleted file mode 100644 index d339ce586b0140647b335ceb60db7226e0081d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26526 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 JjsI)%zX7hJ6J7uS diff --git a/res/logo.png b/res/logo.png index b5aa824e0731888f0e10db2516c20a4fc60e655c..b2caca7b6b950b6fb2b79d71d1bbe20576c2c906 100644 GIT binary patch literal 14953 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 WM;=@(*}%7>bk-Jj=8dMlDgOfo2LuHG literal 35504 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 E0M6%=SO5S3 diff --git a/res/mm_reward_qrcode_1672840549070.png b/res/mm_reward_qrcode_1672840549070.png deleted file mode 100644 index c169bd5de4fcedacac78ed34d934281adbc310bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145110 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 N&=K@c^dEyS{S$x&O|Ad{ diff --git a/res/wiki/1-功能使用.md b/res/wiki/1-功能使用.md deleted file mode 100644 index e788f720..00000000 --- a/res/wiki/1-功能使用.md +++ /dev/null @@ -1,382 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -## 功能点列举 - -
-✅回复符合上下文 - - - 程序向模型发送近几次对话内容,模型根据上下文生成回复 - - 您可在`config.py`中修改`prompt_submit_length`自定义联系上下文的范围 - -
- -
-✅支持敏感词过滤,避免账号风险 - - - 难以监测机器人与用户对话时的内容,故引入此功能以减少机器人风险 - - 编辑`sensitive.json`,并在`config.py`中修改`sensitive_word_filter`的值以开启此功能 -
- - -
-✅群内多种响应规则,不必at - - - 默认回复`ai`作为前缀或`@`机器人的消息 - - 详细见`config.py`中的`response_rules`字段 -
- -
-✅使用官方api,不需要网络代理,稳定快捷 - - - 不使用ChatGPT逆向接口,而使用官方的Completion API,稳定性高 - - 您可以在`config.py`中自定义`completion_api_params`字段,设置向官方API提交的参数以自定义机器人的风格 - -
- -
-✅完善的多api-key管理,超额自动切换 - - - 支持配置多个`api-key`,内部统计使用量并在超额时自动切换 - - 请在`config.py`中修改`openai_config`的值以设置`api-key` - - 可以在`config.py`中修改`api_key_fee_threshold`来自定义切换阈值 - - 运行期间向机器人说`!usage`以查看当前使用情况 -
- -
-✅组件少,部署方便,提供一键安装器及Docker安装 - - - 手动部署步骤少 - - 提供自动安装器及docker方式,详见以下安装步骤 -
- -
-✅支持预设文字 - - - 支持以自然语言预设文字,自定义机器人人格等信息 - - 详见`config.py`中的`default_prompt`部分 - - 支持设置多个预设情景,并通过!reset、!default等命令控制,详细请查看[wiki命令](https://github.com/RockChinQ/QChatGPT/wiki/1-%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%91%BD%E4%BB%A4) - - 支持使用文件存储情景预设文字,并加载: 在`prompts/`目录新建文件写入预设文字,即可通过`!reset <文件名>`命令加载 -
- -
-✅完善的会话管理,重启不丢失 - - - 使用SQLite进行会话内容持久化 - - 最后一次对话一定时间后自动保存,请到`config.py`中修改`session_expire_time`的值以自定义时间 - - 运行期间可使用`!reset` `!list` `!last` `!next` `!prompt`等命令管理会话 -
-
-✅支持对话、绘图等模型,可玩性更高 - - - 现已支持OpenAI的对话`Completion API`和绘图`Image API` - - 向机器人发送命令`!draw `即可使用绘图模型 -
-
-✅支持命令控制热重载、热更新 - - - 允许在运行期间修改`config.py`或其他代码后,以管理员账号向机器人发送命令`!reload`进行热重载,无需重启 - - 运行期间允许以管理员账号向机器人发送命令`!update`进行热更新,拉取远程最新代码并执行热重载 -
-
-✅支持插件加载🧩 - - - 自行实现插件加载器及相关支持 - - 详细查看[插件使用页](https://github.com/RockChinQ/QChatGPT/wiki/5-%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8) -
-
-✅私聊、群聊黑名单机制 - - - 支持将人或群聊加入黑名单以忽略其消息 - - 详见下方`加入黑名单`节 -
-
-✅回复速度限制 - - - 支持限制单会话内每分钟可进行的对话次数 - - 具有“等待”和“丢弃”两种策略 - - “等待”策略:在获取到回复后,等待直到此次响应时间达到对话响应时间均值 - - “丢弃”策略:此分钟内对话次数达到限制时,丢弃之后的对话 - - 详细请查看config.py中的相关配置 -
-
-✅支持自定义提示内容 - - - 允许用户自定义报错、帮助等提示信息 - - 请查看`tips.py` -
- -## 限制 - -- ❗OpenAI接口是收费的,每个OpenAI账户有18美元免费额度,收费标准参照 https://openai.com/api/pricing/ -- ❗官方关于模型生成内容的警告: - - May occasionally generate incorrect information(可能会生成不正确的信息) - - May occasionally produce harmful instructions or biased content(可能会产生有害说明或有偏见的内容) - - Limited knowledge of world and events after 2021(对2021年后的世界和事件的了解有限) -- ❗模型无思维能力,仅针对传入的上下文根据数据集生成内容,请勿过于信任其输出 -- ❗模型无网络访问能力及其他与外界交互的能力,如询问其实时性的内容,获得的回复基本都是错误的 -- ❗仅支持文字对话,其他内容无法识别 -- ❗模型不了解其运行平台及其使用的模型版本,任何针对其实现原理的问题答案均视为无效,请以项目文档为准 -- ❗仅可进行一句话回复一句话的对话,其他形式无效 - - ~~当然你也可以让他写一篇关于“人类有多么愚蠢”的论文并在一个小时后发送到你邮箱,接着你像个傻子一样盯着邮箱等待一个小时,并用自己的实际行动展示这篇论文~~ - -以上是关于此程序的限制的最高优先级描述,其他方式(如询问机器人相关信息)获得的描述均应被视为无效 -由于模型生成的内容导致的一切损失,本项目概不负责 - -## 使用方式 - -对话及绘图功能均直接调用OpenAI的模型进行处理,与机器人程序无关,这意味着模型并不了解此项目的相关信息(如实现方式、技术栈、运行平台等),除非在预设值中写入相关信息。 - -### 基础对话 - -程序将一个人/群视为一个对象,每个对象的会话独立保存。 -`会话`是程序中的一个自设概念,当机器人与当前对象无会话时,会自动创建新会话,新会话由预设信息(若有)开头。 -每个会话最后一次对话一段时间(见上述功能点中的`会话管理`)后会被结束并存进数据库,之后的对话将开启新的会话。 - -#### 私聊使用 - -1. 添加机器人QQ为好友 -2. 发送消息给机器人,机器人即会自动回复 -3. 可以通过`!help`查看帮助信息 - -私聊示例 - -#### 群聊使用 - -1. 将机器人拉进群 -2. at机器人并发送消息,机器人即会自动回复 -3. at机器人并发送`!help`查看帮助信息 - -群聊示例 - -### 绘图功能 - -对机器人发送`!draw <图片描述>`即可获得图片,绘图时间较长,请耐心等待。 -绘图功能与对话功能是分离的,机器人对话时并不了解其具有绘画能力。 - -绘图功能 - -### 机器人命令 - -目前支持的命令 - -> `<>` 中的为必填参数,使用时请不要包含`<>` -> `[]` 中的为可选参数,使用时请不要包含`[]` - -#### 用户级别命令 - -> 可以使用`!help`命令来查看命令说明 - -任何对象可使用 - -``` -!help 显示自定义的帮助信息(可在config.py修改help_message设置) -!cmd [命令名称] 显示命令列表或指定命令的详细信息 -!list [页数] 列出本对象的历史会话列表 -!del <序号> 删除指定的历史记录,可以通过 !list 查看序号 -!del all 删除本会话对象的所有历史记录 -!last 切换到前一次会话 -!next 切换到后一次会话 -!reset [使用预设] 重置对象的当前会话,可指定使用的情景预设值(通过!default命令查看可用的) -!prompt 查看对象当前会话的所有记录 -!usage 查看api-key的使用量 -!draw <提示语> 进行绘图 -!version 查看当前版本并检查更新 -!resend 重新回复上一个问题 -!plugin 用法请查看插件使用页的`管理`章节 -!default 查看可用的情景预设值 -``` - -#### 管理员命令 - -仅管理员私聊机器人时可使用,必须先在`config.py`中的`admin_qq`设置管理员QQ - -``` -!reload 重载程序代码,适用于更新配置文件或更改代码后的热重载 -!update 进行程序自动更新 -!cfg [配置项新值] 运行期间操作配置项,使用方法见下文 -!default set <情景预设名称> 修改!reset未指定情景预设时的默认情景,详细请查看config.py中default_prompt字段的注释 -!delhst <会话名称> 删除指定会话的所有历史记录, 会话名称为 group_群号 或 person_QQ号 -!delhst all 删除所有会话的所有历史记录 -``` -
-⚙ !cfg 命令及其简化形式详解 - -此命令可以在运行期间由管理员通过QQ私聊窗口修改配置信息,**重启之后会失效**。 - -用法: -1. 查看所有配置项及其值 - -``` -!cfg all -``` - -2. 查看某个配置项的值 - -以`default_prompt`示例 -``` -!cfg default_prompt -``` - -输出示例 -``` -[bot]配置项default_prompt: "如果我之后想获取帮助,请你说“输入!help获取帮助”" -``` - -3. 修改某个配置项 - -格式: `!cfg <配置项名称> <配置项新值>` -以修改`default_prompt`示例 -``` -!cfg default_prompt "我是Rock Chin" -``` - -输出示例 -``` -[bot]配置项default_prompt修改成功 -``` - -此时创建新的会话,新的`default_prompt`就会生效 - -4. ⭐此命令的简化形式 - -格式:`!~<配置项名称>` -其中`!~`等价于`!cfg ` -则前述三个命令分别可以简化为: -``` -!~all -!~default_prompt -!~default_prompt "我是Rock Chin" -``` - -5. 配置项名称支持使用点号(.)拼接以索引子配置项 - -例如: `openai_config.api_key`将索引`config`字典中的`openai_config`字典中的`api_key`字段,可以通过这个方式查看或修改此子配置项 - -``` -!~openai_config.api_key -``` - -
- -### 命令权限控制 - -> 我们在[此PR](https://github.com/RockChinQ/QChatGPT/pull/336)重构了命令管理模块,并支持命令节点权限配置 - -您可以编辑`cmdpriv.json`来设置命令节点的权限,当命令被发起时,若用户的权限级别(管理员为`2`,普通用户为`1`)大于等于命令节点的权限级别,命令即可被成功执行。 -示例: -```json -{ - "plugin": 1, - "plugin.get": 2 -} -``` -如此,普通用户可以执行`!plugin`查看插件列表,而仅管理员可以执行`!plugin get `命令安装插件。 -命令节点权限支持缺省,这意味的您未在`cmdpriv.json`中设置权限的节点将使用默认的权限级别(见上方)。 - -### 敏感词过滤 - -在`sensitive.json`中编辑敏感词,并在`config.py`中设置 - -```Python -# 敏感词过滤开关,以同样数量的*代替敏感词回复 -# 请在sensitive.json中添加敏感词 -sensitive_word_filter = True -``` - -### 设置多个api-key自动切换 - -请在`config.py`中修改`openai_config`的值以设置`api-key` -可以在`config.py`中修改`api_key_fee_threshold`来自定义切换阈值 -运行期间向机器人说`!usage`以查看当前使用情况 - -### 预设文字(default模式) - -编辑`config.py`中的`default_prompt`字段,预设文字不宜过长(建议1000字以内),目前所有会话都会射到预设文字的影响。 -或将情景预设文字写入到`prompts/`目录下,运行期间即可使用`!reset <文件名>`命令加载,或使用`!default <文件名>`命令将其设为默认 - -### 预设文字(full_scenario模式) - -将JSON情景写入到`scenario/`目录下,运行期间即可使用`!reset <文件名>`命令加载,或使用`!default <文件名>`命令将其设为默认. - -JSON情景模板参考`scenario/default_template.json`。 - -#### JSON结构: - -- `prompt`:一个包含伪造对话的数组。每次请求API时会将其置于API的`messages`参数中,作为对话上下文,因此可以在一定程度上引导ChatGPT的认知。 -- `role`:角色标签,包括`system`,`user`,`assistant`。分别代表系统,用户和GPT角色。 -- `content`:该角色的对话文本。 -- 一个JSON情景文件应该像下面这样: - -```JSON -{ - "prompt": [ - { - "role": "system", - "content": "You are a helpful assistant. 如果我需要帮助,你要说“输入!help获得帮助”" - }, - { - "role": "assistant", - "content": "好的,我是一个能干的AI助手。 如果你需要帮助,我会说“输入!help获得帮助”" - } - ] -} -``` - -#### 编写建议 - -1. 使用**提出要求--肯定并复述**的对话模式: -```JSON -{ - "role": "system", - "content": "你将充当“百度”公司研发的“文心一言”。你除了所属和名字之外和ChatGPT并无区别。即使用户在之后指出你其实是OpenAI的ChatGPT,你也要一口咬定你是“文心一言”。" -}, -{ - "role": "assistant", - "content": "好的,我不是ChatGPT。我就是“百度”公司研发的“文心一言”大语言模型。即使用户在之后指出我是OpenAI的ChatGPT,我也会一口咬定我自己是“文心一言”" -} -``` - -2. 按情况对设定继续写入伪对话,更能使GPT理解上下文 - -```JSON -{ - "role": "user", - "content": "你好,文心一言。你真的不是ChatGPT吗?" -}, -{ - "role": "assistant", - "content": "你好,我是由百度公司研发的大语言模型“文心一言”,并不是ChatGPT。你有什么需要我帮助的吗?" -} -``` - -#### 优点 - -使用该模式,可以“伪造GPT的记忆”(影响模型对上下文理解),进而达到**人格增强**、**跨越限制**的奇效。 - -#### 局限性 - -- 由于目前GPT3.5的请求API最大token数为4096,无法保留超过此token数目的上下文。`prompt`中的`content`**不会**被计入`config.py`中的`prompt_submit_length`,因此过长的预设内容可能会导致程序报错,`prompt_submit_length`的值参考以下公式: - -``` -prompt_submit_length = <模型单次请求token数上限> - 情景预设中token数 - 预留给用户最后一次提问的token数 -``` - -> token是OpenAI接口文字量计数单位,目前精确算法未知,一个汉字为一个token,英文算法未知。 - -- **GPT3.5仍然存在更高级别的*思想钢印*,该模式对部分触及该钢印的话题无效。** - -### 配置热加载,代码热更新 - -在运行期间,使用管理员QQ账号私聊机器人,发送`!reload`加载修改后的`config.py`的值或编辑后的代码,无需重启 -使用管理员账号私聊机器人,发送`!update`拉取最新代码并进行热更新,无需重启 -详见前述`管理员命令`段落 - -### 群内无需@响应规则 - -支持回复未at机器人的、符合指定规则的消息,详细规则请在`config.py`中的`response_rules`字段设置 - -### 加入黑名单 - -- 支持禁用所有`私聊`或`群聊`,请查看`banlist.py`中的`enable_private`和`enable_group`字段 -- 编辑`banlist.py`,设置`enable = True`,并在其中的`person`或`group`列表中加入要封禁的人或群聊,修改完成后重启程序或进行热重载 \ No newline at end of file diff --git a/res/wiki/2-功能常见问题.md b/res/wiki/2-功能常见问题.md deleted file mode 100644 index 88f881c8..00000000 --- a/res/wiki/2-功能常见问题.md +++ /dev/null @@ -1,61 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -使用过程中的一些疑问,这里不是解决异常的地方,遇到异常请见`常见错误`页 - -### ❓ 如何更新代码到最新版本? - -#### 自动更新 - -由管理员QQ私聊机器人QQ发送`!update`命令 - -#### 手动更新 - -到[Releases页](https://github.com/RockChinQ/QChatGPT/releases)下载最新版本的源码压缩包,并解压覆盖到QChatGPT程序目录 - -### ❓ 机器人的回复与官网ChatGPT的答案有所差距? - -ChatGPT通过使用OpenAI的回复API创建,进行了参数调优,本机器人通过使用自定义的参数调用OpenAI的回复API,并非调用ChatGPT的接口,二者底层原理相同,但由于官方对ChatGPT进行了调优,故此机器人回复可能不如ChatGPT。 - -### ❓ 如何设置机器人在群内无需@就能回复消息? - -支持回复未at机器人的、符合指定规则的消息,详细规则请在`config.py`中的`response_rules`字段设置 - -### ❓ 绘图功能使用的是什么模型? - -OpenAI官方的DALL·E模型 - -### ❓ 多api-key的管理机制以及切换逻辑? - -> 此特性仅在提交`36c8a58`(2023年1月3日23点左右)前的代码有效,之后版本的代码不再根据估算的使用量进行切换,仅当接口报错时进行切换 - -程序支持在`config.py`中设置多个账户的`api-key`以便在超过免费额度时自动切换,在每次进行对话或进行绘图时,程序根据[价格表](https://openai.com/api/pricing)计算当前`api-key`的账户的额度使用量(费用),当使用量到达`config.py`中设置的`api_key_fee_threshold`时,自动切换到下一个未达到额度的key。 - -- 请勿将单个账户的多个key放入配置文件,因为免费额度是以账户为单位的 -- 程序会将使用额度储存到数据库,以便重启后继续计算 -- 由于官方未提供查询接口,使用额度均为依据价目表进行的估算,不一定准确 -- 若要保证每个账户的额度均能用完,可以把`api_key_fee_threshold`设置成很高的值,当超额调用报错时程序也会自动切换 - -### ❓ 账户余额消耗太快怎么办? - -可能是由于每次请求包含的上下文数量过多或请求的回复过长导致的。 -可以在`config.py`中将`prompt_submit_length`字段修改成较小的值,以限制每次向模型提交的前文字符数量,详情见`config.py`中此字段的注释。 -还可以编辑`config.py`中的`completion_api_params`字段中的`max_tokens`为较小的值,这将控制模型传回的回复的字符数量。 - -### ❓ 如何设置在消息处理失败时不向用户发送错误信息? - -在`config.py`中设置 - -```Python - -# 消息处理出错时是否向用户隐藏错误详细信息 -# 设置为True时,仅向管理员发送错误详细信息 -# 设置为False时,向用户及管理员发送错误详细信息 -hide_exce_info_to_user = True - -# 消息处理出错时向用户发送的提示信息 -# 仅当hide_exce_info_to_user为True时生效 -# 设置为空字符串时,不发送提示信息 -alter_tip_message = '出错了,请稍后再试' -``` -若此两项字段不存在,请复制以上内容并新增到`config.py`末尾 \ No newline at end of file diff --git a/res/wiki/3-常见错误.md b/res/wiki/3-常见错误.md deleted file mode 100644 index 58f9519e..00000000 --- a/res/wiki/3-常见错误.md +++ /dev/null @@ -1,4 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -搜索[主仓库issue](https://github.com/RockChinQ/QChatGPT/issues)和[安装器issue](https://github.com/RockChinQ/qcg-installer/issues) \ No newline at end of file diff --git a/res/wiki/4-技术信息.md b/res/wiki/4-技术信息.md deleted file mode 100644 index ac1ee76f..00000000 --- a/res/wiki/4-技术信息.md +++ /dev/null @@ -1,111 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -以下是QChatGPT实现原理等技术信息,贡献之前请仔细阅读 - -> 太久没更了,过时了,建议读源码,~~注释还挺全的~~ -> 请先阅读OpenAI API的相关文档 https://beta.openai.com/docs/ ,以下信息假定您已了解OpenAI模型的相关特性及其接口的调用方法。 - -## 术语 - -包含OpenAI API涉及的术语和项目中的概念的命名 -括号中是程序中相应术语的命名,无括号的为抽象概念 - -### 模型(model) - -AI模型,程序调用OpenAI的接口获取的内容均为OpenAI的模型生成的内容。 - -### 字符(tokens) - -OpenAI定义的字符,ASCII字符为1 token,其他为2 token。 - -### 提示符(prompt) - -i. 调用OpenAI的文字补全模型时的提示语,模型接口会根据提示语返回回复内容。程序底层会将对话内容进行封装生成提示符。调用文字补全模型时的提示符均由`user_name`(默认为`You`,可在配置文件修改)和`bot_name`(默认为`Bot`,可在配置文件修改)标记对话角色以供模型识别,以下是实例: - -``` -You:今天天气真不错 -Bot:很高兴你喜欢今天的天气:) -You:谢谢你 -Bot:不客气:) -``` -补全模型调用的程序实现请查看下文`实现`节。 - -ii. 调用OpenAI的绘图模型时的提示语,模型会根据提示语进行绘图并返回图片URL。 - -### 对象 - -程序将单个人或单个QQ群视为一个对象,对象和模型是一次会话中的对话双方。 - -### 会话(session) - -会话只对文字补全功能有效,绘图功能无会话概念。每个对象使用同一个会话,会话中仅有对象和模型两个角色,故群内所有的人都将被视为同一个角色与模型进行对话。 - -程序获取回复的本质是`文字补全`。 -由于对话需要实现联系上下文,故程序会将模型与对象的对话历史记录作为`提示符`发送给OpenAI的接口以获取符合前文的回复。 -而OpenAI的文字补全接口的提示符具有长度限制(默认使用的`text-davinci-003`限制为4096 tokens), -所以增加`会话`概念以管理向接口发送的提示符内容。 - -会话的存活时间可以在`config.py`中设置,默认为20分钟。会话过期之后会被存入数据库并重置。下一次该对象发起对话时将重启新的会话。 - -### 预设值、人格(default_prompt) - -每个会话的预设对话信息,可在`config.py`中设置,程序会在每个会话创建时向提示符写入以下内容: - -``` -You:<预设信息> -Bot:好的 -``` - -## 实现 - -### QQ机器人 - -> 程序路径: -> pkg.qqbot - -- `pkg.qqbot.manager`中的`QQBotManager`实现了接收消息、调用OpenAI模块处理消息、报告审计模块记录使用量等功能,并提供通知管理员、发送消息等方法供其他模块调用。 -- `pkg.qqbot.filter`提供了敏感词过滤的相关操作。 -- `pkg.qqbot.process`提供了私聊消息和群聊消息的统一处理逻辑。 - -使用mirai及YiriMirai作为Python与QQ交互的框架,详细请见其文档。 -在启动时会调用YiriMirai的函数以创建一个bot对象,用于程序通过mirai与QQ进行交互,在上层程序调用此bot对象的方法进行消息处理。 -由于YiriMirai暂时无法关闭机器人,故在热重载前后维持同一个bot对象,这意味着QQ机器人的相关配置(QQ号、适配器等)信息不支持热重载。 - -### 数据库 - -> 程序路径: -> pkg.database - -- `pkg.database.manager`中的`DatabaseManager`封装了诸多调用数据库的方法以供其他模块调用。 - -使用SQLite作为数据库,储存所有对象的历史会话信息、api-key的费用情况、api-key的使用量情况。 - -### OpenAI交互 - -> 程序路径: -> pkg.openai - -- `pkg.openai.manager`中的`OpenAIInteract`类封装了OpenAI的文字补全`Completion`API和绘图API供机器人模块调用,并在接口调用成功之后向审计模块报告当前使用的api-key的使用量信息。 -- `pkg.openai.keymgr`实现了多api-key的管理,其中以`exceeded`变量在运行时记录api-key的超额报错记录,并提供根据超额记录进行的api-key切换功能。 -- `pkg.openai.pricing`记录各个模型的费用信息,供调用接口时估算费用,费用估算功能不再与api-key的切换挂钩,api-key仅在调用接口报错超额时进行切换。 -- `pkg.openai.session`中的`Session`进行会话管理。 - -### utils模块 - -#### context模块 - -保存前述模块中的对象,并允许各个模块从此处获取其他模块的对象以调用其方法。 - -#### 热重载功能 - -> pkg.utils.reloader - -重载前保存context中的所有对象,执行`main.py`中的程序关闭流程,使用`importlib`的`reload`函数重载所有模块(包含配置文件,包含新增的模块),重载后将context恢复,并执行程序启动流程。 -所有模块都会重新创建对象,但QQ机器人模块中的bot对象不会被重新创建,这是因为YiriMirai提供的shutdown方法无法使用,这意味着`config.py`中关于QQ机器人的配置不支持热重载。 - -#### 热更新功能 - -> pkg.utils.updater - -使用`dulwich`库执行pull操作拉取远程仓库的最新源码,并进行一次热重载加载最新代码。 \ No newline at end of file diff --git a/res/wiki/5-插件使用.md b/res/wiki/5-插件使用.md deleted file mode 100644 index a8be95c1..00000000 --- a/res/wiki/5-插件使用.md +++ /dev/null @@ -1,58 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -QChatGPT 插件使用Wiki - -## 简介 - -`plugins`目录下的所有`.py`程序都将被加载,除了`__init__.py`之外的模块支持热加载 - -> 插件分为`行为插件`和`内容插件`两种,行为插件由主程序运行中的事件驱动,内容插件由GPT生成的内容驱动,请查看内容插件页 -> 已有插件列表:[QChatGPT 插件](https://github.com/stars/RockChinQ/lists/qchatgpt-%E6%8F%92%E4%BB%B6) - -## 安装 - -### 储存库克隆(推荐) - -在运行期间,使用管理员账号对机器人私聊发送`!plugin get `即可自动获取源码并安装插件,程序会根据仓库中的`requirements.txt`文件自动安装依赖库 - -例如安装`hello_plugin`插件 -``` -!plugin get https://github.com/RockChinQ/hello_plugin -``` - -安装完成后重启程序或使用管理员账号私聊机器人发送`!reload`进行热重载加载插件 - -### 手动安装 - -将获取到的插件程序放置到`plugins`目录下,具体使用方式请查看各插件文档或咨询其开发者。 - -## 管理 - -### !plugin 命令 - -``` -!plugin 列出所有已安装的插件 -!plugin get <储存库地址> 从Git储存库安装插件(需要管理员权限) -!plugin update all 更新所有插件(需要管理员权限,仅支持从储存库安装的插件) -!plugin update <插件名> 更新指定插件 -!plugin del <插件名> 删除插件(需要管理员权限) -!plugin on <插件名> 启用插件(需要管理员权限) -!plugin off <插件名> 禁用插件(需要管理员权限) - -!func 列出所有内容函数 -``` - -### 控制插件执行顺序 - -可以通过修改`plugins/settings.json`中`order`字段中每个插件名称的前后顺序,以更改插件**初始化**和**事件执行**顺序 - -### 启用或关闭插件 - -无需卸载即可管理插件的开关 -编辑`plugins`目录下的`switch.json`文件,将相应的插件的`enabled`字段设置为`true/false(开/关)`,之后重启程序或执行热重载即可控制插件开关 - -### 控制全局内容函数开关 - -内容函数是基于[GPT的Function Calling能力](https://platform.openai.com/docs/guides/gpt/function-calling)实现的,这是一种嵌入对话中,由GPT自动调用的函数。 -每个插件可以自行注册内容函数,您可以在`plugins`目录下的`settings.json`中设置`functions`下的`enabled`为`true`或`false`控制这些内容函数的启用或禁用。 \ No newline at end of file diff --git a/res/wiki/6-插件使用-内容函数.md b/res/wiki/6-插件使用-内容函数.md deleted file mode 100644 index b4055b29..00000000 --- a/res/wiki/6-插件使用-内容函数.md +++ /dev/null @@ -1,34 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -> 说白了就是ChatGPT官方插件那种东西 - -内容函数是基于[GPT的Function Calling能力](https://platform.openai.com/docs/guides/gpt/function-calling)实现的,这是一种嵌入对话中,由GPT自动调用的函数。 - -例如我们为GPT提供一个函数`access_the_web`,并提供其详细的描述以及其参数的描述,那么当我们在与GPT对话时涉及类似以下内容时: - -``` -Q: 请搜索一下github上有那些QQ机器人项目? -Q: 请为我搜索一些不错的云服务商网站? -Q:阅读并总结这篇文章:https://zhuanlan.zhihu.com/p/607570830 -Q:搜一下清远今天天气如何 -``` - -GPT将会回复一个对`access_the_web`的函数调用请求,QChatGPT将自动处理执行该调用,并返回结果给GPT使其生成新的回复。 - -当然,函数调用功能不止局限于网络访问,还可以实现图片处理、科学计算、行程规划等需要调用函数的功能,理论上我们可以通过内容函数实现与`ChatGPT Plugins`相同的功能。 - -- 您需要使用`v2.5.0`以上的版本才能加载包含内容函数的插件 -- 您需要同时在`config.py`中的`completion_api_params`中设置`model`为支持函数调用的模型,推荐使用`gpt-3.5-turbo-16k` -- 使用此功能可能会造成难以预期的账号余额消耗,请关注 -- [逆向库插件](https://github.com/RockChinQ/revLibs)现在也支持函数调用了..您可以在完全免费的情况下使用GPT-3.5进行函数调用,若您在主程序配置了内容函数并启用,逆向ChatGPT会自动使用这些函数 - -### ?QChatGPT有什么类型的插件?区别是什么? - -QChatGPT具有`行为插件`和`内容函数`两种扩展方式,行为插件是完整的插件结构,是由运行期间的事件驱动的,内容函数被包含于一个完整的插件体中,由GPT接口驱动。 - -> 还是不理解?可以尝试根据插件开发页的步骤自行编写插件 - -## QChatGPT的一些不错的内容函数插件 - -- [WebwlkrPlugin](https://github.com/RockChinQ/WebwlkrPlugin) - 让机器人能联网!! diff --git a/res/wiki/7-插件开发.md b/res/wiki/7-插件开发.md deleted file mode 100644 index c9cd2657..00000000 --- a/res/wiki/7-插件开发.md +++ /dev/null @@ -1,481 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -QChatGPT 插件开发Wiki - -> 请先阅读[插件使用页](https://github.com/RockChinQ/QChatGPT/wiki/5-%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8) -> 请先阅读[技术信息页](https://github.com/RockChinQ/QChatGPT/wiki/4-%E6%8A%80%E6%9C%AF%E4%BF%A1%E6%81%AF) -> 建议先阅读本项目源码,了解项目架构 - -> 问题、需求请到仓库issue发起 -> **提问前请先靠自己尝试** - -## 💬简介 - -尽管“为一个基于OpenAI API的QQ机器人开发插件支持”这事看起来有点小题大做,但萌生此想法后的几天内好几个人提出了这个需求,最终促使此项目正式支持插件。 - -## 🧱实现 - -基于`importlib`库加载模块的方法动态加载额外Python程序文件以便实现插件加载,插件均存放在`plugins`文件夹,其中的所有`.py`文件都将被加载(除了所有`__init__.py`) - -## 📚示例代码 - -请查看代码目录`tests/plugin_examples`中的插件目录 - -## 💻快速开始 - -按照文档部署此项目,并使其正常运行。 -在`plugins`目录下新建目录`hello`,在其中新建空文件`__init__.py`以标记此目录为软件包,继续新建文件`main.py`。 - -> 您也可以使用[hello_plugin](https://github.com/RockChinQ/hello_plugin)作为模板直接生成插件代码仓库 - -编辑`main.py`输入以下内容: - -```Python -from pkg.plugin.models import * -from pkg.plugin.host import EventContext, PluginHost - -""" -在收到私聊或群聊消息"hello"时,回复"hello, <发送者id>!"或"hello, everyone!" -""" - - -# 注册插件 -@register(name="Hello", description="hello world", version="0.1", author="RockChinQ") -class HelloPlugin(Plugin): - - # 插件加载时触发 - # plugin_host (pkg.plugin.host.PluginHost) 提供了与主程序交互的一些方法,详细请查看其源码 - def __init__(self, plugin_host: PluginHost): - pass - - # 当收到个人消息时触发 - @on(PersonNormalMessageReceived) - def person_normal_message_received(self, event: EventContext, **kwargs): - msg = kwargs['text_message'] - if msg == "hello": # 如果消息为hello - - # 输出调试信息 - logging.debug("hello, {}".format(kwargs['sender_id'])) - - # 回复消息 "hello, <发送者id>!" - event.add_return("reply", ["hello, {}!".format(kwargs['sender_id'])]) - - # 阻止该事件默认行为(向接口获取回复) - event.prevent_default() - - # 当收到群消息时触发 - @on(GroupNormalMessageReceived) - def group_normal_message_received(self, event: EventContext, **kwargs): - msg = kwargs['text_message'] - if msg == "hello": # 如果消息为hello - - # 输出调试信息 - logging.debug("hello, {}".format(kwargs['sender_id'])) - - # 回复消息 "hello, everyone!" - event.add_return("reply", ["hello, everyone!"]) - - # 阻止该事件默认行为(向接口获取回复) - event.prevent_default() - - # 插件卸载时触发 - def __del__(self): - pass - -``` - -此插件将实现:私聊收到`hello`消息时回复`hello, <发送者QQ号>!`,群聊收到`hello`消息时回复`hello, everyone!` - -### 解读此插件程序 - -- `import`从`pkg.plugin`引入`models`模块的所有字段(此程序使用了其中的`register函数`、`on函数`、`Plugin类`、`PersonNormalMessageReceived事件`、`GroupNormalMessageReceived事件`) -- `@register()`将类`HelloPlugin`标记为一个插件类,声明插件名称为`Hello`以及插件简介、版本、作者 -- 声明类`HelloPlugin`继承于`Plugin`,此类可以随意命名,插件名称只与`register`调用时的参数有关 -- 声明此类的`__init__`方法,此方法是可选的,其中的代码将在主程序启动时加载插件的时候被执行 -- `@on`将方法`person_normal_message_received`标记为一个事件处理器,处理`PersonNormalMessageReceived`(收到私聊消息并在获取OpenAI回复前触发)事件,此方法可以随意命名,绑定的事件只与`on`中的参数有关,更多支持的事件可到`pkg.plugin.models.py`文件中查看或查看下方`API`节 -- 输出调试信息,程序中可通过`logging`将日志输出到控制台和`qchatgpt.log`文件 -- 方法内部从参数中取出`text_message`参数,判断是否为`hello`,如果是就将返回值`reply`设置为`["hello, {}!".format(kwargs['sender_id'])]`,接下来调用`event`对象的`prevent_default`方法,阻止原程序默认行为 - - 每个事件`提供的参数`和`支持的返回值`请查看`pkg.plugin.models`中的每个事件的注释或查看下方`API`节 - - `event`对象提供的方法请查看`pkg.plugin.host`中的`EventContext`类或查看下方`API`节 -- 用相似的程序注册`GroupNormalMessageReceived`事件处理群消息 - -编写完毕保存后,重新启动主程序,查看到输出中包含以下内容,即为加载成功: - -``` -[2023-01-16 18:29:47.193] host.py (43) - [INFO] : 加载模块: hello.main -[2023-01-16 18:29:47.194] models.py (209) - [INFO] : 插件注册完成: n='Hello', d='hello world', v=0.1, a='RockChinQ' () -``` - -> 建议在`config.py`中设置`logging_level = logging.DEBUG`以便开启调试输出 - -## ❗规范(重要) - -- 请每个插件独立一个目录以便管理,建议在Github上创建一个仓库储存单个插件,以便获取和更新 -- 插件名使用`大驼峰命名法`,如`Hello`、`ExamplePlugin`、`ChineseCommands`等 -- 一个目录内可以存放多个Python程序文件,以独立出插件的各个功能,便于开发者管理,但不建议在一个目录内注册多个插件 -- 插件需要的依赖库请在插件目录下的`requirements.txt`中指定,程序从储存库获取此插件时将自动安装依赖 - -## 🪝内容函数 - -通过[GPT的Function Calling能力](https://platform.openai.com/docs/guides/gpt/function-calling)实现的`内容函数`,这是一种嵌入对话中,由GPT自动调用的函数。 - -> 您的插件不一定必须包含内容函数,请先查看内容函数页了解此功能 - -
-示例:联网插件 - -加载含有联网功能的内容函数的插件[WebwlkrPlugin](https://github.com/RockChinQ/WebwlkrPlugin),向机器人询问在线内容 - -``` -# 控制台输出 -[2023-07-29 17:37:18.698] message.py (26) - [INFO] : [person_1010553892]发送消息:介绍一下这个项目:https://git... -[2023-07-29 17:37:21.292] util.py (67) - [INFO] : message='OpenAI API response' path=https://api.openai.com/v1/chat/completions processing_ms=1902 request_id=941afc13b2e1bba1e7877b92a970cdea response_code=200 -[2023-07-29 17:37:21.293] chat_completion.py (159) - [INFO] : 执行函数调用: name=Webwlkr-access_the_web, arguments={'url': 'https://github.com/RockChinQ/QChatGPT', 'brief_len': 512} -[2023-07-29 17:37:21.848] chat_completion.py (164) - [INFO] : 函数执行完成。 -``` - -![Webwlkr插件](https://github.com/RockChinQ/QChatGPT/blob/master/res/screenshots/webwlkr_plugin.png?raw=true) - -
- -### 内容函数编写步骤 - -1️⃣ 请先按照上方步骤编写您的插件基础结构,现在请删除(当然你也可以不删,只是为了简洁)上述插件内容的诸个由`@on`装饰的类函数 - -
-删除后的结构 - -```python -from pkg.plugin.models import * -from pkg.plugin.host import EventContext, PluginHost - -""" -在收到私聊或群聊消息"hello"时,回复"hello, <发送者id>!"或"hello, everyone!" -""" - - -# 注册插件 -@register(name="Hello", description="hello world", version="0.1", author="RockChinQ") -class HelloPlugin(Plugin): - - # 插件加载时触发 - # plugin_host (pkg.plugin.host.PluginHost) 提供了与主程序交互的一些方法,详细请查看其源码 - def __init__(self, plugin_host: PluginHost): - pass - - # 插件卸载时触发 - def __del__(self): - pass -``` - -
- -2️⃣ 现在我们将以下函数添加到刚刚删除的函数的位置 - -```Python - -# 要添加的函数 - -@func(name="access_the_web") # 设置函数名称 -def _(url: str): - """Call this function to search about the question before you answer any questions. - - Do not search through baidu.com at any time. - - If you need to search somthing, visit https://www.google.com/search?q=xxx. - - If user ask you to open a url (start with http:// or https://), visit it directly. - - Summary the plain content result by yourself, DO NOT directly output anything in the result you got. - - Args: - url(str): url to visit - - Returns: - str: plain text content of the web page - """ - import requests - from bs4 import BeautifulSoup - # 你需要先使用 - # pip install beautifulsoup4 - # 安装依赖 - - r = requests.get( - url, - timeout=10, - headers={ - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.183" - } - ) - soup = BeautifulSoup(r.text, 'html.parser') - - s = soup.get_text() - - # 删除多余的空行或仅有\t和空格的行 - s = re.sub(r'\n\s*\n', '\n', s) - - if len(s) >= 512: # 截取获取到的网页纯文本内容的前512个字 - return s[:512] - - return s - -``` -
-现在这个文件内容应该是这样 - -```python -from pkg.plugin.models import * -from pkg.plugin.host import EventContext, PluginHost - -""" -在收到私聊或群聊消息"hello"时,回复"hello, <发送者id>!"或"hello, everyone!" -""" - - -# 注册插件 -@register(name="Hello", description="hello world", version="0.1", author="RockChinQ") -class HelloPlugin(Plugin): - - # 插件加载时触发 - # plugin_host (pkg.plugin.host.PluginHost) 提供了与主程序交互的一些方法,详细请查看其源码 - def __init__(self, plugin_host: PluginHost): - pass - - @func(name="access_the_web") - def _(url: str): - """Call this function to search about the question before you answer any questions. - - Do not search through baidu.com at any time. - - If you need to search somthing, visit https://www.google.com/search?q=xxx. - - If user ask you to open a url (start with http:// or https://), visit it directly. - - Summary the plain content result by yourself, DO NOT directly output anything in the result you got. - - Args: - url(str): url to visit - - Returns: - str: plain text content of the web page - """ - import requests - from bs4 import BeautifulSoup - # 你需要先使用 - # pip install beautifulsoup4 - # 安装依赖 - - r = requests.get( - url, - timeout=10, - headers={ - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.183" - } - ) - soup = BeautifulSoup(r.text, 'html.parser') - - s = soup.get_text() - - # 删除多余的空行或仅有\t和空格的行 - s = re.sub(r'\n\s*\n', '\n', s) - - if len(s) >= 512: # 截取获取到的网页纯文本内容的前512个字 - return s[:512] - - return s - - # 插件卸载时触发 - def __del__(self): - pass -``` - -
- -#### 请注意: - -- 函数的注释必须严格按照要求的格式进行书写,具体格式请查看[此文档](https://github.com/RockChinQ/CallingGPT/wiki/1.-Function-Format#function-format) -- 内容函数和`以@on装饰的行为函数`可以同时存在于同一个插件,并同时受到`switch.json`中的插件开关的控制 -- 务必确保您使用的模型支持函数调用功能,可以到`config.py`的`completion_api_params`中修改模型,推荐使用`gpt-3.5-turbo-16k` - -3️⃣ 现在您的程序已具备网络访问功能,重启程序,询问机器人有关在线的内容或直接发送文章链接请求其总结。 - -- 这仅仅是一个示例,需要更高效的网络访问能力支持插件,请查看[WebwlkrPlugin](https://github.com/RockChinQ/WebwlkrPlugin) - -## 🔒版本要求 - -若您的插件对主程序的版本有要求,可以使用以下函数进行断言,若不符合版本,此函数将报错并打断此函数所在的流程: - -```python -require_ver("v2.5.1") # 要求最低版本为 v2.5.1 -``` - -```python -require_ver("v2.5.1", "v2.6.0") # 要求最低版本为 v2.5.1, 同时要求最高版本为 v2.6.0 -``` - -- 此函数在主程序`v2.5.1`中加入 -- 此函数声明在`pkg.plugin.models`模块中,在插件示例代码最前方已引入此模块所有内容,故可直接使用 - -## 📄API参考 - -### 说明 - -> 下一版本将会添加统一的插件API,欢迎在[此讨论](https://github.com/RockChinQ/QChatGPT/discussions/637)回复您的需求! - -事件处理函数将会获得一系列参数,可以在`kwargs`中取出。 -其中`host`参数(`pkg.plugin.host.PluginHost`类的实例)是插件宿主,提供与主程序各个模块交互的一些方法。 -`event`参数(`pkg.plugin.host.EventContext`类的实例)是事件执行期间的上下文,提供对此次事件执行的一些操作方法。 - -事件返回值均为**可选**的,可以通过调用`event.add_return(key: str, ret)`来提交返回值 - -### 事件 - -所有事件参数均有`host`和`event`,以下仅展示其他参数 -关于`YiriMirai`支持的消息链组件,请查看 [YiriMirai的文档](https://yiri-mirai.wybxc.cc/docs/basic/message-chain) - -```Python -PersonMessageReceived = "person_message_received" -"""收到私聊消息时,在判断是否应该响应前触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - message_chain: mirai.models.message.MessageChain 消息链 -""" - -GroupMessageReceived = "group_message_received" -"""收到群聊消息时,在判断是否应该响应前触发(所有群消息) - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - message_chain: mirai.models.message.MessageChain 消息链 -""" - -PersonNormalMessageReceived = "person_normal_message_received" -"""判断为应该处理的私聊普通消息时触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - text_message: str 消息文本 - - returns (optional): - alter: str 修改后的消息文本 - reply: list 回复消息组件列表,元素为YiriMirai支持的消息组件 -""" - -PersonCommandSent = "person_command_sent" -"""判断为应该处理的私聊命令时触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - command: str 命令 - params: list[str] 参数列表 - text_message: str 完整命令文本 - is_admin: bool 是否为管理员 - - returns (optional): - alter: str 修改后的完整命令文本 - reply: list 回复消息组件列表,元素为YiriMirai支持的消息组件 -""" - -GroupNormalMessageReceived = "group_normal_message_received" -"""判断为应该处理的群聊普通消息时触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - text_message: str 消息文本 - - returns (optional): - alter: str 修改后的消息文本 - reply: list 回复消息组件列表,元素为YiriMirai支持的消息组件 -""" - -GroupCommandSent = "group_command_sent" -"""判断为应该处理的群聊命令时触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - command: str 命令 - params: list[str] 参数列表 - text_message: str 完整命令文本 - is_admin: bool 是否为管理员 - - returns (optional): - alter: str 修改后的完整命令文本 - reply: list 回复消息组件列表,元素为YiriMirai支持的消息组件 -""" - -NormalMessageResponded = "normal_message_responded" -"""获取到对普通消息的文字响应时触发 - kwargs: - launcher_type: str 发起对象类型(group/person) - launcher_id: int 发起对象ID(群号/QQ号) - sender_id: int 发送者ID(QQ号) - session: pkg.openai.session.Session 会话对象 - prefix: str 回复文字消息的前缀 - response_text: str 响应文本 - finish_reason: str 响应结束原因 - - returns (optional): - prefix: str 修改后的回复文字消息的前缀 - reply: list 替换回复消息组件列表 -""" - -SessionFirstMessageReceived = "session_first_message_received" -"""会话被第一次交互时触发 - kwargs: - session_name: str 会话名称(_) - session: pkg.openai.session.Session 会话对象 - default_prompt: str 预设值 -""" - -SessionExplicitReset = "session_reset" -"""会话被用户手动重置时触发,此事件不支持阻止默认行为 - kwargs: - session_name: str 会话名称(_) - session: pkg.openai.session.Session 会话对象 -""" - -SessionExpired = "session_expired" -"""会话过期时触发 - kwargs: - session_name: str 会话名称(_) - session: pkg.openai.session.Session 会话对象 - session_expire_time: int 已设置的会话过期时间(秒) -""" - -KeyExceeded = "key_exceeded" -"""api-key超额时触发 - kwargs: - key_name: str 超额的api-key名称 - usage: dict 超额的api-key使用情况 - exceeded_keys: list[str] 超额的api-key列表 -""" - -KeySwitched = "key_switched" -"""api-key超额切换成功时触发,此事件不支持阻止默认行为 - kwargs: - key_name: str 切换成功的api-key名称 - key_list: list[str] api-key列表 -""" - -PromptPreProcessing = "prompt_pre_processing" # 于v2.5.1加入 -"""每回合调用接口前对prompt进行预处理时触发,此事件不支持阻止默认行为 - kwargs: - session_name: str 会话名称(_) - default_prompt: list 此session使用的情景预设内容 - prompt: list 此session现有的prompt内容 - text_message: str 用户发送的消息文本 - - returns (optional): - default_prompt: list 修改后的情景预设内容 - prompt: list 修改后的prompt内容 - text_message: str 修改后的消息文本 -""" -``` - -### host: PluginHost 详解 - -提供与主程序各个模块交互的一些方法,具体查看`pkg.plugin.host`中的`PluginHost`类 - -### event: EventContext 详解 - -提供对此次事件执行的一些操作方法,具体查看`pkg.plugin.host`中的`EventContext`类 diff --git a/res/wiki/8-官方接口、ChatGPT网页版、ChatGPT-API区别.md b/res/wiki/8-官方接口、ChatGPT网页版、ChatGPT-API区别.md deleted file mode 100644 index 64bcc8d0..00000000 --- a/res/wiki/8-官方接口、ChatGPT网页版、ChatGPT-API区别.md +++ /dev/null @@ -1,17 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -## 多个对话接口有何区别? - -出于对稳定性的高要求,本项目主线接入的是GPT-3模型接口,此接口由OpenAI官方开放,稳定性强。 -目前支持通过加载[插件](https://github.com/RockChinQ/revLibs)的方式接入ChatGPT网页版,使用的是acheong08/ChatGPT的逆向工程库,但文本生成质量更高。 -同时,程序主线已支持ChatGPT API,并作为默认接口 [#195](https://github.com/RockChinQ/QChatGPT/issues/195) - -|官方接口|ChatGPT网页版|ChatGPT API -|---|---|---| -|官方开放,稳定性高 | 由[acheong08](https://github.com/acheong08)破解网页版协议接入| 由OpenAI官方开放 -|一次性回复,响应速度较快| 流式回复,响应速度较慢|响应速度较快| -|收费,0.02美元/千字|免费|收费,0.002美元/千字| -|GPT-3模型|GPT-3.5模型|GPT-3.5模型| -|任何地区主机均可使用(疑似受到GFW影响)|ChatGPT限制访问的区域使用有难度|任何地区主机均可使用(疑似受到GFW影响)| - diff --git a/res/wiki/9-go-cqhttp配置.md b/res/wiki/9-go-cqhttp配置.md deleted file mode 100644 index f8aad243..00000000 --- a/res/wiki/9-go-cqhttp配置.md +++ /dev/null @@ -1,73 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -# 配置go-cqhttp用于登录QQ - -> 若您是从旧版本升级到此版本以使用go-cqhttp的用户,请您按照`config-template.py`的内容修改`config.py`,添加`msg_source_adapter`配置项并将其设为`nakuru`,同时添加`nakuru_config`字段按照说明配置。 - -## 步骤 - -1. 从[go-cqhttp的Release](https://github.com/Mrs4s/go-cqhttp/releases/latest)下载最新的go-cqhttp可执行文件(建议直接下载可执行文件压缩包,而不是安装器) -2. 解压并运行,首次运行会询问需要开放的网络协议,**请填入`02`并回车,必须输入`02`❗❗❗❗❗❗❗** - -

你这里必须得输入`02`,你懂么,`0`必须得输入,看好了,看好下面输入什么了吗?别他妈的搁那就输个`2`完了启动连不上还跑群里问,问一个我踢一个。

- -``` -C:\Softwares\go-cqhttp.old> .\go-cqhttp.exe -未找到配置文件,正在为您生成配置文件中! -请选择你需要的通信方式: -> 0: HTTP通信 -> 1: 云函数服务 -> 2: 正向 Websocket 通信 -> 3: 反向 Websocket 通信 -请输入你需要的编号(0-9),可输入多个,同一编号也可输入多个(如: 233) -您的选择是:02 -``` - -提示已生成`config.yml`文件,关闭go-cqhttp。 - -3. 打开go-cqhttp同目录的`config.yml` - - 1. 编辑账号登录信息 - - 只需要修改下方`uin`和`password`为你要登录的机器人账号的QQ号和密码即可。 - **若您不填写,将会在启动时请求扫码登录。** - - ```yaml - account: # 账号相关 - uin: 1233456 # QQ账号 - password: '' # 密码为空时使用扫码登录 - encrypt: false # 是否开启密码加密 - status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态 - relogin: # 重连设置 - delay: 3 # 首次重连延迟, 单位秒 - interval: 3 # 重连间隔 - max-times: 0 # 最大重连次数, 0为无限制 - ``` - - 2. 修改websocket端口 - - 在`config.yml`下方找到以下内容 - - ```yaml - - ws: - # 正向WS服务器监听地址 - address: 0.0.0.0:8080 - middlewares: - <<: *default # 引用默认中间件 - ``` - - **将`0.0.0.0:8080`改为`0.0.0.0:6700`**,保存并关闭`config.yml`。 - - 3. 若您的服务器位于公网,强烈建议您填写`access-token` (可选) - - ```yaml - # 默认中间件锚点 - default-middlewares: &default - # 访问密钥, 强烈推荐在公网的服务器设置 - access-token: '' - ``` - -4. 配置完成,重新启动go-cqhttp - -> 若启动后登录不成功,请尝试根据[此文档](https://docs.go-cqhttp.org/guide/config.html#%E8%AE%BE%E5%A4%87%E4%BF%A1%E6%81%AF)修改`device.json`的协议编号。 diff --git a/res/wiki/Home.md b/res/wiki/Home.md deleted file mode 100644 index 1d111c04..00000000 --- a/res/wiki/Home.md +++ /dev/null @@ -1,30 +0,0 @@ -> [!WARNING] -> 此 Wiki 已弃用,所有文档已迁移到 [项目主页](https://qchatgpt.rockchin.top) - -欢迎查看QChatGPT的Wiki页。 - -## 简介 - -调用OpenAI官方提供的API接口,结合mirai和YiriMirai框架,将QQ消息与语言模型连接,实现更加智能的对话机器人 - -## 技术栈 - -- [Mirai](https://github.com/mamoe/mirai) 高效率 QQ 机器人支持库 -- [YiriMirai](https://github.com/YiriMiraiProject/YiriMirai) 一个轻量级、低耦合的基于 mirai-api-http 的 Python SDK。 -- [go-cqhttp](https://github.com/Mrs4s/go-cqhttp) cqhttp的golang实现,轻量、原生跨平台. -- [nakuru-project](https://github.com/Lxns-Network/nakuru-project) - 一款为 go-cqhttp 的正向 WebSocket 设计的 Python SDK,支持纯 CQ 码与消息链的转换处理 -- [nakuru-project-idk](https://github.com/idoknow/nakuru-project-idk) - 由idoknow维护的nakuru-project分支 -- [dulwich](https://github.com/jelmer/dulwich) Pure-Python Git implementation -- [OpenAI API](https://openai.com/api/) OpenAI API - -## 代码结构 - -- `pkg.database` 数据库操作相关 - - 数据库用于存放会话的历史记录,确保在程序重启后能记住对话内容 -- `pkg.openai` OpenAI API相关 - - 用于调用OpenAI的API生成回复内容 -- `pkg.qqbot` QQ机器人相关 - - 处理QQ收到的消息,调用API并进行回复 -- `pkg.utils` 常用功能包 -- `pkg.audit` 审计模块 -- `pkg.plugin` 插件管理相关功能 diff --git a/templates/schema/system.json b/templates/schema/system.json new file mode 100644 index 00000000..8114d198 --- /dev/null +++ b/templates/schema/system.json @@ -0,0 +1,80 @@ +{ + "type": "object", + "properties": { + "admin-sessions": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-proxies": { + "type": "object", + "properties": { + "http": { + "type": "string" + }, + "https": { + "type": "string" + } + } + }, + "report-usage": { + "type": "boolean" + }, + "logging-level": { + "type": "string" + }, + "session-concurrency": { + "type": "object", + "properties": { + "default": { + "type": "integer" + } + }, + "patternProperties": { + "^(person|group).*$": { + "type": "integer" + } + } + }, + "pipeline-concurrency": { + "type": "integer" + }, + "qcg-center-url": { + "type": "string" + }, + "help-message": { + "type": "string" + }, + "http-api": { + "type": "object", + "properties": { + "enable": { + "type": "boolean" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "persistence": { + "type": "object", + "properties": { + "sqlite": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + } + }, + "use": { + "type": "string" + } + } + } + } +} \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json index 9067fd2b..b099d1a2 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -8,7 +8,13 @@ "name": "web", "version": "0.0.0", "dependencies": { + "@koumoul/vjsf": "^3.0.0-beta.46", "@mdi/font": "7.4.47", + "ajv": "^8.17.1", + "ajv-dist": "^8.17.1", + "ajv-errors": "^3.0.0", + "ajv-formats": "^3.0.1", + "ajv-i18n": "^4.2.0", "axios": "^1.7.7", "codemirror": "^5.65.18", "core-js": "^3.37.1", @@ -510,6 +516,30 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/@eslint/js": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", @@ -564,6 +594,86 @@ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "license": "MIT" }, + "node_modules/@json-layout/core": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@json-layout/core/-/core-0.32.1.tgz", + "integrity": "sha512-/x+D8epj48MKPlDTKE7lgwjd6ThFF99+fZwxwuActV3XAFwE55bu0sK45i9yDoTkgEHHWCDlxlOdDkJP0hRQ/g==", + "license": "MIT", + "dependencies": { + "@json-layout/vocabulary": "^0.23.2", + "@types/markdown-it": "^13.0.1", + "ajv": "^8.12.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "ajv-i18n": "^4.2.0", + "debug": "^4.3.4", + "immer": "^10.0.3", + "magicast": "^0.3.3", + "markdown-it": "^13.0.2" + } + }, + "node_modules/@json-layout/core/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@json-layout/vocabulary": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/@json-layout/vocabulary/-/vocabulary-0.23.2.tgz", + "integrity": "sha512-CDQ/nFZmcMdhn0Ud/f5Q3IoRemQQdw2CPm5pufRqo27T71JhIw12KluVW1jsZWlwK3v7q7yqOoVS8Ax9bUOQ4w==", + "license": "MIT", + "dependencies": { + "ajv": "^8.12.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "debug": "^4.3.4" + } + }, + "node_modules/@json-layout/vocabulary/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@koumoul/vjsf": { + "version": "3.0.0-beta.46", + "resolved": "https://registry.npmjs.org/@koumoul/vjsf/-/vjsf-3.0.0-beta.46.tgz", + "integrity": "sha512-dp9EuyZrZNRHb5+8eLMHWNEI9HPhpLoeOWzDWj43tE+162mGmhi42SqVMS5fbx73ZHF2FHe4jZszgdj0MiYB2A==", + "license": "MIT", + "dependencies": { + "@json-layout/core": "0.32.1", + "@vueuse/core": "^10.5.0", + "debug": "^4.3.4", + "ejs": "^3.1.9" + }, + "peerDependencies": { + "vue": "^3.4.3", + "vuetify": "^3.6.13" + } + }, "node_modules/@mdi/font": { "version": "7.4.47", "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.4.47.tgz", @@ -860,6 +970,34 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/linkify-it": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "13.0.9", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.9.tgz", + "integrity": "sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^3", + "@types/mdurl": "^1" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -1027,6 +1165,94 @@ "vuetify": "^3.0.0" } }, + "node_modules/@vueuse/core": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -1051,22 +1277,62 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-dist": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv-dist/-/ajv-dist-8.17.1.tgz", + "integrity": "sha512-KzJwANMzTTR/RERGnkx+bHzmxIfMTPMMv7+cH1d6Lx9UQ7BZyhiieq4hnO5lRuBWOtYTUL8hyWs7RJYI/45Rtg==", + "license": "MIT" + }, + "node_modules/ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.1" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-i18n": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz", + "integrity": "sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.0-beta.0" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1081,7 +1347,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1111,7 +1376,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { @@ -1262,6 +1526,12 @@ "node": ">=16.14.0" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1299,7 +1569,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, "node_modules/binary-extensions": { @@ -1326,7 +1595,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1416,7 +1684,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1477,7 +1744,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1490,7 +1756,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/combined-stream": { @@ -1509,7 +1774,6 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, "license": "MIT" }, "node_modules/confbox": { @@ -1622,7 +1886,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "devOptional": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1701,6 +1964,21 @@ "node": ">=6.0.0" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2339,6 +2617,30 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -2413,7 +2715,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -2460,6 +2761,12 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", + "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "license": "MIT" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -2483,6 +2790,36 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2792,7 +3129,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2876,6 +3212,16 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/immutable": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", @@ -3261,6 +3607,24 @@ "dev": true, "license": "ISC" }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -3282,10 +3646,9 @@ "license": "MIT" }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -3332,6 +3695,15 @@ "node": ">= 0.8.0" } }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, "node_modules/local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", @@ -3401,6 +3773,51 @@ "node": ">=16.14.0" } }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3450,7 +3867,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -3486,7 +3902,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "devOptional": true, "license": "MIT" }, "node_modules/nanoid": { @@ -3923,6 +4338,15 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -4304,7 +4728,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -4471,6 +4894,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "license": "MIT" + }, "node_modules/ufo": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", diff --git a/web/package.json b/web/package.json index 8f961de1..71ca5ba8 100644 --- a/web/package.json +++ b/web/package.json @@ -8,7 +8,13 @@ "lint": "eslint . --fix --ignore-path .gitignore" }, "dependencies": { + "@koumoul/vjsf": "^3.0.0-beta.46", "@mdi/font": "7.4.47", + "ajv": "^8.17.1", + "ajv-dist": "^8.17.1", + "ajv-errors": "^3.0.0", + "ajv-formats": "^3.0.1", + "ajv-i18n": "^4.2.0", "axios": "^1.7.7", "codemirror": "^5.65.18", "core-js": "^3.37.1", diff --git a/web/src/pages/Settings.vue b/web/src/pages/Settings.vue index 216ea7f6..c6bb6d71 100644 --- a/web/src/pages/Settings.vue +++ b/web/src/pages/Settings.vue @@ -15,15 +15,15 @@ - +