Commit Graph

50 Commits

Author SHA1 Message Date
Rumio
e5b2a872d3
feat(group-settings): 实现群插件配置管理系统 (#2072)
Some checks failed
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
*  feat(group-settings): 实现群插件配置管理系统

- 引入 GroupSettingsService 服务,提供统一的群插件配置管理接口
- 新增 GroupPluginSetting 模型,用于持久化存储插件在不同群组的配置
- 插件扩展数据 PluginExtraData 增加 group_config_model 字段,用于注册分群配置模型
- 新增 GetGroupConfig 依赖注入,允许插件轻松获取和解析当前群组的配置

【核心服务 GroupSettingsService】
- 支持按群组、插件名和键设置、获取和删除配置项
- 实现配置聚合缓存机制,提升配置读取效率,减少数据库查询
- 支持配置继承与覆盖逻辑(群配置覆盖全局默认值)
- 提供批量设置功能 set_bulk,方便为多个群组同时更新配置

【管理与缓存】
- 新增超级用户命令 pconf (plugin_config_manager),用于命令行管理插件的分群和全局配置
- 新增 CacheType.GROUP_PLUGIN_SETTINGS 缓存类型并注册
- 增加 Pydantic model_construct 兼容函数

* 🐛 fix(codeql): 移除对 JavaScript 和 TypeScript 的分析支持

---------

Co-authored-by: webjoin111 <455457521@qq.com>
2025-12-01 14:52:36 +08:00
HibiKier
761c8daac4
feat(configs): 优化 ConfigsManager 中的键值获取逻辑,确保未定义键时自动创建 ConfigGroup 实例 (#2058) 2025-10-01 18:42:19 +08:00
Rumio
11524bcb04
♻️ refactor: 统一图片渲染架构并引入通用UI组件系统 (#2019)
Some checks failed
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
* ♻️ refactor: 统一图片渲染架构并引入通用UI组件系统

🎨 **渲染服务重构**
- 统一图片渲染入口,引入主题系统支持
- 优化Jinja2环境管理,支持主题覆盖和插件命名空间
- 新增UI缓存机制和主题重载功能

 **通用UI组件系统**
- 新增 zhenxun.ui 模块,提供数据模型和构建器
- 引入BaseBuilder基类,支持链式调用
- 新增多种UI构建器:InfoCard, Markdown, Table, Chart, Layout等
- 新增通用组件:Divider, Badge, ProgressBar, UserInfoBlock

🔄 **插件迁移**
- 迁移9个内置插件至新渲染系统
- 移除各插件中分散的图片生成工具
- 优化数据处理和渲染逻辑

💥 **Breaking Changes**
- 移除旧的图片渲染接口和模板路径
- TEMPLATE_PATH 更名为 THEMES_PATH
- 插件需适配新的RendererService和zhenxun.ui模块

*  test(check): 更新自检插件测试中的渲染服务模拟

* ♻️ refactor(renderer): 将缓存文件名哈希算法切换到 SHA256

* ♻️ refactor(shop): 移除商店HTML图片生成模块

* 🚨 auto fix by pre-commit hooks

---------

Co-authored-by: webjoin111 <455457521@qq.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-08-15 16:34:37 +08:00
HibiKier
3deffcb46c
增强缓存功能,优化请求管理逻辑 (#2012)
Some checks failed
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
- 在 `record_request.py` 和 `group_handle/__init__.py` 中引入了 `CacheRoot`,实现请求缓存,避免重复处理相同请求。
- 在 `exception.py` 中更新 `ForceAddGroupError` 类,新增 `group_id` 属性以便于错误处理。
- 在 `data_source.py` 中修改 `ForceAddGroupError` 的抛出逻辑,包含 `group_id` 信息。
- 更新 `cache` 类,支持类型化缓存字典和列表,增强缓存的类型安全性。

此更新提升了请求处理的效率和准确性,同时增强了错误信息的可追溯性。
2025-08-06 16:31:09 +08:00
Rumio
7c153721f0
♻️ refactor!: 重构LLM服务架构并统一Pydantic兼容性处理 (#2002)
Some checks failed
检查bot是否运行正常 / bot check (push) Waiting to run
Sequential Lint and Type Check / ruff-call (push) Waiting to run
Sequential Lint and Type Check / pyright-call (push) Blocked by required conditions
Release Drafter / Update Release Draft (push) Waiting to run
Force Sync to Aliyun / sync (push) Waiting to run
Update Version / update-version (push) Waiting to run
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
* ♻️ refactor(pydantic): 提取 Pydantic 兼容函数到独立模块

* ♻️ refactor!(llm): 重构LLM服务,引入现代化工具和执行器架构

🏗️ **架构变更**
- 引入ToolProvider/ToolExecutable协议,取代ToolRegistry
- 新增LLMToolExecutor,分离工具调用逻辑
- 新增BaseMemory抽象,解耦会话状态管理

🔄 **API重构**
- 移除:analyze, analyze_multimodal, pipeline_chat
- 新增:generate_structured, run_with_tools
- 重构:chat, search, code变为无状态调用

🛠️ **工具系统**
- 新增@function_tool装饰器
- 统一工具定义到ToolExecutable协议
- 移除MCP工具系统和mcp_tools.json

---------

Co-authored-by: webjoin111 <455457521@qq.com>
2025-08-04 23:36:12 +08:00
HibiKier
205f4ff1fa
添加bot画像
*  新增自我介绍功能及自动发送图片支持

- 在 bot_profile.py 中实现自我介绍指令及重载功能
- 在 group_handle 中添加自动发送自我介绍图片的逻辑
- 在 fg_request 中实现添加好友时自动发送自我介绍图片
- 新增 bot_profile_manager.py 管理 BOT 自我介绍及图片生成
- 更新 models.py 以支持插件自我介绍和注意事项字段

* 🎨 调整管理帮助宽度

*  更新数据访问层,优化获取数据的方法并引入缓存机制

*  更新用户数据访问逻辑,优化获取用户信息的方法,使用新的函数替代原有实现

*  在 BotProfileManager 中添加自我介绍文件不存在的日志记录,优化文件读取逻辑

*  更新 BOT 自我介绍帮助信息,增加文件不存在时自动创建功能
2025-07-16 02:51:06 +08:00
HibiKier
8649aaaa54
引入缓存机制 (#1889)
* 添加全局cache

*  构建缓存,hook使用缓存

*  新增数据库Model方法监控

*  数据库添加semaphore锁

* 🩹 优化webapi返回数据

*  添加增量缓存与缓存过期

* 🎨 优化检测代码结构

*  优化hook权限检测性能

* 🐛 添加新异常判断跳过权限检测

*  添加插件limit缓存

* 🎨 代码格式优化

* 🐛  修复代码导入

* 🐛 修复刷新时检查

* 👽 Rename exception for missing database URL in initialization

*  Update default database URL to SQLite in configuration

* 🔧 Update tortoise-orm and aiocache dependencies restrictions; add optional redis and asyncpg support

* 🐛 修复ban检测

* 🐛 修复所有插件关闭时缓存更新

* 🐛 尝试迁移至aiocache

* 🐛 完善aiocache缓存

*  代码性能优化

* 🐛 移除获取封禁缓存时的日志记录

* 🐛 修复缓存类型声明,优化封禁用户处理逻辑

* 🐛 优化LevelUser权限更新逻辑及数据库迁移

*  cache支持redis连接

* 🚨 auto fix by pre-commit hooks

*  :增强获取群组的安全性和准确性。同时,优化了缓存管理中的相关逻辑,确保缓存操作的一致性。

*  feat(auth_limit): 将插件初始化逻辑的启动装饰器更改为优先级管理器

* 🔧 修复日志记录级别

* 🔧 更新数据库连接字符串

* 🔧 更新数据库连接字符串为内存数据库,并优化权限检查逻辑

*  feat(cache): 增加缓存功能配置项,并新增数据访问层以支持缓存逻辑

* ♻️ 重构cache

*  feat(cache): 增强缓存管理,新增缓存字典和缓存列表功能,支持过期时间管理

* 🔧 修复Notebook类中的viewport高度设置,将其从1000调整为10

*  更新插件管理逻辑,替换缓存服务为CacheRoot并优化缓存失效处理

*  更新RegisterConfig类中的type字段

*  修复清理重复记录逻辑,确保检查记录的id属性有效性

*  超级无敌大优化,解决延迟与卡死问题

*  更新封禁功能,增加封禁时长参数和描述,优化插件信息返回结构

*  更新zhenxun_help.py中的viewport高度,将其从453调整为10,以优化页面显示效果

*  优化插件分类逻辑,增加插件ID排序,并更新插件信息返回结构

---------

Co-authored-by: BalconyJH <balconyjh@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-14 22:35:29 +08:00
HibiKier
8f1e35954b
恢复RegisterConfig的type默认值为None (#1975) 2025-07-12 23:48:07 +08:00
molanp
9686a31419
🚑refactor(config): 修复模型type校验 (#1974)
* 🚑refactor(config): 修复模型type校验

* 🚨 auto fix by pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-12 00:05:24 +08:00
molanp
632ec3e46e
fix(zhenxun): 修复初始化配置文件时的类型判断逻辑 (#1971)
- 修改了配置类型判断逻辑,当 reg_config.type 为 None 时,使用 reg_config.value 的类型
- 这样可以更准确地处理配置项的类型,避免潜在的类型错误
2025-07-11 17:15:17 +08:00
molanp
fb8811207e
🚑 修复配置类型处理逻辑 (#1970)
- 在 init_config.py 中,增加了对注册配置类型为空时的处理,使用配置的值类型作为默认类型
- 在 models.py 中,将 RegisterConfig 类的 type 字段默认值从 str 改为 None,以支持更灵活的配置类型
2025-07-11 15:45:12 +08:00
HibiKier
bd62698ea5
优化配置管理和数据处理逻辑 (#1949) 2025-07-11 10:10:33 +08:00
Rumio
c3193dd784
🎨 (config): 优化配置值解析与错误处理 (#1962)
Co-authored-by: webjoin111 <455457521@qq.com>
2025-07-08 23:20:13 +08:00
Rumio
a020ea5c87
feat(llm): 实现LLM服务模块,支持多提供商统一接口和高级功能 (#1923)
*  feat(llm): 实现LLM服务模块,支持多提供商统一接口和高级功能

* 🎨 Ruff

*  Config配置类支持BaseModel存储

* 🎨 代码格式化

* 🎨 代码格式化

* 🎨 格式化代码

*  feat(llm): 添加 AI 对话历史管理

*  feat(llmConfig): 引入 LLM 配置模型及管理功能

* 🎨 Ruff

---------

Co-authored-by: fccckaug <xxxmio123123@gmail.com>
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com>
Co-authored-by: HibiKier <775757368@qq.com>
Co-authored-by: fccckaug <xxxmcsmiomio3@gmail.com>
Co-authored-by: webjoin111 <455457521@qq.com>
2025-06-21 16:33:21 +08:00
xuanerwa
14f5842f10
重构插件商店,支持Gitee插件管理,更新相关逻辑和配置 (#1931) 2025-06-20 19:08:06 +08:00
ChthollyWn
a6ddb726d3
新增插件智能模式适配 (#1850)
* 新增插件智能模式适配

* 🚨 auto fix by pre-commit hooks

* 更改类名,命名更清晰

* 🎨 添加模块化参数

* 🎨  AI模块化修改

* 🩹  道具调用修复

* 🩹 修复商品使用前检测

*  retry增加参数适配

*   修改道具使用函数参数传递

*  捕获道具无法使用异常

* 🐛 添加依赖require

* 🐛  修复插件使用问题

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: HibiKier <45528451+HibiKier@users.noreply.github.com>
2025-02-24 09:28:53 +08:00
HibiKier
41613c09a9
提供一个插件好感度限制 (#1846)
*  提供一个插件好感度限制

* 💬 在提示中显示需要的好感度
2025-02-10 15:39:18 +08:00
HibiKier
5fd746a52a
🚑 修复field在pyd1下报错 (#1842)
* 🚑 修复field在pyd1下报错

* 🐛 修正字段
2025-02-04 02:15:21 +08:00
HibiKier
4ed1791b30
🐛 修复添加插件依赖更新 (#1837)
* 🐛 修复添加插件依赖更新

* 🔧 修改插件依赖安装命令为使用poetry运行pip

* 🐛 修复群组入群与退群提示

* 🐛 修复群组踢出用户提醒

* 🎨 代码优化

* 🎨 群欢迎迁移优化

* 🩹 精确webui调用统计

* 🚨 auto fix by pre-commit hooks

* 🐛 修复测试

* 🎨 fix pre-commit.ci

* 🎨  fix pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-02-03 21:23:14 +08:00
BalconyJH
d6fd5f170a
🚨 Make pyright happy (#1840) 2025-01-27 03:40:50 +08:00
HibiKier
d0b1024566
🐛 修复Config add配置时显示问题 (#1835) 2025-01-16 09:13:28 +08:00
HibiKier
264929e5cb
新增好感度/金币设置和详细帮助 (#1831)
*  新增好感度/金币设置和详细帮助

* 🔧 修复html帮助
2025-01-10 18:39:23 +08:00
HibiKier
ccee16bed2 🚨 Add specific ignore items in pyright ignore
🚨 Make pyright happy
♻️ Remove unused adapter
2025-01-10 12:19:11 +08:00
HibiKier
e814469b75 Compatible with pydantic 2.0 using the pydantic compatibility layer provided by nonebot 2025-01-10 12:19:11 +08:00
HibiKier
ec70144d7e
资源下载分离 (#1814)
* 🚀 资源文件单独下载,分离被动任务初始化

* 🔥 移除resources文件夹

* 🚀 优化版本更新逻辑,增加资源下载异常处理

* 🚀 增加资源下载失败异常处理及提示信息

* 🚀 增加资源下载选项及异常处理优化

* 🚀 移除空ID检查及资源更新条件处理

*  简易配置中未加载的配置将被移除

* 🐛 测试更新

*  修复更新完成消息格式

---------

Co-authored-by: Flern <cb56ec362bbbfb5272eb941281299d8d-qq_connect@git.osc>
2025-01-06 11:32:56 +08:00
BalconyJH
bc5a9c4fcc
Develop: 完全使用 ruff 替代 isort 与 black (#1757)
* 🚨 完全使用 ruff 替代 isort 与 black

* 🚨 ruff lint&format
2024-12-10 19:49:11 +08:00
HibiKier
c7c759f2b1
插件配置新增is_show控制是否显示在菜单中 (#1749) 2024-11-29 10:01:50 +08:00
HibiKier
d23602ac56
webui和数据库页面和查询所有表支持mysql和sqlite (#1732) 2024-11-18 11:06:13 +08:00
HibiKier
93316be5fe 🎨 工具代码优化 2024-10-29 08:26:41 +08:00
HibiKier
3d3a2a5f7f
部分功能适配QQ BOT (#1701) 2024-10-18 18:57:55 +08:00
HibiKier
717a973807
将cd,block,count限制复原配置文件 (#1662) 2024-10-01 00:05:43 +08:00
HibiKier
28b61e57cd
新增超级用户与管理员帮助模板 (#1655) 2024-09-27 16:59:41 +08:00
HibiKier
95762bdddd
🐛 修复路径解压与挂载 (#1619) 2024-09-10 20:17:09 +08:00
HibiKier
4e42d1dda1 🐛 修复超级用户id获取问题 2024-09-09 23:01:15 +08:00
HibiKier
057001f0bd 支持mysql,psql,sqlite随机函数 2024-09-07 16:46:56 +08:00
HibiKier
a3681216bd 父级插件加载 2024-08-30 23:50:45 +08:00
HibiKier
625f17a708 🎨 修复bug,移除plugins文件夹 2024-08-29 22:01:34 +08:00
HibiKier
45c6dbd2ce 🎨 代码优化 2024-08-24 19:32:52 +08:00
HibiKier
f69253616e 🎨 签到优化与配置修改 2024-08-24 17:06:23 +08:00
Natalie Johnson
7c163142c4 代码优化 2024-08-22 19:10:47 +08:00
HibiKier
2fe825f67d 新群被动添加时所有群默认状态 2024-08-21 23:36:19 +08:00
HibiKier
99774adc87 插件商店 2024-08-20 21:29:42 +08:00
HibiKier
51fcdf649e 🐛 修复群权限检测获取群问题并优化代码 2024-08-02 21:38:32 +08:00
HibiKier
2bf5fd1a37 feat: 新增Web UI功能及数据库、日志等API接口 2024-07-31 04:58:29 +08:00
HibiKier
487f019c89 🐛 : 修复签到问题 2024-07-21 19:06:50 +08:00
HibiKier
90ef1c843a feat: p站排行/搜图 2024-05-23 13:58:53 +08:00
HibiKier
ebec169e67 feat: 画廊操作 2024-05-15 23:24:35 +08:00
HibiKier
3fad6fc2ad feat: 金币红包 2024-05-04 13:48:12 +08:00
HibiKier
eb0572ea77 feat: 更新内置插件 2024-02-25 03:18:34 +08:00
HibiKier
131200a28e init🎉: 首次提交 2024-02-04 04:18:54 +08:00