Skip to content

Releases: LiteSuggarDEV/nonebot_plugin_suggarchat

V3.7.0

30 Jan 03:33
3be81c9

Choose a tag to compare

合并了来自Amrita的更新

What's Changed

Full Changelog: 3.6.0...3.7.0

V3.6.0

21 Nov 05:04
1d76bb3

Choose a tag to compare

What's Changed

Full Changelog: 3.5.0...3.6.0

V3.5.0

07 Oct 14:29
7c08841

Choose a tag to compare

🚀 核心功能增强

1. 智能体模式 (Agent Mode)

  • 新增实验性智能体模式,支持多轮工具调用
  • 添加工具调用次数限制配置 (agent_tool_call_limit)
  • 工具执行结果会作为观察结果反馈给模型

2. 多模态支持增强

  • 新增多模态预设列表配置 (multi_modal_preset_list)
  • 自动根据消息内容选择多模态或文本预设
  • 改进图片消息处理逻辑

3. 工具系统重构

  • 重构工具调用机制,支持递归调用
  • 新增 STOP_TOOL 工具用于结束任务处理
  • 工具上下文增加 bot 参数传递
  • 添加 on_tools 装饰器简化工具注册

⚙️ 配置优化

1. 配置结构重组

  • block_msgCookieModel 移至 LLM_Config
  • 新增关键词匹配模式 (keywords_mode): starts_withcontains
  • 工具配置增加智能体相关参数

2. 预设管理增强

  • 新增预设测试功能 (test_preset 命令)
  • 支持批量测试所有预设的可用性
  • 提供详细测试报告

🔧 架构改进

1. 事件系统重构

  • 使用 EventTypeEnum 替代原有的 EventType
  • 统一事件模型响应类型为字符串
  • 定义 SEND_MESSAGES 类型别名提高代码可读性

2. API 模块标准化

  • 增加模块文档字符串
  • 改进函数注释和类型提示
  • 统一工具选择参数导入路径

3. 聊天处理器优化

  • 重构消息处理流程,提高可维护性
  • 改进 token 计数和上下文限制逻辑
  • 优化图片回复消息处理

🐛 问题修复与改进

1. 使用额度检查

  • 将额度检查移至规则层 (should_respond_with_usage_check)
  • 修复群聊和私聊的额度检查逻辑

2. 工具调用稳定性

  • 增加工具调用异常处理
  • 改进递归调用终止条件
  • 优化工具执行结果展示

3. 消息处理改进

  • 修复消息分段逻辑的正则表达式
  • 改进转发消息的解析
  • 优化多模态消息的构建

📊 监控与调试

1. 新增测试工具

  • 预设测试命令提供性能数据:
    • Token 消耗统计
    • 响应时间测量
    • 预设成功统计

2. 调试信息增强

  • 增加详细的工具调用日志
  • 改进错误处理和异常信息

🔄 向后兼容性

  • 保持主要 API 接口的兼容性
  • 配置项默认值保持向后兼容
  • 事件系统接口基本保持不变

这个版本更新显著提升了插件的智能交互能力,特别是通过智能体模式实现了更复杂的任务处理流程,同时改善了系统的稳定性和可维护性。

What's Changed

Full Changelog: 3.4.6.2...3.5.0

V3.4.6.2

16 Sep 09:51
0777a15

Choose a tag to compare

What's Changed

Full Changelog: 3.4.6.1...3.4.6.2

V3.4.6.1

27 Aug 04:23
5956787

Choose a tag to compare

What's Changed

Full Changelog: 3.4.6...3.4.6.1

V3.4.6

27 Aug 03:29
9cee669

Choose a tag to compare

What's Changed

Full Changelog: 3.4.5.3...3.4.6

V3.4.5.3

23 Aug 14:54
d672465

Choose a tag to compare

What's Changed

Full Changelog: 3.4.5.2...3.4.5.3

V3.4.5.2

22 Aug 01:07
875728d

Choose a tag to compare

What's Changed

Full Changelog: 3.4.5.1...3.4.5.2

V3.4.5.1

21 Aug 07:50
306f2a1

Choose a tag to compare

What's Changed

核心功能改进

  1. 数据库存储优化:将记忆数据 (memory_json) 和会话数据 (sessions_json) 的存储格式从 TEXT 改为原生 JSON 类型(MySQL/MariaDB 为 JSON,SQLite 为 JSONB),提升查询效率并简化数据处理逻辑。
  2. 消息处理增强
    • 重构消息内容构建逻辑,使用强类型的 TextContentImageContent 模型替代原始字典,提升类型安全性。
    • 增加对图片消息 URL 的检查(确保 seg.data.get("url") 存在),避免处理无效数据。
  3. 类型注解与代码质量
    • 完善变量类型注解(如明确 memory_l 类型)。
    • 使用 Message 模型直接实例化替代 model_validate 方法,简化代码。
    • 在 token 计算循环中增加异步等待 (await asyncio.sleep(0)),避免阻塞事件循环。

数据库迁移

  • 新增迁移脚本 5740c5aae763_json.py,用于将现有文本格式数据转换为 JSON 格式(支持升级和回滚操作)。
  • 初始化迁移脚本调整字段默认值(server_default 设置为 '{}''[]')。

其他调整

  • 版本号从 3.4.5 升级至 3.4.5.1
  • 移除冗余的 json.loads 调用,直接操作 JSON 数据。
  • 工具调用函数 (tools_caller) 后增加空行以符合代码规范。

总结:本次更新主要优化了数据存储结构(文本→JSON),增强了消息处理的健壮性和类型安全,并进行了代码质量改进,均为向后兼容的优化。

Full Changelog: 3.4.5...3.4.5.1

V3.4.5

20 Aug 12:52
c3fcce3

Choose a tag to compare

核心摘要

本次更新主要涉及底层协议适配器重构Token 处理逻辑优化功能增强问题修复,提升了框架的稳定性、扩展性和对大模型响应的处理能力。


详细变更总结

1. 项目元信息更新 (README.md)

  • 仓库地址变更: 项目主链接从 JohnRichard4096 的仓库更改为 LiteSuggarDEV
  • 项目描述简化: 副标题从 "高扩展性的大模型聊天框架" 简化为 "大模型聊天框架"。
  • 依赖版本更新: 升级了 NoneBot2 的版本要求至 2.4.0+
  • 许可证信息更新: 更新了 License 徽章中的用户名以匹配新的仓库地址。

2. 协议适配器重构 (重大变更)

  • 引入统一响应协议 (utils/protocol.py):
    • 新增 UniResponse, UniResponseUsage, ToolCall 等 Pydantic 模型,用于标准化不同大模型 API 返回的数据结构。
    • 定义了通用的 ToolChoice 类型,以更好地处理模型对工具调用的选择。
  • 适配器接口抽象化:
    • 抽象基类 ModelAdaptercall_api 方法现在返回统一的 UniResponse 对象,而非简单的字符串。
    • 新增 call_tools 抽象方法,要求所有协议适配器都必须实现工具调用的逻辑。
  • OpenAI 适配器增强 (utils/libchat.py):
    • 重写了 OpenAIAdapter.call_api 方法,现在能处理流式响应并从中提取 Token 使用量 (usage) 信息。
    • 新增了 OpenAIAdapter.call_tools 方法,实现了符合新抽象的标准工具调用功能。

3. Token 处理与上下文管理优化

  • Token 计算与限制逻辑重构 (handlers/chat.py):
    • 将原有的 enforce_token_limit 函数拆分为 get_tokens (计算 Token) 和 enforce_token_limit (执行清理) 两个函数,逻辑更清晰。
    • Token 限制检查不再在准备消息时进行,而是在收到模型响应后,根据实际消耗的 Token 量进行清理,更加精确。
    • 修复了可能因提示词过长而导致无限循环的问题。
  • 提示词模板增强: 系统提示词模板新增了 {user_id}{user_name} 变量,支持更个性化的对话。

4. 功能新增与改进

  • 工具调用 (ToolCall) 支持: 整个工具调用流程(从模型返回的原始数据到结构化 ToolCall 对象)现已整合到新的协议体系中。
  • 思考链 (Thought Chain) 处理优化: 思考链内容的清理(remove_think_tag)被移入 get_chat 函数中,处理时机更加合理。
  • 调试信息增强: 在调试模式下,现在会打印出完整的统一响应对象 (UniResponse),而不仅是回复内容。

5. 问题修复

  • 导入错误修复: 在 API.py 中,从 openai.types 的导入改为从本地 utils.protocol 导入 ToolChoice,解决了可能的依赖或导入问题。
  • 异常处理增强: 在 get_chat 函数中,增加了更明确的错误日志和异常抛出,避免了静默失败。
  • 类型注解修正: 多处修正了类型注解,使其与新的数据结构(如 UniResponse)保持一致。

6. 依赖更新

  • 项目版本升级: pyproject.toml 中的项目版本从 3.4.4.3 升级至 3.4.5
  • 依赖锁文件更新: uv.lock 文件随之更新。

总结

本次发布是一个重要的技术迭代版本。它没有直接增加面向用户的新功能,而是通过重构底层架构,引入了更强大、更统一的协议适配系统,并优化了核心的 Token 管理和上下文维护逻辑。这些改动为未来支持更多种类的大模型、实现更复杂的工具调用功能打下了坚实的基础,同时提高了当前版本的稳定性和可维护性。

What's Changed

Full Changelog: 3.4.4.3...3.4.5