tt-P607
|
6a976915d0
|
perf(chat): 将 planner 的非回复动作改为后台任务执行
原先的 PlanExecutor 会 `await` 等待所有动作执行完毕,包括非直接回复用户的动作,这可能导致在这些动作耗时较长时,用户的响应被延迟。
本次修改将非回复类的动作(other_actions)放入 `asyncio.create_task` 中执行,使其成为后台任务。这样可以确保核心的回复流程不被阻塞,从而显著提升机器人的响应速度。
注意:后台任务的执行结果和统计数据将不会在本次执行周期中立即返回。
|
2025-11-19 23:08:05 +08:00 |
|
tt-P607
|
73370f3eae
|
feat(chat): 为聊天上下文增加数据库历史回退
当会话中没有已读消息时(例如,在机器人重启后),回复生成器现在会尝试从数据库中加载最近的聊天记录作为备用上下文。
此举旨在解决机器人因缺乏上下文而无法生成相关回复的问题,通过提供历史情景参考,显著提升了在中断对话后恢复聊天的连贯性。加载的数据库消息会与当前未读消息进行去重,以避免信息冗余。
|
2025-11-19 23:08:04 +08:00 |
|
tt-P607
|
0c7780f8f8
|
fix: 修复表情动作模型调用并完善视频分析结果存储
- 表情动作: 将模型调用从 `planner` 切换到 `utils`,以使用更合适的模型进行表情推荐。
- 视频分析: 增加检查逻辑,仅当分析成功且结果不为错误提示时,才将结果存入数据库,防止存储无效记录。
|
2025-11-19 23:08:04 +08:00 |
|
Windpicker-owo
|
bdf43c2455
|
fix
|
2025-11-19 23:08:03 +08:00 |
|
Windpicker-owo
|
dce48d38cf
|
feat: 在插件系统中添加 Chatter 组件
- 在 component_types.py 中新增了用于 CHATTER 的 ComponentType。
- 实现了 ChatterInfo 类,用于存储 Chatter 组件的相关信息。
- 增强了 ComponentRegistry,以支持 Chatter 组件的注册与管理。
- 创建了 ChatterManager,用于管理 Chatter 实例并处理聊天流。
- 开发了 BaseChatter 抽象类,用于定义 Chatter 的行为规范。
- 实现了 AffinityChatter,作为具备兴趣评分与关系构建功能的具体 Chatter 组件。
- 添加了一个内置的 Chatter 插件,并附带完整文档与使用示例。
- 更新了 PluginManager,在插件概览中加入 Chatter 组件的统计信息。
|
2025-11-19 23:08:03 +08:00 |
|
Windpicker-owo
|
087ecfb420
|
fix(chat): 修复display_message缺失时的显示问题
|
2025-11-19 23:08:02 +08:00 |
|
tt-P607
|
85c52aff5a
|
feat(chat): 优化提及检测并精简兴趣度评分日志
增强了机器人提及检测逻辑,使其能够识别配置文件中设置的所有别名(alias_names),而不仅仅是主昵称。这提高了交互的灵活性和准确性。
此外,还对兴趣度评分和匹配系统的日志输出进行了大幅重构:
- 将多条评分计算日志合并为一条包含核心指标的摘要日志,使输出更简洁。
- 调整了部分日志级别,将非关键信息移至 DEBUG 级别,以减少日志噪音。
- 在关键日志中增加了消息内容预览,以便于快速上下文定位和调试。
|
2025-11-19 23:08:02 +08:00 |
|
tt-P607
|
956d206675
|
refactor(log): 精简聊天相关模块的日志输出
为了提高日志的可读性和实用性,对聊天核心流程(兴趣评分、兴趣系统、规划执行)中的日志记录进行了全面优化。
主要变更:
- 移除装饰性的分割线和表情符号,使日志格式更加统一和专业。
- 将多行分散的日志信息合并为单行,提高信息密度,方便快速浏览。
- 调整日志用语,使其更加简洁、客观,便于程序解析和人工阅读。
这些改动旨在使生产环境中的日志更易于追踪和调试,同时保持了关键信息的完整性。
|
2025-11-19 23:08:01 +08:00 |
|
tt-P607
|
3a291b3f2a
|
feat(chat): 区分群聊和私聊生成不同场景提示
之前的 Prompt 模板硬编码了群聊场景,导致在私聊时机器人的角色认知和回应可能不恰当。
本次更新通过引入动态聊天场景提示来解决此问题:
- 在 Prompt 模板中使用 `{chat_scene}` 占位符代替了硬编码的场景描述。
- Replyer 会根据当前是群聊还是私聊,生成不同的场景提示文本(如“你正在一个QQ群里聊天”或“你正在和XX私下聊天”)。
- 通过 PromptParameters 将动态生成的场景提示传递给 Prompt 系统,使模型能够更好地理解上下文。
|
2025-11-19 23:08:01 +08:00 |
|
Windpicker-owo
|
f5a3eb2413
|
refactor(napcat_adapter): 移除消息缓冲功能及相关配置
删除消息缓冲功能,包括:
- 移除 message_buffer.py 完整实现
- 清理插件配置中的消息缓冲相关字段
- 删除 message_handler.py 中的缓冲处理逻辑
- 移除 send_handler.py 中的缓冲消息ID特殊处理
- 删除不再使用的模板配置文件
此功能因稳定性问题和实际需求较少而被移除,简化了代码结构并减少维护负担。
|
2025-11-19 23:07:55 +08:00 |
|
tt-P607
|
8621dcdf75
|
fix(chat): 修复并优化消息回复与ID处理逻辑
先前的消息回复机制存在多个问题:回复行为随机且不可靠,临时消息ID生成逻辑过于复杂,且在规划和执行过程中ID转换容易出错,导致回复失败。
本次提交通过以下几点进行了全面的修复与优化:
- **简化ID生成**:将临时的上下文消息ID生成逻辑从“索引+随机数”简化为纯索引(如 `m1`, `m2`),使其更可预测且易于调试。
- **修正ID替换**:在 `plan_filter` 中增加了关键逻辑,确保在执行 `reply` 动作前,将计划中使用的临时 `target_message_id` 替换为真实的数据库消息ID。
- **稳定回复行为**:移除了 `action_manager` 中的随机回复判断,现在只要存在上下文消息,就会触发引用回复。同时将各 `send_api` 的 `set_reply` 参数默认值改为 `True`,使回复成为默认行为。
- **增强ID兼容性**:修复了 `napcat_adapter` 中将消息ID强制转换为整数的问题,并为 `send_api` 增加了ID回退查找,提高了对不同平台消息ID格式的兼容性。
|
2025-11-19 23:07:38 +08:00 |
|
tt-P607
|
9b5d44a3cb
|
fix(chat): 修复 plan executor 对嵌套 user_info 数据结构的解析兼容性
`action_message` 可能以对象或字典的形式出现,且用户信息统一嵌套在 `user_info` 字段下。
旧代码在处理字典格式时,未能正确处理此嵌套结构,导致无法正确解析用户信息。本次修改统一了逻辑,确保在两种情况下都能稳定地从 `user_info` 中提取用户ID和昵称,增强了代码的健壮性。
|
2025-11-19 23:07:37 +08:00 |
|
Windpicker-owo
|
ad729d74c8
|
feat(affinity-flow): 优化提及检测逻辑和阈值配置
- 简化提及检测逻辑,移除冗余的私聊检查变量
- 使用配置项 mention_bot_adjustment_threshold 替换硬编码的50%阈值
- 在消息处理中清除开头可能存在的空行
- 增加首次认识用户的信息存储方法,避免未知用户处理逻辑
- 调整消息管理器检查间隔从2秒到5秒,减少系统负载
- 修复计划执行器中用户ID比较逻辑,防止自我回复死循环
|
2025-11-19 23:07:36 +08:00 |
|
Windpicker-owo
|
df3c616d09
|
ruff,私聊视为提及了bot
|
2025-11-19 23:07:30 +08:00 |
|
Windpicker-owo
|
3baf4c533a
|
feat(affinity-flow): 增强关系追踪系统的人设集成和逻辑严谨性
- 在关系追踪器中集成bot人设信息,从性格视角分析用户互动
- 添加严格的关系分数档次定义和现实发展逻辑约束
- 改进提示词工程,要求详细的性格观察和互动记忆记录
- 单次互动加分限制在合理范围内(0.05-0.1),防止跳跃式关系提升
- 优化关系印象描述要求(100-200字),包含用户性格特点和深刻记忆
refactor(planner): 简化消息数据处理流程
- 使用StreamContext对象替代原始的message_data字典
- 移除冗余的消息数据准备步骤,直接从context获取未读消息
- 统一规划器接口,提高代码可读性和维护性
fix(person-info): 添加napcat到qq平台的用户ID迁移机制
- 为qq平台生成person_id时检查是否存在napcat平台的相同用户
- 如果存在则自动迁移记录并更新平台信息
- 确保用户身份在不同平台间的正确识别和延续
fix(plan-executor): 修复自我回复检测逻辑
- 使用action_message.user_info.user_id替代原始字典访问
- 防止因消息格式变化导致的自我回复检测失效
chore(config): 更新默认平台配置为qq
- 将napcat_adapter插件的默认平台名称从napcat改为qq
- 保持与现有部署环境的一致性
|
2025-11-19 23:07:14 +08:00 |
|
Windpicker-owo
|
2ceda70e8e
|
修复新兴趣标签没有commit的问题
|
2025-11-19 23:07:13 +08:00 |
|
Windpicker-owo
|
9d014de89c
|
feat(person-info): 增强人物关系信息构建功能
重构关系信息构建逻辑,从数据库查询更多维度数据生成详细关系描述:
- 增加认识时间、交流频率、态度评分等基本信息
- 整合UserRelationships表的额外关系数据
- 添加态度和关系分数的描述性文字转换方法
- 优化特征点选择策略,按权重和时效性综合排序
- 提供更结构化的关系信息输出格式
|
2025-11-19 23:07:13 +08:00 |
|
Windpicker-owo
|
cdbf93268a
|
feat(affinity-flow): 使用配置阈值替换硬编码的80%逻辑
将硬编码的80%阈值检查替换为从全局配置读取的`non_reply_action_interest_threshold`参数,提高配置灵活性并统一阈值管理。
- 移除硬编码的阈值计算逻辑
- 使用全局配置中的非回复动作兴趣度阈值
- 更新日志信息和返回理由中的阈值描述
|
2025-11-19 23:07:12 +08:00 |
|
Windpicker-owo
|
e62843ea58
|
feat(affinity-flow): 重构亲和流配置系统
将硬编码的兴趣度评分参数迁移到集中式配置管理,新增AffinityFlowConfig配置类
- 从全局配置加载评分权重、阈值和计算参数
- 统一管理匹配奖励、关系分数和提及bot相关配置
- 更新配置文件模板包含完整的亲和流参数
- 确保各模块使用一致的配置值而非硬编码常量
|
2025-11-19 23:07:11 +08:00 |
|
Windpicker-owo
|
69f2ee64d9
|
feat(affinity-flow): 实现回复后关系追踪系统集成
- 在relationship_tracker.py中添加数据库支持的回复后关系追踪功能
- 新增UserRelationships数据库模型存储用户关系数据
- 集成全局关系追踪器到planner和interest_scoring系统
- 优化兴趣度评分系统的关系分获取逻辑,优先使用数据库存储的关系分
- 在plan_executor中执行回复后关系追踪,分析用户反应并更新关系
- 添加LLM响应清理功能确保JSON解析稳定性
- 更新模型配置模板添加relationship_tracker模型配置
|
2025-11-19 23:07:10 +08:00 |
|
Windpicker-owo
|
3193927a76
|
feat(affinity-flow): 重构消息处理以使用StreamContext对象
重构AFC消息处理系统,将基于字典的消息数据传递改为直接使用StreamContext对象。主要变更包括:
- 修改AFCManager的process_message方法为process_stream_context,直接接收StreamContext对象
- 在chatter中重构消息处理逻辑,直接从StreamContext获取未读和历史消息
- 移除批量消息处理功能,改为单次StreamContext处理
- 在message_manager中简化消息处理流程,直接传递StreamContext对象
- 添加未读消息清理机制,防止异常情况下消息一直未读
同时优化兴趣度评分系统的参数:
- 调整回复阈值从0.55到0.56
- 增加最大不回复次数从15到20
- 提升每次不回复的概率增加从0.01到0.02
- 优化提及奖励从3.0降到1.0
- 调整回复后的不回复计数减少从1到3
BREAKING CHANGE: AFCManager的process_message方法已重命名为process_stream_context,参数从message_data改为context对象
|
2025-11-19 23:07:03 +08:00 |
|
Windpicker-owo
|
9a2320944b
|
feat(affinity-flow): 优化兴趣度评分和回复决策逻辑
- 降低回复阈值从0.6到0.55以增加回复可能性
- 在最终分数计算中加入标签数量奖励机制,每多匹配一个标签加0.05分,最高加0.3分
- 引入分级相似度匹配系统(高/中/低)并应用不同加成系数
- 增加关键词直接匹配奖励机制,支持完全匹配、包含匹配和部分匹配
- 在计划过滤器中处理回复动作不可用时的自动转换逻辑
- 增加兴趣度阈值80%检查,低于该阈值直接返回no_action
- 优化日志输出和统计信息,提供更详细的匹配分析
|
2025-11-19 23:06:43 +08:00 |
|
Windpicker-owo
|
e1fcdf94ee
|
feat(affinity-flow): 调整回复概率参数和评分计算
- 增加最大不回复次数至15次,降低每次不回复的概率提升至1%
- 在最终评分计算中增加1.15倍系数提升
- 被提及时的基础分数从1.0提升至3.0
- 为兴趣标签保存添加数据库验证机制
- 在消息处理流程中增加数据库存储功能
- 修复JSON解析错误处理,增加异常情况下的默认响应
- 优化数据库会话管理和模型转换的健壮性
|
2025-11-19 23:06:42 +08:00 |
|
Windpicker-owo
|
dcdef633e0
|
feat(affinity-flow): 重构兴趣度评分系统为智能embedding匹配
- 移除传统关键词匹配方式,改用embedding计算智能兴趣匹配度
- 添加异步方法支持机器人兴趣管理器的智能匹配计算
- 增加详细的日志记录和错误处理机制
- 添加数据库关键词提取和降级处理逻辑
- 集成智能兴趣系统初始化到人设构建流程
- 防止回复自身消息的死循环保护机制
BREAKING CHANGE: 兴趣匹配评分机制完全重构,从基于关键词的硬编码匹配改为基于embedding的智能匹配,需要重新初始化兴趣系统
|
2025-11-19 23:06:40 +08:00 |
|
Windpicker-owo
|
2739848451
|
feat(affinity-flow): 优化兴趣度评分系统并集成消息管理器
重构兴趣度评分系统,移除时间因子权重,增加未读消息处理机制。集成消息管理器用于消息存储和状态跟踪,改进提及检测逻辑。
主要变更:
- 移除时间因子评分,调整兴趣匹配度权重至0.5
- 添加未读消息参数到规划器,优化兴趣度计算
- 引入消息管理器处理消息存储和状态标记
- 改进提及检测逻辑,使用消息对象的is_mentioned属性
- 添加消息清理和启动/停止机制
BREAKING CHANGE: 兴趣度评分算法调整,需要重新评估消息优先级
|
2025-11-19 23:06:40 +08:00 |
|
Windpicker-owo
|
d418d2f8a6
|
afc已经可用,等待完善兴趣度等系统
|
2025-11-19 23:06:39 +08:00 |
|
Windpicker-owo
|
d7d7388aa7
|
炸飞hfc,引入afc
|
2025-11-19 23:06:33 +08:00 |
|
Windpicker-owo
|
bd1ebbcc53
|
初步开始重写聊天系统
|
2025-11-19 23:05:54 +08:00 |
|
minecraft1024a
|
724b2280eb
|
1
|
2025-11-19 23:05:54 +08:00 |
|
minecraft1024a
|
70c90dd2b2
|
1
|
2025-11-19 23:05:53 +08:00 |
|
minecraft1024a
|
ee42b0ec52
|
style(chat): 为提示词导入添加 noqa 以忽略未使用警告
|
2025-11-19 23:05:53 +08:00 |
|
minecraft1024a
|
8e03e3a16d
|
fix(chat): 确保 planner 提示词模块被初始化
通过显式导入 planner_prompts 模块,确保其中的提示词在 planner 实例化之前被正确注册,避免潜在的引用问题。
|
2025-11-19 23:05:53 +08:00 |
|
minecraft1024a
|
74bbcb8efc
|
添加了一点日志
|
2025-11-19 23:05:52 +08:00 |
|
minecraft1024a
|
ca70c35b1f
|
Revert "feat(proactive): 优化主动聊天逻辑,增加搜索前判断与回复前检查"
This reverts commit 34bce03f17.
|
2025-11-19 23:05:52 +08:00 |
|
minecraft1024a
|
6dc288ecb4
|
fix(chat): 完善LLM分句逻辑,在无分割标记时回退至标点分割
当使用 "llm" 模式进行分句时,如果模型未能按预期生成 `[SPLIT]` 标记,之前的逻辑会直接返回整个未分割的文本。
这可能导致过长的句子被发送到下游模块(如TTS),影响体验。本次修改添加了回退机制,当未检测到 `[SPLIT]` 标记时,会自动切换到基于标点的传统分句方法,以提高分句的鲁棒性。
|
2025-11-19 23:05:52 +08:00 |
|
minecraft1024a
|
33330c4776
|
加了一个 尝试解析JSON字符串,如果失败则尝试修复并重新解析。
|
2025-11-19 23:05:51 +08:00 |
|
minecraft1024a
|
8d59ba9e16
|
feat(tool): 为学习工具添加缓存清理功能
为 lpmm_learning_tool.py 脚本添加了清理缓存的选项。
用户现在可以通过菜单选项 '6' 来删除 `temp/lpmm_cache` 目录下的所有临时文件。
此功能有助于释放磁盘空间,并可以在缓存数据陈旧或损坏时进行重置,提高了工具的可维护性。
|
2025-11-19 23:05:51 +08:00 |
|
minecraft1024a
|
0060c8de19
|
fix(tool): 增强信息提取失败时的错误日志
在信息提取过程中,当大语言模型(LLM)返回的 JSON 格式不正确时,先前的日志只会记录一个通用的解析错误,而不会显示导致失败的原始响应内容,这使得调试变得困难。
此次更新通过在捕获到 JSON 解析异常时,额外记录 LLM 的原始输出内容来解决此问题。这有助于快速诊断并定位是模型输出不稳定还是提示词需要调整,从而提高了脚本的健壮性和可维护性。
此外,还对代码进行了一些格式化调整以提高可读性。
|
2025-11-19 23:05:51 +08:00 |
|
minecraft1024a
|
80283fe77d
|
fix(plugin): 移除插件配置同步调用并增强错误日志
在插件管理器中,移除了加载插件时对已废弃的配置同步方法的调用。
同时,为了更好地排查 `maizone` 插件发送动态失败的问题,增强了其命令的异常日志,现在会额外记录异常类型。
|
2025-11-19 23:05:50 +08:00 |
|
minecraft1024a
|
e02a8d43c9
|
试图maizone解决问题但不保证成功
|
2025-11-19 23:05:50 +08:00 |
|
minecraft1024a
|
9a40e86894
|
删除插件配置文件的双向迁移逻辑
|
2025-11-19 23:05:49 +08:00 |
|
minecraft1024a
|
2fa3e132b2
|
docs(llm): 为 utils_model 模块补充详细文档和注释
为 `utils_model.py` 中的关键类和方法添加了全面的文档字符串和内联注释,以提升代码的可读性和可维护性。
主要变更包括:
- 为 `_ModelSelector`, `_PromptProcessor`, `_RequestExecutor`, 和 `LLMRequest` 类中的核心方法扩充了详细的文档,解释其功能、参数和返回值。
- 在复杂的逻辑块(如重试机制、错误处理、内容混淆)中增加了内联注释,以阐明其实现细节。
- 移除了文件中旧的、多余的作者信息头。
|
2025-11-19 23:05:49 +08:00 |
|
minecraft1024a
|
97cf1d3f71
|
docs(llm): 为 LLM 工具模块添加全面的文档和注释
为 `utils_model.py` 模块及其核心类(`_ModelSelector`、`_PromptProcessor`、`_RequestExecutor`)添加了详细的文档字符串。
同时,增加了大量的行内注释,以阐明复杂的逻辑,例如:
- 模型选择的负载均衡算法
- 针对不同错误的失败惩罚计算
- 对嵌入任务的特殊客户端处理
此举旨在提高 LLM 交互核心逻辑的可读性和可维护性。
|
2025-11-19 23:05:49 +08:00 |
|
雅诺狐
|
c20c891190
|
这是第900个提交
移除了用户协议
|
2025-11-19 23:05:49 +08:00 |
|
minecraft1024a
|
1ed8172ff4
|
fix(llm): 防止 get_response 调用中 message_list 参数重复
当 `kwargs` 中已包含 `message_list` 时,直接将其与 `message_list=current_messages` 一同传递给 `get_response` 方法会导致 `TypeError`。
此更改通过在传递参数前从 `kwargs` 的副本中移除 `message_list` 键,确保该参数不会被重复传递,从而解决了这个问题。
|
2025-11-19 23:05:48 +08:00 |
|
minecraft1024a
|
b7848a6b28
|
refactor(llm): 将LLM请求逻辑解耦到专用组件中
将庞大的 `LLMRequest` 类重构,将其核心职责分解到四个独立的、遵循单一职责原则的辅助类中,以提高代码的模块化、可读性和可维护性。
- `_ModelSelector`: 专门负责模型选择、负载均衡和基于失败历史的动态惩罚策略。
- `_PromptProcessor`: 封装所有与提示词和响应内容的预处理及后处理逻辑,包括内容混淆、反截断信令处理和思维链提取。
- `_RequestExecutor`: 负责执行底层的API请求,并处理网络层面的重试逻辑。
- `_RequestStrategy`: 实现高级请求策略,如在多个模型间的故障转移(failover)和空回复/截断的内部重试。
`LLMRequest` 类现在作为外观(Facade),协调这些新组件来完成请求,使得整体架构更加清晰和易于扩展。
|
2025-11-19 23:05:48 +08:00 |
|
minecraft1024a
|
88446ac49a
|
refactor(llm): 解决合并冲突并移除请求逻辑重构
最近为解耦LLM请求逻辑而进行的重构引入了严重的合并冲突。
此提交通过移除引入的 `RequestExecutor` 和 `RequestStrategy` 等新组件,并恢复到之前的代码结构,从而解决了这些冲突。这有助于稳定开发分支并为后续重新审视重构方案做准备。
|
2025-11-19 23:05:48 +08:00 |
|
minecraft1024a
|
23937f7fbc
|
refactor: 移除未使用的导入和冗余代码
|
2025-11-19 23:05:48 +08:00 |
|
minecraft1024a
|
f842c43ab0
|
ruff
|
2025-11-19 23:05:47 +08:00 |
|
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 |
|