Skip to content

Dify Chat Tester v1.4.0

Choose a tag to compare

@MisonL MisonL released this 16 Dec 07:31
· 77 commits to main since this release

重构

  • 模块化重构:将所有源代码重组为清晰的子模块(cli, core, config, utils, providers),极大提升了代码的可维护性。
  • 配置与日志分离:创建独立的 config/ 目录存放配置文件和日志逻辑,优化了项目根目录结构。
  • 版本管理:引入 _version.py 统一管理版本号,解决了循环导入问题。

新增

  • 私有插件隔离:支持通过 PRIVATE_PLUGINS_PATH 环境变量加载外部私有插件,实现核心代码与私有扩展的物理隔离。
  • 配置加载增强:ConfigLoader 现在能智能识别开发环境、打包环境及新的配置文件路径。

修复

  • 超时问题:移除私有插件 RAG 长耗时任务的 HTTP 请求超时限制,解决了 ReadTimeoutError。
  • 显示优化:修复了工具调用前思考过程文本丢失的问题,现在会通过“记录”面板持久化显示。
  • 循环依赖:彻底解决了 cli.app 与 main 之间的循环导入问题。
  • 流式输出:修复了部分插件在流式响应时 Excel 日志为空的问题。
  • 路径兼容性:修复了在不同目录下运行程序可能导致找不到配置文件的 Bug。

优化

  • 断点续传:
    • 彻底移除了 .batch_state_*.json 临时缓存文件。
    • 新增基于日志文件([文件名]_log.xlsx)的智能断点续传机制,自动检测并恢复进度。
    • 简化了恢复流程,不再需要管理额外的状态文件。

清理

  • 移除了项目根目录下冗余的临时配置文件和过时文档。

[1.3.2] - 2025-12-05

新增

  • 统一异常处理:引入 exceptions.py 模块,定义标准化的异常类体系,提供更友好的错误提示信息。
  • 配置化批量保存:新增 BATCH_SAVE_INTERVAL 配置项,允许用户自定义批量处理时的自动保存间隔(默认 10 条)。

优化

  • 架构重构:
    • 服务层抽离:将问题生成逻辑抽离为独立的 QuestionService,降低控制器耦合度。
    • 依赖注入:重构 AppController,支持外部注入配置和环境管理器,提升可测试性。
  • 优雅退出机制:
    • 在 main.py 中添加顶层 KeyboardInterrupt 捕获,用户按 Ctrl+C 时显示友好提示而非 Traceback。
    • 在批量处理循环中添加中断捕获,确保用户中断操作时自动保存当前处理进度,防止数据丢失。

测试

  • 覆盖率提升:新增针对服务层和异常处理模块的单元测试,确保核心逻辑稳健。