From a7f894691e8e7f1b1f76106bf51739399fc219fb Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Tue, 19 May 2026 14:52:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=AF=84=E4=BC=B0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E9=87=8D=E6=9E=84=20-=20=E5=89=8D=E7=AB=AF=20API=20?= =?UTF-8?q?=E5=8F=8A=E8=AF=84=E4=BC=B0=E7=BB=84=E4=BB=B6=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API 层方法名和路径统一为 dataset/run 语义 - RAGEvaluationTab 重写为全屏面板、支持列宽拖拽 - EvaluationBenchmarks 重写为数据集管理视图 - 生成模态框增加并发数配置;上传模态框适配新接口 --- web/src/apis/knowledge_api.js | 115 +-- web/src/components/EvaluationBenchmarks.vue | 762 +++++++++++---- web/src/components/RAGEvaluationTab.vue | 872 +++++++++++------- .../modals/BenchmarkGenerateModal.vue | 43 +- .../modals/BenchmarkUploadModal.vue | 2 +- 5 files changed, 1193 insertions(+), 601 deletions(-) diff --git a/web/src/apis/knowledge_api.js b/web/src/apis/knowledge_api.js index 4452b95f..350359eb 100644 --- a/web/src/apis/knowledge_api.js +++ b/web/src/apis/knowledge_api.js @@ -423,141 +423,64 @@ export const typeApi = { } } - // ============================================================================= // === RAG评估分组 === // ============================================================================= export const evaluationApi = { - /** - * 上传评估基准文件 - * @param {string} dbId - 知识库ID - * @param {File} file - JSONL文件 - * @param {Object} metadata - 基准元数据 - * @returns {Promise} - 上传结果 - */ - uploadBenchmark: async (dbId, file, metadata = {}) => { + uploadDataset: async (dbId, file, metadata = {}) => { const formData = new FormData() formData.append('file', file) formData.append('name', metadata.name || '') formData.append('description', metadata.description || '') - return apiAdminPost(`/api/evaluation/databases/${dbId}/benchmarks/upload`, formData) + return apiAdminPost(`/api/evaluation/databases/${dbId}/datasets/upload`, formData) }, - /** - * 获取评估基准列表 - * @param {string} dbId - 知识库ID - * @returns {Promise} - 基准列表 - */ - getBenchmarks: async (dbId) => { - return apiAdminGet(`/api/evaluation/databases/${dbId}/benchmarks`) + listDatasets: async (dbId) => { + return apiAdminGet(`/api/evaluation/databases/${dbId}/datasets`) }, - /** - * 获取评估基准详情 - * @param {string} benchmarkId - 基准ID - * @returns {Promise} - 基准详情 - */ - getBenchmark: async (benchmarkId) => { - return apiAdminGet(`/api/evaluation/benchmarks/${benchmarkId}`) - }, - /** - * 获取评估基准详情(带db_id) - * @param {string} dbId - 知识库ID - * @param {string} benchmarkId - 基准ID - */ - getBenchmarkByDb: async (dbId, benchmarkId, page = 1, pageSize = 50) => { + getDataset: async (dbId, datasetId, page = 1, pageSize = 50) => { const params = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString() }) - return apiAdminGet(`/api/evaluation/databases/${dbId}/benchmarks/${benchmarkId}?${params}`) + return apiAdminGet(`/api/evaluation/databases/${dbId}/datasets/${datasetId}?${params}`) }, - /** - * 删除评估基准 - * @param {string} benchmarkId - 基准ID - * @returns {Promise} - 删除结果 - */ - deleteBenchmark: async (benchmarkId) => { - return apiAdminDelete(`/api/evaluation/benchmarks/${benchmarkId}`) + deleteDataset: async (datasetId) => { + return apiAdminDelete(`/api/evaluation/datasets/${datasetId}`) }, - /** - * 下载评估基准 - * @param {string} benchmarkId - 基准ID - * @returns {Promise} - Response对象 - */ - downloadBenchmark: async (benchmarkId) => { - return apiAdminGet(`/api/evaluation/benchmarks/${benchmarkId}/download`, {}, 'blob') + downloadDataset: async (datasetId) => { + return apiAdminGet(`/api/evaluation/datasets/${datasetId}/download`, {}, 'blob') }, - /** - * 自动生成评估基准 - * @param {string} dbId - 知识库ID - * @param {Object} params - 生成参数 - * @param {number} params.count - 生成问题数量 - * @param {string} params.llm_model_spec - LLM模型配置 - * @returns {Promise} - 生成结果 - */ - generateBenchmark: async (dbId, params) => { - return apiAdminPost(`/api/evaluation/databases/${dbId}/benchmarks/generate`, params) + generateDataset: async (dbId, params) => { + return apiAdminPost(`/api/evaluation/databases/${dbId}/datasets/generate`, params) }, - /** - * 运行RAG评估 - * @param {string} dbId - 知识库ID - * @param {Object} params - 评估参数 - * @param {string} params.benchmark_id - 基准ID - * @param {Object} params.retrieval_config - 检索配置 - * @returns {Promise} - 评估任务ID - */ runEvaluation: async (dbId, params) => { - return apiAdminPost(`/api/evaluation/databases/${dbId}/run`, params) + return apiAdminPost(`/api/evaluation/databases/${dbId}/runs`, params) }, - /** - * 获取评估结果 - * @param {string} taskId - 任务ID - * @returns {Promise} - 评估结果 - */ - getEvaluationResults: async (taskId) => { - // 已废弃:请改用 getEvaluationResultsByDb - return apiAdminGet(`/api/evaluation/${taskId}/results`) + listRuns: async (dbId) => { + return apiAdminGet(`/api/evaluation/databases/${dbId}/runs`) }, - /** - * 删除评估结果 - * @param {string} taskId - 任务ID - * @returns {Promise} - 删除结果 - */ - deleteEvaluationResult: async (taskId) => { - // 已废弃:请改用 deleteEvaluationResultByDb - return apiAdminDelete(`/api/evaluation/${taskId}`) - }, - - // 新接口:带 db_id 的评估结果查询与删除 - getEvaluationResultsByDb: async (dbId, taskId, params = {}) => { + getRunResults: async (dbId, runId, params = {}) => { const queryParams = new URLSearchParams() if (params.page) queryParams.append('page', params.page) if (params.pageSize) queryParams.append('page_size', params.pageSize) if (params.errorOnly !== undefined) queryParams.append('error_only', params.errorOnly) - const url = `/api/evaluation/databases/${dbId}/results/${taskId}${queryParams.toString() ? '?' + queryParams.toString() : ''}` + const url = `/api/evaluation/databases/${dbId}/runs/${runId}${queryParams.toString() ? '?' + queryParams.toString() : ''}` return apiAdminGet(url) }, - deleteEvaluationResultByDb: async (dbId, taskId) => { - return apiAdminDelete(`/api/evaluation/databases/${dbId}/results/${taskId}`) - }, - /** - * 获取知识库的评估历史记录 - * @param {string} dbId - 知识库ID - * @returns {Promise} - 评估历史列表 - */ - getEvaluationHistory: async (dbId) => { - return apiAdminGet(`/api/evaluation/databases/${dbId}/history`) + deleteRun: async (dbId, runId) => { + return apiAdminDelete(`/api/evaluation/databases/${dbId}/runs/${runId}`) } } diff --git a/web/src/components/EvaluationBenchmarks.vue b/web/src/components/EvaluationBenchmarks.vue index 9122e582..4c80ca35 100644 --- a/web/src/components/EvaluationBenchmarks.vue +++ b/web/src/components/EvaluationBenchmarks.vue @@ -36,41 +36,54 @@

{{ benchmark.name }}

-
- - - - - - - - - +
+ + + +
@@ -80,21 +93,23 @@
- 检索 + 问答 - - 检索评估 问答评估 - 仅查询 + + 仅查询 + Gold Chunks @@ -102,6 +117,16 @@ Gold Answer + + {{ getDatasetSourceText(benchmark) }} + + + {{ getDatasetStatusText(benchmark) }} +
@@ -109,7 +134,18 @@
@@ -129,93 +165,115 @@ @success="onGenerateSuccess" /> - - -
-
-

{{ previewData.name }}

-
- - 问题数: - {{ previewData.question_count }} - - - Gold Chunks: - - {{ previewData.has_gold_chunks ? '有' : '无' }} - - - - Gold Answer: - - {{ previewData.has_gold_answers ? '有' : '无' }} - - + +
+
+
+
评估基准详情
+ + + +
+ +
+
+

{{ previewData.name }}

+
+ + 问题数: + {{ previewData.item_count }} + + + Gold Chunks: + + {{ previewData.has_gold_chunks ? '有' : '无' }} + + + + Gold Answer: + + {{ previewData.has_gold_answers ? '有' : '无' }} + + +
+
+ +
+
+
+

问题列表

+ 共 {{ previewPagination.total }} 条 +
+ +
+ + + +
- -
-

问题列表 (共{{ previewPagination.total }}条)

- - - -
- +
diff --git a/web/src/components/RAGEvaluationTab.vue b/web/src/components/RAGEvaluationTab.vue index fc2dc32f..22c169ff 100644 --- a/web/src/components/RAGEvaluationTab.vue +++ b/web/src/components/RAGEvaluationTab.vue @@ -7,25 +7,25 @@
- {{ benchmark.name }} ({{ benchmark.question_count }} 个问题) + {{ benchmark.name }} ({{ benchmark.item_count }} 个问题) 开始评估 @@ -51,8 +51,7 @@
@@ -60,7 +59,7 @@ @@ -78,7 +78,7 @@ @@ -95,7 +96,7 @@
-