Grounded AI applications
RAG Portfolio Assistant
I built the AI assistant on this portfolio so visitors can explore my experience through grounded answers instead of hunting through static pages.
What I built
Designed the retrieval, prompt, and frontend interaction flow for a conversational way to explore the portfolio.
Connected portfolio content to vector search so answers can use relevant site context rather than rely only on a model's general knowledge.
Delivered the system with a lightweight full-stack architecture appropriate for a public website.
System at a glance
- Portfolio content is prepared for retrieval and stored as searchable vector context.
- A visitor question is embedded and matched to relevant context before generation.
- A server-side function builds a grounded request for the language model.
- The React chat interface renders the response with safe client-side handling.
Key decisions
- Prioritized grounded retrieval so the assistant can point visitors toward information actually represented on the site.
- Used an architecture that keeps the public interface simple while separating retrieval and model work from the browser.
- Designed with token cost and public-web safety in mind instead of treating every prompt as an unrestricted chat session.
How I approached reliability
- Retrieval context gives answers a clear factual boundary tied to the portfolio.
- The interface sanitizes rendered content before it reaches the page.
- The system handles unavailable services without breaking the rest of the site experience.
Outcome
The assistant gives recruiters and collaborators a direct way to ask about relevant experience, technical depth, and product work while keeping the portfolio itself as the source of truth.
Technology focus
- Supabase Edge Functions
- pgvector
- Cohere embeddings
- OpenRouter
- TypeScript
- React
- DOMPurify
- GitHub Pages
- CI/CD