Commit Graph

239 Commits

Author SHA1 Message Date
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
Windpicker-owo
a80db71cd4 feat(chat): 优化消息处理提示词与兴趣度显示逻辑
- 在默认回复器中移除未读消息的兴趣度显示,简化回复逻辑
- 在亲和流聊天器的计划过滤器中保留兴趣度显示,供planner决策使用
- 更新planner提示词,明确兴趣度优先原则但禁止在思考流中使用技术术语
- 统一历史消息区块的标题描述,提高可读性
2025-11-19 23:27:08 +08:00
minecraft1024a
bdcd50468c refactor(reaction): 重构关键词反应系统为通用反应规则系统
将原有的 `keyword_reaction` 系统重构为一个更通用、更强大的 `reaction` 系统。新系统统一了关键词和正则表达式规则,并增加了按聊天流ID(`chat_stream_id`)进行规则作用域限定的功能。

主要变更包括:
- **统一配置模型**:将 `KeywordReactionConfig` 和 `KeywordRuleConfig` 合并重构为 `ReactionConfig` 和 `ReactionRuleConfig`,提供了更清晰、统一的规则定义方式。
- **增加作用域控制**:新的 `ReactionRuleConfig` 增加了 `chat_stream_id` 字段,允许规则被限定在全局范围或特定的聊天会话中。
- **简化逻辑实现**:`DefaultReplyer` 中的实现被重构,以适应新的配置模型,能够筛选并应用适用范围内的规则。
- **更新配置文件模板**:`bot_config_template.toml` 已更新,以反映新的 `[[reaction.rules]]` 配置结构,并提供了详细的注释说明。
- **新增辅助方法**:在 `ChatStream` 中添加了 `get_raw_id()` 方法,用于获取未哈希的原始聊天流ID,以支持新系统的作用域匹配。

BREAKING CHANGE: 关键词反应功能的配置结构已完全改变。旧的 `[keyword_reaction]` 配置不再兼容。用户需要将原有的 `keyword_rules` 和 `regex_rules` 迁移到新的 `[[reaction.rules]]` 格式。
2025-11-19 23:27:04 +08:00
minecraft1024a
98b43b1ecc fix(chat): 修复当用户ID为空时主人认证失败的问题
在某些情况下(例如,某些平台或匿名使用场景),用户信息中可能不包含`user_id`。之前的代码没有处理这种情况,导致在调用`permission_api.is_master`时会因`user_id`为空而引发异常。

本次修改增加了对`user_id`的空值检查。如果`user_id`不存在,将直接返回空字符串,避免不必要的权限验证和潜在的错误,从而增强了代码的健壮性。
2025-11-19 23:25:16 +08:00
Eric-Terminal
864ec3304c feat(prompt): 添加主人认证提示词功能 (#47) 2025-11-19 23:25:12 +08:00
minecraft1024a
1205fb2cc6 refactor(chat): 简化并硬编码prompt模板为s4u模式
移除了动态选择prompt模板的逻辑,直接使用`s4u_style_prompt`。这与最近移除`normal`模式并强制使用`s4u`模式的更改保持一致,简化了代码逻辑。
2025-11-19 23:25:01 +08:00
minecraft1024a
4e8825fb7c refactor(prompt): 移除 normal 模式并强制使用 s4u 模式
删除了旧的 "normal" prompt 模式及其相关逻辑,包括 prompt 模板、上下文构建函数和配置选项。现在系统将统一并强制使用 "s4u" 模式进行回复生成。

主要变更:
- 从 `default_generator.py` 中移除了 `normal_style_prompt` 模板和模式选择逻辑。
- 从 `prompt.py` 中删除了 `_build_normal_chat_context` 和 `_prepare_normal_params` 等相关函数。
- 从 `official_configs.py` 中移除了 `prompt_mode` 配置项。
- 更新了 `bot_config_template.toml` 配置文件,移除了 `prompt_mode` 选项和相关的 normal 模式上下文共享组示例。

此重构简化了 prompt 生成流程,统一了上下文处理方式,减少了代码的复杂性和维护成本。
2025-11-19 23:24:59 +08:00
minecraft1024a
f1dfe64f88 chore: 代码格式化与类型注解优化
对项目中的多个文件进行了代码风格调整和类型注解更新。

- 使用 ruff 工具对代码进行自动格式化,主要包括:
    - 统一 import 语句的顺序和风格。
    - 移除未使用的 import。
    - 调整代码间距和空行。
- 将部分 `Optional[str]` 和 `List[T]` 等旧式类型注解更新为现代的 `str | None` 和 `list[T]` 语法。
- 修复了一些小的代码风格问题,例如将 `f'...'` 更改为 `f"..."`。
2025-11-19 23:24:42 +08:00
tt-P607
63af866e3d feat(plan): 为月度计划添加软删除并优化状态提示词
为 `MonthlyPlan` 数据库模型增加 `is_deleted` 字段,以支持软删除功能,避免数据直接丢失。

同时,统一并优化了注入到AI上下文中的当前日程活动提示词,指导模型仅在被直接询问时才提及自身状态,使对话更加自然流畅。
2025-11-19 23:24:32 +08:00
Windpicker-owo
87e0a7f079 feat(chat): 改进异步任务管理和取消处理
- 在 StreamLoopManager、MessageManager 和 DefaultReplyer 中增加子任务跟踪机制
- 统一处理 asyncio.CancelledError 异常,确保任务取消时能正确清理子任务
- 使用 child_tasks 集合管理子任务生命周期,防止任务泄漏
- 优化记忆存储等后台任务的创建方式,支持优雅取消
- 改进错误处理逻辑,确保异常情况下也能清理子任务资源
2025-11-19 23:24:30 +08:00
tt-P607
90d010f1f0 fix(chat): 防止在生成回复时触发消息打断
通过在聊天流上下文中引入 `is_replying` 状态标志,解决了在LLM生成回复期间可能被新消息错误打断的问题。

- 在调用LLM生成内容前将 `is_replying` 设置为 `True`。
- 在消息打断检查逻辑中,如果 `is_replying` 为 `True` 则跳过检查。
- 使用 `finally` 块确保无论生成成功或失败,`is_replying` 状态都会被重置为 `False`。

这确保了回复生成的原子性,防止了因用户快速连续发送消息而导致的自我打断。
2025-11-19 23:24:18 +08:00
Windpicker-owo
1eda54cb8f feat(notice): 实现全局notice消息管理系统
添加全局notice管理器,将notice消息与普通消息分离处理。主要功能包括:

- 创建 GlobalNoticeManager 单例类,支持公共和特定聊天流作用域
- 在 message_manager 中集成notice检测和处理逻辑
- 扩展数据库模型和消息类,添加notice相关字段
- 在提示词生成器中添加notice信息块展示
- 配置系统支持notice相关参数设置
- 适配器插件增强notice类型识别和配置

notice消息特点:
- 默认不触发聊天流程,只记录到全局管理器
- 可在提示词中展示最近的系统通知
- 支持按类型设置不同的生存时间
- 支持公共notice(所有聊天可见)和流特定notice

BREAKING CHANGE: 数据库消息表结构变更,需要添加 is_public_notice 和 notice_type 字段
2025-11-19 23:23:55 +08:00
minecraft1024a
0917318cbd feat(plugin): 引入Prompt组件系统以实现动态Prompt注入
引入了一个新的插件组件类型 `BasePrompt`,允许插件动态地向核心Prompt模板中注入额外的上下文信息。该系统旨在提高Prompt的可扩展性和可定制性,使得开发者可以在不修改核心代码的情况下,通过插件来丰富和调整模型的行为。

主要变更包括:
- **`BasePrompt` 基类**: 定义了Prompt组件的标准接口,包括 `execute` 方法用于生成注入内容,以及 `injection_point` 属性用于指定目标Prompt。
- **`PromptComponentManager`**: 一个新的管理器,负责注册、分类和执行所有 `BasePrompt` 组件。它会在构建核心Prompt时,自动查找并执行相关组件,将其输出拼接到主Prompt内容之前。
- **核心Prompt逻辑更新**: `src.chat.utils.prompt.Prompt` 类现在会调用 `PromptComponentManager` 来获取并注入组件内容。
- **插件系统集成**: `ComponentRegistry` 和 `PluginManager` 已更新,以支持 `BasePrompt` 组件的注册、管理和统计。
- **示例插件更新**: `hello_world_plugin` 中增加了一个 `WeatherPrompt` 示例,演示了如何创建和注册一个新的Prompt组件。
- **代码重构**: 将 `PromptParameters` 类从 `prompt.py` 移动到独立的 `prompt_params.py` 文件中,以改善模块化和解决循环依赖问题。
2025-11-19 23:23:28 +08:00
tt-P607
b86f92a457 feat(web_search): 新增 Metaso 搜索引擎支持
为联网搜索工具集成了新的搜索引擎 Metaso,为用户提供更多搜索选择。

- 在搜索引擎基类 `BaseSearchEngine` 中添加了可选的 `read_url` 方法,为未来支持直接读取网页内容奠定基础。
- 更新了插件加载、工具执行逻辑和配置文件模板,以完整支持 Metaso 引擎。
- 将默认回复生成器的任务超时时间从 15 秒延长至 45 秒,以适应联网搜索等耗时较长的操作,提高稳定性。
2025-11-19 23:22:55 +08:00
tt-P607
87b1d5aec4 refactor(chat): overhaul response processing for robustness and integrity
This commit redesigns the LLM response handling pipeline to gracefully manage complex, long, and structured outputs, shifting from a restrictive filtering model to a more resilient and content-aware approach.

The previous implementation suffered from brittleness, often discarding valid responses or corrupting formatted content. This refactor introduces two core changes to ensure response integrity:

1.  **Adaptive Message Merging:** Replaces the rigid message count and length limits, which caused the silent dropping of valid long-form answers. The new logic dynamically merges the shortest adjacent sentences if a response is overly fragmented, ensuring the full thought is preserved while adhering to display limits.

2.  **Content-Aware Pre-processing:** Implements a protection mechanism for special text formats. It now identifies and isolates Markdown code blocks, LaTeX-style math equations, and other code-like segments using placeholders before splitting or typo generation. This prevents formatting corruption and ensures technical content is rendered correctly.

Additionally, the LLM prompt for splitting has been refined to emphasize logical coherence over simple fragmentation.

Finally, this commit also hardens the `LLMRequest` class against race conditions by adding an `asyncio.Lock` to serialize generation requests, improving the system's stability under concurrent workloads.
2025-11-19 23:22:27 +08:00
tt-P607
dc60d24f24 嗯,llm分割提示词优化一下 2025-11-19 23:22:20 +08:00
minecraft1024a
2ed9e44242 **我撞到dict了 2025-11-19 23:22:11 +08:00
minecraft1024a
e8bd190a0e refactor(replyer): 迁移 reply_messageDatabaseMessages 数据模型
将 `default_generator` 中使用的 `reply_message` 参数及其相关逻辑从旧的 SQLAlchemy `Messages` 模型迁移到新的 Pydantic `DatabaseMessages` 数据模型。

此更改统一了内部数据处理模型,提高了类型安全性和代码清晰度。同时,更新了所有对 `reply_message` 属性的访问方式,以适应新的嵌套数据结构(例如 `chat_info.platform` 和 `user_info.user_id`)。
2025-11-19 23:22:09 +08:00
minecraft1024a
f90fab8790 refactor(replyer): 将 reply_message 类型从 dict 更改为 Messages 模型
将 `DefaultReplyer` 中多个方法的 `reply_message` 参数类型从通用的 `dict` 更改为更具体的 SQLAlchemy 模型 `Messages`。

这一更改提高了代码的类型安全性和可读性,使得数据结构更加明确。同时,更新了相关代码以直接访问模型属性,而不是使用字典的 `get()` 方法。
2025-11-19 23:22:07 +08:00
minecraft1024a
28b56fc0b4 feat(schedule): 优化日程提示并增加时间感知能力
日程系统现在可以更详细地描述当前活动,包括计划的起止时间、已进行时间和剩余时间,为AI角色提供更强的时间感知和情境感。

主要变更:
- `schedule_manager`的`get_current_activity`现在返回包含活动和时间范围的字典,而不仅仅是活动名称。
- 在`default_generator`中,重构了日程提示的生成逻辑,使其能够计算并展示活动的详细时间信息。
- 修复了多处可能因变量为空(如`msg_content`、`user_nickname`)或事件处理结果为`None`而引发的潜在错误。
- 统一了各处对日程信息的调用方式。
2025-11-19 23:22:01 +08:00
tt-P607
9c385258b1 蒽,小改一下llm分割提示词 2025-11-19 23:21:21 +08:00
minecraft1024a
d826c1a8ee Revert "feat(cross_context): 新增以用户为中心的跨上下文检索功能"
This reverts commit e9c0b8bf9a.
2025-11-19 23:21:15 +08:00
tt-P607
fde8aaf514 蒽,你别管我就爱改提示词() 2025-11-19 23:21:10 +08:00
tt-P607
cde8b25d98 feat(cross_context): 新增以用户为中心的跨上下文检索功能
引入了一种全新的“用户中心”跨上下文检索模式,以替代并废弃了原有的固定共享组模式。

当回复特定用户时,系统现在可以自动从该用户参与的其他聊天(包括私聊和群聊)中检索其最近的发言记录,从而为大语言模型提供更丰富、更具个性化的上下文,以生成更相关的回复。

此功能可通过配置进行精细化控制,支持“全局启用”、“白名单”和“禁用”三种模式,并可设置检索的消息数量和聊天流数量上限。

此外,本次更新还包含一些健壮性修复:
- 修正了事件管理器返回结果可能为None时导致属性错误的潜在问题。
- 增强了对消息内容和用户昵称等可能为空值的处理。

BREAKING CHANGE: `cross_context` 的配置结构已完全重构。原有的 `groups` 配置项已被废弃。请用户根据新的 `bot_config_template.toml` 文件更新配置,迁移到新的 `user_centric_retrieval_mode`、`whitelist_chats` 和 `blacklist_chats` 格式。
2025-11-19 23:21:07 +08:00
tt-P607
379b3b3bac 蒽,没错我我又改提出词了 2025-11-19 23:21:05 +08:00
tt-P607
8abe742349 refactor(chat): 优化聊天日志与分段回复提示词
本次提交主要包含两项优化:

1.  **聊天日志增强**: 在接收消息的日志中增加了聊天来源(群聊名称或“私聊”),方便在后台快速定位消息上下文。
2.  **分段回复优化**: 简化并明确了分段回复的 LLM 提示词,引导模型生成更自然、简短的回复分段,以改善对话的节奏感。
2025-11-19 23:21:04 +08:00
tt-P607
0082c95bda refactor(replyer): 优化分段回复的提示词以改善聊天节奏
调整了默认回复生成器中关于分段的提示词,旨在让回复的节奏更自然、更像真人聊天。

主要变更包括:
- 强调了“积极分段”的倾向,鼓励模型在大多数情况下寻找自然的断点。
- 新增了标点符号处理规则,在插入 `[SPLIT]` 标记时自动移除前面的逗号或句号,避免不自然的停顿。
- 移除了原有的字数限制建议,让模型更专注于逻辑和情感的自然分割,而非死板的长度。
2025-11-19 23:21:01 +08:00
Windpicker-owo
a6d164b824 refactor(chat): 简化记忆构建和回复生成逻辑
移除记忆构建过程中的系统标识符和时间戳,简化提示词模板,使对话更加自然流畅。减少冗余的回复规则和约束,专注于生成简洁、口语化的回复内容。
2025-11-19 23:20:52 +08:00
Windpicker-owo
bdf0035034 refactor(chat): 重构关系系统并优化消息打断处理机制
- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
2025-11-19 23:20:49 +08:00
Windpicker-owo
2f5b8ddc0a feat(chat): 添加机器人身份信息到提示词模板
在多个提示词模板中添加机器人名称和昵称信息,让AI能够正确识别自己的身份。同时更新PromptParameters类以支持这些新参数。
2025-11-19 23:20:36 +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
sunbiz1024
950b086063 ruff 2025-11-19 23:19:53 +08:00
minecraft1024a
2a89efe47a ruff fix但指定了--unsafe-fixes 2025-11-19 23:19:42 +08:00
Windpicker-owo
a7bc1b4f20 refactor(chat): 优化异步任务处理和消息管理逻辑
- 使用asyncio.create_task替代await调用,提升并发性能
- 简化流管理器的槽位获取逻辑,移除回退方案
- 重构上下文管理器的消息添加和更新机制
- 移除StreamContext中的冗余方法,保持数据模型的简洁性
- 优化兴趣度评分系统的更新流程,减少阻塞操作

这些改动主要关注性能优化和代码结构简化,不涉及功能变更。
2025-11-19 23:18:24 +08:00
Windpicker-owo
481252d660 refactor(chat): 异步化聊天系统并重构兴趣值计算机制
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:

- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段

这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-11-19 23:15:31 +08:00
Windpicker-owo
f8aa149c39 refactor(chat): 优化流循环管理和数据库性能
移除StreamLoopManager中的锁机制,简化并发流处理逻辑
- 删除loop_lock,减少锁竞争和超时问题
- 优化流启动、停止和清理流程
- 增强错误处理和日志记录

增强数据库操作性能
- 集成数据库批量调度器和连接池管理器
- 优化ChatStream保存机制,支持批量更新
- 改进数据库会话管理,提高并发性能

清理和优化代码结构
- 移除affinity_chatter中的重复方法
- 改进prompt表达习惯格式化
- 完善系统启动和清理流程
2025-11-19 23:14:16 +08:00
tt-P607
40b6348d3e fix(chat): 增强回复生成的健壮性,增加超时和类型检查
在 `DefaultReplyer` 的提示词构建流程中,为并行的子任务(如记忆、工具、关系等)增加了15秒的超时机制。这可以防止因某个子任务耗时过长或卡死而导致整个回复生成过程停滞。

同时,在能量系统中增加了对计算器分数和兴趣值的类型检查,确保它们是数值类型,避免了潜在的 `TypeError` 异常,提高了系统的稳定性。
2025-11-19 23:14:01 +08:00
John Richard
a79253c714 re-style: 格式化代码 2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1 style: 格式化代码 2025-11-19 23:12:18 +08:00
Windpicker-owo
727f9550f5 feat(memory): 实现灵活搜索模式并重构记忆格式化系统
- 新增灵活匹配模式(flexible_mode),支持2/4项匹配即可的记忆检索策略
- 删除冗余的memory_formatter模块,简化记忆系统架构
- 增强枚举值解析机制,支持字符串、整数和枚举实例的自动转换
- 优化元数据索引搜索逻辑,分离严格模式和灵活模式的实现路径
- 改进向量存储的搜索回退机制,当元数据筛选无结果时自动回退到全量搜索
- 统一记忆类型映射管理,避免重复的格式化函数定义

这些变更提升了记忆检索的准确性和灵活性,同时简化了代码结构,提高了系统可维护性。
2025-11-19 23:11:40 +08:00
Windpicker-owo
96fbfc492e feat(memory): 增强查询规划以支持未读消息上下文分析
新增未读消息上下文集成功能,提升记忆检索的精准度和相关性。
通过分析当前对话流中的未读消息内容、关键词和参与者信息,
生成更贴合实际对话场景的记忆检索策略。

主要改进:
- 查询规划器现在能够结合未读消息生成语义查询
- 新增未读消息上下文收集和摘要构建机制
- 优化向量存储的兜底逻辑以兼容新的记忆结构
- 改进记忆转换过程中的调试和空内容处理

这些功能使记忆系统能够更好地理解当前对话的上下文,
提供更相关的历史记忆来支持生成更准确的回复。
2025-11-19 23:11:40 +08:00
Windpicker-owo
afb1a75ebf feat:实现具有向量和元数据索引的统一内存存储系统
- 添加了 UnifiedMemoryStorage 类,用于管理带向量嵌入的内存块。
- 集成了 FAISS,以实现高效的向量存储和搜索。
- 实现了内存缓存、关键字、类型和用户索引。
- 增加了内存遗忘和自动保存存储数据的支持。
- 包含用于存储、搜索和遗忘记忆的方法。
- 引入了存储行为和性能的配置选项。
- 实现了从磁盘加载和保存内存及向量数据。
2025-11-19 23:11:25 +08:00
Windpicker-owo
8fa18a74e2 feat(memory): 重构记忆系统检索机制并优化召回率
- 实现五阶段检索流程:元数据过滤→向量搜索→语义重排序→上下文过滤→增强重排序
- 添加回退机制保障检索健壮性,当主检索失败时自动降级到文本匹配
- 优化向量相似度阈值配置,提升记忆召回率
- 新增记忆融合候选收集机制,避免重复记忆存储
- 改进记忆格式化器,支持多种展示格式
- 增强向量存储加载和重建逻辑,确保数据持久化
- 优化记忆存储时机,移至回复生成完成后异步执行
- 添加详细的检索调试日志,便于问题排查
- 简化查询规划器提示模板,提升生成效率
2025-11-19 23:11:22 +08:00
Windpicker-owo
37c8253f54 feat(memory): 增强记忆构建系统并优化检索性能
- 添加记忆提取异常处理机制,提升系统稳定性
- 实现记忆内容格式化功能,增强可读性和结构化输出
- 优化LLM响应解析逻辑,避免系统标识误写入记忆
- 改进向量存储批量嵌入生成,提升处理效率
- 为记忆系统添加机器人身份上下文注入,避免自身信息记录
- 增强记忆检索接口,支持额外上下文参数传递
- 添加控制台记忆预览功能,便于人工检查
- 优化记忆融合算法,正确处理单记忆组情况
- 改进流循环管理器,支持未读消息积压强制分发机制
2025-11-19 23:11:11 +08:00
Windpicker-owo
b7bcb0b8e6 feat(chat): 优化记忆检索逻辑,异步调用增强记忆系统 2025-11-19 23:10:26 +08:00
Windpicker-owo
335e5d5c5f feat(memory): 添加时间规范化处理功能
在记忆构建器中增加时间规范化处理逻辑,将相对时间表达式转换为绝对日期格式。添加了相对时间映射规则和正则替换机制,确保记忆内容中的时间信息统一使用YYYY-MM-DD格式。同时更新了系统提示语,明确时间处理原则和要求。

- 新增_normalize_time_in_memory方法处理时间规范化
- 添加相对时间到绝对时间的映射规则
- 更新系统提示语包含时间处理原则
- 支持记忆内容和对象信息中的时间规范化
2025-11-19 23:10:25 +08:00
Windpicker-owo
a2217bd377 feat(memory): 实现增强记忆系统并完全替换原有架构
引入全新的增强记忆系统,彻底取代海马体记忆架构
删除旧版记忆系统相关模块,包括Hippocampus、异步包装器和优化器
重构消息处理流程,集成增强记忆系统的存储和检索功能
更新配置结构以支持增强记忆的各项参数设置
禁用原有定时任务,采用内置维护机制保证系统性能
2025-11-19 23:10:15 +08:00
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