diff --git a/src/lib/api.ts b/src/lib/api.ts index f7fd42b..fcc7571 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1,7 +1,8 @@ import type { ChatMode } from '@/types/chat' -const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:5000' -const USE_MOCK_DATA = true // Set to false when backend is ready +const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000' +const API_ENDPOINT = import.meta.env.VITE_API_ENDPOINT || '/chat/stream' +const USE_MOCK_DATA = false // Set to true to use mock data for testing // Session management export const getChatSessionId = (): string | null => { @@ -102,15 +103,14 @@ class ApiClient { yield { type: 'session_id', data: actualSessionId } try { - const response = await fetch(`${API_BASE_URL}/api/chat/stream`, { + const response = await fetch(`${API_BASE_URL}${API_ENDPOINT}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ - question, - mode, - sessionId: actualSessionId, + message: question, + conversation_id: actualSessionId, }), }) @@ -141,24 +141,19 @@ class ApiClient { if (line.startsWith('data: ')) { const data = line.slice(6) - if (data === '[DONE]') { - yield { type: 'done', data: null } - return - } - try { const parsed = JSON.parse(data) - if (parsed.type === 'error') { - yield { type: 'error', data: parsed.message } - } else if (parsed.content) { + if (parsed.type === 'chunk' && parsed.content) { yield { type: 'chunk', data: parsed.content } - } else { - // Raw string chunk - yield { type: 'chunk', data: data } + } else if (parsed.type === 'done') { + yield { type: 'done', data: null } + return + } else if (parsed.type === 'error') { + yield { type: 'error', data: parsed.message || 'Unknown error' } + return } } catch { - // Raw string chunk (not JSON) - yield { type: 'chunk', data: data } + // Skip non-JSON lines } } }