diff --git a/src/api/knowledge/dataset/index.ts b/src/api/knowledge/dataset/index.ts new file mode 100644 index 0000000..6a117b3 --- /dev/null +++ b/src/api/knowledge/dataset/index.ts @@ -0,0 +1,77 @@ +import { newService } from '/@/utils/request'; + +// 数据集查询参数 +export interface DatasetQueryParams { + keyword?: string; + status?: string; + pageNum: number; + pageSize: number; +} + +// 数据集信息 +export interface DatasetInfo { + id?: string; + name: string; + description?: string; + type: string; // text, qa, table + documentCount?: number; + charCount?: number; + status: string; // enable, disable + embeddingModel?: string; + createdAt?: string; + updatedAt?: string; +} + +// 获取数据集列表 +export function listDatasets(params: DatasetQueryParams) { + return newService({ + url: '/knowledge/dataset/list', + method: 'get', + params, + }); +} + +// 获取数据集详情 +export function getDataset(id: string) { + return newService({ + url: '/knowledge/dataset/detail', + method: 'get', + params: { id }, + }); +} + +// 创建数据集 +export function createDataset(data: DatasetInfo) { + return newService({ + url: '/knowledge/dataset/create', + method: 'post', + data, + }); +} + +// 更新数据集 +export function updateDataset(data: DatasetInfo) { + return newService({ + url: '/knowledge/dataset/update', + method: 'put', + data, + }); +} + +// 删除数据集 +export function deleteDataset(id: string) { + return newService({ + url: '/knowledge/dataset/delete', + method: 'delete', + params: { id }, + }); +} + +// 更新数据集状态 +export function updateDatasetStatus(data: { id: string; status: string }) { + return newService({ + url: '/knowledge/dataset/updateStatus', + method: 'put', + data, + }); +} diff --git a/src/api/knowledge/document/index.ts b/src/api/knowledge/document/index.ts new file mode 100644 index 0000000..73d97a8 --- /dev/null +++ b/src/api/knowledge/document/index.ts @@ -0,0 +1,134 @@ +import { newService } from '/@/utils/request'; + +// 文档查询参数 +export interface DocumentQueryParams { + keyword?: string; + datasetId?: string; + status?: string; + fileType?: string; + pageNum: number; + pageSize: number; +} + +// 文档信息 +export interface DocumentInfo { + id?: string; + name: string; + datasetId: string; + datasetName?: string; + fileType: string; // pdf, docx, txt, md, html + fileSize?: number; + filePath?: string; + charCount?: number; + chunkCount?: number; + status: string; // pending, processing, completed, failed + indexStatus?: string; // not_indexed, indexing, indexed, failed + errorMessage?: string; + createdAt?: string; + updatedAt?: string; +} + +// 文档分段信息 +export interface DocumentChunk { + id: string; + documentId: string; + content: string; + chunkIndex: number; + charCount: number; + tokenCount?: number; + embedding?: number[]; + createdAt?: string; +} + +// 获取文档列表 +export function listDocuments(params: DocumentQueryParams) { + return newService({ + url: '/knowledge/document/list', + method: 'get', + params, + }); +} + +// 获取文档详情 +export function getDocument(id: string) { + return newService({ + url: '/knowledge/document/detail', + method: 'get', + params: { id }, + }); +} + +// 上传文档 +export function uploadDocument(data: FormData) { + return newService({ + url: '/knowledge/document/upload', + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data', + }, + }); +} + +// 删除文档 +export function deleteDocument(id: string) { + return newService({ + url: '/knowledge/document/delete', + method: 'delete', + params: { id }, + }); +} + +// 批量删除文档 +export function batchDeleteDocuments(ids: string[]) { + return newService({ + url: '/knowledge/document/batchDelete', + method: 'delete', + data: { ids }, + }); +} + +// 重新处理文档 +export function reprocessDocument(id: string) { + return newService({ + url: '/knowledge/document/reprocess', + method: 'post', + params: { id }, + }); +} + +// 获取文档分段列表 +export function listDocumentChunks(params: { documentId: string; pageNum: number; pageSize: number }) { + return newService({ + url: '/knowledge/document/chunks', + method: 'get', + params, + }); +} + +// 更新文档分段 +export function updateDocumentChunk(data: { id: string; content: string }) { + return newService({ + url: '/knowledge/document/chunk/update', + method: 'put', + data, + }); +} + +// 删除文档分段 +export function deleteDocumentChunk(id: string) { + return newService({ + url: '/knowledge/document/chunk/delete', + method: 'delete', + params: { id }, + }); +} + +// 预览文档内容 +export function previewDocument(id: string) { + return newService({ + url: '/knowledge/document/preview', + method: 'get', + params: { id }, + }); +} diff --git a/src/views/knowledge/dataset/component/editDataset.vue b/src/views/knowledge/dataset/component/editDataset.vue new file mode 100644 index 0000000..1ed7daf --- /dev/null +++ b/src/views/knowledge/dataset/component/editDataset.vue @@ -0,0 +1,206 @@ + + + + + + + diff --git a/src/views/knowledge/dataset/index.vue b/src/views/knowledge/dataset/index.vue new file mode 100644 index 0000000..e256123 --- /dev/null +++ b/src/views/knowledge/dataset/index.vue @@ -0,0 +1,314 @@ + + + + + + + diff --git a/src/views/knowledge/document/component/documentChunks.vue b/src/views/knowledge/document/component/documentChunks.vue new file mode 100644 index 0000000..fad6e7c --- /dev/null +++ b/src/views/knowledge/document/component/documentChunks.vue @@ -0,0 +1,334 @@ + + + + + + + diff --git a/src/views/knowledge/document/component/previewDocument.vue b/src/views/knowledge/document/component/previewDocument.vue new file mode 100644 index 0000000..8cc4fb8 --- /dev/null +++ b/src/views/knowledge/document/component/previewDocument.vue @@ -0,0 +1,324 @@ + + + + + + + diff --git a/src/views/knowledge/document/component/uploadDocument.vue b/src/views/knowledge/document/component/uploadDocument.vue new file mode 100644 index 0000000..9bb8067 --- /dev/null +++ b/src/views/knowledge/document/component/uploadDocument.vue @@ -0,0 +1,235 @@ + + + + + + + diff --git a/src/views/knowledge/document/index.vue b/src/views/knowledge/document/index.vue new file mode 100644 index 0000000..65626e3 --- /dev/null +++ b/src/views/knowledge/document/index.vue @@ -0,0 +1,511 @@ + + + + + + +