Procházet zdrojové kódy

WIP: deleteObsoleteVectorStoreFile

Shun Miyazawa před 1 rokem
rodič
revize
82be5a5a6f

+ 15 - 0
apps/app/src/features/openai/server/services/openai.ts

@@ -38,6 +38,7 @@ export interface IOpenaiService {
   deleteExpiredThreads(limit: number, apiCallInterval: number): Promise<void>;
   createVectorStoreFile(pages: PageDocument[]): Promise<void>;
   deleteVectorStoreFile(pageId: Types.ObjectId): Promise<void>;
+  deleteObsoleteVectorStoreFile(limit: number, apiCallInterval: number): Promise<void>;
   rebuildVectorStoreAll(): Promise<void>;
   rebuildVectorStore(page: HydratedDocument<PageDocument>): Promise<void>;
 }
@@ -260,6 +261,20 @@ class OpenaiService implements IOpenaiService {
     await vectorStoreFileRelation.save();
   }
 
+  async deleteObsoleteVectorStoreFile(limit: number, apiCallInterval: number): Promise<void> {
+    const deletedVectorStores = await VectorStoreModel.find({ isDeleted: true });
+
+    if (deletedVectorStores == null) {
+      return;
+    }
+
+    const obsoleteVectorStoreFiles = VectorStoreFileRelationModel.find(
+      { vectorStoreRelationId: { $in: deletedVectorStores.map(vectorStore => vectorStore._id) } },
+    ).limit(limit);
+
+
+  }
+
   async rebuildVectorStoreAll() {
     await this.deleteVectorStore(VectorStoreScopeType.PUBLIC);