Просмотр исходного кода

If the VectorStore entity does not exist, the delete flag is set to true

Shun Miyazawa 1 год назад
Родитель
Сommit
d4b29dc19b
1 измененных файлов с 9 добавлено и 3 удалено
  1. 9 3
      apps/app/src/features/openai/server/services/openai.ts

+ 9 - 3
apps/app/src/features/openai/server/services/openai.ts

@@ -5,7 +5,7 @@ import { PageGrant, isPopulated } from '@growi/core';
 import type { HydratedDocument, Types } from 'mongoose';
 import type { HydratedDocument, Types } from 'mongoose';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 import type OpenAI from 'openai';
 import type OpenAI from 'openai';
-import { toFile } from 'openai';
+import { NotFoundError, toFile } from 'openai';
 
 
 import ThreadRelationModel from '~/features/openai/server/models/thread-relation';
 import ThreadRelationModel from '~/features/openai/server/models/thread-relation';
 import VectorStoreModel, { VectorStoreScopeType, type VectorStoreDocument } from '~/features/openai/server/models/vector-store';
 import VectorStoreModel, { VectorStoreScopeType, type VectorStoreDocument } from '~/features/openai/server/models/vector-store';
@@ -145,11 +145,17 @@ class OpenaiService implements IOpenaiService {
     }
     }
 
 
     try {
     try {
-      this.client.deleteVectorStore(vectorStoreDocument.vectorStoreId);
+      await this.client.deleteVectorStore(vectorStoreDocument.vectorStoreId);
       vectorStoreDocument.isDeleted = true;
       vectorStoreDocument.isDeleted = true;
-      vectorStoreDocument.save();
+      await vectorStoreDocument.save();
     }
     }
     catch (err) {
     catch (err) {
+      const vectorStoreNotFoundErrorHandler = async() => {
+        vectorStoreDocument.isDeleted = true;
+        await vectorStoreDocument.save();
+      };
+
+      oepnaiApiErrorHandler(err, { notFoundError: vectorStoreNotFoundErrorHandler });
       throw new Error(err);
       throw new Error(err);
     }
     }
   }
   }