Rahul Krishnan
Result

Powers the live AI Q&A assistant embedded in this portfolio site

I indexed my resume and project documents so portfolio visitors can ask natural-language questions about my background, projects, and experience.

I used LlamaIndex with local ONNX BGE embeddings, hybrid BM25 and vector retrieval, and a local cross-encoder reranker. A free OpenRouter model produces context-aware answers without a paid embedding API.

I deployed the FastAPI backend in Docker on Google Cloud Run's free tier. I added per-IP rate limiting, an in-memory query cache, token streaming, and Google Sheets request logging for the public endpoint. The service powers the live Q&A assistant on this site.

LlamaIndexFastAPIHybrid RetrievalOpenRouterCloud Run