Commit Graph

58 Commits

Author SHA1 Message Date
minecraft1024a
69c6829aed refactor(chat): 将 get_chat_type_and_target_info 重构为异步函数
将 `get_chat_type_and_target_info` 函数从同步改为异步,以支持其内部对异步方法 `person_info_manager.get_values` 的调用。

此更改可防止在获取聊天对象信息时阻塞事件循环。所有调用此函数的代码(包括 `SubHeartflow`, `ActionModifier`, `PlanGenerator`, `DefaultReplyer`)都已相应更新为使用 `await`。

在 `DefaultReplyer` 中引入了延迟异步初始化模式 (`_async_init`),以适应其类生命周期。
2025-11-19 23:05:46 +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
雅诺狐
93542cadef perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
tt-P607
08dc99ae51 feat(chat): 为回复分割器添加 llmpunctuation 模式
本次更新重构了回复分割功能,引入了 `split_mode` 配置项,允许用户在两种分割模式之间进行选择,提供了更大的灵活性。

- **`llm` 模式**: 延续了由大语言模型通过 `[SPLIT]` 标记决定断句的功能。此模式下的提示词(Prompt)已进一步优化,以引导模型做出更自然的分割。
- **`punctuation` 模式**: 恢复了传统的基于标点符号的分割逻辑。这已设为新的默认模式,确保用户更新后行为与旧版本保持一致。

此外,`at_user` 插件也进行了适配,以正确处理由 `llm` 模式可能产生的多段消息。
2025-11-19 22:59:56 +08:00
tt-P607
97e566b893 feat(chat): 实现由 LLM 控制的自然回复分割
之前基于标点符号的自动分割逻辑较为僵硬,有时会破坏回复的连贯性,导致对话体验不佳。

本次更新引入了一种由 LLM 主导的回复分割机制:
1.  在 Prompt 中增加了明确的分割指令,引导 LLM 在需要模拟人类对话停顿或转折时,使用 `[SPLIT]` 标记。
2.  后端回复处理逻辑相应更新,优先根据 `[SPLIT]` 标记分割消息。
3.  若 LLM 未提供 `[SPLIT]` 标记,则将整段回复作为单条消息发送,避免了不必要的拆分。

此项改动旨在让消息的发送节奏更贴近真实人类的聊天习惯,从而提升交互的自然感和流畅度。
2025-11-19 22:59:48 +08:00
minecraft1024a
796daf8ddc Revert "feat(chat): 实现发送错别字后自动撤回修正的功能"
This reverts commit fd5d951501.
2025-11-19 22:58:56 +08:00
minecraft1024a
304fc9f74c fix(chat): 修复 kaomoji 恢复函数的参数类型
在之前的重构中,`recover_kaomoji` 函数的调用被简化,但在此处调用时忘记移除数组包裹,导致传递了错误的参数类型。此提交删除了多余的方括号,确保将字符串直接传递给 `recover_kaomoji` 函数。
2025-11-19 22:58:45 +08:00
minecraft1024a
2784e59a36 refactor(chat): 简化 kaomoji 恢复函数的参数传递
将 `recover_kaomoji` 函数的调用从传递列表 `[s["..."]]` 改为直接传递字符串 `s["..."]`。此更改简化了代码,并与函数预期的输入类型保持一致,提高了代码的可读性和健壮性。
2025-11-19 22:58:44 +08:00
minecraft1024a
c75d53a6b5 fix(chat): 修复错别字修正功能中的 kaomoji 恢复逻辑
在处理类型为 "typo" 的句子时,`recover_kaomoji` 函数的调用方式有误。原先代码将 `s["correction"]` 包装在列表中 (`[s["correction"]]`) 进行传递,这与函数的预期输入不符,可能导致在修正错别字时无法正确恢复 kaomoji 表情。

本次提交移除了不必要的列表包装,确保将 `s["correction"]` 直接传递给 `recover_kaomoji` 函数,从而修正了该问题。
2025-11-19 22:58:44 +08:00
minecraft1024a
89fad16e0e feat(chat): 实现发送错别字后自动撤回修正的功能
引入了一个新的聊天交互机制:当机器人发送了包含“错别字”的消息后,会在短暂延迟后自动撤回该消息,并发送正确的版本。此功能旨在模拟更真实的人类打字行为,增加交互的趣味性和拟人化程度。

主要变更:
- **错别字处理流程**:
  - `ResponseHandler`现在会识别出带有错别字的消息,并在发送后创建一个异步任务来处理后续的修正。
  - 新增`handle_typo_correction`方法,该方法会随机延迟2-4秒,然后调用新的`recall_message` API撤回原消息,并重新发送修正后的内容。
- **API扩展**:
  - `send_api`中增加了`recall_message`函数,用于调用适配器执行消息撤回操作。
  - `send_response`的返回值从单个字符串`reply_text`变更为元组`(reply_text, sent_messages)`,以便将已发送的消息信息(包括ID和类型)传递给上层调用者。
- **数据结构调整**:
  - `process_llm_response`的返回类型从`list[str]`调整为`list[dict[str, str]]`,以支持更复杂的响应类型,如包含原文、错别字和修正建议的`typo`类型。
- **代码优化与重构**:
  - 对`ChineseTypoGenerator`进行了大量的代码清理、注释补充和逻辑优化,使其代码更清晰、更易于维护。
  - 修复了多处代码中的类型注解和潜在的空指针问题,提高了代码的健壮性。
2025-11-19 22:58:42 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +08:00
tt-P607
700c8dfa6f fix(chat): 处理截断消息时message为None的情况
在 `truncate_message` 函数中,如果传入的 `message` 参数为 `None`,会导致 `len(message)` 抛出 `TypeError`。本次提交增加了对 `None` 值的检查,确保在处理 `None` 时函数能正常返回空字符串,从而提高代码的健壮性。
2025-11-19 22:48:27 +08:00
minecraft1024a
7d13d0b6c2 fix(embedding): 彻底解决事件循环冲突导致的嵌入生成异常
通过以下改动修复嵌入生成过程中的事件循环相关问题:
- 在 EmbeddingStore._get_embedding 中,改为同步创建-使用-销毁的新事件循环模式,彻底避免嵌套事件循环问题
- 调整批量嵌入 _get_embeddings_batch_threaded,确保每个线程使用独立、短生命周期的事件循环
- 新增 force_new 参数,LLM 请求嵌入任务时强制创建新的客户端实例,减少跨循环对象复用
- 在 OpenAI 客户端的 embedding 调用处补充详细日志,方便排查网络连接异常
- get_embedding() 每次都重建 LLMRequest,降低实例在多个事件循环中穿梭的概率

此次改动虽然以同步风格“硬掰”异步接口,但对现有接口零破坏,确保了向量数据库及相关知识检索功能的稳定性。(还有就是把的脚本文件夹移回来了)
2025-11-19 22:44:54 +08:00
SengokuCola
fed0c0fd04 feat:更新记忆系统 2025-08-13 23:17:28 +08:00
SengokuCola
ca69e9af15 fix:修复注册顺序问题
Update person_info.py

Update relationship_manager.py
2025-08-12 15:42:59 +08:00
SengokuCola
ae254de494 better:重构personinfo,使用Person类和类属性 2025-08-12 14:33:13 +08:00
UnCLAS-Prommer
6c0edd0ad7 调整对应的调用 2025-07-30 17:07:55 +08:00
SengokuCola
4ab6d59a79 fix:修复enable_thinking导致的400问题 2025-07-24 23:20:05 +08:00
SengokuCola
db896299be fix:修复问题 2025-07-24 22:30:27 +08:00
UnCLAS-Prommer
76025032a9 增加了卸载和重载插件功能 2025-07-22 18:52:11 +08:00
UnCLAS-Prommer
f2c901bc98 typing 2025-07-20 18:14:53 +08:00
墨梓柒
3a1f544014 soft reset commit c71f2b21c064564631b960ecbbca6f25cfcae08d(use repush) 2025-07-16 11:20:26 +08:00
墨梓柒
c71f2b21c0 feat: 添加同步获取embedding向量和生成响应的方法 2025-07-16 11:00:16 +08:00
SengokuCola
1b866c89b2 feat:不再需要reply_to,action现拥有 user_id和group_id等信息 2025-07-16 00:06:15 +08:00
SengokuCola
5ec0d42cde feat:添加新的message类为s4u服务,添加s4u config,添加sc和gift的解析,修复关系构建的一些问题 2025-07-15 17:04:30 +08:00
UnCLAS-Prommer
7ef0bfb7c8 完成所有类型注解的修复 2025-07-13 00:19:54 +08:00
github-actions[bot]
9eeff628b8 🤖 自动格式化代码 [skip ci] 2025-07-08 18:10:43 +00:00
SengokuCola
50f0ddf2ce feat;新的情绪系统 2025-07-09 01:50:26 +08:00
github-actions[bot]
18778d2dc7 🤖 自动格式化代码 [skip ci] 2025-07-06 12:17:38 +00:00
SengokuCola
1de15bcc31 ref:调整文件位置和命名,结构更清晰 2025-07-06 18:47:08 +08:00
SengokuCola
b3a93d16e6 fix - 优化normal_chat代码,采用和focus一致的关系构建,优化log,添加超时检查,允许normal使用llm激活 2025-07-06 17:02:36 +08:00
tcmofashi
289a92293b feat: 增加消息段mention_bot的解析 2025-07-02 13:05:57 +08:00
github-actions[bot]
baac5e44cf 🤖 自动格式化代码 [skip ci] 2025-06-30 09:44:38 +00:00
A0000Xz
514ccd6be3 使generator能够自定义是否切句或者生成错字
跨越了三份文件的参数传递((
2025-06-26 23:30:31 +08:00
SengokuCola
986e88d48c fix:修复插件无法被关闭,新增新log浏览器 2025-06-16 19:34:29 +08:00
晴猫
fc7b9b61d9 fix: 将日志级别从trace更改为debug 2025-06-11 22:49:25 +09:00
春河晴
7b4e7b94f8 use structlog instead of loguru 2025-06-11 15:17:08 +09:00
春河晴
cf39f2fe84 random qa 2025-06-10 16:41:49 +09:00
SengokuCola
0e64ed3405 feat:添加配置项以关闭 消息后处理 2025-06-09 23:27:52 +08:00
SengokuCola
e888636ea0 feat:新增用户侧写功能 2025-06-03 17:08:12 +08:00
github-actions[bot]
243d5184e6 🤖 自动格式化代码 [skip ci] 2025-06-02 13:15:04 +00:00
SengokuCola
d957aef202 better:优化prompt中时间的内容 2025-06-02 18:19:16 +08:00
SengokuCola
4bf290d55f fix:修复遥测,打字时间,图像识别 2025-06-02 17:46:17 +08:00
github-actions[bot]
813c0eb787 🤖 自动格式化代码 [skip ci] 2025-05-29 05:53:06 +00:00
SengokuCola
d94b7022e2 优化提及 2025-05-29 13:52:04 +08:00
SengokuCola
2c973244e3 fix修复at 2025-05-27 23:34:09 +08:00
github-actions[bot]
aa67b59540 🤖 自动格式化代码 [skip ci] 2025-05-27 14:53:17 +00:00
zrzluck99
e25755118e Update src/chat/utils/utils.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-05-27 22:22:15 +08:00
zrzluck99
43be52a2b3 fix: 修复了 chat 插件中不能正确识别at的错误, 并添加了对linuxqq的支持 2025-05-27 22:10:37 +08:00
SengokuCola
9625750e62 fix:文件路径合理化 2025-05-23 16:00:26 +08:00