Spaces:
Sleeping
Sleeping
| export type CourseResponse = { | |
| id: number | string; | |
| title: string; | |
| description?: string; | |
| }; | |
| export type DocumentSource = { | |
| document_id: string; | |
| filename: string; | |
| excerpt: string; | |
| }; | |
| export type ChatMessageResponse = { | |
| uuid_id: string; | |
| role: string; | |
| content: string; | |
| sources?: DocumentSource[]; | |
| created_at: string; | |
| }; | |
| export type ChatSessionResponse = { | |
| uuid_id: string; | |
| user_id: string; | |
| user_name?: string; | |
| course_id: string; | |
| course_name?: string; | |
| title: string; | |
| message_count: number; | |
| last_message_at?: string; | |
| created_at: string; | |
| updated_at: string; | |
| }; | |
| function createLocalMessageId(prefix: string): string { | |
| if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) { | |
| return `${prefix}-${crypto.randomUUID()}`; | |
| } | |
| return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2)}`; | |
| } | |
| export function createLocalUserMessage(content: string): ChatMessageResponse { | |
| return { | |
| content, | |
| created_at: new Date().toISOString(), | |
| role: 'user', | |
| sources: [], | |
| uuid_id: createLocalMessageId('local'), | |
| }; | |
| } | |
| export function createLocalAssistantMessage( | |
| content = '', | |
| ): ChatMessageResponse { | |
| return { | |
| content, | |
| created_at: new Date().toISOString(), | |
| role: 'assistant', | |
| sources: [], | |
| uuid_id: createLocalMessageId('local-assistant'), | |
| }; | |
| } | |