Ask about me
AI assistant for this site, built with retrieval-augmented generation
The chat in the corner of this site. Ask it about my experience, skills or projects and an AI model answers from the site's own CV and project content, listing the sources each answer came from.
Highlights
- A retrieval step written in PHP: the CV and project pages split into chunks per job and project, ranked with BM25 and synonym expansion, then passed to a large language model through its official PHP SDK
- Every answer grounded in real content, with each source linking to its section of the CV, this page or a report
- Saved answers keyed on a question's key words, so rewordings of a repeat question share one answer and cost no API credit, and suggested follow-ups offered only once an answer is saved
- The API budget protected in layers: honeypot, minimum send time, a proof-of-work challenge, reCAPTCHA, a profanity filter, per-visitor and per-chat limits and a daily spending ceiling
- An admin area with every chat, tokens used and estimated cost, answer ratings, a report of questions it couldn't answer and an editor for facts it should know
- A test suite that fakes the AI model, and a GitHub Actions check that signs in to the AI provider with Workload Identity Federation instead of an API key