Spaces:
Sleeping
Sleeping
metadata
title: Fin-EvalOps
emoji: 📊
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
pinned: false
license: mit
short_description: 13 类金融 Agent 评测 Skill × 多模型 Judge × Web 评测平台
Fin-EvalOps
金融 Agent 评测运维平台 · 13 类自研评测 Skill × 65 真实金融问句样本 × 多模型 LLM Judge
针对金融 Agent 输出做自动化评测:输入金融问句,Agent 自动路由到对应的 10+ 类自研评测 Skill 之一,按"5 步评测协议 + 六档分量表 + 封顶规则 + 根因归因"产出结构化结果,Web 端可视化展示分数趋势、雷达图、根因时间线,并支持 Data Agent 对话式分析。
🟢 在线访问
| 端 | URL | 状态 |
|---|---|---|
| Backend | https://<your-space>.hf.space (Docker SDK) |
主部署 · HF Space |
| Frontend | https://shuaiwang888.github.io/Fin-EvalOps/ | GitHub Pages |
| Repo | https://github.com/shuaiwang888/Fin-EvalOps | — |
后端部署在 Hugging Face Spaces (Docker SDK),详见 DEPLOY_HF.md。
仓库分区
Fin-EvalOps/
├── skills/ # 三类评测协议(read-only)
│ ├── 自研评测Skill/ # 13 个自研评测协议(P0 已接入)
│ ├── 竞品对比Skill/ # 14 个竞品对比协议(P2 接入)
│ └── 端到端Skill/ # 14 个端到端协议(P2 接入)
├── 数据测试集/ # 13 分类 × 一类一文件(共 3627 条真实金融问句)
│ └── 自研评测测试集/ # 顶层 JSON 数组, 每项 = 1 个测试样本
├── fetch_eval_record.py # 从问财 EvalOps 后端拉取评测明细(后端 import 复用)
├── backend/ # FastAPI + SQLAlchemy + SQLite
│ └── app/persistence.py # HF Datasets 持久化层(新增)
├── frontend/ # Vite + React + TS + AntD + ECharts
├── Dockerfile # HF Space 构建(新增)
├── DEPLOY_HF.md # HF Space 部署指南(新增)
数据持久化方案(★ 新)
容器磁盘是临时的(Space 重启 / sleep-wake / 重新部署都会清空)。本项目用 Hugging Face Datasets 当持久层:
- 存储位置:
<HF_NAMESPACE>/<HF_DATASET_REPO>仓库的fin_evalops.db文件 - 拉取:每次
lifespan启动,如果本地 DB 不存在或为空,自动从 Dataset 拉取 - 推送触发点:
- 每次
evaluate_batch结束(自然业务单位) - 后台线程(默认 5 分钟,
HF_PUSH_INTERVAL可调) - 应用关闭(SIGTERM 时
tini转发信号触发lifespan退出)
- 每次
- 快照方式:SQLite 在线 backup API(
Connection.backup()),保证一致性 - 禁用方式:不设置
HF_TOKEN或HF_NAMESPACE即关闭全部持久化(纯本地模式)
详细 API 与运维命令见 DEPLOY_HF.md。
本地启动
Backend (Python 3.11+)
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # 填入 LLM API key(本地开发)
# 可选:填 HF_TOKEN / HF_NAMESPACE 启用 Datasets 持久化
uvicorn app.main:app --reload --port 8000
打开 http://localhost:8000/docs 查看 OpenAPI。
Frontend (Node 20+)
cd frontend
npm install
cp .env.example .env # VITE_API_BASE=http://localhost:8000
npm run dev
打开 http://localhost:5173。
部署
| 端 | 平台 | 入口 |
|---|---|---|
| Backend | Hugging Face Space (Docker SDK) | DEPLOY_HF.md |
| Frontend | GitHub Pages: https://shuaiwang888.github.io/Fin-EvalOps/ |
.github/workflows/deploy.yml |
敏感信息约束(强制)
- LLM API key 仅存放在 HF Space Secrets 中,前端代码与 GitHub Pages 仓库绝不包含任何 key
- 问财 EvalOps 内网地址
IWENCAI_BASE_URL仅后端可见,前端只暴露受控的/api/testsets/import-from-iwencai - 部署前自检:
grep -rE '117\.50\.195\.94|sk-[a-zA-Z0-9]{20,}' frontend/dist/必须为空
文档
- 整体方案:
/Users/appstore/.claude/plans/skill-skill-adaptive-cat.md - 自研评测协议总览:
自研评测Skill/README.md - HF Space 部署:DEPLOY_HF.md