Professional work
Access-controlled AI copilot (RAG)
An internal copilot that answers employees’ questions from company documentation, cites its sources, respects who may read what, and hands over to human support when needed.
- Demonstrator qualified in internal staging
- Individual project
- Confidential
- correct answers (manual evaluation, 50 questions)
- 98%
- to the first streamed token
- < 1.5 s
- PDF and DOCX documents indexed
- 50+
- Scrum sprints
- 13
01Starting point
Context & mission
The problem
Company knowledge was scattered across PDF and DOCX documents. Finding the right answer meant searching by hand or interrupting a colleague. A generic chatbot was not an option: it cannot say where an answer comes from, and it has no notion of who is allowed to read what.
The mission
For my final-year project, ALTEN asked me to design and build an internal AI copilot platform from scratch: natural-language questions over the documentation, source-grounded answers, role-based access control, and escalation to human support when the AI is not enough.
My role
I ran the project independently: architecture, RAG pipeline, security, Angular application, API documentation and delivery of the demonstrator.
02Execution
What I did
Microservices architecture
Spring Cloud with an API Gateway, four Spring Boot services (auth, users, documents, chat) and a FastAPI RAG service. PostgreSQL with pgvector handles both persistence and vector search.
RAG pipeline
Python, LangChain and OpenAI: extraction of 50+ PDF and DOCX documents, chunking, embeddings, semantic search (MMR), then source-grounded generation. Answers stream over SSE.
Security by design
JWT, BCrypt and RBAC across three roles. Authorized documents are filtered during retrieval, before the LLM generates anything, so restricted content can never leak into an answer.
Angular application
Chat with conversation history, admin dashboard, document and user management, indexing status tracking, and a support-ticket module with category-based forms and attachments.
Delivery
APIs documented and validated with OpenAPI/Swagger and Postman, demonstrator containerized with Docker Compose, 13 Scrum sprints tracked in Jira.
03Design
Architecture
- AngularChat · back office
- Spring Cloud GatewaySingle entry point
- 4 Spring Boot servicesauth · users · documents · chat
- FastAPI RAG serviceLangChain
- PostgreSQL + pgvectorData · vectors
- OpenAILLM · embeddings
- Docker ComposeContainerized demonstrator
- QuestionAuthenticated user
- Filtered retrievalAuthorized documents only
- ContextRelevant passages (MMR)
- GenerationGrounded in sources
- Streamed answerSSE · citations
- Support ticketWhen the AI is not enough
04Impact
Results
- Demonstrator qualified in internal staging at ALTEN.
- First streamed token in under 1.5 s.
- 98% correct answers in a manual evaluation of 50 validated test questions.
- Every answer links back to its source documents and respects the user’s role.
05Wrap-up
Takeaways
06Technology
Full stack
- Java
- Spring Boot
- Spring Cloud Gateway
- Python
- FastAPI
- LangChain
- OpenAI
- PostgreSQL
- pgvector
- Angular
- Docker Compose
- JWT
- BCrypt
- RBAC
- SSE
- OpenAPI
- Postman
- Jira