【在线评测系统】ai-eval-system v0.2版本功能预览与使用指南
ai-eval-system
这是一个基于OpenCompass的模型评测系统,该系统提供了前端页面UI以方便用户自助开展评测工作。
项目地址
https://github.com/domonic18/ai-eval-system
版本发布
v0.2:
- 支持API方式进行Dify平台应用的评测
- 优化评测任务创建时的交互过程,包括API_URL等信息的输入、数据集的选择、评测信息的确认
- 优化评测任务页面的显示,区分我的评测和全部评测
- 优化评测任务终止时使用Celery原生方法不稳定的问题
- 服务进行Docker化,方便快速部署
v0.1:
- 支持基于OpenCompass的B/S架构的模型评测
- 支持API方式提交评测任务
- 支持评测任务的队列管理功能,包括创建、排队、运行、终止等
- 支持评测过程的日志的实时监控
- 支持评测结果的导出
系统功能
1. 创建评测任务
a.注册并登录系统
b.顶部菜单→在线评测→创建评测
c.选择自定义API类型
d.在编辑框内输入要测评的API_URL、API_KEY、MODEL_NAME

e.点击下一步,选择预置的数据集,例如:demo_math_chat_gen
f. 点击下一步,开始评测即可。
2. 查看评测进程
a.创建评测任务之后
b.在评测记录列表中,点击日志按钮,可以实时查看任务执行的日志情况


3. 查看评测结果
a.当评测任务执行完毕之后
b.在评测记录列表中,点击结果按钮,可以查看评测执行结果

c.点击"下载完整结果",可以将执行任务的完整记录下载分析

说明:
-
predictions 目录中的日志为对应评测数据集的详细记录,其中:-
origin_prompt 是测试的问题描述。-
prediction 是模型预测的答案。-
gold 是该问题的标准答案。
测试Dify平台上的应用
第一步:顶部菜单→在线评测→创建评测
第二步:选择 新建API方式 -> Dify接入

第三步:获取Dify应用信息。获取方法如下:
- 访问自己搭建Dify平台,例如:
https://guanghua.bj33smarter.com/。 - 选择要测试的应用,例如:
DeepSeek聊天 - 选择
访问API - 获取该应用的
Dify URL和Dify API KEY

第四步:在评测系统中,输入Dify平台Dify URL和Dify API KEY,Dify应用类型选择Chat,然后下一步选择要测试的模型。
备注:
- Dify平台上的应用类型为:
聊天助手、Agent两类应用,经过测试可用,在选择应用类型时都选择Chat类型。 -
workflow 类型应用还未进行测试,可能存在不可用问题。

备注:目前仅预置了几个最为常见的评测数据集,后续需要根据实际业务场景配置或自定义数据集,如果大家有需求及建议,欢迎随时与我沟通。
提交评测任务。确认信息无误之后,点击提交评测即可。

评测过程中,如果想查看提交给Dify应用的问题以及回答,可以通过Dify平台的日志功能查看。

项目架构
系统架构流程
┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ ┌───────────────┐│ │ │ │ │ │ │ ││ 前端应用 │───▶│ FastAPI │───▶│ Celery 任务队列 │───▶│ OpenCompass ││ (Vue3) │ │ 服务 │ │ (Redis) │ │ 评测引擎 ││ │◀───│ │◀───│ │◀───│ │└─────────────┘ └─────────────┘ └─────────────────────┘ └───────────────┘ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼┌─────────────────────────────────────────────────────────────────────────────┐│ ││ 数据存储层 ││ (MySQL + Redis ) ││ │└─────────────────────────────────────────────────────────────────────────────┘1. 分层架构设计
- 前端层:Vue3 + WebSocket(实时状态)
- 服务层:
a.API服务:FastAPI(RESTful API)
b.异步任务引擎:Celery + Redis(分布式任务队列)
c.核心评测引擎:OpenCompass封装层(Python API调用)
- 持久层:
a.MySQL(关系型数据)
c.Redis(缓存/消息中间件)
2. 关键技术组件
FastAPI: 提供高性能API服务,支持异步请求处理和自动API文档生成
SQLAlchemy: ORM框架,实现数据模型与数据库的映射
Celery: 分布式任务队列,处理长时间运行的评测任务
Redis: 作为Celery的消息代理和后端存储,同时提供缓存功能
OpenCompass: 核心评测引擎,提供模型性能评估能力
3. 目录结构
ai-eval-system/├── apps/ # 主应用目录│ ├── web/ # 前端工程│ │ ├── src/│ │ └── package.json│ ├── server/ # 后端服务│ │ ├── src/│ │ └── start_celery_worker.py # 启动Celery Worker│ │ └── start_fastapi_server.py # 启动FastAPI服务器├── libs/ # 第三方依赖库│ └── OpenCompass/ # 通过git子模块引入(保持独立更新)│ └── Dify2OpenAI/ # 通过git子模块引入(保持独立更新)├── docker/ # 容器化配置│ ├── docker-compose-dev.yml # 开发环境配置│ └── docker-compose.yml # 生产环境配置├── docs/ # 项目文档│ └── 架构设计文档.md # 架构设计文档├── scripts/ # 运维脚本│ ├── init_database.py # 初始化数据库│ ├── init_environment.sh # 初始化环境├── README.md # 项目说明快速部署
你可以通过Docker方式快速部署,也可以通过开发者模式进行部署运行。
Docker方式部署(推荐)
1. 拉取代码
git clone https://github.com/domonic18/ai-eval-system.gitcd ai-eval-system# 拉取子模块git submodule update --init --recursive2. 配置环境变量
cd dockercp .env.example .env编辑.env文件,配置数据库连接信息
3. 启动服务
# 前提:在docker目录下docker-compose up -d4. 访问系统
待docker容器启动完毕后,访问系统
http://localhost开发模式运行
这种模式下,适用于开发者本地调试场景下。
1. 创建虚拟环境
conda create -n eval pythnotallow=3.10conda activate eval2. 安装依赖
# 源码方式安装OpenCompasscd libs/OpenCompasspip install -e .# 安装基础依赖(切换至根目录下)pip install -r requirements.txt# 安装ai-eval-system(切换至根目录下)pip install -e .备注:
- 1. 安装过程如果比较慢,可以在在pip命令后添加-i {镜像地址}
- 2. 清华源地址:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
3. 启动mysql和redis
# 切换至docker目录cd docker# 启动mysql和redisdocker-compose -f docker-compose-dev.yml up -d4. 启动FastAPI服务器
cd apps/serverpython start_fastapi_server.py服务器将在 http://localhost:8000 启动,可以通过访问 http://localhost:8000/docs 查看API文档。
5. 启动Celery Worker
cd apps/serverpython start_celery_worker.py这将启动Celery Worker处理异步评测任务。
6. 启动前端服务
cd apps/webnpm installnpm run dev前端服务将在 http://localhost:5173 启动,可以通过访问 http://localhost:5173 查看评测系统UI。
本文转载自公众号一起AI技术 作者:热情的Dongming
原文链接:https://mp.weixin.qq.com/s/es_9xJXqVUgQB7yexuoyWw
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任



