You've already forked DataMate
feat: fix the problem in the Operator Market frontend pages
This commit is contained in:
@@ -1,176 +1,176 @@
|
||||
const Mock = require("mockjs");
|
||||
const API = require("../mock-apis.cjs");
|
||||
|
||||
// 知识库数据
|
||||
function KnowledgeBaseItem() {
|
||||
return {
|
||||
id: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
name: Mock.Random.ctitle(5, 15),
|
||||
description: Mock.Random.csentence(10, 30),
|
||||
createdBy: Mock.Random.cname(),
|
||||
updatedBy: Mock.Random.cname(),
|
||||
embeddingModel: Mock.Random.pick([
|
||||
"text-embedding-ada-002",
|
||||
"text-embedding-3-small",
|
||||
"text-embedding-3-large",
|
||||
]),
|
||||
chatModel: Mock.Random.pick(["gpt-3.5-turbo", "gpt-4", "gpt-4-32k"]),
|
||||
createdAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
updatedAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
};
|
||||
}
|
||||
|
||||
const knowledgeBaseList = new Array(50).fill(null).map(KnowledgeBaseItem);
|
||||
|
||||
function fileItem() {
|
||||
return {
|
||||
id: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
createdAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
updatedAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
createdBy: Mock.Random.cname(),
|
||||
updatedBy: Mock.Random.cname(),
|
||||
knowledgeBaseId: Mock.Random.pick(knowledgeBaseList).id,
|
||||
fileId: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
fileName: Mock.Random.ctitle(5, 15),
|
||||
chunkCount: Mock.Random.integer(1, 100),
|
||||
metadata: {},
|
||||
status: Mock.Random.pick([
|
||||
"UNPROCESSED",
|
||||
"PROCESSING",
|
||||
"PROCESSED",
|
||||
"PROCESS_FAILED",
|
||||
]),
|
||||
};
|
||||
}
|
||||
|
||||
const fileList = new Array(20).fill(null).map(fileItem);
|
||||
|
||||
module.exports = function (router) {
|
||||
// 获取知识库列表
|
||||
router.post(API.queryKnowledgeBasesUsingPost, (req, res) => {
|
||||
const { page = 0, size, keyword } = req.body;
|
||||
let filteredList = knowledgeBaseList;
|
||||
if (keyword) {
|
||||
filteredList = knowledgeBaseList.filter(
|
||||
(kb) => kb.name.includes(keyword) || kb.description.includes(keyword)
|
||||
);
|
||||
}
|
||||
const start = page * size;
|
||||
const end = start + size;
|
||||
const totalElements = filteredList.length;
|
||||
const paginatedList = filteredList.slice(start, end);
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: {
|
||||
totalElements,
|
||||
page,
|
||||
size,
|
||||
content: paginatedList,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
// 创建知识库
|
||||
router.post(API.createKnowledgeBaseUsingPost, (req, res) => {
|
||||
const item = KnowledgeBaseItem();
|
||||
knowledgeBaseList.unshift(item);
|
||||
res.status(201).send(item);
|
||||
});
|
||||
|
||||
// 获取知识库详情
|
||||
router.get(API.queryKnowledgeBaseByIdUsingGet, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const item =
|
||||
knowledgeBaseList.find((kb) => kb.id === id) || KnowledgeBaseItem();
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: item,
|
||||
});
|
||||
});
|
||||
|
||||
// 更新知识库
|
||||
router.put(API.updateKnowledgeBaseByIdUsingPut, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const idx = knowledgeBaseList.findIndex((kb) => kb.id === id);
|
||||
if (idx >= 0) {
|
||||
knowledgeBaseList[idx] = { ...knowledgeBaseList[idx], ...req.body };
|
||||
res.status(201).send(knowledgeBaseList[idx]);
|
||||
} else {
|
||||
res.status(404).send({ message: "Not found" });
|
||||
}
|
||||
});
|
||||
|
||||
// 删除知识库
|
||||
router.delete(API.deleteKnowledgeBaseByIdUsingDelete, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const idx = knowledgeBaseList.findIndex((kb) => kb.id === id);
|
||||
if (idx >= 0) {
|
||||
knowledgeBaseList.splice(idx, 1);
|
||||
res.status(201).send({ success: true });
|
||||
} else {
|
||||
res.status(404).send({ message: "Not found" });
|
||||
}
|
||||
});
|
||||
|
||||
// 添加文件到知识库
|
||||
router.post(API.addKnowledgeBaseFilesUsingPost, (req, res) => {
|
||||
const file = Mock.mock({
|
||||
id: "@guid",
|
||||
name: "@ctitle(5,15)",
|
||||
size: "@integer(1000,1000000)",
|
||||
status: "uploaded",
|
||||
createdAt: "@datetime",
|
||||
});
|
||||
res.status(201).send(file);
|
||||
});
|
||||
|
||||
// 获取知识生成文件详情
|
||||
router.get(API.queryKnowledgeBaseFilesGet, (req, res) => {
|
||||
const { keyword, page, size } = req.query;
|
||||
let filteredList = fileList;
|
||||
if (keyword) {
|
||||
filteredList = fileList.filter((file) => file.fileName.includes(keyword));
|
||||
}
|
||||
const start = page * size;
|
||||
const end = start + size;
|
||||
const totalElements = filteredList.length;
|
||||
const paginatedList = filteredList.slice(start, end);
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: {
|
||||
totalElements,
|
||||
page,
|
||||
size,
|
||||
content: paginatedList,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
router.get(API.queryKnowledgeBaseFilesByIdUsingGet, (req, res) => {
|
||||
const { baseId, fileId } = req.params;
|
||||
const item =
|
||||
fileList.find(
|
||||
(file) => file.knowledgeBaseId === baseId && file.id === fileId
|
||||
) || fileItem();
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: item,
|
||||
});
|
||||
});
|
||||
|
||||
// 删除知识生成文件
|
||||
router.delete(API.deleteKnowledgeBaseTaskByIdUsingDelete, (req, res) => {
|
||||
const { id } = req.params;
|
||||
const idx = fileList.findIndex((file) => file.id === id);
|
||||
if (idx >= 0) {
|
||||
fileList.splice(idx, 1);
|
||||
res.status(200).send({ success: true });
|
||||
return;
|
||||
}
|
||||
res.status(404).send({ message: "Not found" });
|
||||
});
|
||||
};
|
||||
const Mock = require("mockjs");
|
||||
const API = require("../mock-apis.cjs");
|
||||
|
||||
// 知识库数据
|
||||
function KnowledgeBaseItem() {
|
||||
return {
|
||||
id: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
name: Mock.Random.ctitle(5, 15),
|
||||
description: Mock.Random.csentence(10, 30),
|
||||
createdBy: Mock.Random.cname(),
|
||||
updatedBy: Mock.Random.cname(),
|
||||
embeddingModel: Mock.Random.pick([
|
||||
"text-embedding-ada-002",
|
||||
"text-embedding-3-small",
|
||||
"text-embedding-3-large",
|
||||
]),
|
||||
chatModel: Mock.Random.pick(["gpt-3.5-turbo", "gpt-4", "gpt-4-32k"]),
|
||||
createdAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
updatedAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
};
|
||||
}
|
||||
|
||||
const knowledgeBaseList = new Array(50).fill(null).map(KnowledgeBaseItem);
|
||||
|
||||
function fileItem() {
|
||||
return {
|
||||
id: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
createdAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
updatedAt: Mock.Random.datetime("yyyy-MM-dd HH:mm:ss"),
|
||||
createdBy: Mock.Random.cname(),
|
||||
updatedBy: Mock.Random.cname(),
|
||||
knowledgeBaseId: Mock.Random.pick(knowledgeBaseList).id,
|
||||
fileId: Mock.Random.guid().replace(/[^a-zA-Z0-9]/g, ""),
|
||||
fileName: Mock.Random.ctitle(5, 15),
|
||||
chunkCount: Mock.Random.integer(1, 100),
|
||||
metadata: {},
|
||||
status: Mock.Random.pick([
|
||||
"UNPROCESSED",
|
||||
"PROCESSING",
|
||||
"PROCESSED",
|
||||
"PROCESS_FAILED",
|
||||
]),
|
||||
};
|
||||
}
|
||||
|
||||
const fileList = new Array(20).fill(null).map(fileItem);
|
||||
|
||||
module.exports = function (router) {
|
||||
// 获取知识库列表
|
||||
router.post(API.queryKnowledgeBasesUsingPost, (req, res) => {
|
||||
const { page = 0, size, keyword } = req.body;
|
||||
let filteredList = knowledgeBaseList;
|
||||
if (keyword) {
|
||||
filteredList = knowledgeBaseList.filter(
|
||||
(kb) => kb.name.includes(keyword) || kb.description.includes(keyword)
|
||||
);
|
||||
}
|
||||
const start = page * size;
|
||||
const end = start + size;
|
||||
const totalElements = filteredList.length;
|
||||
const paginatedList = filteredList.slice(start, end);
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: {
|
||||
totalElements,
|
||||
page,
|
||||
size,
|
||||
content: paginatedList,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
// 创建知识库
|
||||
router.post(API.createKnowledgeBaseUsingPost, (req, res) => {
|
||||
const item = KnowledgeBaseItem();
|
||||
knowledgeBaseList.unshift(item);
|
||||
res.status(201).send(item);
|
||||
});
|
||||
|
||||
// 获取知识库详情
|
||||
router.get(API.queryKnowledgeBaseByIdUsingGet, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const item =
|
||||
knowledgeBaseList.find((kb) => kb.id === id) || KnowledgeBaseItem();
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: item,
|
||||
});
|
||||
});
|
||||
|
||||
// 更新知识库
|
||||
router.put(API.updateKnowledgeBaseByIdUsingPut, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const idx = knowledgeBaseList.findIndex((kb) => kb.id === id);
|
||||
if (idx >= 0) {
|
||||
knowledgeBaseList[idx] = { ...knowledgeBaseList[idx], ...req.body };
|
||||
res.status(201).send(knowledgeBaseList[idx]);
|
||||
} else {
|
||||
res.status(404).send({ message: "Not found" });
|
||||
}
|
||||
});
|
||||
|
||||
// 删除知识库
|
||||
router.delete(API.deleteKnowledgeBaseByIdUsingDelete, (req, res) => {
|
||||
const id = req.params.baseId;
|
||||
const idx = knowledgeBaseList.findIndex((kb) => kb.id === id);
|
||||
if (idx >= 0) {
|
||||
knowledgeBaseList.splice(idx, 1);
|
||||
res.status(201).send({ success: true });
|
||||
} else {
|
||||
res.status(404).send({ message: "Not found" });
|
||||
}
|
||||
});
|
||||
|
||||
// 添加文件到知识库
|
||||
router.post(API.addKnowledgeBaseFilesUsingPost, (req, res) => {
|
||||
const file = Mock.mock({
|
||||
id: "@guid",
|
||||
name: "@ctitle(5,15)",
|
||||
size: "@integer(1000,1000000)",
|
||||
status: "uploaded",
|
||||
createdAt: "@datetime",
|
||||
});
|
||||
res.status(201).send(file);
|
||||
});
|
||||
|
||||
// 获取知识生成文件详情
|
||||
router.get(API.queryKnowledgeBaseFilesGet, (req, res) => {
|
||||
const { keyword, page, size } = req.query;
|
||||
let filteredList = fileList;
|
||||
if (keyword) {
|
||||
filteredList = fileList.filter((file) => file.fileName.includes(keyword));
|
||||
}
|
||||
const start = page * size;
|
||||
const end = start + size;
|
||||
const totalElements = filteredList.length;
|
||||
const paginatedList = filteredList.slice(start, end);
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: {
|
||||
totalElements,
|
||||
page,
|
||||
size,
|
||||
content: paginatedList,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
router.get(API.queryKnowledgeBaseFilesByIdUsingGet, (req, res) => {
|
||||
const { baseId, fileId } = req.params;
|
||||
const item =
|
||||
fileList.find(
|
||||
(file) => file.knowledgeBaseId === baseId && file.id === fileId
|
||||
) || fileItem();
|
||||
res.send({
|
||||
code: "0",
|
||||
msg: "Success",
|
||||
data: item,
|
||||
});
|
||||
});
|
||||
|
||||
// 删除知识生成文件
|
||||
router.delete(API.deleteKnowledgeBaseTaskByIdUsingDelete, (req, res) => {
|
||||
const { id } = req.params;
|
||||
const idx = fileList.findIndex((file) => file.id === id);
|
||||
if (idx >= 0) {
|
||||
fileList.splice(idx, 1);
|
||||
res.status(200).send({ success: true });
|
||||
return;
|
||||
}
|
||||
res.status(404).send({ message: "Not found" });
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user