knowledge base pages (#43)

* feat: Update site name to DataMate and refine text for AI data processing

* feat: Refactor settings page and implement model access functionality

- Created a new ModelAccess component for managing model configurations.
- Removed the old Settings component and replaced it with a new SettingsPage component that integrates ModelAccess, SystemConfig, and WebhookConfig.
- Added SystemConfig component for managing system settings.
- Implemented WebhookConfig component for managing webhook configurations.
- Updated API functions for model management in settings.apis.ts.
- Adjusted routing to point to the new SettingsPage component.

* feat: Implement Data Collection Page with Task Management and Execution Log

- Created DataCollectionPage component to manage data collection tasks.
- Added TaskManagement and ExecutionLog components for task handling and logging.
- Integrated task operations including start, stop, edit, and delete functionalities.
- Implemented filtering and searching capabilities in task management.
- Introduced SimpleCronScheduler for scheduling tasks with cron expressions.
- Updated CreateTask component to utilize new scheduling and template features.
- Enhanced BasicInformation component to conditionally render fields based on visibility settings.
- Refactored ImportConfiguration component to remove NAS import section.

* feat: Update task creation API endpoint and enhance task creation form with new fields and validation

* Refactor file upload and operator management components

- Removed unnecessary console logs from file download and export functions.
- Added size property to TaskItem interface for better task management.
- Simplified TaskUpload component by utilizing useFileSliceUpload hook for file upload logic.
- Enhanced OperatorPluginCreate component to handle file uploads and parsing more efficiently.
- Updated ConfigureStep component to use Ant Design Form for better data handling and validation.
- Improved PreviewStep component to navigate back to the operator market.
- Added support for additional file types in UploadStep component.
- Implemented delete operator functionality in OperatorMarketPage with confirmation prompts.
- Cleaned up unused API functions in operator.api.ts to streamline the codebase.
- Fixed number formatting utility to handle zero values correctly.

* Refactor Knowledge Generation to Knowledge Base

- Created new API service for Knowledge Base operations including querying, creating, updating, and deleting knowledge bases and files.
- Added constants for Knowledge Base status and type mappings.
- Defined models for Knowledge Base and related files.
- Removed obsolete Knowledge Base creation and home components, replacing them with new implementations under the Knowledge Base structure.
- Updated routing to reflect the new Knowledge Base paths.
- Adjusted menu items to align with the new Knowledge Base terminology.
- Modified ModelAccess interface to include modelName and type properties.

* feat: Implement Knowledge Base Page with CRUD operations and data management

- Added KnowledgeBasePage component for displaying and managing knowledge bases.
- Integrated search and filter functionalities with SearchControls component.
- Implemented CreateKnowledgeBase component for creating and editing knowledge bases.
- Enhanced AddDataDialog for file uploads and dataset selections.
- Introduced TableTransfer component for managing data transfers between tables.
- Updated API functions for knowledge base operations, including file management.
- Refactored knowledge base model to include file status and metadata.
- Adjusted routing to point to the new KnowledgeBasePage.
This commit is contained in:
chenghh-9609
2025-10-31 10:03:42 +08:00
committed by GitHub
parent d89811f238
commit c6958d1511
16 changed files with 974 additions and 769 deletions

View File

@@ -1,29 +1,48 @@
import {
BookOpen,
BookOpenText,
BookType,
ChartNoAxesColumn,
CheckCircle,
CircleEllipsis,
Clock,
Database,
File,
VectorSquare,
XCircle,
} from "lucide-react";
import { KBStatus, KBType, KnowledgeBaseItem } from "./knowledge-base.model";
import {
KBFile,
KBFileStatus,
KBType,
KnowledgeBaseItem,
} from "./knowledge-base.model";
import { formatBytes, formatDateTime, formatNumber } from "@/utils/unit";
export const KBStatusMap = {
[KBStatus.READY]: {
label: KBStatus.READY,
export const KBFileStatusMap = {
[KBFileStatus.PROCESSED]: {
value: KBFileStatus.PROCESSED,
label: "已处理",
icon: CheckCircle,
color: "#389e0d",
},
[KBStatus.VECTORIZING]: {
label: KBStatus.PROCESSING,
[KBFileStatus.PROCESSING]: {
value: KBFileStatus.PROCESSING,
label: "处理中",
icon: Clock,
color: "#3b82f6",
color: "#faad14",
},
[KBStatus.ERROR]: {
label: KBStatus.ERROR,
[KBFileStatus.PROCESS_FAILED]: {
value: KBFileStatus.PROCESS_FAILED,
label: "处理失败",
icon: XCircle,
color: "#ef4444",
color: "#ff4d4f",
},
[KBFileStatus.UNPROCESSED]: {
value: KBFileStatus.UNPROCESSED,
label: "未处理",
icon: CircleEllipsis,
color: "#d9d9d9",
},
};
@@ -50,12 +69,47 @@ export function mapKnowledgeBase(kb: KnowledgeBaseItem): KnowledgeBaseItem {
icon: <BookOpenText className="text-gray-400" />,
description: kb.description,
statistics: [
{ label: "索引模型", value: kb.embeddingModel },
{ label: "文本理解模型", value: kb.chatModel },
{ label: "文件数", value: formatNumber(kb?.fileCount) || 0 },
{ label: "大小", value: formatBytes(kb?.size) || "0 MB" },
{
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-green-500" />,
value: kb.chatModel,
},
{
label: "文件数",
key: "fileCount",
icon: <File className="w-4 h-4 text-yellow-500" />,
value: formatNumber(kb?.fileCount) || 0,
},
{
label: "大小",
key: "size",
icon: <ChartNoAxesColumn className="w-4 h-4 text-red-500" />,
value: formatBytes(kb?.size) || "0 MB",
},
],
updatedAt: formatDateTime(kb.updatedAt),
createdAt: formatDateTime(kb.createdAt),
};
}
export function mapFileData(file: Partial<KBFile>): KBFile {
return {
...file,
name: file.fileName,
createdAt: formatDateTime(file.createdAt),
updatedAt: formatDateTime(file.updatedAt),
status: KBFileStatusMap[file.status] || {
value: file.status,
label: "未知状态",
icon: CircleEllipsis,
color: "#d9d9d9",
},
};
}