Commit Graph

286 Commits

Author SHA1 Message Date
Windpicker-owo
ab4fcfb6b6 feat: 重构统一记忆管理器,整合聊天历史上下文并优化记忆块转移逻辑 2025-11-19 23:58:49 +08:00
Windpicker-owo
5798d11066 feat: 采用三层内存系统实现统一内存管理器
- 添加了UnifiedMemoryManager,以整合感知层、短期记忆层和长期记忆层。
- 实现了初始化、消息添加和内存搜索功能。
- 引入了记忆从短期存储到长期存储的自动转移机制。
- 开发了用于结构化内存表示的内存格式化工具。
- 增强日志记录功能,以便在内存操作过程中更好地进行追踪。
2025-11-19 23:58:49 +08:00
Windpicker-owo
e44f238e53 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-19 23:58:48 +08:00
minecraft1024a
d12e384cc2 chore: perform widespread code cleanup and formatting
Perform a comprehensive code cleanup across multiple modules to improve code quality, consistency, and maintainability.

Key changes include:
- Removing numerous unused imports.
- Standardizing import order.
- Eliminating trailing whitespace and inconsistent newlines.
- Updating legacy type hints to modern syntax (e.g., `List` -> `list`).
- Making minor improvements for code robustness and style.
2025-11-19 23:58:47 +08:00
Windpicker-owo
40709d95de rebase 清理 2025-11-19 23:45:47 +08:00
tt-P607
606fe3fd2e feat(prompt): 添加动态群聊提醒并修复内存搜索
在系统提示中引入动态群聊提醒,使其具备上下文意识。现在仅在对话发生在群聊环境中时注入该提醒,从而防止在私聊中可能引起模型混淆。

这是通过向`PromptParameters`添加`group_chat_reminder_block`实现的,该模块会根据聊天类型有条件地填充。

此外,本次提交还包括修复在内存搜索过程中可能出现的`AttributeError`,确保在尝试使用内存模块之前先进行配置。
2025-11-19 23:37:41 +08:00
Windpicker-owo
c0e400f423 feat(attention): 添加注意力优化器以增强提示词多样性和防止注意力退化
refactor(prompt): 使用 asyncio.gather 替代 as_completed 以提升并发性能
refactor(config): 添加注意力优化配置选项
refactor(prompt_params): 增加注意力优化开关
2025-11-19 23:37:37 +08:00
Windpicker-owo
89aa44d333 refactor(replyer): 优化用户ID获取逻辑,简化自我回复判断 2025-11-19 23:37:32 +08:00
Windpicker-owo
1afcf51d61 refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较 2025-11-19 23:37:31 +08:00
Windpicker-owo
59965bb1ee refactor(action_manager): 简化回复处理逻辑,移除多余的参与者信息获取 2025-11-19 23:37:30 +08:00
Windpicker-owo
20760db7ef refactor(distribution_manager): 优化流循环管理逻辑,减少重复代码并改进异常处理
refactor(action_manager): 将异步存储操作改为非阻塞任务,提升性能
refactor(default_generator): 简化回复生成器中的消息处理逻辑
refactor(generator_api): 更新类型提示,增强代码可读性
refactor(affinity_chatter): 清理异常处理中的冗余代码,确保处理标记的正确清理
refactor(affinity_interest_calculator): 重命名阈值调整方法,提升代码一致性
refactor(plan_executor): 移除冗余的已读消息处理逻辑
refactor(planner): 优化规划器中的异常处理,确保正常模式的退出检查
2025-11-19 23:37:30 +08:00
minecraft1024a
f44ece0b29 style: 统一代码风格并采用现代化类型注解
对整个代码库进行了一次全面的代码风格清理和现代化改造,主要包括:

- 移除了所有文件中多余的行尾空格。
- 将类型提示更新为 PEP 585 和 PEP 604 引入的现代语法(例如,使用 `list` 代替 `List`,使用 `|` 代替 `Optional`)。
- 清理了多个模块中未被使用的导入语句。
- 移除了不含插值变量的冗余 f-string。
- 调整了部分 `__init__.py` 文件中的 `__all__` 导出顺序,以保持一致性。

这些改动旨在提升代码的可读性和可维护性,使其与现代 Python 最佳实践保持一致,但未修改任何核心逻辑。
2025-11-19 23:37:27 +08:00
Windpicker-owo
8657b01f0d feat(replyer): 使用全局配置替换默认记忆检索参数,提升灵活性和可配置性
feat(memory_tools): 优化记忆过滤逻辑,增强日志记录和过滤统计
feat(plan_filter): 调整AFC场景的记忆检索数量,减少干扰
2025-11-19 23:37:20 +08:00
Windpicker-owo
97fa09cada feat(chatter_manager): 清理 processing_message_id 以防止重复回复检测失效
feat(distribution_manager): 添加子任务跟踪和取消逻辑,优化流处理
feat(default_generator): 优化 respond 和 reply 模式下的消息处理逻辑
feat(affinity_chatter): 处理取消异常时清理 processing_message_id
feat(planner): 确保在规划流程取消时清理 processing_message_id
2025-11-19 23:37:09 +08:00
Windpicker-owo
dd43fccb94 feat(reply): 优化respond动作逻辑,移除不必要的目标消息参数 2025-11-19 23:37:06 +08:00
Windpicker-owo
5d4ff6507a feat(reply): 引入统一格式过滤器,优化回复内容清理逻辑 2025-11-19 23:37:02 +08:00
Windpicker-owo
bec4f23ff5 feat(reply): 引入增强的格式过滤器,优化回复内容清理逻辑 2025-11-19 23:37:00 +08:00
Windpicker-owo
90ed6964b3 feat(reply): 引入 reply 和 respond 动作,优化消息回复机制
- 增加 reply 动作,针对单条消息进行深度回复,使用 s4u 模板。
- 增加 respond 动作,统一回应未读消息,使用 normal 模板。
- 更新核心动作插件以支持新动作,确保配置选项可用。
- 优化动作执行逻辑,提升对话流畅性和响应准确性。
2025-11-19 23:36:59 +08:00
明天好像没什么
5d7d19625e 创建了新的反注入 2025-11-19 23:36:36 +08:00
tt-P607
1c83d3540c fix(replyer): 彻底重构回复过滤器以处理深度嵌套格式
问题描述:

此前,模型在生成回复时,会偶发性地模仿并输出Prompt中用于示例的 [回复<...>] 格式。尽管经过多次迭代,原有的正则表达式过滤器仍无法有效处理包含多层嵌套括号的复杂情况,导致清理不彻底,最终发送的消息中仍残留部分不规范文本。

解决方案:

本次提交对 default_generator.py 中的 llm_generate_content 方法进行了彻底的重构,用一套更健壮、更简单的逻辑替换了原有的正则表达式方案:

采用“整体清除”策略: 放弃了复杂的模式匹配,转而实现了一个更直接的清除逻辑。现在,如果一条生成的消息以 [回复 开头,程序会寻找到该消息中 最后一个 ] 字符的位置。
精准切片: 将从消息开头到最后一个 ] 字符(包含该字符)之间的所有内容全部切除,只保留之后的部分作为最终回复。
日志记录: 保留了清晰的 logger.warning,在过滤器生效时,会详细记录原始内容与清理后的内容,便于持续监控模型行为。
优势:

鲁棒性: 这种新方法与括号的嵌套层数完全无关,无论模型生成多么复杂的嵌套结构,都能一举将其完全清除,从根本上解决了问题。
简洁性: 代码逻辑比复杂的正则表达式更清晰、更易于理解和维护。
验证:

创建了专门的测试脚本 Elysia/Bot/scripts/test/test_ultimate_filter.py。
脚本覆盖了多种复杂的、包含深度嵌套的失败案例以及正常的边界情况。
测试结果表明,新的过滤逻辑完美通过了所有测试,达到了预期的效果。
2025-11-19 23:36:35 +08:00
tt-P607
460b73b3e2 feat(chat): 优化回复内容过滤器,杜绝格式模仿
核心问题:
修复了模型在生成回复时,偶尔会模仿并输出Prompt中用于示例的 [回复<...>] 格式的问题。此问题会导致最终发送的消息包含不应出现的多余文本。

实现方案:

精准定位过滤时机:
将过滤逻辑从原先的 send_api 前置到 default_generator 的 llm_generate_content 方法中。这确保了在LLM生成内容后、任何后续处理(如回复分割)前,第一时间对不规范内容进行清理,从根源上解决了问题。

强化正则表达式:
采用了一个更严格的正则表达式 r'\[\s*回复\s*<.+?>.*?\]',并设置了 re.DOTALL 标志。此举旨在“宁可错杀,不可放过”,能够更有效地匹配并清除各种复杂的、甚至包含换行的模仿格式。

处理嵌套残留:
在正则替换后,增加了一步额外的检查。如果清理后的字符串以 ] 开头(通常由嵌套括号引起),则会移除这个残留的字符,确保最终内容的绝对纯净。

增加日志监控:
为过滤器增加了 logger.warning 日志。当过滤器成功触发并清理内容时,会详细记录原始内容与清理后的内容,便于后续追踪和分析模型行为。

代码结构优化:

移除了 llm_generate_content 方法中原有的、效果较差的旧清理逻辑,避免了代码冗余。
修正了 build_memory_block 方法中一处错误的属性访问,将 stream.chat_history_manager 更正为 stream.context_manager,解决了潜在的 AttributeError。
最终效果:
通过以上修改,我们构建了一套健壮、精准且可观测的回复内容过滤机制,彻底解决了模型模仿系统消息格式的问题,显著提升了回复内容的质量与规范性
2025-11-19 23:36:33 +08:00
tt-P607
03fcc8043c refactor(core): 简化回复清理并加强 API 调用此次提交彻底重构了回复清理逻辑,以提升可维护性,并在发送 API 中引入了多项防御性检查,以防止常见的运行时错误。通过将复杂的迭代清理算法替换为单一且更高效的正则表达式,回复生成过程得到了简化。这不仅提高了去除模型生成的头信息的可靠性,还显著降低了代码复杂性。在发送 API 中,实现了多个安全措施:- 修正了异步处理错误,通过移除同步字典操作上无效的 await,防止出现 TypeError。- 添加了预检验证,以确保文件上传有定义的目标,并且临时流指定了平台。- 现在一致将机器人用户 ID 转换为字符串,以消除潜在的类型相关不一致。最后,为了清晰起见,机器人的行为原则术语也进行了调整。 2025-11-19 23:36:32 +08:00
明天好像没什么
26d22e5dd8 ruff 2025-11-19 23:36:06 +08:00
Windpicker-owo
57b42512bb feat: 增强聊天回复生成器,添加参与者信息和聊天历史处理逻辑 2025-11-19 23:35:28 +08:00
Windpicker-owo
e6f3dfc1e7 feat(tool_history): 实现流工具历史管理器,以增强工具调用跟踪和缓存- 添加了 StreamToolHistoryManager,用于管理聊天流级别的工具调用历史。- 引入了 ToolCallRecord,用于详细记录工具调用,包括执行时间和缓存命中情况。- 集成了内存缓存和全局缓存系统,以高效检索结果。- 更新了 ToolExecutor,以使用新的历史管理器记录和获取工具调用。- 增强了 ExaSearchEngine,以限制返回结果数量并提升答案质量。- 重构了 CacheManager 中的缓存管理,以包括工具调用统计和性能指标。 2025-11-19 23:35:27 +08:00
Windpicker-owo
59081848e2 feat(memory): 移除传统内存系统并优化内存图谱
- 移除整个传统内存系统,包括内存系统模块及所有相关组件
- 删除弃用的内存组件:增强型内存激活器、海马体采样器、内存构建器、内存块、内存遗忘引擎、内存格式器、内存融合器、内存管理器、内存元数据索引、内存查询规划器、内存系统、消息集合处理器、消息集合存储、向量内存存储_v2
- 更新内存图配置,采用增强型检索设置
- 优化内存管理器查询功能,以分析完整对话上下文
- 更新机器人配置模板版本至7.6.1,新增内存图表检索参数

重大变更:旧版内存系统已被完全移除。所有内存功能现依赖于内存图系统。请更新配置以包含新的内存图检索参数。
2025-11-19 23:34:57 +08:00
Windpicker-owo
b6a693895b feat: 重构聊天系统的内存处理与格式化功能
- 更新了DefaultReplyer,采用新的内存格式化工具以提供更优质的内存描述。
- 已移除 Config 类中已弃用的内存配置。
- 在主系统中增强内存系统初始化检查,确保配置正确。
- 优化了MemoryManager,使其可直接使用全局配置进行内存设置。
- 新增了一个内存格式化工具,用于将内存对象转换为自然语言描述。
- 更新了内存工具,提供了更清晰的内存创建与管理指南。
- 精炼插件工具与使用提示,提升用户交互体验与记忆准确性。
- 根据内存系统结构的变化调整了机器人配置模板。
2025-11-19 23:32:11 +08:00
Windpicker-owo
c4d8a132cc feat(memory): 添加智能查询优化,移除瞬时记忆处理
重大改进:
- 在 MemoryManager 中添加 optimize_search_query 方法
- 使用小模型优化搜索查询,提高检索精确度
- search_memories 新增 optimize_query 和 context 参数
- 移除瞬时记忆处理(由其他系统负责)

技术实现:
- 使用 utils_small 模型优化查询语句
- 自动提取查询核心意图和关键信息
- 支持上下文感知(聊天历史、发言人)
- 失败时自动降级到原始查询

查询优化流程:
1. 提取聊天历史和发言人信息
2. 构建查询上下文
3. 调用小模型生成优化查询
4. 使用优化查询进行语义搜索
5. 返回相关记忆

default_generator.py 调整:
- 移除瞬时记忆处理逻辑
- 调用 manager.search_memories 时传入 context
- 启用 optimize_query 参数
2025-11-19 23:32:08 +08:00
Windpicker-owo
c764b076ca refactor(memory): 完全移除旧记忆系统,全面切换到新记忆图系统
重大变更:
- 移除 default_generator.py 中对旧增强记忆系统的所有调用
- 移除 prompt.py 中的记忆构建函数
- 记忆检索全面使用新记忆图系统
- 禁用旧记忆系统的自动存储逻辑

记忆构建流程:
- 记忆创建: LLM 通过 create_memory 工具主动创建
- 记忆检索: default_generator.py 自动检索
- 记忆传递: 通过 pre_built_params 传入 prompt

工具可用性:
- CreateMemoryTool: available_for_llm = True
- LinkMemoriesTool: available_for_llm = False
- SearchMemoriesTool: available_for_llm = False

技术细节:
- 提高记忆检索数量 top_k=10
- 降低重要性阈值 min_importance=0.3
- 修复类型错误和警告
2025-11-19 23:32:07 +08:00
Windpicker-owo
44ddd294c2 feat(memory-graph): Step 2 - 集成记忆检索到提示词生成
- 修改 build_memory_block 方法,添加记忆图系统检索
- 在提示词构建时自动从记忆图系统中检索相关记忆
- 合并增强记忆系统和记忆图系统的检索结果
- 更新记忆格式化代码以使用合并后的记忆列表

技术细节:
- 使用 manager_singleton 获取全局记忆管理器
- 调用 search_memories 检索相关记忆 (top_k=5, min_importance=0.5)
- 将记忆格式化为兼容的数据结构并合并到 all_memories
- 保持与现有增强记忆系统的兼容性

测试验证:
- 成功创建测试记忆并检索
- 不同查询能找到相应的相关记忆
- 记忆图系统可正常被提示词生成器调用
2025-11-19 23:32:07 +08:00
tt-P607
0dcd8c5626 fix(replyer): 移除历史记录的硬编码上限
修复了在构建聊天记录上下文时,已读历史消息被硬编码截断为50条的问题。

现在,`build_s4u_chat_history_prompts` 及其回退方法将完全遵循 `max_context_size` 配置,确保模型能获取到完整的上下文信息。
2025-11-19 23:32:02 +08:00
Windpicker-owo
914fe59a10 refactor(chat): 将用户引用处理从同步改为异步,优化性能 2025-11-19 23:32:00 +08:00
tt-P607
7235c681d8 refactor(replyer): tmd回复模型你再犯个蠢事试试?😡😡😡老子都这样子严防死守了,你要是还犯蠢我当场********************👿👿👿 2025-11-19 23:31:51 +08:00
tt-P607
cf5b2b5811 fix(replyer): 优化回复器提示词以修复戳一戳处理逻辑
- **问题现象:**
  回复模型(Replyer)在接收到“戳一戳”事件时,会错误地生成如“[戳了戳]”之类的文本回复,而不是交由动作执行器(Planner)处理`poke_user`动作。

- **根本原因:**
  1.  回复提示词模板中没有明确禁止输出此类文本,导致模型将其视为普通消息进行模仿。
  2.  模板中关于“可用动作”的描述不够明确,可能让回复模型误以为自己需要处理或决定这些动作。

- **解决方案:**
  1.  **增强指令:** 在所有核心回复模板 (`default_expressor_prompt`, `s4u_style_prompt`, `normal_style_prompt`) 中,明确增加了“‘戳一戳’不是文本消息,而是由`poke_user`动作处理的特殊互动,因此绝对禁止在回复中输出相关文字”的规则。
  2.  **明确职责:** 修改了 `build_prompt_reply_context` 方法中生成`action_descriptions`的逻辑,向回复模型强调其职责仅是生成回复文本,而动作的决策与执行由独立的模型负责,严禁其在回复中模仿或调用动作。

- **影响:**
  - 修复了“戳一戳”互动被错误处理为文本回复的BUG。
  - 增强了提示词的鲁棒性,明确了回复模型与决策模型之间的职责边界,降低了未来类似问题的发生概率。
2025-11-19 23:31:50 +08:00
minecraft1024a
612401cb2d refactor(chat): 简化日程状态提示逻辑
删除了在日程活动时间范围之外的冗余状态判断。现在,无论当前时间是否在活动时间段内,都会统一计算并展示活动的开始、结束、已进行和剩余时间,简化了代码逻辑并确保了信息展示的一致性。反正LLM自己会判断的,不需要咱操心那么多啦。
2025-11-19 23:31:30 +08:00
minecraft1024a
773fbbbc34 回复器你不许传dict 2025-11-19 23:30:39 +08:00
minecraft1024a
fc3aea9fd5 refactor(api): 合并兴趣度API和关系API,以及扩展关系API 2025-11-19 23:30:35 +08:00
Windpicker-owo
6a592e221b fix(plugin): 禁用hello_world_plugin以防止意外启用
fix(replyer): 修改提示信息中的“这句话”为“这条消息”以提高表达准确性
2025-11-19 23:30:29 +08:00
Windpicker-owo
2802ba7e07 refactor(replyer): 更新init_prompt函数,添加格式化标记输出限制 2025-11-19 23:30:21 +08:00
minecraft1024a
697d3b734f refactor(replyer): 统一消息与用户信息模型
将 `_generate_prompt` 方法中的 `reply_message` 参数统一为 `DatabaseMessages` 类型,并确保从 `anchor_message` 获取的 `sender_info` 被正确转换为 `UserInfo` 模型。同时,简化了情绪提示词的构建逻辑。

此外,在 `_get_master_prompt` 中增加了对 `user_info` 的空值检查,以避免潜在的属性访问错误。
2025-11-19 23:30:16 +08:00
minecraft1024a
0ca5623961 refactor(mood): 移除与唤醒愤怒和失眠相关的状态管理
删除了 `ChatMood` 类中的 `is_angry_from_wakeup` 属性,并移除了 `MoodManager` 中所有与之相关的方法,包括:
- `reset_mood_by_chat_id`
- `set_angry_from_wakeup`
- `clear_angry_from_wakeup`
- `start_insomnia`
- `stop_insomnia`
- `get_angry_prompt_addition`

这些逻辑现在由更通用的状态机和动作系统处理,简化了情绪模块的职责,使其更专注于核心情绪值的管理。
2025-11-19 23:30:13 +08:00
minecraft1024a
2ee6aa3951 refactor(core): 优化类型提示与代码风格
本次提交对项目代码进行了广泛的重构,主要集中在以下几个方面:

1.  **类型提示现代化**:
    -   将 `typing` 模块中的 `Optional[T]`、`List[T]`、`Dict[K, V]` 等旧式类型提示更新为现代的 `T | None`、`list[T]`、`dict[K, V]` 语法。
    -   这提高了代码的可读性,并与较新 Python 版本的风格保持一致。

2.  **代码风格统一**:
    -   移除了多余的空行和不必要的空格,使代码更加紧凑和规范。
    -   统一了部分日志输出的格式,增强了日志的可读性。

3.  **导入语句优化**:
    -   调整了部分模块的 `import` 语句顺序,使其符合 PEP 8 规范。

这些更改不涉及任何功能性变动,旨在提升代码库的整体质量、可维护性和开发体验。
2025-11-19 23:30:12 +08:00
Windpicker-owo
2acd0a0830 refactor(message-manager): 删除自适应流管理器并优化上下文加载
-从distribution_manager和message_manager中删除adaptive_stream_manager.py及其集成
-删除过时的message_recv_backup.py,因为MessageRecv已被DatabaseMessages完全替换
-在context_manager中添加异步历史初始化,以便在启动时从数据库加载消息
-优化default_generator以使用内存中的消息,而不是重复的数据库查询
-修复message.py中的回复消息段处理,以处理DatabaseMessages格式
-从chat_stream.py中删除deepcopy并改进context_manager初始化
-清理bot.py和适配器响应方法中未使用的通知处理

突破性变化:自适应流管理系统已被完全删除。所有消息处理现在都依赖于DatabaseMessages格式。上下文管理器现在在创建时从数据库异步初始化历史记录。
2025-11-19 23:30:07 +08:00
Windpicker-owo
1b3a2342ce 重构消息处理并用DatabaseMessages替换MessageRecv
-更新PlusCommand以使用DatabaseMessages而不是MessageRecv。
-将消息处理逻辑重构到一个新模块message_processor.py中,以处理消息段并从消息字典中创建DatabaseMessages。
-删除了已弃用的MessageRecv类及其相关逻辑。
-调整了各种插件以适应新的DatabaseMessages结构。
-增强了消息处理功能中的错误处理和日志记录。
2025-11-19 23:30:06 +08:00
Windpicker-owo
1937f43038 refactor(bot): 使用统一方法转换消息为数据库对象,简化代码逻辑 2025-11-19 23:30:05 +08:00
tt-P607
edd96b4b6d fix(chat): 增强回复内容清理逻辑以处理嵌套回复头
先前的回复头清理逻辑无法有效处理模型生成的复杂或嵌套的回复结构,例如 `[回复<A>:[回复<B>:内容]],说:`,导致清理不彻底。

本次更新通过以下方式提升了清理的健壮性:
- 使用循环和更健壮的正则表达式,以递归方式剥离多层嵌套的回复头。
- 增加了一个基于 `],说:` 的 rsplit 作为最终防线,处理日志中观察到的其他特殊格式。
- 移除了可能存在的 `[SPLIT]` 标记,避免意外的消息分割。

此外,本次提交还更新了 QQ 表情列表,增加了新的表情并修正了一个格式错误。
2025-11-19 23:27:15 +08:00
tt-P607
99e7447430 fix(chat): 清理模型意外生成的回复头
部分语言模型在生成回复时,会自行在内容开头添加如 `[回复<用户>的消息:]` 格式的回复头,这会导致最终消息中出现重复或格式错误的头部。

此提交通过正则表达式循环移除这些多余的回复头,确保输出内容整洁。
2025-11-19 23:27:13 +08:00
tt-P607
96152c3988 fix(chat): 修复上下文构建逻辑,确保总是合并数据库与会话历史
之前,仅在会话历史 (`read_messages`) 为空时,才会从数据库加载历史消息作为备用上下文。这可能导致在服务重启后或长时间对话中,上下文信息不完整,影响对话质量。

本次修改将流程调整为:始终先从数据库加载最近的历史消息,然后将其与当前会话中的消息进行合并与去重(以后者为准)。

这样可以确保无论在何种情况下,传递给模型的上下文都是最完整和准确的,从而显著提高对话的连贯性。
2025-11-19 23:27:12 +08:00
Windpicker-owo
60b3a2ba4f feat(relationship): 重构关系信息提取系统并集成聊天流印象
- 在 RelationshipFetcher 中添加 build_chat_stream_impression 方法,支持聊天流印象信息构建
- 扩展数据库模型,为 ChatStreams 表添加聊天流印象相关字段(stream_impression_text、stream_chat_style、stream_topic_keywords、stream_interest_score)
- 为 UserRelationships 表添加用户别名和偏好关键词字段(user_aliases、preference_keywords)
- 在 DefaultReplyer、Prompt 和 S4U PromptBuilder 中集成用户关系信息和聊天流印象的组合输出
- 重构工具系统,为 BaseTool 添加 chat_stream 参数支持上下文感知
- 移除旧的 ChatterRelationshipTracker 及相关关系追踪逻辑,统一使用评分API
- 在 AffinityChatterPlugin 中添加 UserProfileTool 和 ChatStreamImpressionTool 支持
- 优化计划执行器,移除关系追踪相关代码并改进错误处理

BREAKING CHANGE: 移除了 ChatterRelationshipTracker 类及相关的关系追踪功能,现在统一使用 scoring_api 进行关系管理。BaseTool 构造函数现在需要 chat_stream 参数。
2025-11-19 23:27:11 +08:00
Windpicker-owo
21167a2685 feat(expression): 添加表达方式选择模式支持与DatabaseMessages兼容性改进
- 新增统一的表达方式选择入口,支持classic和exp_model两种模式
- 添加StyleLearner模型预测模式,可基于机器学习模型选择表达风格
- 改进多个模块对DatabaseMessages数据模型的兼容性处理
- 优化消息处理逻辑,统一处理字典和DatabaseMessages对象
- 在配置中添加expression.mode字段控制表达选择模式
2025-11-19 23:27:09 +08:00