From d2c89cbfbb8c9d7691a8315157cd977a21429134 Mon Sep 17 00:00:00 2001 From: Dallas98 <990259227@qq.com> Date: Mon, 16 Mar 2026 11:16:38 +0800 Subject: [PATCH 01/15] fix: add validation rules for knowledge base name input --- frontend/src/i18n/locales/en/common.json | 2 ++ frontend/src/i18n/locales/zh/common.json | 2 ++ .../KnowledgeBase/components/CreateKnowledgeBase.tsx | 9 ++++++++- frontend/vite.config.ts | 4 ++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/i18n/locales/en/common.json b/frontend/src/i18n/locales/en/common.json index 0010260c..01ec80f5 100644 --- a/frontend/src/i18n/locales/en/common.json +++ b/frontend/src/i18n/locales/en/common.json @@ -1731,6 +1731,8 @@ "nameLabel": "Knowledge Base Name", "namePlaceholder": "Please enter knowledge base name", "nameRequired": "Please enter knowledge base name", + "nameMaxLength": "Knowledge base name cannot exceed 255 characters", + "namePattern": "Knowledge base name must start with a letter and can only contain letters, numbers, and underscores", "descriptionLabel": "Description", "descriptionPlaceholder": "Please enter knowledge base description (optional)", "embeddingModelLabel": "Embedding Model", diff --git a/frontend/src/i18n/locales/zh/common.json b/frontend/src/i18n/locales/zh/common.json index b9826e63..d51b54be 100644 --- a/frontend/src/i18n/locales/zh/common.json +++ b/frontend/src/i18n/locales/zh/common.json @@ -1731,6 +1731,8 @@ "nameLabel": "知识库名称", "namePlaceholder": "请输入知识库名称", "nameRequired": "请输入知识库名称", + "nameMaxLength": "知识库名称长度不能超过255个字符", + "namePattern": "知识库名称必须以字母开头,只能包含字母、数字和下划线", "descriptionLabel": "描述", "descriptionPlaceholder": "请输入知识库描述(可选)", "embeddingModelLabel": "索引模型", diff --git a/frontend/src/pages/KnowledgeBase/components/CreateKnowledgeBase.tsx b/frontend/src/pages/KnowledgeBase/components/CreateKnowledgeBase.tsx index 035fecf0..c476cec2 100644 --- a/frontend/src/pages/KnowledgeBase/components/CreateKnowledgeBase.tsx +++ b/frontend/src/pages/KnowledgeBase/components/CreateKnowledgeBase.tsx @@ -177,7 +177,14 @@ export default function CreateKnowledgeBase({ diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 4ff0c64f..1c69395c 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -49,9 +49,9 @@ export default defineConfig({ }; // Python 服务: rag, synthesis, annotation, evaluation, models - const pythonPaths = ["rag", "operators", "categories", "synthesis", "annotation", "knowledge-base", "data-collection", "evaluation", "models"]; + const pythonPaths = ["rag", "cleaning", "operators", "categories", "synthesis", "annotation", "knowledge-base", "data-collection", "evaluation", "models", "sys-param"]; // Java 服务: data-management, knowledge-base - const javaPaths = ["data-management", "sys-param"]; + const javaPaths = ["data-management"]; const proxy: Record = {}; // SSE 端点需要禁用缓冲 From 7daece4531ad98be8c88e715ee3055ea6c041a3b Mon Sep 17 00:00:00 2001 From: Dallas98 <990259227@qq.com> Date: Mon, 16 Mar 2026 11:37:10 +0800 Subject: [PATCH 02/15] fix: adjust pagination settings and clean up unused components in KnowledgeBaseFileDetail --- .../FileDetail/KnowledgeBaseFileDetail.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx b/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx index 0e47fa82..00ef0712 100644 --- a/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx +++ b/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import {Eye, Edit, Trash2, FileText, Download, FileType2, FileBox} from "lucide-react"; +import {Eye, Edit, Trash2, FileBox} from "lucide-react"; import { Card, Button, Badge, Input, Tabs, Modal, Breadcrumb, Tag, Spin, Empty, Alert } from "antd"; import { queryKnowledgeBaseFileDetailUsingGet } from "@/pages/KnowledgeBase/knowledge-base.api"; import { Link, useParams } from "react-router"; @@ -39,7 +39,7 @@ const KnowledgeBaseFileDetail: React.FC = () => { const [chunkDetailModal, setChunkDetailModal] = useState(null); const [showSliceTraceDialog, setShowSliceTraceDialog] = useState(null); - const pageSize = 20; + const pageSize = 10; const [currentPage, setCurrentPage] = useState(1); const safeParse = (meta: unknown): unknown => { @@ -117,10 +117,10 @@ const KnowledgeBaseFileDetail: React.FC = () => {
{error && }
-
- {t("knowledgeBase.fileDetail.messages.chunkCount", { count: totalElements })},第 {totalElements === 0 ? 0 : (currentPage - 1) * pageSize + 1}- - {Math.min(currentPage * pageSize, totalElements)} 个 -
+
+ {t("knowledgeBase.fileDetail.messages.chunkCount", { count: totalElements })},第 {totalElements === 0 ? 0 : (currentPage - 1) * pageSize + 1}- + {totalElements === 0 ? 0 : Math.min(currentPage * pageSize, totalElements)} 个 +
+ /> {totalPages === 0 ? 0 : currentPage} / {totalPages} + />
-
+
{currentChunks.map((chunk) => ( - -
-
-
-
-

{t("knowledgeBase.fileDetail.messages.chunkLabel")} {chunk.id}

- {/* 算子名:从 metadata.sliceOperator 显示 */} - {chunk.metadata?.sliceOperator && ( - - {chunk.metadata.sliceOperator} - - )} -
-
- {editingChunk === chunk.id ? ( - <> - - - - ) : ( - <> - - - - - )} -
-
-
- {editingChunk === chunk.id ? ( - setEditChunkContent(e.target.value)} - rows={3} - /> - ) : ( - chunk.text - )} -
- {/* 元数据展示,保持和召回结果风格一致 */} -
-
{t("knowledgeBase.fileDetail.modal.metadata")}:
-
-                    {typeof chunk.metadata === "string"
-                      ? chunk.metadata
-                      : JSON.stringify(chunk.metadata ?? {}, null, 2)}
-                  
-
- {/* 结构化元数据的快捷标签(若可用) */} -
- {chunk?.metadata?.position && {t("knowledgeBase.fileDetail.columns.position")}: {chunk.metadata.position}} - {chunk?.metadata?.tokens && Token: {chunk.metadata.tokens}} - {chunk?.metadata?.page && {t("knowledgeBase.fileDetail.columns.page")}: {chunk.metadata.page}} - {chunk?.metadata?.section && {t("knowledgeBase.fileDetail.columns.section")}: {chunk.metadata.section}} -
+ + {t("knowledgeBase.fileDetail.messages.chunkLabel")} {chunk.id} + {chunk.metadata?.sliceOperator && ( + + {chunk.metadata.sliceOperator} + + )} +
+ } + extra={ +
+ {editingChunk === chunk.id ? ( + <> + + + + ) : ( + <> + + + + + )}
+ } + style={{ wordBreak: "break-all" }} + > +
+ {editingChunk === chunk.id ? ( + setEditChunkContent(e.target.value)} + rows={3} + /> + ) : ( + chunk.text + )} +
+
+ metadata
{typeof chunk.metadata === "string" ? chunk.metadata : JSON.stringify(chunk.metadata ?? {}, null, 2)}
))} {!loading && currentChunks.length === 0 && ( - +
+ +
)}
From f743c6a89e834d93c2bc19b365413264d4b0d9bf Mon Sep 17 00:00:00 2001 From: Dallas98 <990259227@qq.com> Date: Mon, 16 Mar 2026 11:47:09 +0800 Subject: [PATCH 04/15] fix: enhance chunk display messages in KnowledgeBaseFileDetail --- frontend/src/i18n/locales/en/common.json | 2 ++ frontend/src/i18n/locales/zh/common.json | 2 ++ .../pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx | 3 +-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/frontend/src/i18n/locales/en/common.json b/frontend/src/i18n/locales/en/common.json index 01ec80f5..55905895 100644 --- a/frontend/src/i18n/locales/en/common.json +++ b/frontend/src/i18n/locales/en/common.json @@ -1694,6 +1694,8 @@ "messages": { "noChunks": "No chunk data", "chunkCount": "chunks", + "totalChunks": "Total {{count}} chunks", + "showingRange": "showing {{start}}-{{end}}", "ready": "Ready", "previousPage": "Previous Page", "nextPage": "Next Page", diff --git a/frontend/src/i18n/locales/zh/common.json b/frontend/src/i18n/locales/zh/common.json index d51b54be..b3e9618d 100644 --- a/frontend/src/i18n/locales/zh/common.json +++ b/frontend/src/i18n/locales/zh/common.json @@ -1694,6 +1694,8 @@ "messages": { "noChunks": "暂无分块数据", "chunkCount": "个分块", + "totalChunks": "共 {{count}} 个分块", + "showingRange": "当前显示第 {{start}}-{{end}} 个", "ready": "就绪", "previousPage": "上一页", "nextPage": "下一页", diff --git a/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx b/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx index c7fd8c25..b5fd4417 100644 --- a/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx +++ b/frontend/src/pages/KnowledgeBase/FileDetail/KnowledgeBaseFileDetail.tsx @@ -118,8 +118,7 @@ const KnowledgeBaseFileDetail: React.FC = () => { {error && }
- 共 {totalElements} 个分块,当前显示第 {totalElements === 0 ? 0 : (currentPage - 1) * pageSize + 1}- - {totalElements === 0 ? 0 : Math.min(currentPage * pageSize, totalElements)} 个 + {t("knowledgeBase.fileDetail.messages.totalChunks", { count: totalElements })},{t("knowledgeBase.fileDetail.messages.showingRange", { start: totalElements === 0 ? 0 : (currentPage - 1) * pageSize + 1, end: totalElements === 0 ? 0 : Math.min(currentPage * pageSize, totalElements) })}
@@ -170,6 +212,7 @@ const KnowledgeBaseFileDetail: React.FC = () => { onClick={() => { setEditingChunk(null); setEditChunkContent(""); + setEditChunkMetadata(""); }} > {t("knowledgeBase.fileDetail.actions.cancel")} @@ -180,10 +223,10 @@ const KnowledgeBaseFileDetail: React.FC = () => { - - @@ -194,18 +237,32 @@ const KnowledgeBaseFileDetail: React.FC = () => { >
{editingChunk === chunk.id ? ( - setEditChunkContent(e.target.value)} - rows={3} - /> + <> +