feat(chat): add LLM-powered travel agent with multi-provider support
Implement a full chat-based travel agent using LiteLLM for multi-provider LLM support (OpenAI, Anthropic, Gemini, Ollama, Groq, Mistral, etc.). Backend: - New 'chat' Django app with ChatConversation and ChatMessage models - Streaming SSE endpoint via StreamingHttpResponse - 5 agent tools: search_places, list_trips, get_trip_details, add_to_itinerary, get_weather - LiteLLM client wrapper with per-user API key retrieval - System prompt with user preference context injection Frontend: - New /chat route with full-page chat UI (DaisyUI + Tailwind) - Collapsible conversation sidebar with CRUD - SSE streaming response display with tool call visualization - Provider selector dropdown - SSE proxy fix to stream text/event-stream without buffering - Navbar link and i18n keys
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"navbar": {
|
||||
"collections": "Collections",
|
||||
"chat": "Travel Agent",
|
||||
"map": "Map",
|
||||
"users": "Users",
|
||||
"search": "Search",
|
||||
@@ -31,6 +32,20 @@
|
||||
},
|
||||
"navigation": "Navigation"
|
||||
},
|
||||
"chat": {
|
||||
"title": "Travel Agent",
|
||||
"conversations": "Conversations",
|
||||
"new_conversation": "New Conversation",
|
||||
"untitled": "Untitled Conversation",
|
||||
"no_conversations": "No conversations yet. Start chatting!",
|
||||
"welcome_title": "Welcome to the Travel Agent",
|
||||
"welcome_message": "I can help you discover amazing places, plan your trips, and organize your itineraries. What would you like to explore?",
|
||||
"input_placeholder": "Ask me about travel destinations, plan a trip, or get recommendations...",
|
||||
"send": "Send",
|
||||
"delete_conversation": "Delete Conversation",
|
||||
"connection_error": "Connection error. Please try again.",
|
||||
"no_api_key": "No API key found. Please add one in Settings."
|
||||
},
|
||||
"about": {
|
||||
"about": "About",
|
||||
"license": "Licensed under the GPL-3.0 License.",
|
||||
|
||||
Reference in New Issue
Block a user