更新开发环境API服务地址至192.168.3.30,调整ESLint配置以忽略特定变量,添加数据集和文档相关的创建与更新接口,优化错误处理和用户反馈,移除模拟数据,增强代码可读性。

This commit is contained in:
2026-03-24 18:00:17 +08:00
parent e94204423b
commit 891f8ed776
18 changed files with 695 additions and 298 deletions

View 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
};
}
});
*/

View File

@@ -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 },
});

View 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
};
}
});
*/

View File

@@ -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({