Shun Miyazawa пре 1 година
родитељ
комит
94c15074de
1 измењених фајлова са 17 додато и 1 уклоњено
  1. 17 1
      apps/app/src/features/openai/server/services/openai.ts

+ 17 - 1
apps/app/src/features/openai/server/services/openai.ts

@@ -137,6 +137,22 @@ class OpenaiService implements IOpenaiService {
     return newVectorStoreDocument;
     return newVectorStoreDocument;
   }
   }
 
 
+  private async deleteVectorStore(vectorStoreScopeType: VectorStoreScopeType): Promise<void> {
+    const vectorStoreDocument = await VectorStoreModel.findOne({ scorpeType: vectorStoreScopeType, isDeleted: false });
+    if (vectorStoreDocument == null) {
+      return;
+    }
+
+    try {
+      this.client.deleteVectorStore(vectorStoreDocument.vectorStoreId);
+      vectorStoreDocument.isDeleted = true;
+      vectorStoreDocument.save();
+    }
+    catch (err) {
+      throw new Error(err);
+    }
+  }
+
   private async uploadFileByChunks(
   private async uploadFileByChunks(
       vectorStoreRelationId: Types.ObjectId, pageId: Types.ObjectId, body: string, vectorStoreFileRelationsMap: VectorStoreFileRelationsMap,
       vectorStoreRelationId: Types.ObjectId, pageId: Types.ObjectId, body: string, vectorStoreFileRelationsMap: VectorStoreFileRelationsMap,
   ) {
   ) {
@@ -245,7 +261,7 @@ class OpenaiService implements IOpenaiService {
   }
   }
 
 
   async rebuildVectorStoreAll() {
   async rebuildVectorStoreAll() {
-    // TODO: https://redmine.weseek.co.jp/issues/154364
+    await this.deleteVectorStore(VectorStoreScopeType.PUBLIC);
 
 
     // Create all public pages VectorStoreFile
     // Create all public pages VectorStoreFile
     const Page = mongoose.model<HydratedDocument<PageDocument>, PageModel>('Page');
     const Page = mongoose.model<HydratedDocument<PageDocument>, PageModel>('Page');