Status: Proof of Concept · Presented: November 5, 2025 · Branch: users/prnag/chat-assistant-dev (repo https://github.com/EG-A-S/egu-partnerportal/tree/users/prnag/chat-assistant-dev) · Ticket: [EGU-2282] Exploring AI Chat Assistant in Zynergy Partners - EG A/S
Author: Pragnya Nagure, Team Nova
Purpose of this page: Document what was built, explain the underlying RAG pattern, and serve as a reference for future chat/AI-assistant implementations in the platform.
...
The three data sources Luma retrieves from:
| Source | What it is | How it's retrieved in this POC |
|---|---|---|
| Live Data | Work order records, scoped by role/permissions | EF Core query against Azure SQL, reusing the existing IWorkOrderApiService |
| Static data | User Manuals, release notes, FAQs | Indexed in Azure AI Search, queried via keyword search |
| Frontend context | Current page/section the user is viewing | Passed from the Blazor client on each request |
4. Technical Architecture
...
7. POC Status & Known Limitations
Area | Limitation | Why it matters |
|---|---|---|
| Auth | Chat endpoint has no [Authorize]; UserId is client-supplied, not verified server-side | Role-based data filtering is real, but trusts a client-given ID - needs to read the user from the authenticated token instead. This chatbot implementation was done before the token authentication security implementation between services |
| Search | Only keyword search is active; vector search is implemented but unused | Semantic/vector search would likely improve retrieval quality for natural-language queries |
| Session management | DELETE api/chat/session/{id} is a stub | Sessions can't actually be cleared yet |
| Scalability | Rate limiter & session store are in-memory only | Won't work across multiple app instances; needs a distributed cache (e.g. Redis) before scaling out |
8. Recommendations for Future Implementations
...
9. Appendix - API Reference
Method | Route | Notes |
|---|---|---|
| POST | api/chat | Main chat endpoint |
| GET | api/chat/status | Enabled flag, limits, supported languages |
| DELETE | api/chat/session/{sessionId} | Stub, not implemented |
| GET | api/chat/ratelimit/{userId} | Remaining requests for a user |
Config sections (in appsettings.Development.json): AzureOpenAI, AzureAISearch, ChatSettings - see repo for full key list.