重构知识库相关接口,更新数据结构和命名,移除示例文件,调整组件和视图以支持新命名,优化文档和数据集管理功能。
This commit is contained in:
111
src/api/cid/apis/index.ts
Normal file
111
src/api/cid/apis/index.ts
Normal file
@@ -0,0 +1,111 @@
|
||||
import { newService } from '/@/utils/request';
|
||||
|
||||
// 接口查询参数
|
||||
export interface ApiInterfaceQueryParams {
|
||||
keyword?: string;
|
||||
platformId?: string;
|
||||
status?: string;
|
||||
method?: string;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建接口参数
|
||||
export interface CreateApiInterfaceParams {
|
||||
platformId: string | number;
|
||||
name: string;
|
||||
code: string;
|
||||
url: string;
|
||||
method: string;
|
||||
status?: string;
|
||||
authType?: string;
|
||||
requestConfig?: Record<string, any>;
|
||||
responseConfig?: Record<string, any>;
|
||||
limitConfig?: Record<string, any>;
|
||||
}
|
||||
|
||||
// 更新接口参数
|
||||
export interface UpdateApiInterfaceParams extends Partial<CreateApiInterfaceParams> {
|
||||
id: string;
|
||||
}
|
||||
|
||||
// 更新接口状态参数
|
||||
export interface UpdateApiInterfaceStatusParams {
|
||||
id: string;
|
||||
status: string;
|
||||
}
|
||||
|
||||
// 接口信息(响应字段)
|
||||
export interface ApiInterfaceInfo {
|
||||
id: string;
|
||||
platformId: string | number;
|
||||
platformName?: string;
|
||||
name: string;
|
||||
code: string;
|
||||
url: string;
|
||||
method: string;
|
||||
status: string;
|
||||
statusName?: string;
|
||||
authType?: string;
|
||||
requestConfig?: Record<string, any>;
|
||||
responseConfig?: Record<string, any>;
|
||||
limitConfig?: Record<string, any>;
|
||||
createdBy?: string;
|
||||
createdAt?: number;
|
||||
updatedBy?: string;
|
||||
updatedAt?: number;
|
||||
}
|
||||
|
||||
// 获取接口列表
|
||||
export function listApiInterfaces(params: ApiInterfaceQueryParams) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/listApiInterfaces',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取接口详情
|
||||
export function getApiInterface(id: string) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/getApiInterface',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 创建接口
|
||||
export function createApiInterface(data: CreateApiInterfaceParams) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/createApiInterface',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 修改接口
|
||||
export function updateApiInterface(data: UpdateApiInterfaceParams) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/updateApiInterface',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新接口状态
|
||||
export function updateApiInterfaceStatus(data: UpdateApiInterfaceStatusParams) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/updateApiInterfaceStatus',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除接口
|
||||
export function deleteApiInterface(id: string) {
|
||||
return newService({
|
||||
url: '/api/interface/controller/deleteApiInterface',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
130
src/api/cid/datasource/index.ts
Normal file
130
src/api/cid/datasource/index.ts
Normal file
@@ -0,0 +1,130 @@
|
||||
import { newService } from '/@/utils/request';
|
||||
|
||||
// 平台查询参数
|
||||
export interface DatasourcePlatformQueryParams {
|
||||
keyword?: string;
|
||||
status?: string;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建平台参数
|
||||
export interface CreateDatasourcePlatformParams {
|
||||
platformCode: string;
|
||||
platformName: string;
|
||||
description?: string;
|
||||
apiBaseUrl: string;
|
||||
authType: string;
|
||||
status?: string;
|
||||
token?: string;
|
||||
apiKey?: string;
|
||||
clientId?: string;
|
||||
clientSecret?: string;
|
||||
rateLimitPerMinute?: number;
|
||||
rateLimitPerHour?: number;
|
||||
concurrencyLimit?: number;
|
||||
requestTimeoutMs?: number;
|
||||
maxRetries?: number;
|
||||
retryDelayMs?: number;
|
||||
createdBy?: string;
|
||||
updatedBy?: string;
|
||||
}
|
||||
|
||||
// 更新平台参数
|
||||
export interface UpdateDatasourcePlatformParams extends Partial<CreateDatasourcePlatformParams> {
|
||||
id: string;
|
||||
version?: string;
|
||||
}
|
||||
|
||||
// 更新平台状态参数
|
||||
export interface UpdateDatasourcePlatformStatusParams {
|
||||
id: string;
|
||||
Status: string;
|
||||
updatedBy?: string;
|
||||
}
|
||||
|
||||
// 平台信息
|
||||
export interface DatasourcePlatformInfo {
|
||||
id: string;
|
||||
platformCode: string;
|
||||
platformName: string;
|
||||
description?: string;
|
||||
status: string;
|
||||
statusName: string;
|
||||
apiBaseUrl: string;
|
||||
authType: string;
|
||||
authTypeName: string;
|
||||
rateLimitPerMinute?: number;
|
||||
rateLimitPerHour?: number;
|
||||
concurrencyLimit?: number;
|
||||
requestTimeoutMs?: number;
|
||||
maxRetries?: number;
|
||||
retryDelayMs?: number;
|
||||
createdBy?: string;
|
||||
createdAt?: number;
|
||||
updatedBy?: string;
|
||||
updatedAt?: number;
|
||||
}
|
||||
|
||||
// 获取平台列表
|
||||
export function listDatasourcePlatforms(params: DatasourcePlatformQueryParams) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/listDatasourcePlatforms',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// 创建平台
|
||||
export function createDatasourcePlatform(data: CreateDatasourcePlatformParams) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/createDatasourcePlatform',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新平台
|
||||
export function updateDatasourcePlatform(data: UpdateDatasourcePlatformParams) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/updateDatasourcePlatform',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除平台
|
||||
export function deleteDatasourcePlatform(id: string) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/deleteDatasourcePlatform',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 获取平台详情
|
||||
export function getDatasourcePlatform(id: string) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/getDatasourcePlatform',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 根据编码获取平台信息
|
||||
export function getPlatformByCode(platformCode: string) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/getPlatformByCode',
|
||||
method: 'get',
|
||||
params: { platformCode },
|
||||
});
|
||||
}
|
||||
|
||||
// 更新平台状态
|
||||
export function updateDatasourcePlatformStatus(data: UpdateDatasourcePlatformStatusParams) {
|
||||
return newService({
|
||||
url: '/datasource/platform/controller/updateDatasourcePlatformStatus',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
162
src/api/cid/field/index.ts
Normal file
162
src/api/cid/field/index.ts
Normal file
@@ -0,0 +1,162 @@
|
||||
import { newService } from '/@/utils/request';
|
||||
|
||||
// 字典映射查询参数
|
||||
export interface FieldMappingQueryParams {
|
||||
configName?: string;
|
||||
vendorName?: string;
|
||||
apiName?: string;
|
||||
businessDomain?: string;
|
||||
isActive?: boolean;
|
||||
pageNum?: number;
|
||||
pageSize?: number;
|
||||
}
|
||||
|
||||
// 创建字典映射参数
|
||||
export interface CreateFieldMappingParams {
|
||||
configName: string;
|
||||
vendorName: string;
|
||||
apiName: string;
|
||||
apiVersion?: string;
|
||||
sourceField: string;
|
||||
sourceFieldType?: string;
|
||||
sourceFieldDesc?: string;
|
||||
targetField: string;
|
||||
targetFieldType?: string;
|
||||
targetFieldDesc?: string;
|
||||
transformType?: string;
|
||||
transformParams?: any;
|
||||
validationRules?: any;
|
||||
defaultValue?: string;
|
||||
isRequired?: boolean;
|
||||
isActive?: boolean;
|
||||
priority?: number;
|
||||
businessDomain?: string;
|
||||
fieldGroup?: string;
|
||||
configVersion?: number;
|
||||
effectiveDate?: string;
|
||||
expiryDate?: string;
|
||||
createdBy?: string;
|
||||
}
|
||||
|
||||
// 更新字典映射参数
|
||||
export interface UpdateFieldMappingParams extends Partial<CreateFieldMappingParams> {
|
||||
id: string;
|
||||
}
|
||||
|
||||
// 字典映射信息(响应字段)
|
||||
export interface FieldMappingInfo {
|
||||
id: string;
|
||||
configName: string;
|
||||
vendorName: string;
|
||||
apiName: string;
|
||||
apiVersion?: string;
|
||||
sourceField: string;
|
||||
sourceFieldType?: string;
|
||||
sourceFieldDesc?: string;
|
||||
targetField: string;
|
||||
targetFieldType?: string;
|
||||
targetFieldDesc?: string;
|
||||
transformType?: string;
|
||||
transformTypeName?: string;
|
||||
transformParams?: any;
|
||||
validationRules?: any;
|
||||
defaultValue?: string;
|
||||
isRequired?: boolean;
|
||||
isActive?: boolean;
|
||||
priority?: number;
|
||||
businessDomain?: string;
|
||||
businessDomainName?: string;
|
||||
fieldGroup?: string;
|
||||
configVersion?: number;
|
||||
effectiveDate?: string;
|
||||
expiryDate?: string;
|
||||
createdBy?: string;
|
||||
createdTime?: string;
|
||||
updatedBy?: string;
|
||||
updatedTime?: string;
|
||||
}
|
||||
|
||||
// 查询字典映射列表
|
||||
export function listFieldMappingConfigs(params: FieldMappingQueryParams) {
|
||||
return newService({
|
||||
url: '/field/mapping/config/controller/field-mapping-configs',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// 创建字典映射
|
||||
export function createFieldMappingConfig(data: CreateFieldMappingParams) {
|
||||
return newService({
|
||||
url: '/field/mapping/config/controller/field-mapping-configs',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 根据ID查询字典映射详情
|
||||
export function getFieldMappingConfig(id: string) {
|
||||
return newService({
|
||||
url: `/field/mapping/config/controller/field-mapping-configs/${id}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 根据ID修改字典映射
|
||||
export function updateFieldMappingConfig(id: string, data: UpdateFieldMappingParams) {
|
||||
return newService({
|
||||
url: `/field/mapping/config/controller/field-mapping-configs/${id}`,
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 根据ID修改字典映射状态
|
||||
export function updateFieldMappingConfigStatus(id: string, isActive: boolean) {
|
||||
return newService({
|
||||
url: `/field/mapping/config/controller/field-mapping-configs/${id}/status`,
|
||||
method: 'put',
|
||||
data: { id, isActive },
|
||||
});
|
||||
}
|
||||
|
||||
// 根据ID删除字典映射
|
||||
export function deleteFieldMappingConfig(id: string) {
|
||||
return newService({
|
||||
url: `/field/mapping/config/controller/field-mapping-configs/${id}`,
|
||||
method: 'delete',
|
||||
});
|
||||
}
|
||||
|
||||
// 根据厂商和接口查询字段映射(过滤过期)
|
||||
export interface QueryFieldMappingParams {
|
||||
vendorName: string;
|
||||
apiName: string;
|
||||
apiVersion?: string;
|
||||
isActive?: boolean;
|
||||
}
|
||||
|
||||
export function queryFieldMappingConfigs(params: QueryFieldMappingParams) {
|
||||
return newService({
|
||||
url: '/field/mapping/config/controller/field-mapping-configs/query',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// 验证字段映射配置的有效性
|
||||
export interface ValidateFieldMappingParams {
|
||||
configName: string;
|
||||
vendorName: string;
|
||||
apiName: string;
|
||||
sourceField: string;
|
||||
targetField: string;
|
||||
}
|
||||
|
||||
export function validateFieldMappingConfig(data: ValidateFieldMappingParams) {
|
||||
return newService({
|
||||
url: '/field/mapping/config/controller/field-mapping-configs/validate',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
// ⚠️ 示例文件:仅用于接口调用演示,不参与生产运行。
|
||||
// 知识库接口使用示例
|
||||
import {
|
||||
createKnowledgeBase,
|
||||
CreateDatasetParams,
|
||||
updateKnowledgeBase,
|
||||
UpdateDatasetParams
|
||||
} from '/@/api/knowledge/dataset';
|
||||
|
||||
// 示例1:创建带描述的知识库
|
||||
const createKnowledgeBaseWithDescription = async () => {
|
||||
const params: CreateDatasetParams = {
|
||||
name: '客服知识库',
|
||||
description: '包含常见问题和答案的知识库'
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await createKnowledgeBase(params);
|
||||
console.log('知识库创建成功:', response.data);
|
||||
} catch (error) {
|
||||
console.error('创建失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 示例2:创建仅包含名称的知识库
|
||||
const createKnowledgeBaseOnly = async () => {
|
||||
const params: CreateDatasetParams = {
|
||||
name: '产品知识库'
|
||||
// description 是可选的,可以不传
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await createKnowledgeBase(params);
|
||||
console.log('知识库创建成功:', response.data);
|
||||
} catch (error) {
|
||||
console.error('创建失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 示例3:更新知识库名称和描述
|
||||
const updateKnowledgeBaseInfo = async () => {
|
||||
const params: UpdateDatasetParams = {
|
||||
id: '1234567890', // 必传
|
||||
name: '更新后的知识库名称',
|
||||
description: '更新后的描述信息'
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await updateKnowledgeBase(params);
|
||||
console.log('知识库更新成功:', response.data);
|
||||
} catch (error) {
|
||||
console.error('更新失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 示例4:仅更新知识库名称
|
||||
const updateKnowledgeBaseName = async () => {
|
||||
const params: UpdateDatasetParams = {
|
||||
id: '1234567890', // 必传
|
||||
name: '仅更新名称'
|
||||
// description 是可选的,可以不传
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await updateKnowledgeBase(params);
|
||||
console.log('知识库名称更新成功:', response.data);
|
||||
} catch (error) {
|
||||
console.error('更新失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 在Vue组件中使用
|
||||
/*
|
||||
import { ref } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { createKnowledgeBase, CreateDatasetParams } from '/@/api/knowledge/dataset';
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const formData = ref<CreateDatasetParams>({
|
||||
name: '',
|
||||
description: ''
|
||||
});
|
||||
|
||||
const loading = ref(false);
|
||||
|
||||
const handleSubmit = async () => {
|
||||
if (!formData.value.name.trim()) {
|
||||
ElMessage.error('知识库名称不能为空');
|
||||
return;
|
||||
}
|
||||
|
||||
loading.value = true;
|
||||
try {
|
||||
await createKnowledgeBase(formData.value);
|
||||
ElMessage.success('知识库创建成功');
|
||||
// 重置表单或跳转到列表页
|
||||
formData.value = { name: '', description: '' };
|
||||
} catch (error) {
|
||||
ElMessage.error('创建失败,请重试');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
formData,
|
||||
loading,
|
||||
handleSubmit
|
||||
};
|
||||
}
|
||||
});
|
||||
*/
|
||||
@@ -1,108 +1,68 @@
|
||||
import { newService } from '/@/utils/request';
|
||||
|
||||
// 数据集查询参数
|
||||
export interface DatasetQueryParams {
|
||||
export interface knowledgeQueryParams {
|
||||
keyword?: string;
|
||||
status?: string;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建知识库参数
|
||||
export interface CreateDatasetParams {
|
||||
export interface CreateknowledgeParams {
|
||||
name: string; // 必传
|
||||
description?: string; // 可选
|
||||
}
|
||||
|
||||
// 更新知识库参数
|
||||
export interface UpdateDatasetParams {
|
||||
export interface UpdateknowledgeParams {
|
||||
id: string; // 必传
|
||||
name?: string; // 可选
|
||||
description?: string; // 可选
|
||||
}
|
||||
|
||||
// 数据集信息
|
||||
export interface DatasetInfo {
|
||||
export interface knowledgeInfo {
|
||||
id?: string;
|
||||
name: string;
|
||||
description?: string;
|
||||
type: string; // text, qa, table
|
||||
documentCount?: number;
|
||||
charCount?: number;
|
||||
status: string; // enable, disable
|
||||
embeddingModel?: string;
|
||||
fileCount?: number;
|
||||
totalSize?: number;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
// 获取数据集列表
|
||||
export function listDatasets(params: DatasetQueryParams) {
|
||||
// 获取知识库列表
|
||||
export function listknowledges(params: knowledgeQueryParams) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/listKnowledge',
|
||||
url: '/rag-knowledge/dataset/listDataset',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取数据集详情
|
||||
export function getDataset(id: string) {
|
||||
// 创建知识库
|
||||
export function createknowledge(data: CreateknowledgeParams) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/detail',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 创建数据集(简化版)
|
||||
export function createKnowledgeBase(data: CreateDatasetParams) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/createKnowledge',
|
||||
url: '/rag-knowledge/dataset/createDataset',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 创建数据集(完整版)
|
||||
export function createDataset(data: DatasetInfo) {
|
||||
// 更新知识库
|
||||
export function updateknowledge(data: UpdateknowledgeParams) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/create',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新知识库(简化版)
|
||||
export function updateKnowledgeBase(data: UpdateDatasetParams) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/updateKnowledge',
|
||||
url: '/rag-knowledge/dataset/updateDataset',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新数据集(完整版)
|
||||
export function updateDataset(data: DatasetInfo) {
|
||||
// 删除知识库
|
||||
export function deleteknowledge(id: string) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/update',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除数据集
|
||||
export function deleteDataset(id: string) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/deleteKnowledge',
|
||||
url: '/rag-knowledge/dataset/deleteDataset',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 更新数据集状态
|
||||
export function updateDatasetStatus(data: { id: string; status: string }) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/updateStatus',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,238 +0,0 @@
|
||||
// ⚠️ 示例文件:仅用于接口调用演示,不参与生产运行。
|
||||
// 文档接口使用示例
|
||||
import {
|
||||
createDocument,
|
||||
CreateDocumentParams,
|
||||
updateDocument,
|
||||
UpdateDocumentParams,
|
||||
uploadDocument,
|
||||
deleteDocument,
|
||||
listDocuments,
|
||||
DocumentQueryParams
|
||||
} from '/@/api/knowledge/document';
|
||||
|
||||
// 示例1:创建文档(JSON格式)
|
||||
const createDocumentExample = async () => {
|
||||
const params: CreateDocumentParams = {
|
||||
KnowledgeId: 12345, // 知识库ID,必传
|
||||
filePath: '/path/to/document.pdf', // 文件路径,必传
|
||||
fileSize: 1024000, // 文件大小(字节),必传
|
||||
format: 'pdf', // 文件格式,必传
|
||||
title: '产品使用手册' // 文档标题,必传
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await createDocument(params);
|
||||
console.log('文档创建成功:', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('创建失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 示例2:上传文档(FormData格式)
|
||||
const uploadDocumentExample = async (file: File, knowledgeId: string) => {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('datasetId', knowledgeId);
|
||||
|
||||
try {
|
||||
const response = await uploadDocument(formData);
|
||||
console.log('文档上传成功:', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('上传失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 示例3:获取文档列表
|
||||
const getDocumentList = async (knowledgeId: string) => {
|
||||
const params: DocumentQueryParams = {
|
||||
datasetId: knowledgeId,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyword: '', // 可选搜索关键字
|
||||
status: '', // 可选状态筛选
|
||||
fileType: '' // 可选文件类型筛选
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await listDocuments(params);
|
||||
console.log('文档列表:', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('获取列表失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 示例4:更新文档
|
||||
const updateDocumentExample = async () => {
|
||||
const params: UpdateDocumentParams = {
|
||||
id: '1234567890', // 必传
|
||||
title: '更新后的文档标题' // 可选,只更新标题
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await updateDocument(params);
|
||||
console.log('文档更新成功:', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('更新失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 示例5:完整更新文档
|
||||
const updateDocumentFull = async () => {
|
||||
const params: UpdateDocumentParams = {
|
||||
id: '1234567890', // 必传
|
||||
KnowledgeId: 67890, // 可选
|
||||
filePath: '/new/path/document.pdf', // 可选
|
||||
fileSize: 2048000, // 可选
|
||||
format: 'pdf', // 可选
|
||||
title: '完全更新的文档' // 可选
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await updateDocument(params);
|
||||
console.log('文档完整更新成功:', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('更新失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 示例6:删除文档
|
||||
const deleteDocumentExample = async (documentId: string) => {
|
||||
try {
|
||||
await deleteDocument(documentId);
|
||||
console.log('文档删除成功');
|
||||
} catch (error) {
|
||||
console.error('删除失败:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// 在Vue组件中使用
|
||||
/*
|
||||
import { ref } from 'vue';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||
import {
|
||||
createDocument,
|
||||
CreateDocumentParams,
|
||||
uploadDocument,
|
||||
deleteDocument,
|
||||
listDocuments,
|
||||
DocumentQueryParams
|
||||
} from '/@/api/knowledge/document';
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const formData = ref<CreateDocumentParams>({
|
||||
KnowledgeId: 0,
|
||||
filePath: '',
|
||||
fileSize: 0,
|
||||
format: '',
|
||||
title: ''
|
||||
});
|
||||
|
||||
const loading = ref(false);
|
||||
const documentList = ref([]);
|
||||
|
||||
// 创建文档
|
||||
const handleCreate = async () => {
|
||||
// 验证必填字段
|
||||
if (!formData.value.KnowledgeId || !formData.value.filePath ||
|
||||
!formData.value.fileSize || !formData.value.format || !formData.value.title) {
|
||||
ElMessage.error('请填写所有必填字段');
|
||||
return;
|
||||
}
|
||||
|
||||
loading.value = true;
|
||||
try {
|
||||
await createDocument(formData.value);
|
||||
ElMessage.success('文档创建成功');
|
||||
// 重置表单
|
||||
formData.value = {
|
||||
KnowledgeId: 0,
|
||||
filePath: '',
|
||||
fileSize: 0,
|
||||
format: '',
|
||||
title: ''
|
||||
};
|
||||
// 刷新列表
|
||||
await getDocuments();
|
||||
} catch (error) {
|
||||
ElMessage.error('创建失败,请重试');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 文件上传
|
||||
const handleFileUpload = async (event: Event, knowledgeId: string) => {
|
||||
const file = (event.target as HTMLInputElement).files?.[0];
|
||||
if (!file) return;
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('datasetId', knowledgeId);
|
||||
|
||||
loading.value = true;
|
||||
try {
|
||||
await uploadDocument(formData);
|
||||
ElMessage.success('文档上传成功');
|
||||
await getDocuments();
|
||||
} catch (error) {
|
||||
ElMessage.error('上传失败,请重试');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 删除文档
|
||||
const handleDelete = async (id: string) => {
|
||||
try {
|
||||
await ElMessageBox.confirm('确定要删除这个文档吗?', '提示', {
|
||||
type: 'warning',
|
||||
});
|
||||
|
||||
await deleteDocument(id);
|
||||
ElMessage.success('删除成功');
|
||||
await getDocuments();
|
||||
} catch (error) {
|
||||
if (error !== 'cancel') {
|
||||
ElMessage.error('删除失败');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 获取文档列表
|
||||
const getDocuments = async () => {
|
||||
try {
|
||||
const response = await listDocuments({
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
});
|
||||
documentList.value = response.data.list;
|
||||
} catch (error) {
|
||||
console.error('获取列表失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
formData,
|
||||
loading,
|
||||
documentList,
|
||||
handleCreate,
|
||||
handleFileUpload,
|
||||
handleDelete,
|
||||
getDocuments
|
||||
};
|
||||
}
|
||||
});
|
||||
*/
|
||||
@@ -4,29 +4,27 @@ import { newService } from '/@/utils/request';
|
||||
export interface DocumentQueryParams {
|
||||
keyword?: string;
|
||||
datasetId?: string;
|
||||
status?: string;
|
||||
fileType?: string;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建文档参数
|
||||
export interface CreateDocumentParams {
|
||||
KnowledgeId: number; // 必传
|
||||
filePath: string; // 必传
|
||||
fileSize: number; // 必传
|
||||
format: string; // 必传
|
||||
title: string; // 必传
|
||||
datasetId: string; // 必传
|
||||
filePath: string; // 必传
|
||||
fileSize: number; // 必传
|
||||
format: string; // 必传
|
||||
title: string; // 必传
|
||||
}
|
||||
|
||||
// 更新文档参数
|
||||
export interface UpdateDocumentParams {
|
||||
id: string; // 必传
|
||||
KnowledgeId?: number; // 可选
|
||||
filePath?: string; // 可选
|
||||
fileSize?: number; // 可选
|
||||
format?: string; // 可选
|
||||
title?: string; // 可选
|
||||
id: string; // 必传
|
||||
datasetId?: string;
|
||||
filePath?: string;
|
||||
fileSize?: number;
|
||||
format?: string;
|
||||
title?: string;
|
||||
}
|
||||
|
||||
// 文档信息
|
||||
@@ -34,35 +32,20 @@ export interface DocumentInfo {
|
||||
id?: string;
|
||||
name: string;
|
||||
datasetId: string;
|
||||
datasetName?: string;
|
||||
fileType: string; // pdf, docx, txt, md, html
|
||||
fileType: string;
|
||||
fileSize?: number;
|
||||
filePath?: string;
|
||||
charCount?: number;
|
||||
chunkCount?: number;
|
||||
status: string; // pending, processing, completed, failed
|
||||
indexStatus?: string; // not_indexed, indexing, indexed, failed
|
||||
errorMessage?: string;
|
||||
parseStatus?: string;
|
||||
enabled?: boolean;
|
||||
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',
|
||||
url: '/rag-knowledge/document/listDocument',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
@@ -71,16 +54,16 @@ export function listDocuments(params: DocumentQueryParams) {
|
||||
// 获取文档详情
|
||||
export function getDocument(id: string) {
|
||||
return newService({
|
||||
url: '/knowledge/document/detail',
|
||||
url: '/rag-knowledge/document/getDocument',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 创建文档(JSON格式)
|
||||
// 创建文档
|
||||
export function createDocument(data: CreateDocumentParams) {
|
||||
return newService({
|
||||
url: '/knowledge/document/create',
|
||||
url: '/rag-knowledge/document/createDocument',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
@@ -89,16 +72,28 @@ export function createDocument(data: CreateDocumentParams) {
|
||||
// 更新文档
|
||||
export function updateDocument(data: UpdateDocumentParams) {
|
||||
return newService({
|
||||
url: '/knowledge/document/update',
|
||||
url: '/rag-knowledge/document/updateDocument',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 公共文件上传(OSS),返回文件路径
|
||||
export function uploadFile(file: File) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
return newService({
|
||||
url: '/oss/file/uploadFile',
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
});
|
||||
}
|
||||
|
||||
// 上传文档
|
||||
export function uploadDocument(data: FormData) {
|
||||
return newService({
|
||||
url: '/knowledge/document/upload',
|
||||
url: '/rag-knowledge/document/createDocument',
|
||||
method: 'post',
|
||||
data,
|
||||
headers: {
|
||||
@@ -110,61 +105,16 @@ export function uploadDocument(data: FormData) {
|
||||
// 删除文档
|
||||
export function deleteDocument(id: string) {
|
||||
return newService({
|
||||
url: '/knowledge/document/delete',
|
||||
url: '/rag-knowledge/document/deleteDocument',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 批量删除文档
|
||||
export function batchDeleteDocuments(ids: string[]) {
|
||||
// 获取文件向量化处理进度
|
||||
export function getDocumentProcess(id: 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',
|
||||
url: '/rag-knowledge/document/getProcess',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user