subiz
93dc799c82
refactor(chat): 精简规划器提示词并优化思绪流规则
...
- 合并重复结构,统一主动/被动规划器
- 重新梳理块级占位符顺序,突出 time->mood->identity->schedule
- 弱化“兴趣值”概念,改用自然语言优先级
- 强化「仅对未读执行动作」与「不对表情包回复」两条底线
- 简化输出示例,移除冗余提示,仅保留核心 JSON 模板
- 删除旧版多动作并行示例,保留通用多回复范式
2025-11-19 23:18:29 +08:00
minecraft1024a
7426c7ae55
refactor(video): 视频分析模块重构为纯 inkfox 实现
...
将视频分析模块 `utils_video.py` 完全重构,移除旧的 rust_video 模块和 Python/OpenCV 降级实现,统一使用 `inkfox.video` 库提供的 Rust 扩展能力。
主要变更:
- **依赖简化**: 移除对 `rust_video` 和 `opencv-python` 的依赖,仅依赖 `inkfox`。
- **代码重构**: 删除大量冗余代码,包括旧的 Rust 模块接口、Python 降级逻辑、复杂的并发控制和多种抽帧模式。
- **性能统一**: 关键帧提取统一使用 `inkfox.video.extract_keyframes_from_video`,确保所有环境下的性能一致性。
- **逻辑简化**: 简化了缓存逻辑、并发控制和配置项,使代码更清晰、更易于维护。
- **API 统一**: `_select_model` 和 `_execute_request` 方法调用更新,以适应 `LLMRequest` 的最新接口。
- **文档更新**: 更新了模块文档字符串,以反映新的实现和功能。
2025-11-19 23:18:28 +08:00
Windpicker-owo
dccf1cffc9
feat(chat): 实现批量动作存储并优化消息处理流程
...
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
2025-11-19 23:18:27 +08:00
Windpicker-owo
a7bc1b4f20
refactor(chat): 优化异步任务处理和消息管理逻辑
...
- 使用asyncio.create_task替代await调用,提升并发性能
- 简化流管理器的槽位获取逻辑,移除回退方案
- 重构上下文管理器的消息添加和更新机制
- 移除StreamContext中的冗余方法,保持数据模型的简洁性
- 优化兴趣度评分系统的更新流程,减少阻塞操作
这些改动主要关注性能优化和代码结构简化,不涉及功能变更。
2025-11-19 23:18:24 +08:00
minecraft1024a
2e1332604e
style(memory): 优化代码风格并移除冗余代码
...
- 在 `memory_fusion.py` 中,为集合推导式添加 `# noqa: C401` 以抑制 linter 警告,明确代码意图。
- 在 `memory_manager.py` 中,移除未使用的全局变量 `global_memory_manager`。
- 使用 `|` 运算符进行类型检查,以符合现代 Python 语法。
2025-11-19 23:18:19 +08:00
minecraft1024a
71bcb7bc11
refactor(memory): 优化类型注解并增强代码健壮性
...
- 为 `MemorySystem` 类中的核心组件属性添加 `| None` 类型注解,使其更精确地反映其可能为 `None` 的初始状态。
- 在 `_collect_candidates_by_fingerprint` 方法中,为异常捕获添加 `noqa: PERF203` 以忽略特定的性能警告。
- 在 `rebuild_all_memory_vectors` 方法中,增加对 `self.unified_storage` 是否存在的检查,防止在未初始化时出现 `AttributeError`。
2025-11-19 23:18:18 +08:00
minecraft1024a
cd84373828
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-11-19 23:18:16 +08:00
minecraft1024a
1fb2ab6450
fix(memory): 修复向量重建后保存和统计逻辑
...
在向量存储重建过程中,移除了冗余的 `save_storage` 调用,因为向量数据在 `store_memories` 步骤中已经被持久化。
同时,改进了重建完成后的日志记录。现在会检查 `unified_storage` 是否存在,以避免在存储未初始化时尝试获取统计数据而引发潜在错误,并提供了更清晰的警告信息。
2025-11-19 23:18:11 +08:00
minecraft1024a
599289c245
refactor(memory): 简化模型任务配置的获取方式
...
移除不必要的 `getattr` 调用,直接访问 `model_task_config` 的 `utils_small` 属性。这使得代码更简洁、更易读,并假设该属性总是存在。
2025-11-19 23:18:10 +08:00
minecraft1024a
d3e349893e
chore(log): 移除记忆系统日志中的表情符号
...
清理 `memory_manager` 和 `memory_system` 模块中的日志输出,移除了表情符号,使日志信息更加简洁和专业。
2025-11-19 23:18:09 +08:00
雅诺狐
1c9c4884c6
refactor(deps): 将jieba分词库替换为rjieba
2025-11-19 23:18:07 +08:00
Windpicker-owo
fee04c0d25
perf(interest): 增加兴趣值计算超时时间并优化日志记录
...
将兴趣值计算的默认超时时间从0.5秒增加到2.0秒,以减少因计算时间较长导致的超时情况。同时优化了超时日志记录,使用warning级别并显示具体的超时时间,使问题排查更加清晰。
2025-11-19 23:17:59 +08:00
Windpicker-owo
db54d7b8b1
refactor(interest): 为兴趣值计算添加超时机制并清理重复代码
...
为兴趣值计算方法添加超时参数,防止计算过程阻塞系统。
当计算超时时返回默认值,同时让计算在后台继续执行。
删除了重复的 MessageInterestManager 类,统一使用 InterestManager。
2025-11-19 23:17:58 +08:00
tt-P607
caf9f94b04
refactor(memory): 重构记忆采样模式以提升配置清晰度
...
为了使记忆采样模式的命名更直观、易于理解,对相关配置项进行了重构。旧的 "adaptive" 和 "precision" 模式被更清晰的 "immediate"(即时采样)模式取代,并新增了 "all" 模式以支持双策略并行。
BREAKING CHANGE: 移除了旧的记忆采样模式 'adaptive' 和 'precision'。
用户需要将配置文件中的 `memory_sampling_mode` 更新为 'immediate', 'hippocampus' 或 'all'。
2025-11-19 23:17:56 +08:00
minecraft1024a
99ba96ce7b
chore(memory): 移除记忆系统初始化过程中的冗余日志记录
2025-11-19 23:17:54 +08:00
minecraft1024a
7c89dcd625
fix(api): 修复机器人消息统计计数器逻辑
...
chore(logging): 移除 message_manager 各模块多余的启动日志
- 修复了 `get_bot_message_stats_by_chat` 接口中错误地将计数器重置为1而不是递增的问题。
- 清理了 `message_manager` 及其子模块中重复或不必要的启动日志,以减少日志冗余。
2025-11-19 23:17:52 +08:00
minecraft1024a
1a314ac610
feat(memory): 增强记忆类型解析,支持中英文映射
...
新增了一个 `_resolve_memory_type` 方法,以更健壮地处理从 LLM 返回的记忆类型字符串。此方法现在可以正确解析中文、英文(大小写不敏感)以及下划线格式的记忆类型。
- 增加了从中文到 `MemoryType` 枚举的直接映射。
- 实现了对多种英文格式(如 "personal_fact", "PERSONAL_FACT", "Personal Fact")的兼容解析。
- 当无法识别任何有效类型时,会记录警告并安全地回退到默认的 `CONTEXTUAL` 类型,提高了系统的容错性。
2025-11-19 23:17:50 +08:00
minecraft1024a
a273be76d3
refactor(core): 统一和改进程序优雅关闭逻辑
...
将分散的关闭逻辑集中到`MainSystem`中,并由`bot.py`中的顶层异常处理块统一调用。这简化了关闭流程,提高了系统的健壮性和可维护性。
- 将信号处理逻辑从`MainSystem`移除,改由`bot.py`中的`try...finally`块处理,以捕获更广泛的退出场景(如`KeyboardInterrupt`)。
- `graceful_shutdown`函数现在接收`main_system`实例,直接调用其`shutdown`方法,实现了责任的单一化。
- 为`EmojiManager`和`VectorMemoryStorage`添加了`shutdown`/`cleanup`方法,确保其后台任务和资源能被正确清理。
- 调整了`MemorySystem`中对`unified_storage.cleanup()`的调用,使其与接口保持一致。
2025-11-19 23:17:49 +08:00
minecraft1024a
9175207e79
refactor(plugin_system): 引入 PluginMetadata 替代 manifest.json
...
将插件元数据定义从外部 `_manifest.json` 文件迁移到插件 `__init__.py` 文件中的 `__plugin_meta__` 变量。此举简化了插件加载流程,减少了文件I/O,并使元数据与插件代码更紧密地耦合。
主要变更:
- 引入 `PluginMetadata` 数据类来标准化插件元数据。
- 插件基类 `PluginBase` 现在直接接收 `PluginMetadata` 对象,不再负责解析 JSON 文件。
- 插件管理器 `PluginManager` 调整加载逻辑,从插件模块的 `__plugin_meta__` 属性获取元数据。
- 删除了 `manifest_utils.py` 及其相关的验证和版本比较逻辑,简化了依赖关系。
- 更新了所有内置插件,以采用新的元数据定义方式,并删除了它们各自的 `_manifest.json` 文件。
BREAKING CHANGE: 插件加载机制已改变。所有插件必须在其 `__init__.py` 中定义一个 `__plugin_meta__` 变量,该变量是 `PluginMetadata` 类的实例,并移除旧的 `_manifest.json` 文件。
2025-11-19 23:17:29 +08:00
雅诺狐
14fdc34a97
feat(logger): 增强日志系统,支持动态配置和文件压缩
...
- 添加动态logger元数据注册表,支持颜色和别名的运行时配置
- 实现日志文件自动压缩为tar.gz格式,节省存储空间
- 增强文件保留策略,支持配置保留天数(0=禁用,-1=永不删除,N>0=保留N天)
- 优化日志清理任务调度,改为每天午夜执行
- 改进TimestampedFileHandler的轮转逻辑和错误处理
- 更新配置模板,版本升级至7.1.7
2025-11-19 23:15:38 +08:00
minecraft1024a
6005fda2d4
feat(api): 新增机器人消息统计接口
...
新增 `/messages/bot_stats_by_chat` 端点,用于统计机器人在指定天数内按聊天会话(群聊或私聊)发送的消息数量。
该接口支持以下功能:
- 通过 `days` 参数指定查询的时间范围。
- 通过 `format` 参数选择是否在结果中包含会话名称,以提高可读性。
2025-11-19 23:15:36 +08:00
minecraft1024a
e6cc1b0bb5
refactor(api): 简化消息统计和会话名称获取逻辑
...
- 移除 `get_message_stats_by_chat` 中冗余的 `sent` 和 `received` 统计,只保留 `total` 计数,简化了统计逻辑。
- 优化了获取会话名称的方式,直接从 `chat_manager` 的 `streams` 中查找,统一了群聊和私聊的处理流程,提高了代码的可读性和效率。
- 删除了一个不再需要的测试日志。
2025-11-19 23:15:35 +08:00
minecraft1024a
eca2d40736
feat(api): 增强消息统计接口,支持格式化输出
...
为 `/messages/stats/by_chat` 端点添加了一个新的 `format` 查询参数。当 `format=True` 时,API 响应将包含更友好的信息,如群聊名称和用户昵称,而不仅仅是 ID。
这通过集成 `chat_api` 和 `person_api` 来获取相应的会话和用户信息,从而提高了接口的可用性和数据可读性。
2025-11-19 23:15:33 +08:00
minecraft1024a
88314fda6e
feat(api): 新增按聊天流统计消息的API端点
...
新增了一个API端点 `/messages/stats_by_chat`,用于根据指定的天数统计消息数据。该端点支持按聊天流进行分组,并提供了按用户进一步分组以及过滤机器人自身消息的选项。
主要功能包括:
- 按指定天数范围查询消息。
- 按聊天流(chat_id)聚合统计数据,包括总消息数、发送数和接收数。
- 可选地按用户(user_id)在每个聊天流内进行分组统计。
- 可选地过滤掉机器人自身发送的消息。
2025-11-19 23:15:32 +08:00
Windpicker-owo
481252d660
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-11-19 23:15:31 +08:00
Windpicker-owo
80c3ee8524
fix(main): 修复主程序的异步初始化逻辑
2025-11-19 23:15:16 +08:00
minecraft1024a
87ce36b62b
fix(express): 修复异步会话中错误的删除操作
...
在 `ExpressionLearner` 的 `decay` 方法中,`session.delete(expr)` 操作是同步的,但在异步会话(`AsyncSession`)上下文中应该使用 `await`。此更改修复了该问题,确保表达式能被正确地异步删除。
2025-11-19 23:15:15 +08:00
Windpicker-owo
8822bcd3ef
fix(memory): 修复定时清理任务的异步执行问题
2025-11-19 23:15:13 +08:00
tt-P607
249c132cfc
refactor(proactive_thinker): 优化决策提示词,避免在仅有自身消息时刷屏
...
为了防止在没有其他人回复的情况下出现自言自语或刷屏的现象,为主动思考模块的决策提示词增加了一条新规则。
该规则指示模型在判断是否主动发言时,如果上下文中仅存在自身发送的消息,则倾向于不回复,以提升交互的自然性和用户体验。
2025-11-19 23:15:10 +08:00
minecraft1024a
1ee7fd2ffd
refactor(express): 优化目录创建的异常处理逻辑
...
将 `try-except` 块移至循环外部,以减少重复的异常处理代码。这样可以更清晰地处理在创建多个目录过程中可能发生的任何错误,同时保持代码的简洁性。
2025-11-19 23:15:08 +08:00
minecraft1024a
c3ecf23f2b
动一下manifest以防加载的时候被用户看笑话()
2025-11-19 23:15:06 +08:00
minecraft1024a
1fab9ddfdb
feat(proactive_thinker): 增加防刷屏决策原则
...
在主动思考的决策原则中增加了一条新规则。
如果群聊的上下文中只有AI自己的消息而没有其他人的回应,AI也许将选择不回复,以避免刷屏。
2025-11-19 23:15:03 +08:00
minecraft1024a
1029d5d6bc
feat(api): 新增消息统计API端点
...
将原有的获取最近消息的API替换为功能更强大的消息统计API。
新的 `/messages/recent` 端点允许按天数和消息类型(发送、接收或全部)查询机器人的消息数量统计。
- 支持 `days` 和 `message_type` 查询参数。
- 实现统计逻辑,区分机器人发送和接收的消息。
- 增加异常处理,提高API的健壮性。
2025-11-19 23:14:59 +08:00
ikun-11451
efc7368914
增加了后端api喵~
2025-11-19 23:14:58 +08:00
tt-P607
c05ec80f4b
refactor(proactive_thinker): 优化决策提示词,增加日程与历史记录上下文
...
为了让主动思考的决策更加贴近当前情境,对决策提示词(Prompt)进行了重构。
- **增强情境感知**:在提示词中增加了日程安排、最近聊天摘要和近期动作历史,为 AI 提供更全面的决策依据。
- **优化结构**:将所有上下文信息整合到“情境分析”部分,使提示词结构更清晰,便于模型理解。
- 修复了获取最近消息时参数传递的错误。
2025-11-19 23:14:56 +08:00
tt-P607
a81e4660f9
refactor(proactive_thinker): 优化主动思考的决策与交互,使其更自然且避免打扰
...
本次提交对主动思考插件进行了多项核心优化,旨在提升其交互的自然度和人性化,并引入了关键的防打扰机制。
主要变更包括:
1. **重构冷启动任务 (`ColdStartTask`)**:
- 任务逻辑从一个长期运行的周期性任务,重构为在机器人启动时执行一次的“唤醒”任务。
- 新逻辑不仅能为白名单中的全新用户发起首次问候,还能智能地“唤醒”那些因机器人重启而“沉睡”的聊天流,确保了主动思考功能的连续性。
2. **增强决策提示词 (`_build_plan_prompt`)**:
- 引入了更精细的决策原则,核心是增加了防打扰机制。现在模型在决策时会检查上一条消息是否为自己发送,如果对方尚未回复,则倾向于不发起新对话,以表现出耐心和体贴。
- 优化了示例,引导模型优先利用上下文信息,并在无切入点时使用简单的问候,避免创造生硬抽象的话题。
3. **改善回复生成逻辑 (`_build_*_reply_prompt`)**:
- 在生成回复的指令中,明确要求模型必须先用一句通用的礼貌问候语(如“在吗?”、“下午好!”)作为开场白,然后再衔接具体话题。这使得主动发起的对话更加自然、流畅,符合人类的沟通习惯。
4. **模型调整**:
- 将决策规划阶段的 LLM 模型从 `utils` 调整为 `replyer`,以更好地适应生成对话策略的任务。
2025-11-19 23:14:54 +08:00
minecraft1024a
ab21433137
refactor(proactive_thinker): 优化唤醒逻辑并增加防打扰机制
...
重构了日常唤醒任务(ProactiveThinkingTask)的逻辑,将其拆分为私聊和群聊的独立处理流程。
- 私聊现在直接遍历白名单,确保能覆盖到所有配置的用户,即使他们当前不在内存中。
- 群聊则继续遍历内存中的活跃流。
这个改动修复了之前版本中,只有当用户发送消息后,bot才有可能对其进行主动唤醒的问题。
同时,在决策模块中引入了防打扰机制:
- 在决策提示词中加入了最近的决策历史记录作为上下文。
- 增加了新的决策原则,明确指示模型在近期已主动发起过对话的情况下,应倾向于保持沉默,以避免过度打扰用户。
此外,对冷启动任务(ColdStartTask)进行了微调,将初始的等待时间移至循环的开始,以确保插件加载后能先等待一段时间再开始工作。
2025-11-19 23:14:52 +08:00
minecraft1024a
cb5372d203
fix:(proactive_thinker)这beyond的孩子忘了加mood_state,导致主动思考提示词里的情绪输出了一堆乱码()
2025-11-19 23:14:50 +08:00
minecraft1024a
1f06bdf5e8
fix(proactive_thinker): 修复情绪模块关闭时主动思考报错的问题
...
当全局情绪模块被禁用时,尝试获取情绪状态会导致`AttributeError`或`KeyError`,从而中断主动思考任务。
本次提交通过以下方式修复了此问题:
1. 在获取情绪状态前,增加对`global_config.mood.enable_mood`的判断。
2. 在情绪获取逻辑中加入`try...except`块,捕获潜在的异常,并在失败时提供一个默认的情绪状态,增强了代码的鲁棒性。
3. 在日常唤醒任务的异常处理中,增加了`traceback.print_exc()`,以便在出现错误时打印完整的堆栈跟踪,方便快速定位问题。
2025-11-19 23:14:48 +08:00
minecraft1024a
c512b187bf
feat(proactive_thinker): 在主动思考中融入情绪状态
...
将情绪状态整合到主动思考的上下文和提示词中。这使得AI在主动发起对话时,其语气和内容能够更好地反映当前的情绪,使交互更加生动和人性化。
主要变更:
- 在上下文收集中增加当前的情绪状态。
- 将情绪状态变量加入到私聊和群聊的提示词模板中,引导模型生成符合情绪的回复。
- 优化了最终的输出指令,使其更清晰、更严格,以提高生成内容的质量。
2025-11-19 23:14:46 +08:00
minecraft1024a
480a278795
docs(proactive_thinker): 为执行器模块添加详细的中文文档字符串
...
为 `ProactiveThinkerExecutor` 类及其所有公共和私有方法添加了详细的 Docstrings。这包括对类、方法功能、参数和返回值的清晰描述,以提高代码的可读性和可维护性。
2025-11-19 23:14:45 +08:00
minecraft1024a
c987d0766c
refactor(proactive_thinker): 重构上下文收集与提示词构建逻辑以支持群聊
...
将原有的上下文收集函数 `_gather_context` 和提示词构建函数 `_make_decision`, `_build_plan_prompt` 拆分为更细粒度的模块,以分别处理私聊和群聊场景。
主要变更:
- `_gather_context`: 现在能根据聊天流是群聊还是私聊,收集不同的上下文信息,并添加 `chat_type` 字段以作区分。
- `_build_decision_prompt`: 新增函数,根据 `chat_type` 构建不同的决策提示词,使决策更贴合场景。
- `_build_plan_prompt`: 重构为调度函数,内部调用新增的 `_build_private_plan_prompt` 和 `_build_group_plan_prompt` 来生成特定场景的规划提示词。
- 整体逻辑更加清晰,增强了代码的可读性和可扩展性,为未来支持更多聊天类型奠定了基础。
2025-11-19 23:14:43 +08:00
Windpicker-owo
a5a16971e9
refactor(memory): 移除废弃的记忆系统备份文件,优化消息管理器架构
...
移除了deprecated_backup目录下的所有废弃记忆系统文件,包括增强记忆适配器、钩子、集成层、重排序器、元数据索引、多阶段检索和向量存储等模块。同时优化了消息管理器,集成了批量数据库写入器、流缓存管理器和自适应流管理器,提升了系统性能和可维护性。
2025-11-19 23:14:42 +08:00
Windpicker-owo
80fc37fd02
refactor(memory): 重构记忆系统架构,引入可配置的采样策略
...
将记忆系统从单一构建模式重构为多策略可配置架构,支持灵活的采样行为控制:
核心架构改进:
- 重构记忆构建流程,分离采样策略与核心逻辑
- 引入MemorySamplingMode枚举,标准化采样模式定义
- 设计插件化采样器接口,支持海马体后台定时采样
- 优化记忆处理管道,添加bypass_interval机制支持后台采样
配置系统增强:
- 新增memory_sampling_mode配置项,支持hippocampus/immediate/all三种模式
- 添加海马体双峰采样参数配置,支持自定义采样间隔和分布
- 引入自适应采样阈值控制,动态调整记忆构建频率
- 完善精准记忆配置,支持基于价值评分的触发机制
兼容性与性能优化:
- 修复Python 3.9兼容性问题,替换strict=False参数
- 优化记忆检索逻辑,统一使用filters参数替代scope_id
- 改进错误处理机制,增强系统稳定性
BREAKING CHANGE: 新增memory_sampling_mode配置项,默认值从adaptive改为immediate
2025-11-19 23:14:39 +08:00
minecraft1024a
7bbcc15f8a
feat(proactive_thinker): 启用并优化主动思考插件
...
- 默认启用主动思考插件,并进行多项功能增强和修复。
- 修复了日常唤醒任务中 `stream_id` 的格式问题,确保能正确调用执行器。
- 调整了冷启动任务的初始等待时间,以更好地适应系统启动流程。
- 优化了执行器中获取日程和聊天流的逻辑,使其更加健壮。
- 简化了部分日志输出,使其更清晰。
- 增加了在调试模式下打印 Planner 和 Responder 提示词的功能,便于调试。
2025-11-19 23:14:36 +08:00
Windpicker-owo
3de18dbf3e
refactor(logging): 将信息日志级别更改为调试级别以减少输出噪声
2025-11-19 23:14:34 +08:00
Windpicker-owo
74d022c489
feat(chat): 增强任务管理和取消机制
...
添加新的任务管理方法来更好地处理异步任务的生命周期:
- 新增 cancel_processing_task、remove_processing_task 等方法
- 在流循环清理时自动取消关联的 chatter 处理任务
- 添加活跃任务统计信息到管理器统计中
- 改进 prompt 构建时的任务类型检查和错误处理
2025-11-19 23:14:31 +08:00
minecraft1024a
e02af208c4
ruff
2025-11-19 23:14:28 +08:00
tt-P607
83517b7178
fix(chat): 修复能量调整计算中的负数幂错误
...
当能量值非常接近高能量阈值(0.7)时,由于浮点数精度问题,`energy - 0.7` 的结果可能为一个极小的负数,这会导致 `ValueError` (negative number cannot be raised to a fractional power)。
通过使用 `max(0, ...)` 来确保幂运算的基数始终为非负数,从而解决了这个潜在的运行时错误,增强了系统的健壮性。
2025-11-19 23:14:24 +08:00
tt-P607
781fa2fce7
fix(chat): 确保在流取消时正确取消chatter处理任务
...
先前,当一个流循环(stream loop)被取消时,为其创建的 chatter 处理任务(`process_stream_context`)不会被一并取消。
这可能导致任务泄露,即“孤儿”任务在后台继续运行,消耗资源并可能引发意外行为。
本次修改引入了一个任务跟踪机制:
- `ChatterManager`现在会记录每个流正在运行的处理任务。
- 当流循环捕获到 `CancelledError` 时,它会主动取消关联的 chatter 任务。
这确保了在流停止时,相关的计算资源能够被正确、及时地释放,提高了系统的健壮性。
2025-11-19 23:14:20 +08:00