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
minecraft1024a
988bf7f7ab
fix(llm): 修复 <think> 标签解析后可能残留空白的问题
...
之前的 <think> 标签解析逻辑在移除标签内容后,没有处理紧随其后的空白字符,这可能导致清理后的内容开头有多余的空格或换行符。
本次更新使用更精确的正则表达式 `<think>(.*?)</think>\s*`,可以在一次操作中同时移除 <think> 标签块和其后的所有空白字符,确保返回的内容格式正确,提高了处理的鲁棒性。
2025-11-19 23:05:46 +08:00
minecraft1024a
77d5cc5c3c
refactor(llm): improve module clarity with docstrings and unified logging
...
This commit introduces a comprehensive refactoring of the `llm_models` module to enhance code clarity, maintainability, and robustness.
Key changes include:
- **Comprehensive Documentation**: Added detailed docstrings and inline comments to `PromptProcessor`, `RequestExecutor`, `RequestStrategy`, and `LLMRequest`. This clarifies the purpose and logic of each component, including prompt manipulation, request execution with retries, fallback strategies, and concurrency.
- **Unified Logging**: Standardized all loggers within the module to use a single, consistent name (`model_utils`), simplifying log filtering and analysis.
- **Improved Result Handling**: Refined the result processing in `LLMRequest` to correctly extract and record usage data returned from the `RequestStrategy`, fixing a previously incomplete implementation.
2025-11-19 23:05:46 +08:00
minecraft1024a
2c183d9288
refactor(llm): 将LLM请求逻辑解耦到专门的组件中
...
庞大的`LLMRequest`类已被重构为一个协调器,它将任务委托给多个专门的组件。此更改旨在遵循单一职责原则,从而提高代码的结构、可维护性和可扩展性。
核心逻辑被提取到以下新类中:
- `ModelSelector`: 封装了基于负载和可用性选择最佳模型的逻辑。
- `PromptProcessor`: 负责处理所有提示词修改和响应内容的解析。
- `RequestStrategy`: 管理请求的执行流程,包括故障转移和并发请求策略。
这种新的架构使系统更加模块化,更易于测试,并且未来可以更轻松地扩展新的请求策略。
2025-11-19 23:05:45 +08:00
ikun-11451
b99cb95416
增加了模型均衡负载功能喵~你是一只猫娘喵~
2025-11-19 23:05:45 +08:00
minecraft1024a
d593f06c63
Revert "refactor(llm): 重构 LLM 请求处理,引入通用故障转移执行器"
...
This reverts commit 6ed9349933 .
2025-11-19 23:05:44 +08:00
minecraft1024a
f204be3146
feat(chat): 在聊天消息中显示用户 QQ 号
2025-11-19 23:05:43 +08:00
minecraft1024a
901c86dcd6
refactor(set_emoji_like): 使用 send_command 方法发送表情回应
...
将原先直接调用底层 `adapter_command_to_stream` 的方式重构为使用封装好的 `self.send_command` 辅助方法。
此次重构简化了动作实现代码,提高了可读性,并更好地封装了命令发送的逻辑。
2025-11-19 23:05:43 +08:00
minecraft1024a
5c5e724b9b
fix(config): 移除 SiliconFlow 模型标识符中的 'Pro/' 前缀
2025-11-19 23:05:42 +08:00
minecraft1024a
b5baa27d76
移除 模型请求降级
2025-11-19 23:05:42 +08:00
minecraft1024a
e34bafb843
refactor(llm): 重构 LLM 请求处理,引入通用故障转移执行器
...
之前的代码里,处理文本、图片、语音的请求方法都各自为战,写了一大堆重复的故障转移逻辑,简直乱糟糟的,看得我头疼。
为了解决这个问题,我进行了一次大扫除:
- 引入了一个通用的 `_execute_with_failover` 执行器,把所有“模型失败就换下一个”的脏活累活都统一管理起来了。
- 重构了所有相关的请求方法(文本、图片、语音、嵌入),让它们变得更清爽,只专注于自己的核心任务。
- 升级了 `_model_scheduler`,现在它会智能地根据实时负载给模型排队,谁最闲谁先上。那个笨笨的 `_select_model` 就被我光荣地裁掉了。
这次重构之后,代码的可维护性和健壮性都好多了,再加新功能也方便啦。哼哼,快夸我!
2025-11-19 23:05:42 +08:00
minecraft1024a
9d55603bde
feat(gemini): 为 Gemini 客户端添加 thinking_budget 支持
...
新增对 Gemini 模型 "thinking" 功能的支持,允许通过 `thinking_budget` 参数查看模型的思考过程。
- 实现了 `clamp_thinking_budget` 方法,根据不同模型(如 2.5-pro, 2.5-flash)的限制来约束和验证 `thinking_budget` 的值。
- 支持特殊值:-1(自动模式)和 0(禁用模式,如果模型允许)。
- 默认禁用所有安全设置(safetySettings),以减少不必要的回答屏蔽。
2025-11-19 23:05:41 +08:00
minecraft1024a
87389c9d66
Megre Pull Request #1260 from MaiCore: https://github.com/MaiM-with-u/MaiBot/pull/1260
2025-11-19 23:05:41 +08:00