Commit Graph

178 Commits

Author SHA1 Message Date
minecraft1024a
50a458b9e1 refactor(context): 将能量值和睡眠压力状态持久化到数据库
将HFC上下文中的能量值(energy_value)和睡眠压力(sleep_pressure)的状态管理从本地文件存储(local_storage)迁移到主数据库。

这一重构的主要改动包括:
- 在`ChatStreams`数据库模型中添加`energy_value`和`sleep_pressure`字段。
- 更新`ChatStream`类,使其能够加载和保存这两个新字段。
- 移除`HfcContext`中原有的基于`local_storage`的加载和保存逻辑,改为直接通过`ChatStream`实例进行状态读写。
- 在`EnergyManager`中,每当能量或睡眠压力发生变化时,调用`save_context_state()`方法,确保状态能够实时持久化。

此举统一了应用的状态管理方式,提高了数据的可靠性和一致性,并为后续在多实例或分布式环境下部署应用奠定了基础。
2025-11-19 22:56:06 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +08:00
Windpicker-owo
a3c07fb0f1 rust_video依赖检测 2025-11-19 22:53:57 +08:00
Windpicker-owo
e468dd1989 feat(plugin-system): 添加事件触发和订阅的白名单机制
为事件系统添加权限控制功能,包括:
- 在BaseEvent中新增allowed_subscribers和allowed_triggers白名单字段
- 事件管理器触发和订阅时进行白名单验证
- 为所有系统默认事件设置仅允许SYSTEM插件触发
- 在所有事件触发调用处显式传递plugin_name="SYSTEM"参数

确保只有授权插件可以触发特定事件和订阅处理器,增强系统安全性。
2025-11-19 22:49:20 +08:00
雅诺狐
a2873a71ef Add PlusCommand enhanced command system
Introduces the PlusCommand system for simplified command development, including new base classes, argument parsing utilities, and registration logic. Updates the plugin system, component registry, and bot message handling to support PlusCommand components alongside traditional commands. Adds documentation and configuration for command prefixes, and provides a developer guide for the new system.
2025-11-19 22:48:49 +08:00
雅诺狐
ab3a36bfa7 全面更换orjson 2025-11-19 22:47:10 +08:00
tt-P607
88da5e24ca feat(config): 优化视频分析并引入可配置的提示词
将视频分析的提示词从硬编码字符串修改为从全局配置中读取,提高了灵活性和可维护性。同时,在生成回复时注入了新的引导语,使AI能以第一人称分享观后感,优化了用户体验。
2025-11-19 22:46:39 +08:00
Windpicker-owo
3bf38bb1dc 消息处理的细节 2025-11-19 22:46:33 +08:00
雅诺狐
8735bfbc88 feat: 添加视频处理多线程优化和消息切片重组功能
- 新增视频帧提取的线程池支持,提升大视频文件处理性能
- 集成消息切片重组器,支持长消息的自动重组处理
- 优化视频帧提取算法,使用numpy进行数值计算优化
- 重构权限管理插件,修复属性访问和方法签名问题
- 清理未使用的导入和代码,提升代码质量
- 默认启用插件管理功能
2025-11-19 22:46:27 +08:00
Windpicker-owo
5d1390d546 event重构暂时完成,待测试 2025-11-19 22:46:26 +08:00
雅诺狐
34252ea4a0 refactor: 清理代码质量和移除未使用文件
- 移除未使用的导入语句和变量
- 修复代码风格问题(空格、格式化等)
- 删除备份文件和测试文件
- 改进异常处理链式调用
- 添加权限系统数据库模型和配置
- 更新版本号至6.4.4
- 优化SQL查询使用正确的布尔表达式
2025-11-19 22:46:18 +08:00
雅诺狐
e39c34f366 fix: 修复视频分析并发处理和数据库存储问题
🔧 修复视频分析模块的关键并发和存储问题

**主要修复:**
1. **并发竞争条件修复**
   - 解决相同视频hash同时处理导致重复分析的问题
   - 重构并发控制机制,使用per-video独立锁和事件
   - 消除30秒超时后多个请求同时执行的竞争条件

2. **数据库存储优化**
   - 移除Videos表path字段的复杂唯一性检查逻辑
   - 简化为基于hash的纯唯一标识存储
   - 修复path字段重复导致的IntegrityError

3. **代码简化和清理**
   - 删除重编码视频检测功能(复杂且用处有限)
   - 移除不必要的特征匹配和计数更新逻辑
   - 简化存储路径生成,统一使用hash前缀

Fixes: 视频并发处理竞争条件、数据库存储冲突、聊天循环变量错误
2025-11-19 22:46:11 +08:00
雅诺狐
3360b22dca Refactor anti-injection system and remove command skip list
Removed the command skip list feature and related code from the anti-injection system, including configuration options, plugin command collection, and management commands. Refactored anti-injector logic to operate directly on message dictionaries and simplified whitelist and message content extraction. Updated response handling to perform anti-injection checks before reply generation, and removed skip list refresh logic from the plugin manager.
2025-11-19 22:46:06 +08:00
雅诺狐
1b9c86abef Refactor web search plugin and clean up code
Refactored the web search plugin by removing the old Bing search implementation and reorganizing the plugin structure. Introduced modular search engine classes under 'web_search_tool/engines' and utility tools under 'web_search_tool/tools' and 'web_search_tool/utils'. Updated references and initialization logic to support multiple search engines and improved maintainability. Also performed minor code cleanups and replaced 'except ...: pass' with 'except ...: ...' for brevity.
2025-11-19 22:45:42 +08:00
雅诺狐
31e028ab25 Refactor anti-injection system into modular subpackages
Split the anti-prompt-injector module into core, processors, management, and decision submodules for better maintainability and separation of concerns. Moved and refactored detection, shielding, statistics, user ban, message processing, and counter-attack logic into dedicated files. Updated imports and initialization in __init__.py and anti_injector.py to use the new structure. No functional changes to detection logic, but code organization is significantly improved.
2025-11-19 22:45:01 +08:00
雅诺狐
383f704b53 Remove unused imports across multiple modules
Cleaned up various files by removing unused or redundant import statements to improve code readability and reduce potential confusion. No functional changes were made.
2025-11-19 22:44:32 +08:00
minecraft1024a
d355153a19 feat(video): 视频识别功能开关与日志优化
根据全局配置 `global_config.video_analysis.enable` 控制视频识别功能的启用与禁用。

- 当视频识别功能禁用时,收到视频消息将直接返回 `[视频]` 或空字符串,不再进行分析,以节约资源。
2025-11-19 22:44:04 +08:00
minecraft1024a
d20daaf3e2 新增反击模式支持,允许在检测到提示词注入攻击时生成反击响应并发送。更新相关配置和处理逻辑,增强系统的防护能力。 2025-11-19 22:44:03 +08:00
雅诺狐
2d91a7d55c Refactor anti-injector process result handling
Introduced a ProcessResult enum to standardize anti-injector message processing outcomes. Updated anti_injector.py to return ProcessResult values instead of booleans, and refactored bot.py to handle these results with improved logging and clearer control flow. This change improves code clarity and maintainability for anti-prompt injection logic.
2025-11-19 22:43:58 +08:00
雅诺狐
16da725272 Add LLM anti-prompt injection system
Introduces a comprehensive anti-prompt injection system for LLMs, including rule-based and LLM-based detection, user ban/whitelist management, message shielding, and statistics tracking. Adds new modules under src/chat/antipromptinjector, integrates anti-injection checks into the message receive flow, updates configuration and database models, and provides test scripts. Also updates templates and logger aliases to support the new system.
2025-11-19 22:43:57 +08:00
雅诺狐
875e02d42f 数据库重构 2025-11-19 22:40:23 +08:00
minecraft1024a
38fed9b4cc 添加聊天类型限制功能,支持根据聊天类型过滤命令和动作,新增私聊和群聊专用命令及动作,优化相关日志记录。 2025-11-19 22:40:01 +08:00
Furina-1013-create
2d22b3d561 我靠我我视频识别怎么又给我炸了
--已重新修复......
2025-11-19 22:38:52 +08:00
雅诺狐
2dfd986ba4 Update storage.py 2025-11-19 22:37:40 +08:00
minecraft1024a
e6499e2fa7 修复interest_value为None的情况,确保在计算兴趣值时不会出现错误。将interest_value的默认值设置为0.0,以提高代码的健壮性。 2025-11-19 22:36:10 +08:00
雅诺狐
2e6ae2419b 优化项目结构,格式化代码 2025-11-19 22:35:40 +08:00
Furina-1013-create
2d1e131899 增加视频识别板块
采用抽帧的方式识别视频,可以自己配置详细参数 -详细请看bot_config最底下
更改了template模板
多bb一句:我真的是被这个炸服了,改完这里那里就又炸了,但是总之现在没问题了
2025-11-19 22:35:36 +08:00
雅诺狐
b966a2f09c 小修复 2025-11-19 22:35:34 +08:00
雅诺狐
4a1a1510c5 更新插件示例,及信息类型问题 2025-11-19 22:35:31 +08:00
雅诺狐
a588a2a695 添加了一个发送api 2025-11-19 22:35:26 +08:00
minecraft1024a
be13559563 fix(storage): 修复消息ID更新逻辑
将消息ID的更新逻辑从处理 "text" 和 "reply" 类型,调整为专门处理 "notify" 类型。
这确保了只有在收到通知类型的消息时才尝试获取和更新消息ID,避免了在其他消息类型上出现错误。
2025-11-19 22:35:19 +08:00
雅诺狐
23ee3767ef 初始化 2025-11-19 22:34:56 +08:00
UnCLAS-Prommer
1461338c0c typing fix 2025-08-13 22:51:34 +08:00
SengokuCola
41a09b39b9 fix:将s4u启用放到配置文件防止git更新 2025-08-13 19:15:17 +08:00
SengokuCola
4ffcc61f4b feat:记录使用的表达方式 2025-08-12 21:44:35 +08:00
SengokuCola
f0fff5a039 fix:person创建和调用区分 2025-08-12 15:15:50 +08:00
SengokuCola
69a855df8d feat:保存关键词到message数据库 2025-08-10 21:12:49 +08:00
SengokuCola
b57671b639 fix:修复表情包描述进入prompt问题 2025-08-09 21:16:57 +08:00
SengokuCola
d1f15a932a fix:缺少stream的报错 2025-08-08 21:20:28 +08:00
SengokuCola
a2c86f3605 feat:部分处理notify,自动同步数据库null约束变更
notify存储至message库
2025-08-08 12:34:21 +08:00
UnCLAS-Prommer
6c0edd0ad7 调整对应的调用 2025-07-30 17:07:55 +08:00
UnCLAS-Prommer
d643a85a0a send_api_doc与reply_to修改 2025-07-28 11:47:32 +08:00
UnCLAS-Prommer
bbb112d803 动态控制命令后续处理 2025-07-25 11:01:14 +08:00
UnCLAS-Prommer
d6284b6b4c 插件管理API测试与修改通过 2025-07-24 00:31:53 +08:00
UnCLAS-Prommer
10bf424540 增加了组件的局部禁用方法 2025-07-23 00:41:31 +08:00
UnCLAS-Prommer
35ec390dfd 增加了组件的全局启用和禁用功能 2025-07-22 22:38:40 +08:00
SengokuCola
95d6ee1213 修复合并错误 2025-07-22 21:15:02 +08:00
SengokuCola
2a8d29332e Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev 2025-07-22 20:42:36 +08:00
SengokuCola
75022b5d10 s4u的一些修改,包括动作适配 2025-07-22 20:36:53 +08:00
UnCLAS-Prommer
b7117726e2 Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev 2025-07-21 01:25:39 +08:00