Przeglądaj źródła

prepareDocumentData -> prepareVectorStoreFileRelations

Shun Miyazawa 1 rok temu
rodzic
commit
0f2efd88ee

+ 3 - 1
apps/app/src/features/openai/server/models/vector-store-file-relation.ts

@@ -15,7 +15,9 @@ interface VectorStoreFileRelationModel extends Model<VectorStoreFileRelation> {
   upsertVectorStoreFileRelations(vectorStoreFileRelations: VectorStoreFileRelation[]): Promise<void>;
 }
 
-export const prepareDocumentData = (pageId: Types.ObjectId, fileId: string, vectorStoreFileRelations: VectorStoreFileRelation[]): VectorStoreFileRelation[] => {
+export const prepareVectorStoreFileRelations = (
+    pageId: Types.ObjectId, fileId: string, vectorStoreFileRelations: VectorStoreFileRelation[],
+): VectorStoreFileRelation[] => {
   const existingData = vectorStoreFileRelations.find(relation => relation.pageId.equals(pageId));
 
   // If the data exists, add the fileId to the fileIds array

+ 13 - 10
apps/app/src/server/service/openai/openai.ts

@@ -6,7 +6,10 @@ import mongoose from 'mongoose';
 import type OpenAI from 'openai';
 import { toFile } from 'openai';
 
-import VectorStoreFileRelationModel, { type VectorStoreFileRelation, prepareDocumentData } from '~/features/openai/server/models/vector-store-file-relation';
+import VectorStoreFileRelationModel, {
+  type VectorStoreFileRelation,
+  prepareVectorStoreFileRelations,
+} from '~/features/openai/server/models/vector-store-file-relation';
 import { OpenaiServiceTypes } from '~/interfaces/ai';
 import type { PageDocument, PageModel } from '~/server/models/page';
 import { configManager } from '~/server/service/config-manager';
@@ -47,8 +50,8 @@ class OpenaiService implements IOpenaiService {
       for (const fileId of vectorStoreFileRelation.fileIds) {
         try {
           // eslint-disable-next-line no-await-in-loop
-          const deleteFileRes = await this.client.deleteFile(fileId);
-          logger.debug('Delete vector store file', deleteFileRes);
+          const deleteFileResponse = await this.client.deleteFile(fileId);
+          logger.debug('Delete vector store file', deleteFileResponse);
           deletedFileIds.push(fileId);
         }
         catch (err) {
@@ -63,19 +66,19 @@ class OpenaiService implements IOpenaiService {
   }
 
   async createVectorStoreFile(pages: Array<PageDocument>): Promise<void> {
-    const vectorStoreFileRelations: VectorStoreFileRelation[] = [];
+    const preparedVectorStoreFileRelations: VectorStoreFileRelation[] = [];
     const processUploadFile = async(page: PageDocument) => {
       if (page._id != null && page.grant === PageGrant.GRANT_PUBLIC && page.revision != null) {
         if (isPopulated(page.revision) && page.revision.body.length > 0) {
           const uploadedFile = await this.uploadFile(page._id, page.revision.body);
-          prepareDocumentData(page._id, uploadedFile.id, vectorStoreFileRelations);
+          prepareVectorStoreFileRelations(page._id, uploadedFile.id, preparedVectorStoreFileRelations);
           return;
         }
 
         const pagePopulatedToShowRevision = await page.populateDataToShowRevision();
         if (pagePopulatedToShowRevision.revision != null && pagePopulatedToShowRevision.revision.body.length > 0) {
           const uploadedFile = await this.uploadFile(page._id, pagePopulatedToShowRevision.revision.body);
-          prepareDocumentData(page._id, uploadedFile.id, vectorStoreFileRelations);
+          prepareVectorStoreFileRelations(page._id, uploadedFile.id, preparedVectorStoreFileRelations);
         }
       }
     };
@@ -93,12 +96,12 @@ class OpenaiService implements IOpenaiService {
 
     try {
       // Create vector store file
-      const uploadedFileIds = vectorStoreFileRelations.map(data => data.fileIds).flat();
-      const createVectorStoreFileBatchRes = await this.client.createVectorStoreFileBatch(uploadedFileIds);
-      logger.debug('Create vector store file', createVectorStoreFileBatchRes);
+      const uploadedFileIds = preparedVectorStoreFileRelations.map(data => data.fileIds).flat();
+      const createVectorStoreFileBatchResponse = await this.client.createVectorStoreFileBatch(uploadedFileIds);
+      logger.debug('Create vector store file', createVectorStoreFileBatchResponse);
 
       // Save vector store file relation
-      await VectorStoreFileRelationModel.upsertVectorStoreFileRelations(vectorStoreFileRelations);
+      await VectorStoreFileRelationModel.upsertVectorStoreFileRelations(preparedVectorStoreFileRelations);
     }
     catch (err) {
       logger.error(err);