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

VectorStoreRelation -> VectorStoreFileRelation

Shun Miyazawa 1 год назад
Родитель
Сommit
1188b6dcb3

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

@@ -4,18 +4,18 @@ import { type Model, type Document, Schema } from 'mongoose';
 
 import { getOrCreateModel } from '~/server/util/mongoose-utils';
 
-export interface VectorStoreRelation {
+export interface VectorStoreFileRelation {
   pageId: mongoose.Types.ObjectId;
   fileIds: string[];
 }
 
-interface VectorStoreRelationDocument extends VectorStoreRelation, Document {}
+interface VectorStoreFileRelationDocument extends VectorStoreFileRelation, Document {}
 
-interface VectorStoreRelationModel extends Model<VectorStoreRelation> {
-  updateOrCreateDocument(requestData: VectorStoreRelation[]): Promise<void>;
+interface VectorStoreFileRelationModel extends Model<VectorStoreFileRelation> {
+  updateOrCreateDocument(requestData: VectorStoreFileRelation[]): Promise<void>;
 }
 
-export const prepareDocumentData = (pageId: Types.ObjectId, fileId: string, vectorStoreFileRelations: VectorStoreRelation[]): VectorStoreRelation[] => {
+export const prepareDocumentData = (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
@@ -33,7 +33,7 @@ export const prepareDocumentData = (pageId: Types.ObjectId, fileId: string, vect
   return vectorStoreFileRelations;
 };
 
-const schema = new Schema<VectorStoreRelationDocument, VectorStoreRelationModel>({
+const schema = new Schema<VectorStoreFileRelationDocument, VectorStoreFileRelationModel>({
   pageId: {
     type: Schema.Types.ObjectId,
     ref: 'Page',
@@ -46,7 +46,7 @@ const schema = new Schema<VectorStoreRelationDocument, VectorStoreRelationModel>
   }],
 });
 
-schema.statics.updateOrCreateDocument = async function(vectorStoreFileRelations: VectorStoreRelation[]): Promise<void> {
+schema.statics.updateOrCreateDocument = async function(vectorStoreFileRelations: VectorStoreFileRelation[]): Promise<void> {
   await this.bulkWrite(
     vectorStoreFileRelations.map((data) => {
       return {
@@ -60,4 +60,4 @@ schema.statics.updateOrCreateDocument = async function(vectorStoreFileRelations:
   );
 };
 
-export default getOrCreateModel<VectorStoreRelationDocument, VectorStoreRelationModel>('VectorStoreRelation', schema);
+export default getOrCreateModel<VectorStoreFileRelationDocument, VectorStoreFileRelationModel>('VectorStoreFileRelation', schema);

+ 4 - 6
apps/app/src/server/service/openai/openai.ts

@@ -1,14 +1,12 @@
-import { error } from 'console';
 import { Readable, Transform } from 'stream';
 
-import { fi } from '@faker-js/faker';
 import { PageGrant, isPopulated } from '@growi/core';
 import type { HydratedDocument, Types } from 'mongoose';
 import mongoose from 'mongoose';
 import type OpenAI from 'openai';
 import { toFile } from 'openai';
 
-import VectorStoreRelationModel, { type VectorStoreRelation, prepareDocumentData } from '~/features/openai/server/models/vector-store-relation';
+import VectorStoreFileRelationModel, { type VectorStoreFileRelation, prepareDocumentData } 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';
@@ -43,7 +41,7 @@ class OpenaiService implements IOpenaiService {
 
   private async deleteFile(page: PageDocument): Promise<void> {
     // Delete vector store file and delete vector store file relation
-    const vectorStoreFileRelation = await VectorStoreRelationModel.findOne({ pageId: page._id });
+    const vectorStoreFileRelation = await VectorStoreFileRelationModel.findOne({ pageId: page._id });
     if (vectorStoreFileRelation != null) {
       const deletedFileIds: string[] = [];
       for (const fileId of vectorStoreFileRelation.fileIds) {
@@ -65,7 +63,7 @@ class OpenaiService implements IOpenaiService {
   }
 
   async createVectorStoreFile(pages: Array<PageDocument>): Promise<void> {
-    const vectorStoreFileRelations: VectorStoreRelation[] = [];
+    const vectorStoreFileRelations: 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) {
@@ -100,7 +98,7 @@ class OpenaiService implements IOpenaiService {
       logger.debug('Create vector store file', res);
 
       // Save vector store file relation
-      await VectorStoreRelationModel.updateOrCreateDocument(vectorStoreFileRelations);
+      await VectorStoreFileRelationModel.updateOrCreateDocument(vectorStoreFileRelations);
     }
     catch (err) {
       logger.error(err);