基于 Dify + Langfuse + Ragas 的自动化评估与指标跟踪服务, 让 Dify 大模型应用的表现有迹可循。目前具备如下所示的功能:
- 一键上传本地文件至 Langfuse 构建数据集;
- 基于 Langfuse 数据集批量至 Dify,并关联原始数据集;
- 全自动大模型评分,多维度,可拓展;
- 多版本评分比较,可视化查看效果提升;
跟踪单次请求详细调用工作流
批量自动化评分
多版本效果比较
- 部署 Dify 和 Langfuse 应用, Dify 的部署可以参考 Dify 文档, Langfuse 的部署可以参考 Langfuse 文档。本框架理论上也支持 Dify 和 Langfuse 的云服务;
- 在 Dify 中创建应用,并配置 Langfuse 跟踪,具体可以参考 Dify 集成 Langfuse;
- 下载本项目 Dify-Eval, 进入项目目录 dify-eval 下;
- 并执行
cp .env.example .env
复制环境变量,根据实际情况修改 .env 中的环境变量; - 参考
example.csv
构建自己的测试数据集,也可以参考build.py
自行修改构建测试数据集; - 执行
poetry shell
激活虚拟环境,然后执行poetry install
安装所需的依赖;
Langfuse Key 获取页面
RAGAS 评估大模型与向量模型获取 理论上支持 OpenAI 格式的路径和 API_KEY
实际测试时是基于 Xinference 离线部署的,流程基本类似
- 执行
python run.py
将本地的数据集上传至 Langfuse,并根据数据集自动提交任务至 Dify; - 执行
python evaluate.py
执行数据集的自动评分;
- 部分情况下可能没有正确答案,此时对应的数据集
example.csv
可以没有answer
列, 完整的数据集构建和批量测试都是没问题的。但是没有正确答案的情况下进行评估部分 ragas 指标是无法支持的,需要有针对性调整; - 现有的默认指标都是在
evaluate.py
中的DEFAULT_METRICS
定义的,可以根据实际情况进行修改;