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

add accessible AI assistants interface and update service methods

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

+ 5 - 0
apps/app/src/features/openai/interfaces/ai-assistant.ts

@@ -36,3 +36,8 @@ export interface AiAssistant {
 }
 }
 
 
 export type IApiv3AiAssistantCreateParams = Omit<AiAssistant, 'owner' | 'vectorStore'>
 export type IApiv3AiAssistantCreateParams = Omit<AiAssistant, 'owner' | 'vectorStore'>
+
+export type AccessibleAiAssistants = {
+  myAiAssistants: AiAssistant[],
+  teamAiAssistants: AiAssistant[],
+}

+ 3 - 2
apps/app/src/features/openai/server/routes/ai-assistant.ts

@@ -113,6 +113,7 @@ export const createAiAssistantFactory: CreateAssistantFactory = (crowi) => {
   ];
   ];
 };
 };
 
 
+
 /*
 /*
 *  GetAiAssistantsFactory
 *  GetAiAssistantsFactory
 */
 */
@@ -131,9 +132,9 @@ export const getAiAssistantsFactory: GetAiAssistantsFactory = (crowi) => {
     async(req: GetAiAssistantsFactoryReq, res: ApiV3Response) => {
     async(req: GetAiAssistantsFactoryReq, res: ApiV3Response) => {
       try {
       try {
         const openaiService = getOpenaiService();
         const openaiService = getOpenaiService();
-        const aiAssistants = await openaiService?.getAiAssistants(req.user);
+        const accessibleAiAssistants = await openaiService?.getAccessibleAiAssistants(req.user);
 
 
-        return res.apiv3({ aiAssistants });
+        return res.apiv3({ accessibleAiAssistants });
       }
       }
       catch (err) {
       catch (err) {
         logger.error(err);
         logger.error(err);

+ 9 - 4
apps/app/src/features/openai/server/services/openai.ts

@@ -25,6 +25,7 @@ import { createBatchStream } from '~/server/util/batch-stream';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { OpenaiServiceTypes } from '../../interfaces/ai';
 import { OpenaiServiceTypes } from '../../interfaces/ai';
+import type { AccessibleAiAssistants } from '../../interfaces/ai-assistant';
 import { type AiAssistant, AiAssistantAccessScope } from '../../interfaces/ai-assistant';
 import { type AiAssistant, AiAssistantAccessScope } from '../../interfaces/ai-assistant';
 import AiAssistantModel, { type AiAssistantDocument } from '../models/ai-assistant';
 import AiAssistantModel, { type AiAssistantDocument } from '../models/ai-assistant';
 import { convertMarkdownToHtml } from '../utils/convert-markdown-to-html';
 import { convertMarkdownToHtml } from '../utils/convert-markdown-to-html';
@@ -67,7 +68,7 @@ export interface IOpenaiService {
   // rebuildVectorStoreAll(): Promise<void>;
   // rebuildVectorStoreAll(): Promise<void>;
   // rebuildVectorStore(page: HydratedDocument<PageDocument>): Promise<void>;
   // rebuildVectorStore(page: HydratedDocument<PageDocument>): Promise<void>;
   createAiAssistant(data: Omit<AiAssistant, 'vectorStore'>): Promise<AiAssistantDocument>;
   createAiAssistant(data: Omit<AiAssistant, 'vectorStore'>): Promise<AiAssistantDocument>;
-  getAiAssistants(user: IUserHasId): Promise<AiAssistantDocument[]>;
+  getAccessibleAiAssistants(user: IUserHasId): Promise<AccessibleAiAssistants>
 }
 }
 class OpenaiService implements IOpenaiService {
 class OpenaiService implements IOpenaiService {
 
 
@@ -522,9 +523,13 @@ class OpenaiService implements IOpenaiService {
     return aiAssistant;
     return aiAssistant;
   }
   }
 
 
-  async getAiAssistants(user: IUserHasId): Promise<AiAssistantDocument[]> {
-    const aiAssistants = await AiAssistantModel.find({ owner: user });
-    return aiAssistants;
+  async getAccessibleAiAssistants(user: IUserHasId): Promise<AccessibleAiAssistants> {
+    const myAiAssistants = await AiAssistantModel.find({ owner: user });
+
+    return {
+      myAiAssistants: myAiAssistants as AiAssistant[] ?? [],
+      teamAiAssistants: [],
+    };
   }
   }
 
 
 }
 }