Windpicker-owo
2448f83373
refactor(chat): 重构消息处理流程引入缓冲队列机制
...
通过引入消息缓冲队列,解决了高频消息场景下的竞态条件和消息丢失问题。
新的处理机制将消息暂存于缓冲区,仅在流处理空闲时才释放到未读队列,
确保了消息处理的原子性和一致性。
核心变更:
- 为每个聊天流创建独立的消息缓冲队列
- 实时跟踪流的处理状态,避免并发访问冲突
- 在处理开始前和完成后自动刷新缓冲区
- 仅在成功执行后清空未读消息,失败时保留消息
- 增加对取消任务和异常情况的容错处理
- 集成缓存统计和监控功能
此优化显著提升了消息处理的可靠性和性能表现。
2025-11-19 23:20:27 +08:00
Windpicker-owo
d52ebe20c4
feat(mood): 集成情绪系统到消息处理流程并改进初始化逻辑
...
在消息处理完成后自动触发情绪状态更新,增强了聊天体验的动态性。
同时改进了情绪系统的异步初始化过程,增加了错误处理和日志记录,
确保系统在各种异常情况下都能稳定运行。
2025-11-19 23:20:26 +08:00
Windpicker-owo
f002228abb
refactor(scoring): 重构评分系统使用统一API替代插件内部实现
...
将原有的兴趣度评分系统重构为使用统一的评分API,移除了插件内部实现并更新了所有相关引用。主要变更包括:
- 替换 chatter_interest_scoring_system 为 scoring_api
- 移除 interest_scoring.py 文件,统一使用 src/plugin_system/apis/scoring_api
- 更新关系追踪器以使用统一API,保持向后兼容性
- 简化了多个模块中的关系分获取逻辑
2025-11-19 23:20:23 +08:00
Windpicker-owo
1bd5580ff5
feat(chat): 优化消息打断系统概率模型为反比例函数
...
将消息打断系统的概率计算从线性模型改为反比例函数模型,
提供更合理的打断概率分布:
- 第1次打断概率约80%
- 第2次打断概率约35%
- 第3次打断概率约15%
- 后续趋近于最低概率(5%)
新模型通过反比例函数实现前期高概率、快速衰减的特性,
避免线性模型中后期打断概率仍然较高的问题,提升用户体验。
2025-11-19 23:20:18 +08:00
Windpicker-owo
d1e26b7484
feat(config): 调整消息打断系统参数以降低打断频率
...
- 将最大打断次数从10次降至5次
- 将最低打断概率从0.1降至0.05
2025-11-19 23:20:17 +08:00
Windpicker-owo
a3e08e591f
feat(chat): 重构消息打断系统为线性概率模型
...
将复杂的指数衰减概率模型简化为线性概率模型,提高可预测性和可配置性
- 新增最低打断概率配置,确保始终有打断机会
- 移除复杂的概率因子计算,改用简单的线性递减公式
- 增加最大打断次数默认值从3提升到10
- 保留废弃配置项以确保向后兼容
- 更新配置模板和文档说明新的概率计算方式
2025-11-19 23:20:16 +08:00
Windpicker-owo
94d7145720
fix(import): 修正导入路径以确保正确引用 StreamPriority
2025-11-19 23:20:14 +08:00
雅诺狐
4f3ef43b49
Update src/chat/antipromptinjector/counter_attack.py
...
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-19 23:20:13 +08:00
LuiKlee
bb7f9c1730
调整部分结构
2025-11-19 23:20:13 +08:00
minecraft1024a
098e7c2f04
refactor(napcat): 重构数据库层以使用异步SQLAlchemy
...
将 Napcat 适配器插件的数据库实现从独立的 `sqlmodel` 和同步会话切换为复用主程序的异步 SQLAlchemy 数据库连接和迁移体系。
主要变更:
- 移除独立的 `NapcatAdapter.db` 文件和 `sqlmodel` 依赖。
- 创建新的 `NapcatBanRecord` SQLAlchemy 模型,并集成到主应用的 `Base` 中。
- 将所有数据库操作(增删改查)重构为异步方法,并提供兼容旧方法名的接口。
- 移除本地缓存逻辑,简化 `utils.py` 中的信息获取函数。
- 适配 `notice_handler.py` 中的数据库调用为异步 `await` 方式。
此重构统一了数据库管理,提高了性能和可维护性,并消除了同步I/O操作。
2025-11-19 23:20:12 +08:00
tt-P607
9dc4997fcc
fix(db): 处理关闭连接时可能出现的 CancelledError
...
在异步任务被取消时,`session.close()` 操作可能会抛出 `asyncio.CancelledError`。
此提交通过捕获该特定异常并记录警告,增强了连接关闭过程的健壮性,防止了因未处理的异常而导致程序意外中断。
2025-11-19 23:20:11 +08:00
雅诺狐
635a39fa5a
refactor: 清理项目结构并修复类型注解问题
...
修复 SQLAlchemy 模型的类型注解,使用 Mapped 类型避免类型检查器错误
- 修正异步数据库操作中缺少 await 的问题
- 优化反注入统计系统的数值字段处理逻辑
- 添加缺失的导入语句修复模块依赖问题
2025-11-19 23:20:11 +08:00
minecraft1024a
3472b5f1cb
chore(repo): 优化仓库结构
2025-11-19 23:20:09 +08:00
雅诺狐
694f1f8c69
refactor: 优化异步调用和权限系统架构
...
- 移除bot.py中不必要的asyncio.to_thread包装
- 将权限API的is_master方法改为异步调用
- 删除不再使用的SQLAlchemyTransaction类
2025-11-19 23:20:08 +08:00
sunbiz1024
50c8555f00
增加bot.py拉起webui的功能,.venv31已加入 .gitignore
2025-11-19 23:20:07 +08:00
tt-P607
2e45a251d6
refactor(chat): 重构消息打断逻辑以从 ChatterManager 获取任务
...
将正在处理的任务跟踪从 ContextManager 转移到 ChatterManager。
此举旨在集中管理聊天任务,降低 MessageManager 与 ContextManager 之间的耦合。现在,中断处理逻辑直接查询 ChatterManager 以获取并取消当前活动任务,使任务状态管理更加清晰和可靠。
2025-11-19 23:20:06 +08:00
sunbiz1024
f1ddd0e10e
Revert "增加bot.py拉起webui进程功能"
...
This reverts commit 92c658de47 .
2025-11-19 23:20:02 +08:00
sunbiz1024
7903afcb05
增加bot.py拉起webui进程功能
2025-11-19 23:20:01 +08:00
minecraft1024a
3a56c61574
fix(chat): 修复typo_generator中词典文件的路径问题
...
词典文件的路径从依赖`rjieba`包的位置改为相对于当前文件的相对路径,以确保在不同环境下都能正确找到文件。
2025-11-19 23:19:58 +08:00
minecraft1024a
9d79d8a5cb
feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
...
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。
这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。
此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
2025-11-19 23:19:55 +08:00
Windpicker-owo
6a9cc2af61
feat(memory): 增强记忆检索日志,打印有效记忆的详细信息和元数据
2025-11-19 23:19:54 +08:00
sunbiz1024
950b086063
ruff
2025-11-19 23:19:53 +08:00
Windpicker-owo
e65ab14f94
afc文档
2025-11-19 23:19:44 +08:00
ikun-11451
62020353f3
Revert "喵喵喵?"
...
This reverts commit f65f19249c .
2025-11-19 23:19:43 +08:00
ikun-11451
004c699e58
后端增加cpu占用率等api喵~
2025-11-19 23:19:43 +08:00
minecraft1024a
731b1f5baa
chore(config): 更新模板配置
...
移除未使用的 [server] 部分并更新内部版本号。
2025-11-19 23:19:43 +08:00
minecraft1024a
2a89efe47a
ruff fix但指定了--unsafe-fixes
2025-11-19 23:19:42 +08:00
minecraft1024a
04feb585b4
feat(cross_context): 排除maizone专用上下文组
...
在获取互通上下文组时,增加了一个判断条件,以排除名为 "maizone_context_group" 的专用组。这可以防止该特定组的上下文信息被意外地泄露给其他不相关的聊天。
2025-11-19 23:19:31 +08:00
minecraft1024a
af4e8fe34a
refactor(cross_context): 提取互通组上下文获取逻辑为通用API
...
将原本在 `maizone` 插件中用于获取互通组聊天上下文的逻辑,提取并重构为一个更通用的 `cross_context_api.get_intercom_group_context_by_name` 函数。
这次重构提高了代码的模块化和复用性,使得其他需要跨聊天上下文功能的插件也能方便地调用此API,而无需重复实现相似的逻辑。`maizone` 插件现在直接调用这个新的API来获取上下文,简化了其内部实现。
2025-11-19 23:19:30 +08:00
minecraft1024a
3c2a90bad4
feat(proactive_thinker): 增加跨上下文信息到主动思考提示词
...
在主动思考的提示词中增加了“和Ta在别处的讨论摘要”部分。
这使得AI在进行主动思考时,能够参考用户在其他群组或私聊中的相关讨论,从而获得更全面的上下文信息,做出更贴切和连贯的响应。
2025-11-19 23:19:27 +08:00
minecraft1024a
016c86a2dd
feat(chatter): 增加规划器提示词和响应的调试日志
...
在调试模式下,现在会打印出发送给LLM的规划器提示词以及LLM的原始响应内容。这有助于在开发和排查问题时,更好地理解规划器的输入和输出,方便调试。
2025-11-19 23:19:25 +08:00
minecraft1024a
66a68356a1
fix(proactive_thinker): 修复主动思考任务的逻辑缺陷
...
在 `ColdStartTask` 和 `ProactiveThinkingTask` 中,私聊和群聊任务的执行逻辑存在缺陷。本次提交修复了以下问题:
1. 在冷启动和日常唤醒任务开始时,增加对私聊总开关 `enable_in_private` 的判断,避免在禁用时仍执行扫描。
2. 在日常唤醒任务中,为群聊处理逻辑增加了总开关 `enable_in_group` 的判断。
3. 修复了群聊白名单的判断逻辑,之前无论群聊是否在白名单内都会被唤醒,现在会正确地只唤醒白名单内的群聊。
2025-11-19 23:19:22 +08:00
minecraft1024a
30203f45c3
refactor(napcat): 移除冗余的MaiBot连接配置
...
由于MaiBot连接地址已改为通过环境变量进行配置,因此从插件配置文件中移除了旧的`host`和`port`字段,以避免配置冗余和混淆。
2025-11-19 23:19:20 +08:00
minecraft1024a
a72df9d2a0
refactor(napcat): 使用环境变量配置MaiBot连接地址
...
将硬编码的MaiBot服务器主机和端口配置更改为从环境变量`HOST`和`PORT`中读取。这样可以更灵活地在不同环境中部署,特别是容器化部署。
同时,将部分日志级别从`INFO`调整为`DEBUG`,以减少不必要的日志输出。
2025-11-19 23:19:17 +08:00
subiz
1db1a01c69
优化主动思考提示词
2025-11-19 23:19:12 +08:00
minecraft1024a
b45261288f
feat(search): 添加SearXNG搜索引擎支持
...
在Web搜索工具中集成了SearXNG作为新的搜索引擎选项。
- 在 `WebSearchConfig` 中添加了 `searxng_instances` 和 `searxng_api_keys` 配置项。
- 更新了配置文件模板以包含新的SearXNG设置。
- 修复了 `main.py` 中管理器异步初始化调用方式的错误。
2025-11-19 23:19:11 +08:00
minecraft1024a
f8e62d0253
ruff: 清理代码并规范导入顺序
...
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-11-19 23:19:07 +08:00
LuiKlee
218fe58692
结构和导入优化
...
将部分导入语句合并,减少重复导入
2025-11-19 23:19:03 +08:00
LuiKlee
3494ec5371
调整部分结构
2025-11-19 23:19:01 +08:00
subiz
781b7f92a9
没想到吧,我还是没测试()
...
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力
新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-11-19 23:19:01 +08:00
雅诺狐
4686327d8d
添加SearXNG引擎
2025-11-19 23:18:56 +08:00
Windpicker-owo
f59a31865c
feat(model): 优化客户端缓存和事件循环检测机制
...
- 在 ClientRegistry 中添加事件循环变化检测,自动处理缓存失效
- 为 OpenaiClient 实现全局 AsyncOpenAI 客户端缓存,提升连接池复用效率
- 将 utils_model 中的同步方法改为异步,确保与事件循环兼容
- 移除 embedding 请求的特殊处理,现在所有请求都能享受缓存优势
- 添加缓存统计功能,便于监控和调试
2025-11-19 23:18:54 +08:00
minecraft1024a
a72012bf78
refactor(proactive_thinker): 使用工具函数构建可读的动作历史
...
将 `proactive_thinker_executor` 中手动拼接动作历史字符串的逻辑,替换为调用 `chat_message_builder` 中新增的 `build_readable_actions` 工具函数。
这提高了代码的可读性和可维护性,将格式化逻辑集中到一处。
2025-11-19 23:18:51 +08:00
minecraft1024a
3b57bfc85c
refactor(proactive_thinker): 优化主动思考的冷却判断和上下文获取
...
主动思考插件的冷却时间判断逻辑已从依赖 `stream.last_active_time` 切换为获取最新的消息时间。这使得冷却判断更加准确,避免了因流未及时更新而导致的不准确。
同时,优化了上下文获取逻辑:
- 获取最近聊天记录时,增加了12小时的时间限制。
- 获取历史主动决策记录时,改为获取过去24小时内的动作记录,以提供更相关的上下文。
2025-11-19 23:18:49 +08:00
雅诺狐
240ac9bdbb
咳咳咳,忘更新依赖了
2025-11-19 23:18:46 +08:00
雅诺狐
97dc145b76
Refactor replyer retrieval to async and add memory formatter
...
Changed get_replyer and related calls to async across multiple modules for proper coroutine handling. Added format_memories_bracket_style utility for memory formatting. Improved video analysis caching logic and type annotations. Updated error logging for message processing.
2025-11-19 23:18:45 +08:00
雅诺狐
a9c592b203
Refactor memory metadata index to use Rust backend
...
Replaces the Python implementation of MemoryMetadataIndex with a Rust-accelerated version, removing legacy code and fallback logic. Updates search, add, and stats methods to delegate to the Rust backend. Also adds missing imports in llm_data_model.py and base_event.py for improved type support and event handling.
2025-11-19 23:18:42 +08:00
Windpicker-owo
a513aeb68e
refactor(chat): 统一异步调用模式并修复循环依赖
...
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
2025-11-19 23:18:40 +08:00
Windpicker-owo
399a7398a5
refactor(chat): 使获取聊天流支持异步调用
2025-11-19 23:18:33 +08:00
subiz
e02519b80e
我没测试,炸了就让一闪修,实在不行就revert()
...
feat(deps): 集成 MCP SSE 支持
引入 mcp>=0.9.0 与 sse-starlette>=2.2.1,完成 MCP SSE 协议客户端接入,
并在模块初始化中按需加载对应客户端。标记 TODO 清单中相关功能为已实现。
2025-11-19 23:18:31 +08:00