A modern Angular application that serves as the user interface for a multi-service LLM system. It enables users to interact with AI-powered chat, manage conversation history, and navigate sessions seamlessly.
The llm-api-client is the frontend layer of a distributed system designed to:
- Send prompts to the backend service
- Display AI-generated responses
- Manage chat sessions and history
- Provide a responsive and intuitive user experience
This application communicates with the Spring Boot backend (llm-api-server), which in turn interacts with the LLM gateway.
Angular (llm-api-client) → Spring Boot (llm-api-server) → Django (llm-api-gateway) → Groq API
- User interaction (chat input/output)
- Session navigation and selection
- State management for chat and history
- API communication with backend
- UI rendering and responsiveness
- Angular (Standalone Components)
- RxJS
- Angular Signals
- TypeScript
- CSS (custom styling)
- Send prompts and receive real-time responses
- Maintains session context
- Clean and responsive UI
- Create new chat sessions
- Resume previous conversations
- Delete individual or all sessions
- Sidebar and dedicated history page
- Search conversations
- Group sessions by:
- Today
- Yesterday
- This week
- Older
- Standalone components (no NgModules)
- Lazy-loaded feature routes
- Signal-based state management (
signal,computed) OnPushchange detection for performance
Custom lightweight store pattern using Angular signals:
ChatStore→ manages active chat sessionHistoryStore→ manages session list and state
LlmService→ handles prompt requestsHistoryService→ manages session/history endpoints- Configurable API base URL via DI token
export const environment = {
production: false,
apiUrl: "http://localhost:8080/api",
};npm installng serveOpen:
http://localhost:4200/
This frontend requires the backend service to be running:
llm-api-server(Spring Boot)llm-api-gateway(Django)
Ensure API URL is correctly configured.
- Simpler and lightweight state management
- Less boilerplate
- Sufficient for application complexity
- Modern Angular approach
- Improved modularity
- Reduced complexity compared to NgModules
- Clear separation of concerns
- Scalable for future features
- Easier maintainability
- Authentication and user accounts
- Dark/light theme toggle
- Streaming responses (real-time tokens)
- Message editing and retry
- Pagination for large histories
llm-api-server→ Spring Boot backendllm-api-gateway→ Django LLM gateway