Commit Graph

84 Commits

Author SHA1 Message Date
John Richard
00ba07e0e1 style: 格式化代码 2025-11-19 23:12:18 +08:00
minecraft1024a
944876227a refactor(chat): 将消息获取相关函数重构为异步
将 `chat_message_builder` 中的多个同步消息获取函数(如 `get_raw_msg_by_timestamp`)及其调用全部修改为异步函数。这统一了数据库查询的异步模式,提高了代码一致性和可维护性。

主要改动包括:
- 将 `chat_message_builder.py` 中的数据库查询函数标记为 `async` 并使用 `await`。
- 更新了 `message_api.py`、`mood_manager.py` 和 `qzone_service.py` 中对这些函数的调用,以适应异步接口。
- 调整了 `message_api.py` 中的函数签名和返回类型提示,以反映异步特性。
2025-11-19 23:11:51 +08:00
Windpicker-owo
ae0c2704d1 refactor(chat): 移除 ChatStream 的历史消息自动加载功能
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。

主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理

BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
2025-11-19 23:09:40 +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
df3c616d09 ruff,私聊视为提及了bot 2025-11-19 23:07:30 +08:00
minecraft1024a
f204be3146 feat(chat): 在聊天消息中显示用户 QQ 号 2025-11-19 23:05:43 +08:00
tt-P607
f3b3e60c1c feat(chat): 增加已读标记以聚焦未读消息
为聊天上下文生成逻辑引入了“已读标记” (read_mark) 机制。

当生成回复时,可以在历史消息中插入一个明确的分隔符,以告知模型哪些消息是它已经看过的旧消息,哪些是需要关注的新消息。

这有助于模型更好地聚焦于未读内容,提升上下文感知能力和回复的相关性。

同时,将 Prompt 模板中的“群聊”等硬编码文本参数化,以更好地适配私聊等不同聊天场景。
2025-11-19 23:05:36 +08:00
tt-P607
26b9d02476 fix(core): 修正因异步改造遗漏的 await 调用
在最近的数据库异步化重构后,部分函数的调用处忘记添加 `await` 关键字,导致协程未被正确执行。

本次提交修复了以下模块中的问题:
- `ExpressionLearner`
- `ChatMessageBuilder`
- `EmojiAction
2025-11-19 23:05:22 +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
tt-P607
aba4f1a947 三次修改 2025-11-19 23:02:01 +08:00
minecraft1024a
8d8cae8c10 fix(chat): 修复计划过滤器和消息构建器中的潜在空指针问题
- 在 `plan_filter.py` 中,当LLM未指定 `target_message_id` 时,明确将目标消息设置为最新的消息,避免后续操作因 `target_message_dict` 未定义而出错。
- 在 `chat_message_builder.py` 中,为 `replace_user_references_sync` 函数增加了对 `content` 为空的检查,防止后续处理引发异常。
- 将数据库查询从 `.scalar()` 改为 `.scalar_one_or_none()`,以更清晰地处理未找到结果的情况。
2025-11-19 23:00:43 +08:00
minecraft1024a
d66e04baff chore: format code and remove redundant blank lines
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-11-19 22:57:44 +08:00
Windpicker-owo
57ba493a74 fix:修复图片识别爆炸 2025-11-19 22:57:22 +08:00
Windpicker-owo
d86cfa90ad 迁移:3804124,9e9e796
(feat:将no_reply内置、fix:优化reply,填补缺失值)
2025-11-19 22:56:51 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +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
雅诺狐
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
minecraft1024a
fe43cb3816 将聊天消息构建器中的日志级别从info调整为debug,以减少日志输出的冗余,优化调试信息的记录。 2025-11-19 22:39:16 +08:00
minecraft1024a
80eab4cf1a 在聊天消息构建器中添加日志记录功能,记录函数调用参数和处理过程,优化动作记录的返回格式,确保返回的动作记录包含必要字段。 2025-11-19 22:39:09 +08:00
ikun-11451
0053daffd9 给这个文件的请求session加上一个with上下文管理喵~ 2025-11-19 22:37:46 +08:00
雅诺狐
23ee3767ef 初始化 2025-11-19 22:34:56 +08:00
SengokuCola
ae254de494 better:重构personinfo,使用Person类和类属性 2025-08-12 14:33:13 +08:00
SengokuCola
3804124df8 fix:优化reply,填补缺失值,youhualog 2025-08-11 00:19:31 +08:00
UnCLAS-Prommer
29229d9a36 typing fix 2025-07-25 19:56:01 +08:00
SengokuCola
6900a8b269 feat:优化关键词提取,优化at和回复的解析 2025-07-25 16:51:13 +08:00
UnCLAS-Prommer
1aa2734d62 typing fix 2025-07-17 00:10:41 +08:00
SengokuCola
d67cffd953 fix ruff 2025-07-16 00:22:07 +08:00
SengokuCola
1b866c89b2 feat:不再需要reply_to,action现拥有 user_id和group_id等信息 2025-07-16 00:06:15 +08:00
SengokuCola
a150aa7b2b feat:noreply不考虑command 2025-07-15 21:37:32 +08:00
UnCLASPrommer
80a1c0bf93 api typing check 2025-07-15 19:09:04 +08:00
UnCLAS-Prommer
3961fb7542 fix typo, refactor memory_system 2025-07-13 10:31:18 +08:00
UnCLAS-Prommer
f890722c3d Merge branch 'dev' into plugin 2025-07-13 01:28:48 +08:00
github-actions[bot]
2d39cefce0 🤖 自动格式化代码 [skip ci] 2025-07-12 16:21:28 +00:00
UnCLAS-Prommer
7ef0bfb7c8 完成所有类型注解的修复 2025-07-13 00:19:54 +08:00
SengokuCola
8fae6272bc feat:normal可以一种简洁的方式切换到focus 2025-07-12 16:12:30 +08:00
UnCLAS-Prommer
485aaac783 Merge branch 'dev' into plugin 2025-07-12 10:02:05 +08:00
UnCLAS-Prommer
b303a95f61 部分类型注解修复,优化import顺序,删除无用API文件 2025-07-12 00:34:49 +08:00
github-actions[bot]
3768fb22ad 🤖 自动格式化代码 [skip ci] 2025-07-10 17:32:15 +00:00
SengokuCola
44abb71959 细微调整 2025-07-11 01:31:57 +08:00
SengokuCola
f144883826 feat:将action记录置入planner,有效减少重复调用action问题 2025-07-11 01:24:44 +08:00
SengokuCola
f17f5cf46c feat:修改log,优化关系构建逻辑,节省token, 2025-07-08 02:04:31 +08:00
github-actions[bot]
324b294b5f 🤖 自动格式化代码 [skip ci] 2025-07-01 11:33:16 +00:00
SengokuCola
e04bf94e16 feat:一对多的新模式 2025-07-01 15:22:03 +08:00
SengokuCola
5351b7639c better:优化表达方式和侧面人格 2025-06-25 15:53:59 +08:00
SengokuCola
44a556c179 feat:为no_reply增加正反馈 2025-06-23 22:43:17 +08:00
SengokuCola
66f35bb5e7 feat:为focus的no_reply决策加入更多信息,可以自定义频率 2025-06-23 15:36:31 +08:00
github-actions[bot]
20fe9cca64 🤖 自动格式化代码 [skip ci] 2025-06-23 04:58:15 +00:00
SengokuCola
0ebb2e3a54 fix:更好的no_reply记录和过程 2025-06-23 12:56:55 +08:00