feat: Integrate Milvus service for enhanced knowledge base management and file deletion (#88)

* feat: Refactor system parameter management with new data structure and update logic
* fix: 修复知识库相关问题
This commit is contained in:
Dallas98
2025-11-17 17:36:09 +08:00
committed by GitHub
parent e300d13c21
commit 145c154d1f
11 changed files with 133 additions and 55 deletions

View File

@@ -28,7 +28,7 @@ export default function KnowledgeBasePage() {
handleFiltersChange,
} = useFetchData<KnowledgeBaseItem>(
queryKnowledgeBasesUsingPost,
mapKnowledgeBase
(kb) => mapKnowledgeBase(kb, false) // 在首页不显示索引模型和文本理解模型字段
);
const handleDeleteKB = async (kb: KnowledgeBaseItem) => {
@@ -84,20 +84,6 @@ export default function KnowledgeBasePage() {
</Button>
),
},
{
title: "向量数据库",
dataIndex: "embeddingModel",
key: "embeddingModel",
width: 150,
ellipsis: true,
},
{
title: "大语言模型",
dataIndex: "chatModel",
key: "chatModel",
width: 150,
ellipsis: true,
},
{
title: "创建时间",
dataIndex: "createdAt",
@@ -192,4 +178,4 @@ export default function KnowledgeBasePage() {
)}
</div>
);
}
}

View File

@@ -129,6 +129,7 @@ export default function CreateKnowledgeBase({
<Select
placeholder="请选择索引模型"
options={embeddingModelOptions}
disabled={isEdit} // 编辑模式下禁用索引模型修改
/>
</Form.Item>
<Form.Item
@@ -145,4 +146,4 @@ export default function CreateKnowledgeBase({
</Modal>
</>
);
}
}

View File

@@ -63,24 +63,26 @@ export const KBTypeMap = {
},
};
export function mapKnowledgeBase(kb: KnowledgeBaseItem): KnowledgeBaseItem {
export function mapKnowledgeBase(kb: KnowledgeBaseItem, showModelFields: boolean = true): KnowledgeBaseItem {
return {
...kb,
icon: <BookOpenText className="w-full h-full" />,
description: kb.description,
statistics: [
{
label: "索引模型",
key: "embeddingModel",
icon: <VectorSquare className="w-4 h-4 text-blue-500" />,
value: kb.embeddingModel,
},
{
label: "文本理解模型",
key: "chatModel",
icon: <BookType className="w-4 h-4 text-blue-500" />,
value: kb.chatModel,
},
...(showModelFields ? [
{
label: "索引模型",
key: "embeddingModel",
icon: <VectorSquare className="w-4 h-4 text-blue-500" />,
value: kb.embedding?.modelName + (kb.embedding?.provider ? ` (${kb.embedding.provider})` : "") || "无",
},
{
label: "文本理解模型",
key: "chatModel",
icon: <BookType className="w-4 h-4 text-blue-500" />,
value: kb.chat?.modelName + (kb.chat?.provider ? ` (${kb.chat.provider})` : "") || "无",
},
] : []),
{
label: "文件数",
key: "fileCount",
@@ -88,10 +90,10 @@ export function mapKnowledgeBase(kb: KnowledgeBaseItem): KnowledgeBaseItem {
value: formatNumber(kb?.fileCount) || 0,
},
{
label: "大小",
key: "size",
label: "分块数",
key: "chunkCount",
icon: <ChartNoAxesColumn className="w-4 h-4 text-blue-500" />,
value: formatBytes(kb?.size) || "0 MB",
value: formatNumber(kb?.chunkCount) || 0,
},
],
updatedAt: formatDateTime(kb.updatedAt),
@@ -112,4 +114,4 @@ export function mapFileData(file: Partial<KBFile>): KBFile {
color: "#d9d9d9",
},
};
}
}

View File

@@ -19,6 +19,10 @@ export interface KnowledgeBaseItem {
updatedAt: string;
embeddingModel: string;
chatModel: string;
fileCount: number;
chunkCount: number;
embedding: never;
chat: never;
}
export interface KBFile {