Commit Graph

80 Commits

Author SHA1 Message Date
minecraft1024a
5f9c752e81 chore(llm_models): 在 LLMRequest 初始化中定义 model_name 变量,來修复某些神秘的bug 2025-11-19 22:48:18 +08:00
minecraft1024a
38bfdfd7a0 refactor(config): 将反截断设置移至模型配置 #真的能算refactor吗
反截断(anti-truncation)功能与特定模型的行为和能力更为相关,而不是任务本身的属性。

此更改将该设置从 `TaskConfig` 移动到 `ModelInfo`,以实现更合理的配置分组和更精细的控制。代码逻辑和配置文件模板也已相应更新。

BREAKING CHANGE: `anti_truncation` 配置项已从 `[model_task_config]` 部分移动到 `[[models]]` 下的具体模型配置中。用户需要更新其配置文件以适配新结构。
2025-11-19 22:48:05 +08:00
tt-P607
3835475ba0 fix(llm_models): 修复模型信息不存在时引发的属性错误
在处理模型信息 `model_info` 为 `None` 的情况下,直接访问 `model_info.name` 会导致 `AttributeError`。

此提交通过以下方式修复了该问题:
- 在 `_select_model` 调用后立即将 `model_info.name` 赋值给 `model_name` 变量,确保后续使用时该变量已定义。
- 在 `_handle_error` 方法中,当 `model_info` 可能为 `None` 时,增加了一个条件检查,如果 `model_info` 不存在,则将 `model_name` 设为 "unknown",从而避免了潜在的 `AttributeError`。
2025-11-19 22:47:19 +08:00
tt-P607
6434708f23 我或许修好了反截断?但我无法验证,用gemini 2.5 pro生成日程截断太严重了,连完整的二十四小时都无法输出,gemini 2.5 Flash截断好很多,我试了5次生成的都是完整的,可能修好了?但有待验证,建议在待办上打个问号 2025-11-19 22:46:20 +08:00
雅诺狐
e4c49ddd6c feat: 模型请求降级 2025-11-19 22:45:24 +08:00
minecraft1024a
be769e29c3 feat(config): 新增反截断功能防止模型输出截断
在任务配置中增加 anti_truncation 开关,支持在生成大段文本时防止被意外截断。启用后会在 prompt 中添加指示模型输出完成信令的指令,并在检测到未正常结束时触发自动重试机制。(我相信这次的一定不会炸飞你们了)
2025-11-19 22:45:17 +08:00
minecraft1024a
7d13d0b6c2 fix(embedding): 彻底解决事件循环冲突导致的嵌入生成异常
通过以下改动修复嵌入生成过程中的事件循环相关问题:
- 在 EmbeddingStore._get_embedding 中,改为同步创建-使用-销毁的新事件循环模式,彻底避免嵌套事件循环问题
- 调整批量嵌入 _get_embeddings_batch_threaded,确保每个线程使用独立、短生命周期的事件循环
- 新增 force_new 参数,LLM 请求嵌入任务时强制创建新的客户端实例,减少跨循环对象复用
- 在 OpenAI 客户端的 embedding 调用处补充详细日志,方便排查网络连接异常
- get_embedding() 每次都重建 LLMRequest,降低实例在多个事件循环中穿梭的概率

此次改动虽然以同步风格“硬掰”异步接口,但对现有接口零破坏,确保了向量数据库及相关知识检索功能的稳定性。(还有就是把的脚本文件夹移回来了)
2025-11-19 22:44:54 +08:00
minecraft1024a
053f2d2009 refactor(llm_models): 重构并发请求逻辑以提高代码复用性
将并发请求的通用逻辑提取到一个新的 `execute_concurrently` 辅助函数中。此举简化了 `LLMRequest.get_response` 方法,使其更易于阅读和维护。

现在,`get_response` 方法调用 `execute_concurrently` 来处理并发执行,而不是在方法内部直接管理任务创建和结果收集。同时,改进了单个请求失败时的异常处理和重试逻辑,使其在并发和非并发模式下都更加健壮。

Co-authored-by: 雅诺狐 <foxcyber907@users.noreply.github.com>
2025-11-19 22:42:30 +08:00
雅诺狐
dfecccfc56 llm统计记录模型反应时间 2025-11-19 22:40:11 +08:00
minecraft1024a
faae523b04 添加并发请求支持,更新LLMRequest类以允许根据配置的并发数量进行异步请求 2025-11-19 22:40:04 +08:00
minecraft1024a
df3616e481 优化API调用超时提示信息,增加空回复重试逻辑(应该能用) 2025-11-19 22:37:25 +08:00
minecraft1024a
1e785a117d 优化图片格式处理,统一将'jpg'格式转换为'jpeg',新增标准化和MIME类型转换功能,以确保API兼容性和提高代码可读性(最主要的还是为了gemini) 2025-11-19 22:36:09 +08:00
minecraft1024a
036f47c1e0 feat:新增内容混淆功能:在API配置中添加混淆选项及强度设置;更新LLM请求处理逻辑以支持内容混淆,包含随机乱码注入和过滤规则指令(最主要的是防**google的审查) 2025-11-19 22:35:17 +08:00
SengokuCola
268b428e8f feat: llm统计现已记录模型反应时间 2025-08-11 21:51:59 +08:00
UnCLAS-Prommer
41e8966ae7 更多events 2025-08-09 17:33:24 +08:00
UnCLAS-Prommer
d65f90ee49 增加缓存层提高性能 2025-08-09 11:40:29 +08:00
SengokuCola
5220c269b6 fix:修复表达学习出错 2025-08-09 00:19:02 +08:00
SengokuCola
721546fff9 fix:通过计时定位LLM异常延时,移除memory模型 2025-08-08 22:10:08 +08:00
UnCLAS-Prommer
3d98b56c15 空响应就raise 2025-08-06 13:06:53 +08:00
UnCLAS-Prommer
1cf6850022 智能轮询加强,防止连续使用 2025-08-04 22:33:30 +08:00
UnCLAS-Prommer
1e5db5d7e1 正确使用lpmm构建prompt 2025-08-03 19:52:31 +08:00
UnCLAS-Prommer
1f53ecff10 加上tools的enum属性 2025-08-03 10:27:47 +08:00
UnCLAS-Prommer
01c52e4caf Merge branch 'dev' of github.com:MaiM-with-u/MaiBot into dev 2025-08-03 00:50:19 +08:00
UnCLAS-Prommer
9afa549aee 让Gemini的图像可用,修复部分typing 2025-08-03 00:49:19 +08:00
UnCLAS-Prommer
9b65b740be Merge pull request #1155 from Windpicker-owo/dev
修复了语音识别一个不太聪明的bug
2025-08-01 16:02:33 +08:00
Windpicker-owo
b79faf8f86 修复了语音识别一个不太聪明的bug 2025-08-01 15:30:35 +08:00
UnCLAS-Prommer
38930b0ceb 显示用了什么模型 2025-08-01 15:28:57 +08:00
Windpicker-owo
fcaa78f9a5 删除了add_file_content 2025-08-01 12:49:09 +08:00
Windpicker-owo
25cb8d41bb 修复了语音识别功能 2025-08-01 03:32:00 +08:00
UnCLAS-Prommer
17d6aeefab 修复interval 2025-07-31 23:15:17 +08:00
UnCLAS-Prommer
37e52a1566 tools系统 2025-07-31 11:41:15 +08:00
UnCLAS-Prommer
483c8fb547 请求中增加extra_params功能 2025-07-31 01:08:35 +08:00
UnCLAS-Prommer
6c0edd0ad7 调整对应的调用 2025-07-30 17:07:55 +08:00
UnCLAS-Prommer
3c40ceda4c 大修LLMReq 2025-07-30 09:45:13 +08:00
墨梓柒
7313529dcb feat: 添加任务类型和能力字段至模型配置,增强模型初始化逻辑 2025-07-29 09:57:20 +08:00
墨梓柒
f0b9e8919a fix: 增强LLMRequest类的异常处理,添加统一的模型异常处理方法 2025-07-28 19:54:37 +08:00
墨梓柒
3a11c69b8c fix: 更新LLMRequest类的任务名称确定逻辑,优先使用配置文件中的task_type和capabilities字段 2025-07-28 19:50:40 +08:00
墨梓柒
72bcbb95ea fix: 修复LLMRequest类中的思维链提取逻辑,确保正确获取推理内容 2025-07-28 19:26:31 +08:00
墨梓柒
5353a1e50d fix: 优化LLMRequest类,初始化请求处理器并简化任务映射逻辑 2025-07-28 19:22:45 +08:00
墨梓柒
2335ec6577 fix: 兼容新旧格式的模型名称获取,保留provider兼容性 2025-07-25 16:44:55 +08:00
墨梓柒
97def0e931 优化性能:添加请求处理器缓存,减少重复创建;新增性能测试用例 2025-07-25 14:05:59 +08:00
墨梓柒
909e47bcee 初步重构llmrequest 2025-07-25 13:21:48 +08:00
SengokuCola
3495926f55 Update utils_model.py 2025-07-25 02:01:28 +08:00
SengokuCola
4ab6d59a79 fix:修复enable_thinking导致的400问题 2025-07-24 23:20:05 +08:00
UnCLAS-Prommer
f2c901bc98 typing 2025-07-20 18:14:53 +08:00
UnCLAS-Prommer
400ffd0b53 增加样例插件,修复统计数据(部分),修复一个bug 2025-07-19 00:46:04 +08:00
Windpicker-owo
93f150f95e 修复了3处类型标注错误 2025-07-18 13:11:10 +08:00
Windpicker-owo
3d9f1a1d5a 增加了enable_asr配置选项,更改一处潜在的bug 2025-07-18 13:02:38 +08:00
Windpicker-owo
2636e9d55a 正确修改了file_bytes的类型标注 2025-07-17 15:47:33 +08:00
Windpicker-owo
830acaf35f 优化了代码规范 2025-07-17 15:35:13 +08:00