# ott6-web-eval **Repository Path**: mjsz/ott6-web-eval ## Basic Information - **Project Name**: ott6-web-eval - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-11 - **Last Updated**: 2026-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ott6-eval-ui > vLLM on Ascend NPU 的模型评估工具:镜像/容器管理、vllm 启停、数据集评测,并提供 CLI / TUI / WebUI / REST 多种入口。 `ott6-eval-ui` 运行在**宿主机**或**容器**中。在宿主机上可管理镜像与容器;在容器内则直接管理 vllm 服务与评测。所有底层逻辑只实现一遍,CLI / TUI / WebUI / REST 都是它的「视图」。 ## 安装 ```bash pip install -e . # 安装本工具(Python ≥3.10) pip install -e '.[tui]' # 额外安装 TUI 依赖 (Textual) pip install -e '.[dev]' # 开发:pytest / ruff / mypy ``` 入口命令:`ott6-eval-ui`。 ## 快速开始 ```bash ott6-eval-ui doctor # 环境自检:宿主机/容器、NPU、docker、存储路径 ott6-eval-ui cmd env-info --json # 环境摘要 ott6-eval-ui cmd image-search vllm --chip-class 910C # 推荐镜像 (国内镜像源) ott6-eval-ui cmd image-pull quay.io/ascend/vllm-ascend:v0.22.1rc1-a3-openeuler ott6-eval-ui cmd container-create --template default --name my-vllm --add-date ott6-eval-ui cmd vllm-start --template default ott6-eval-ui cmd dataset-ensure gsm8k ott6-eval-ui cmd eval-run --dataset gsm8k --endpoint http://127.0.0.1:8000 ott6-eval-ui cmd task-list # 评测/拉取/启动 任务 ott6-eval-ui skills # 打印 CLI 接口说明 (agent / 界面用) ott6-eval-ui webui --port 8000 --ip 0.0.0.0 # 启动 WebUI + REST API ott6-eval-ui tui # 终端 UI ``` ## 对外形式 | 入口 | 说明 | |---|---| | `ott6-eval-ui cmd ` | 功能性命令行接口,每个命令带进度,结束给明确 SUCCESS/FAIL + 日志位置;加 `--json` 得结构化输出 | | `ott6-eval-ui tui` | 终端 UI (Textual) | | `ott6-eval-ui webui` | Web UI (Vue3 SPA) + RESTful API;同时把全部 cmd 接口封装为 REST | | `ott6-eval-ui skills` | 打印 CLI 接口说明;`curl :8000/skills` 得 REST 接口说明 | > CLI 与 REST 的接口说明由 `ott6_eval_ui/skills/generator.py` 从中央注册表自动生成,永不漂移。 ## 存储约定 默认 `~/.ott6-eval-ui/`(容器内若不可写则回落 `$OTT6_EVAL_HOME` 或 `/tmp/ott6-eval-ui`): ``` config.yaml 全局配置(数据集路径、并发数、国内镜像开关) templates/ container_*.yaml / vllm_*.yaml / eval_*.yaml history/ 各输入框历史 → 下拉选项 logs/.log 每次操作的完整日志(唯一 run_id),UI 明显位置提示路径 datasets/ 数据集存放(可由 config 覆盖) results// eval/perf 结果 tasks.db SQLite 任务状态(串行队列) runs.jsonl 所有操作审计记录 ``` ## 功能模块 ### 镜像管理(仅宿主机) 列出/过滤、搜索(国内镜像源,优先 vllm-ascend/sglang,按芯片/系统/架构过滤)、后台拉取(可停止)、从文件 load、删除(高危二次确认)。 ### 容器管理(仅宿主机) 列出/过滤、停止、删除(高危确认)、基于模板创建、commit 为新镜像。模板变量: - `$ALL_DEVICES` — 自动绑定全部 NPU 卡(`/dev/davinci*` + manager/devmm_svm/hisi_hdc) - `$NAME` / `$NAME_DATE` / `$NAME_RANDOM` — 容器命名;重名预检,随机后缀重复自动重摇 - 模板支持多份、复制、保存、删除,默认模板参考 192.168.9.123 上的验证容器 ### vLLM 服务 启动(宿主机选容器,容器内直接执行)、停止、(宿主机)清理 NPU 占用、健康探测、显存分布解析、日志监控与错误提取。 - **UI 左右结构**:左侧编辑启动命令 + env;右侧实时解析用到的环境变量/参数并显示说明(来自内置 vllm-ascend envs/参数库,带 性能/精度/常用/调试 标签)。 - `$NPU_CHIPS` → `ASCEND_RT_VISIBLE_DEVICES`;启动前查卡是否空余。 - 日志监控内置 NPU/vLLM 故障模式正则(源自 `故障模式分类汇总.md` 的 F-xx),命中即高亮告警。 ### 评测 内置数据集 GSM8K / GPQA / MMMU / MMMU-PRO / MathVision / ShareGPT(perf),国内镜像多线程下载、自动判存在;评测与性能基准;串行任务队列,支持停止;任务管理界面展示结果与日志。 ## 构建 WebUI 前端(开发者) 使用者 `pip install` 后**无需 Node**(构建产物已随包发布)。仅当修改前端时: ```bash cd frontend npm install npm run build # 产物输出到 ott6_eval_ui/web/static/ ``` 开发热重载:`npm run dev`(5173 端口,自动代理 /api 与 /skills 到 8000)。 ## 测试 ```bash pytest # 42 个测试,覆盖 param parser / storage / docker / npu / tasks / web / skills ``` ## 目录结构 ``` EvalInsight/ pyproject.toml 包定义 ott6-eval-ui,入口 ott6-eval-ui PROMPTS.md 【强制】开发全程用户提示词留痕 docs/architecture.md 架构说明 ott6_eval_ui/ cli/ main.py / cmd.py / registry.py / common.py / skills_cli core/ env.py / storage.py / logging.py / config.py / templates.py / history.py runtime/ exec.py / docker.py / npu.py / vllm.py / param_parser.py / datasets.py / eval_runner.py / benchmarks.py tasks/ models.py / manager.py web/ app.py + rest/(7 routers) + sse.py + skills_http.py + static/(SPA) tui/ app.py (Textual) data/ 默认模板 + builtin_datasets.yaml + env_param_library/ skills/ generator.py(CLI+REST 接口说明自动生成) frontend/ Vue3 + Vite 源码 tests/ ``` ## 设计原则 1. **单点实现**:所有逻辑在 `core/runtime/tasks`,CLI / REST / TUI / WebUI 都是视图。 2. **日志即生命线**:每次操作一个 `run_id`,落盘 + 内存环形缓冲 + 错误正则扫描;UI 明确告知日志位置。 3. **高危操作反复确认**:删除镜像/容器、kill NPU 进程 需 `--yes` 或交互式二次确认;REST 需 `confirm:true`。 4. **国内网络优先**:镜像下载走 daocloud 加速,数据集走 hf-mirror / ModelScope,多线程。 5. **接口说明不手写**:skills 文档由注册表生成,CLI 与 REST 同源。