更新开发环境API服务地址至192.168.3.30,调整ESLint配置以忽略特定变量,添加数据集和文档相关的创建与更新接口,优化错误处理和用户反馈,移除模拟数据,增强代码可读性。
This commit is contained in:
113
src/api/knowledge/dataset/example.ts
Normal file
113
src/api/knowledge/dataset/example.ts
Normal file
@@ -0,0 +1,113 @@
|
||||
// ⚠️ 示例文件:仅用于接口调用演示,不参与生产运行。
|
||||
// 知识库接口使用示例
|
||||
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
|
||||
};
|
||||
}
|
||||
});
|
||||
*/
|
||||
@@ -8,6 +8,19 @@ export interface DatasetQueryParams {
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建知识库参数
|
||||
export interface CreateDatasetParams {
|
||||
name: string; // 必传
|
||||
description?: string; // 可选
|
||||
}
|
||||
|
||||
// 更新知识库参数
|
||||
export interface UpdateDatasetParams {
|
||||
id: string; // 必传
|
||||
name?: string; // 可选
|
||||
description?: string; // 可选
|
||||
}
|
||||
|
||||
// 数据集信息
|
||||
export interface DatasetInfo {
|
||||
id?: string;
|
||||
@@ -25,7 +38,7 @@ export interface DatasetInfo {
|
||||
// 获取数据集列表
|
||||
export function listDatasets(params: DatasetQueryParams) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/list',
|
||||
url: '/rag-knowledge/knowledge/listKnowledge',
|
||||
method: 'get',
|
||||
params,
|
||||
});
|
||||
@@ -40,7 +53,16 @@ export function getDataset(id: string) {
|
||||
});
|
||||
}
|
||||
|
||||
// 创建数据集
|
||||
// 创建数据集(简化版)
|
||||
export function createKnowledgeBase(data: CreateDatasetParams) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/createKnowledge',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 创建数据集(完整版)
|
||||
export function createDataset(data: DatasetInfo) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/create',
|
||||
@@ -49,7 +71,16 @@ export function createDataset(data: DatasetInfo) {
|
||||
});
|
||||
}
|
||||
|
||||
// 更新数据集
|
||||
// 更新知识库(简化版)
|
||||
export function updateKnowledgeBase(data: UpdateDatasetParams) {
|
||||
return newService({
|
||||
url: '/rag-knowledge/knowledge/updateKnowledge',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新数据集(完整版)
|
||||
export function updateDataset(data: DatasetInfo) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/update',
|
||||
@@ -61,7 +92,7 @@ export function updateDataset(data: DatasetInfo) {
|
||||
// 删除数据集
|
||||
export function deleteDataset(id: string) {
|
||||
return newService({
|
||||
url: '/knowledge/dataset/delete',
|
||||
url: '/rag-knowledge/knowledge/deleteKnowledge',
|
||||
method: 'delete',
|
||||
params: { id },
|
||||
});
|
||||
|
||||
238
src/api/knowledge/document/example.ts
Normal file
238
src/api/knowledge/document/example.ts
Normal file
@@ -0,0 +1,238 @@
|
||||
// ⚠️ 示例文件:仅用于接口调用演示,不参与生产运行。
|
||||
// 文档接口使用示例
|
||||
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
|
||||
};
|
||||
}
|
||||
});
|
||||
*/
|
||||
@@ -10,6 +10,25 @@ export interface DocumentQueryParams {
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 创建文档参数
|
||||
export interface CreateDocumentParams {
|
||||
KnowledgeId: number; // 必传
|
||||
filePath: string; // 必传
|
||||
fileSize: number; // 必传
|
||||
format: string; // 必传
|
||||
title: string; // 必传
|
||||
}
|
||||
|
||||
// 更新文档参数
|
||||
export interface UpdateDocumentParams {
|
||||
id: string; // 必传
|
||||
KnowledgeId?: number; // 可选
|
||||
filePath?: string; // 可选
|
||||
fileSize?: number; // 可选
|
||||
format?: string; // 可选
|
||||
title?: string; // 可选
|
||||
}
|
||||
|
||||
// 文档信息
|
||||
export interface DocumentInfo {
|
||||
id?: string;
|
||||
@@ -58,6 +77,24 @@ export function getDocument(id: string) {
|
||||
});
|
||||
}
|
||||
|
||||
// 创建文档(JSON格式)
|
||||
export function createDocument(data: CreateDocumentParams) {
|
||||
return newService({
|
||||
url: '/knowledge/document/create',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 更新文档
|
||||
export function updateDocument(data: UpdateDocumentParams) {
|
||||
return newService({
|
||||
url: '/knowledge/document/update',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 上传文档
|
||||
export function uploadDocument(data: FormData) {
|
||||
return newService({
|
||||
|
||||
Reference in New Issue
Block a user