Commit Graph

141 Commits

Author SHA1 Message Date
Windpicker-owo
0b4a85de1e fix(chat): 将同步调用改为异步调用以匹配接口变更
修改了多处 person_info_manager.get_value() 方法的调用方式,从同步调用改为异步调用(添加 await 关键字),使其与异步接口保持一致。这确保了在获取用户信息时的正确异步操作,避免了潜在的阻塞问题。

涉及文件:
- src/chat/replyer/default_generator.py (3处修改)
- src/chat/utils/prompt.py (1处修改)
- src/person_info/relationship_builder.py (1处修改)
2025-11-19 23:09:56 +08:00
Windpicker-owo
c31fd02daf refactor(chat): 迁移数据库操作为异步模式并修复相关调用
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题

修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象

删除无用的测试文件和废弃的插件清单文件
2025-11-19 23:09:34 +08:00
Windpicker-owo
9836d317b8 refactor(database): 将同步数据库操作迁移为异步操作
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:

- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题

这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。

BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
2025-11-19 23:09:31 +08:00
Windpicker-owo
ad729d74c8 feat(affinity-flow): 优化提及检测逻辑和阈值配置
- 简化提及检测逻辑,移除冗余的私聊检查变量
- 使用配置项 mention_bot_adjustment_threshold 替换硬编码的50%阈值
- 在消息处理中清除开头可能存在的空行
- 增加首次认识用户的信息存储方法,避免未知用户处理逻辑
- 调整消息管理器检查间隔从2秒到5秒,减少系统负载
- 修复计划执行器中用户ID比较逻辑,防止自我回复死循环
2025-11-19 23:07:36 +08:00
Windpicker-owo
df3c616d09 ruff,私聊视为提及了bot 2025-11-19 23:07:30 +08:00
Windpicker-owo
3baf4c533a feat(affinity-flow): 增强关系追踪系统的人设集成和逻辑严谨性
- 在关系追踪器中集成bot人设信息,从性格视角分析用户互动
- 添加严格的关系分数档次定义和现实发展逻辑约束
- 改进提示词工程,要求详细的性格观察和互动记忆记录
- 单次互动加分限制在合理范围内(0.05-0.1),防止跳跃式关系提升
- 优化关系印象描述要求(100-200字),包含用户性格特点和深刻记忆

refactor(planner): 简化消息数据处理流程

- 使用StreamContext对象替代原始的message_data字典
- 移除冗余的消息数据准备步骤,直接从context获取未读消息
- 统一规划器接口,提高代码可读性和维护性

fix(person-info): 添加napcat到qq平台的用户ID迁移机制

- 为qq平台生成person_id时检查是否存在napcat平台的相同用户
- 如果存在则自动迁移记录并更新平台信息
- 确保用户身份在不同平台间的正确识别和延续

fix(plan-executor): 修复自我回复检测逻辑

- 使用action_message.user_info.user_id替代原始字典访问
- 防止因消息格式变化导致的自我回复检测失效

chore(config): 更新默认平台配置为qq

- 将napcat_adapter插件的默认平台名称从napcat改为qq
- 保持与现有部署环境的一致性
2025-11-19 23:07:14 +08:00
Windpicker-owo
9d014de89c feat(person-info): 增强人物关系信息构建功能
重构关系信息构建逻辑,从数据库查询更多维度数据生成详细关系描述:
- 增加认识时间、交流频率、态度评分等基本信息
- 整合UserRelationships表的额外关系数据
- 添加态度和关系分数的描述性文字转换方法
- 优化特征点选择策略,按权重和时效性综合排序
- 提供更结构化的关系信息输出格式
2025-11-19 23:07:13 +08:00
minecraft1024a
79baac2797 refactor(person_info): 引入同步方法 get_value 并替换旧的 get_value_sync(因为根本就没有这个方法)
为了解决在不同异步上下文中同步调用数据库可能引发的运行时错误,实现了一个新的、更健壮的同步方法 `PersonInfoManager.get_value`。

- 新方法能够正确处理已在运行的 asyncio 事件循环,提高了在混合代码环境中调用的稳定性。
- 全面替换了原有的 `get_value_sync` 方法调用,统一了同步获取用户信息的接口。
2025-11-19 23:05:20 +08:00
雅诺狐
679195d792 refactor(db): 修正SQLAlchemy异步操作调用方式
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:

- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-11-19 23:05:17 +08:00
雅诺狐
0cffc0aa95 refactor(db): 将数据库操作异步化
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-11-19 23:05:14 +08:00
tt-P607
dedd06efdc refactor(core): 适配核心数据获取与消息构建函数的异步调用
在数据库交互层异步化后,多个相关的数据获取和消息构建函数(如 `build_readable_messages`)也转为异步实现。本次提交在所有调用点添加了 `await` 关键字,以适应这一变化。

此外,本次提交还包含以下修复:
- 在主动思考模块中增加了对规划器返回无效动作的检查,避免后续流程出错。
- 修正了日志记录中错误的上下文变量引用。
2025-11-19 23:05:11 +08:00
tt-P607
1c760798b0 总算能回复了😭😭😭 2025-11-19 23:05:06 +08:00
雅诺狐
93542cadef perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
tt-P607
aba4f1a947 三次修改 2025-11-19 23:02:01 +08:00
Furina-1013-create
0d3a43a274 增加一个关于数据库在前面没有正确识别用户身份的时候的最小回退并改进ada插件的关于消息处理时可能会错误地把@消息识别为[视频]的情况 2025-11-19 22:59:00 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +08:00
雅诺狐
ab3a36bfa7 全面更换orjson 2025-11-19 22:47:10 +08:00
雅诺狐
f35d52401b 修复了专注错误
Updated logic in heartFC_chat.py and relationship_manager.py to prioritize 'chat_info_platform', then 'user_platform', and finally a default when determining platform information. Added a fallback to 'unknown' in get_person_id if platform is None, improving robustness when platform data is missing.

Co-Authored-By: tt-P607 <68868379+tt-P607@users.noreply.github.com>
2025-11-19 22:44:53 +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
雅诺狐
875e02d42f 数据库重构 2025-11-19 22:40:23 +08:00
雅诺狐
2e6ae2419b 优化项目结构,格式化代码 2025-11-19 22:35:40 +08:00
雅诺狐
23ee3767ef 初始化 2025-11-19 22:34:56 +08:00
SengokuCola
fed0c0fd04 feat:更新记忆系统 2025-08-13 23:17:28 +08:00
SengokuCola
4ffcc61f4b feat:记录使用的表达方式 2025-08-12 21:44:35 +08:00
SengokuCola
04bd05c1fe feat:麦麦回复时知道自己做了什么动作 2025-08-12 17:53:26 +08:00
SengokuCola
15cc5ce7bd Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev 2025-08-12 17:25:52 +08:00
UnCLAS-Prommer
9c412cd9bc typing fix 2025-08-12 17:18:49 +08:00
SengokuCola
1f7d978d1a fix:总之修复bug 2025-08-12 17:04:26 +08:00
SengokuCola
918429605a fix:不认识的用户构建关系 2025-08-12 16:57:08 +08:00
SengokuCola
527f297397 fix:不认识的用户构建关系 2025-08-12 16:46:29 +08:00
SengokuCola
1efea7304e fix:添加默认值 2025-08-12 16:36:43 +08:00
SengokuCola
ca69e9af15 fix:修复注册顺序问题
Update person_info.py

Update relationship_manager.py
2025-08-12 15:42:59 +08:00
SengokuCola
f0fff5a039 fix:person创建和调用区分 2025-08-12 15:15:50 +08:00
SengokuCola
99135f5e01 fix:修复一些问题
update
2025-08-12 14:49:27 +08:00
SengokuCola
ae254de494 better:重构personinfo,使用Person类和类属性 2025-08-12 14:33:13 +08:00
SengokuCola
08ad5dc989 fix:修复s4u 关系炸飞问题 2025-08-12 10:59:06 +08:00
SengokuCola
996ac18680 FIX:类型问题 2025-08-12 01:45:17 +08:00
SengokuCola
0f6ed0fe02 ref:重构关系系统第一步,拆除impression,采用不同属性交叉评分呢 2025-08-12 01:38:19 +08:00
SengokuCola
c5cc1f8770 feat: 暂时禁用group_info 2025-08-11 22:53:00 +08:00
SengokuCola
268b428e8f feat: llm统计现已记录模型反应时间 2025-08-11 21:51:59 +08:00
SengokuCola
bad2be2bdc fix:全面移除reply_to,并且非必须 2025-08-11 20:25:13 +08:00
SengokuCola
b738b6ba63 feat:添加群印象 2025-08-11 19:53:33 +08:00
SengokuCola
3804124df8 fix:优化reply,填补缺失值,youhualog 2025-08-11 00:19:31 +08:00
UnCLAS-Prommer
6c0edd0ad7 调整对应的调用 2025-07-30 17:07:55 +08:00
SengokuCola
16e238a1c8 fix:修复一处关系构建错误,修复一处表达方式错误 2025-07-26 09:28:14 +08:00
SengokuCola
5251905744 fix:修复reply导致的异常空跳 2025-07-25 13:45:16 +08:00
SengokuCola
b839f8ba6c better:优化prompt和配置和无用代码 2025-07-24 02:37:11 +08:00
UnCLAS-Prommer
1aa2734d62 typing fix 2025-07-17 00:10:41 +08:00
SengokuCola
e0a6474416 better:优化关系构建 2025-07-16 11:29:11 +08:00
SengokuCola
1b866c89b2 feat:不再需要reply_to,action现拥有 user_id和group_id等信息 2025-07-16 00:06:15 +08:00