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

Add error handling for when file does not exist on OpenAI side

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

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

@@ -510,14 +510,25 @@ class OpenaiService implements IOpenaiService {
       return;
     }
 
+    const deleteAllRelationDocument = async() => {
+      await VectorStoreFileRelationModel.deleteMany({ attachment: attachmentId });
+    };
+
     for await (const fileId of vectorStoreFileRelation.fileIds) {
-      const response = await this.client.deleteFile(fileId);
-      logger.debug('Delete vector store file', response);
+      try {
+        const response = await this.client.deleteFile(fileId);
+        logger.debug('Delete vector store file', response);
+      }
+      catch (err) {
+        logger.error(err);
+        await openaiApiErrorHandler(err, { notFoundError: () => deleteAllRelationDocument() });
+      }
     }
 
-    await VectorStoreFileRelationModel.deleteMany({ attachment: attachmentId });
+    deleteAllRelationDocument();
   }
 
+
   async filterPagesByAccessScope(aiAssistant: AiAssistantDocument, pages: HydratedDocument<PageDocument>[]) {
     const isPublicPage = (page :HydratedDocument<PageDocument>) => page.grant === PageGrant.GRANT_PUBLIC;