Problem
I wanted to understand how retrieval grounds an LLM's answers, so I built the whole pipeline myself: PDF ingestion, embeddings in pgvector, and answers grounded in the uploaded text, in English and Vietnamese.
What I built
- A multilingual (English/Vietnamese) RAG backend that uses embeddings and cosine similarity in pgvector to ground Gemini's answers in uploaded PDFs.
- pytest suite running in GitHub Actions CI.
- Deployed on AWS EC2 behind Nginx.