Răsfoiți Sursa

Create vector store file when creating a page

Shun Miyazawa 1 an în urmă
părinte
comite
5ca16584b1
1 a modificat fișierele cu 13 adăugiri și 0 ștergeri
  1. 13 0
      apps/app/src/server/routes/apiv3/page/create-page.ts

+ 13 - 0
apps/app/src/server/routes/apiv3/page/create-page.ts

@@ -22,6 +22,7 @@ import PageTagRelation from '~/server/models/page-tag-relation';
 import { serializePageSecurely, serializeRevisionSecurely } from '~/server/models/serializers';
 import { configManager } from '~/server/service/config-manager';
 import { getTranslation } from '~/server/service/i18next';
+import { getOpenaiService } from '~/server/service/openai/openai';
 import loggerFactory from '~/utils/logger';
 
 import { apiV3FormValidator } from '../../../middlewares/apiv3-form-validator';
@@ -198,6 +199,18 @@ export const createPageHandlersFactory: CreatePageHandlersFactory = (crowi) => {
     catch (err) {
       logger.error('Failed to create subscription document', err);
     }
+
+    // Rebuild vector store file
+    const aiEnabled = configManager.getConfig('crowi', 'app:aiEnabled');
+    if (aiEnabled) {
+      try {
+        const openaiService = getOpenaiService();
+        await openaiService?.rebuildVectorStore(createdPage);
+      }
+      catch (err) {
+        logger.error('Rebuild vector store failed', err);
+      }
+    }
   }
 
   const addActivity = generateAddActivityMiddleware(crowi);