Преглед изворни кода

impl deleteLegacyKnowledgeAssistantVectorStore()

Shun Miyazawa пре 1 година
родитељ
комит
5235ed2175

+ 22 - 0
apps/app/src/server/service/normalize-data/delete-legacy-knowledge-assistant-vector-store.ts

@@ -0,0 +1,22 @@
+import AiAssistantModel from '~/features/openai/server/models/ai-assistant';
+import VectorStoreRelationModel from '~/features/openai/server/models/vector-store';
+import { isAiEnabled } from '~/features/openai/server/services/is-ai-enabled';
+import { getOpenaiService } from '~/features/openai/server/services/openai';
+
+export const deleteLegacyKnowledgeAssistantVectorStore = async(): Promise<void> => {
+  if (!isAiEnabled()) {
+    return;
+  }
+
+  const aiAssistantVectorStoreIds = await AiAssistantModel.distinct('vectorStore');
+  const nonDeletedLegacyKnowledgeAssistantVectorStoreRelations = await VectorStoreRelationModel.find({
+    _id: { $nin: aiAssistantVectorStoreIds },
+    isDeleted: false,
+  });
+
+  const openaiService = getOpenaiService();
+  for await (const vectorStoreRelation of nonDeletedLegacyKnowledgeAssistantVectorStoreRelations) {
+    const vectorStoreFileRelationId = vectorStoreRelation._id;
+    await openaiService?.deleteVectorStore(vectorStoreFileRelationId);
+  }
+};

+ 2 - 0
apps/app/src/server/service/normalize-data/index.ts

@@ -3,6 +3,7 @@ import loggerFactory from '~/utils/logger';
 
 
 import { convertNullToEmptyGrantedArrays } from './convert-null-to-empty-granted-arrays';
 import { convertNullToEmptyGrantedArrays } from './convert-null-to-empty-granted-arrays';
 import { convertRevisionPageIdToObjectId } from './convert-revision-page-id-to-objectid';
 import { convertRevisionPageIdToObjectId } from './convert-revision-page-id-to-objectid';
+import { deleteLegacyKnowledgeAssistantVectorStore } from './delete-legacy-knowledge-assistant-vector-store';
 import { renameDuplicateRootPages } from './rename-duplicate-root-pages';
 import { renameDuplicateRootPages } from './rename-duplicate-root-pages';
 
 
 const logger = loggerFactory('growi:service:NormalizeData');
 const logger = loggerFactory('growi:service:NormalizeData');
@@ -12,6 +13,7 @@ export const normalizeData = async(): Promise<void> => {
   await convertRevisionPageIdToObjectId();
   await convertRevisionPageIdToObjectId();
   await normalizeExpiredAtForThreadRelations();
   await normalizeExpiredAtForThreadRelations();
   await convertNullToEmptyGrantedArrays();
   await convertNullToEmptyGrantedArrays();
+  await deleteLegacyKnowledgeAssistantVectorStore();
 
 
   logger.info('normalizeData has been executed');
   logger.info('normalizeData has been executed');
   return;
   return;