/ src / utils / chat.ts
chat.ts
 1  import type { components } from '@/types/api';
 2  
 3  export type ChatRequest = components['schemas']['CompleteQueryRequest'];
 4  
 5  // // Ajv schema ID is always `#/components/schemas/<Name>`
 6  // const isChatRequest = getValidator<ChatRequest>('#/components/schemas/CompleteQueryRequest');
 7  
 8  export function createChatRequest(message: string, opts?: { stream?: boolean }): ChatRequest {
 9      const payload: Partial<ChatRequest> = {
10          message,
11          // Required fields from the schema
12          model: 'gpt-4o',
13          temperature: 0.7,
14          system_message: 'You are a helpful AI assistant.'
15      };
16  
17      // Add optional fields
18      if (opts?.stream !== undefined) {
19          // If stream is added to schema later, this will work
20          (payload as any).stream = opts.stream;
21      }
22  
23      // Type assertion after we've built a valid object
24      const request = payload as ChatRequest;
25  
26      // if (!isChatRequest(request)) {
27      //     // Access errors from ajv instance
28      //     throw new Error('ChatRequest failed validation');
29      // }
30      return request;
31  }