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

fix: delete changes to openai.ts

Ryotaro Nagahara 1 месяц назад
Родитель
Сommit
0332634591

+ 11 - 4
apps/app/src/features/openai/server/routes/delete-thread.ts

@@ -14,6 +14,7 @@ import type { ApiV3Response } from '~/server/routes/apiv3/interfaces/apiv3-respo
 import loggerFactory from '~/utils/logger';
 
 import type { IApiv3DeleteThreadParams } from '../../interfaces/thread-relation';
+import ThreadRelationModel from '../models/thread-relation';
 import { getOpenaiService } from '../services/openai';
 import { certifyAiService } from './middlewares/certify-ai-service';
 
@@ -68,10 +69,16 @@ export const deleteThreadFactory = (crowi: Crowi): RequestHandler[] => {
       }
 
       try {
-        const deletedThreadRelation = await openaiService.deleteThread(
-          threadRelationId,
-          user._id,
-        );
+        const threadRelation = await ThreadRelationModel.findOne({
+          _id: threadRelationId,
+          userId: user._id,
+        });
+        if (threadRelation == null) {
+          return res.apiv3Err(new ErrorV3('Thread not found'), 404);
+        }
+
+        const deletedThreadRelation =
+          await openaiService.deleteThread(threadRelationId);
         return res.apiv3({ deletedThreadRelation });
       } catch (err) {
         logger.error(err);

+ 7 - 4
apps/app/src/features/openai/server/routes/get-threads.ts

@@ -12,6 +12,8 @@ import loginRequiredFactory from '~/server/middlewares/login-required';
 import type { ApiV3Response } from '~/server/routes/apiv3/interfaces/apiv3-response';
 import loggerFactory from '~/utils/logger';
 
+import { ThreadType } from '../../interfaces/thread-relation';
+import ThreadRelationModel from '../models/thread-relation';
 import { getOpenaiService } from '../services/openai';
 import { certifyAiService } from './middlewares/certify-ai-service';
 
@@ -70,10 +72,11 @@ export const getThreadsFactory = (crowi: Crowi): RequestHandler[] => {
           );
         }
 
-        const threads = await openaiService.getThreadsByAiAssistantId(
-          aiAssistantId,
-          user._id,
-        );
+        const threads = await ThreadRelationModel.find({
+          aiAssistant: aiAssistantId,
+          userId: user._id,
+          type: ThreadType.KNOWLEDGE,
+        }).sort({ updatedAt: -1 });
 
         return res.apiv3({ threads });
       } catch (err) {

+ 2 - 12
apps/app/src/features/openai/server/services/openai.ts

@@ -98,12 +98,8 @@ export interface IOpenaiService {
   ): Promise<ThreadRelationDocument>;
   getThreadsByAiAssistantId(
     aiAssistantId: string,
-    userId: string,
   ): Promise<ThreadRelationDocument[]>;
-  deleteThread(
-    threadRelationId: string,
-    userId: string,
-  ): Promise<ThreadRelationDocument>;
+  deleteThread(threadRelationId: string): Promise<ThreadRelationDocument>;
   deleteExpiredThreads(limit: number, apiCallInterval: number): Promise<void>; // for CronJob
   deleteObsoletedVectorStoreRelations(): Promise<void>; // for CronJob
   deleteVectorStore(vectorStoreRelationId: string): Promise<void>;
@@ -297,12 +293,10 @@ class OpenaiService implements IOpenaiService {
 
   async getThreadsByAiAssistantId(
     aiAssistantId: string,
-    userId: string,
     type: ThreadType = ThreadType.KNOWLEDGE,
   ): Promise<ThreadRelationDocument[]> {
     const threadRelations = await ThreadRelationModel.find({
       aiAssistant: aiAssistantId,
-      userId,
       type,
     }).sort({ updatedAt: -1 });
     return threadRelations;
@@ -310,12 +304,8 @@ class OpenaiService implements IOpenaiService {
 
   async deleteThread(
     threadRelationId: string,
-    userId: string,
   ): Promise<ThreadRelationDocument> {
-    const threadRelation = await ThreadRelationModel.findOne({
-      _id: threadRelationId,
-      userId,
-    });
+    const threadRelation = await ThreadRelationModel.findById(threadRelationId);
     if (threadRelation == null) {
       throw createError(404, 'ThreadRelation document does not exist');
     }