feat: 删除模型数据
This commit is contained in:
@@ -2,6 +2,8 @@ import type { NextApiRequest, NextApiResponse } from 'next';
|
|||||||
import { jsonRes } from '@/service/response';
|
import { jsonRes } from '@/service/response';
|
||||||
import { connectToDatabase, ModelData } from '@/service/mongo';
|
import { connectToDatabase, ModelData } from '@/service/mongo';
|
||||||
import { authToken } from '@/service/utils/tools';
|
import { authToken } from '@/service/utils/tools';
|
||||||
|
import { connectRedis } from '@/service/redis';
|
||||||
|
import { VecModelDataIndex } from '@/constants/redis';
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
||||||
try {
|
try {
|
||||||
@@ -22,14 +24,27 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
|
|||||||
const userId = await authToken(authorization);
|
const userId = await authToken(authorization);
|
||||||
|
|
||||||
await connectToDatabase();
|
await connectToDatabase();
|
||||||
|
const redis = await connectRedis();
|
||||||
|
|
||||||
|
const data = await ModelData.findById(dataId);
|
||||||
|
|
||||||
await ModelData.deleteOne({
|
await ModelData.deleteOne({
|
||||||
_id: dataId,
|
_id: dataId,
|
||||||
userId
|
userId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 删除 redis 数据
|
||||||
|
data?.q.forEach(async (item) => {
|
||||||
|
try {
|
||||||
|
await redis.json.del(`${VecModelDataIndex}:${item.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jsonRes(res);
|
jsonRes(res);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
jsonRes(res, {
|
jsonRes(res, {
|
||||||
code: 500,
|
code: 500,
|
||||||
error: err
|
error: err
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import { TrainingStatusEnum } from '@/constants/model';
|
|||||||
import { getOpenAIApi } from '@/service/utils/chat';
|
import { getOpenAIApi } from '@/service/utils/chat';
|
||||||
import { TrainingItemType } from '@/types/training';
|
import { TrainingItemType } from '@/types/training';
|
||||||
import { httpsAgent } from '@/service/utils/tools';
|
import { httpsAgent } from '@/service/utils/tools';
|
||||||
|
import { connectRedis } from '@/service/redis';
|
||||||
|
import { VecModelDataIndex } from '@/constants/redis';
|
||||||
|
|
||||||
/* 获取我的模型 */
|
/* 获取我的模型 */
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
||||||
@@ -25,6 +27,22 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
|
|||||||
const userId = await authToken(authorization);
|
const userId = await authToken(authorization);
|
||||||
|
|
||||||
await connectToDatabase();
|
await connectToDatabase();
|
||||||
|
const redis = await connectRedis();
|
||||||
|
|
||||||
|
const modelDataList = await ModelData.find({
|
||||||
|
modelId
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除 redis
|
||||||
|
modelDataList?.forEach((modelData) =>
|
||||||
|
modelData.q.forEach(async (item) => {
|
||||||
|
try {
|
||||||
|
await redis.json.del(`${VecModelDataIndex}:${item.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
let requestQueue: any[] = [];
|
let requestQueue: any[] = [];
|
||||||
// 删除对应的聊天
|
// 删除对应的聊天
|
||||||
@@ -73,7 +91,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
|
|||||||
userId
|
userId
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
await requestQueue;
|
|
||||||
|
await Promise.all(requestQueue);
|
||||||
|
|
||||||
jsonRes(res);
|
jsonRes(res);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ const ModelDataCard = ({ model }: { model: ModelSchema }) => {
|
|||||||
aria-label={'delete'}
|
aria-label={'delete'}
|
||||||
size={'sm'}
|
size={'sm'}
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
delOneModelData(item._id);
|
await delOneModelData(item._id);
|
||||||
refetchData(pageNum);
|
refetchData(pageNum);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -29,9 +29,6 @@ export async function generateQA(next = false): Promise<any> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 弹出文本
|
|
||||||
await SplitData.findByIdAndUpdate(dataItem._id, { $pop: { textList: 1 } });
|
|
||||||
|
|
||||||
const text = dataItem.textList[dataItem.textList.length - 1];
|
const text = dataItem.textList[dataItem.textList.length - 1];
|
||||||
if (!text) {
|
if (!text) {
|
||||||
throw new Error('无文本');
|
throw new Error('无文本');
|
||||||
@@ -83,21 +80,23 @@ export async function generateQA(next = false): Promise<any> {
|
|||||||
result: splitText(res?.data.choices[0].message?.content || '')
|
result: splitText(res?.data.choices[0].message?.content || '')
|
||||||
})); // 从 content 中提取 QA
|
})); // 从 content 中提取 QA
|
||||||
|
|
||||||
// 插入 modelData 表,生成向量
|
await Promise.allSettled([
|
||||||
await ModelData.insertMany(
|
SplitData.findByIdAndUpdate(dataItem._id, { $pop: { textList: 1 } }),
|
||||||
response.result.map((item) => ({
|
ModelData.insertMany(
|
||||||
modelId: dataItem.modelId,
|
response.result.map((item) => ({
|
||||||
userId: dataItem.userId,
|
modelId: dataItem.modelId,
|
||||||
text: item.a,
|
userId: dataItem.userId,
|
||||||
q: [
|
text: item.a,
|
||||||
{
|
q: [
|
||||||
id: nanoid(),
|
{
|
||||||
text: item.q
|
id: nanoid(),
|
||||||
}
|
text: item.q
|
||||||
],
|
}
|
||||||
status: 1
|
],
|
||||||
}))
|
status: 1
|
||||||
);
|
}))
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'生成QA成功,time:',
|
'生成QA成功,time:',
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export async function generateVector(next = false): Promise<any> {
|
|||||||
.then((vector) =>
|
.then((vector) =>
|
||||||
redis.sendCommand([
|
redis.sendCommand([
|
||||||
'JSON.SET',
|
'JSON.SET',
|
||||||
`${VecModelDataIndex}:${dataId}:${i}`,
|
`${VecModelDataIndex}:${item.id}`,
|
||||||
'$',
|
'$',
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
dataId,
|
dataId,
|
||||||
|
|||||||
Reference in New Issue
Block a user