Home

Upcoming: a self-hosted AI guide for this portfolio

A planned extension of the clickable portfolio guide: answers grounded in published projects, private inference, and a useful fallback when AI is unavailable.

Upcoming project ยท Planning stage

The homepage currently has a clickable guide to my work. It answers a few common questions and points visitors towards projects. A future version could accept a question in the visitor’s own words and return a short answer with links to the relevant pages.

This is a plan for that next step. The AI service is not built or connected, and the existing guide will remain in use while the idea is evaluated.

Give visitors a better route through the portfolio

A broad portfolio can be difficult to navigate when someone arrives with a specific question. A recruiter might want examples of endpoint management; another visitor might care about container hosting or what happened during a failure test. The proposed assistant would help them find that evidence.

Its job would be narrow: explain published work and link to the source. It should not invent experience, make commitments on my behalf or act as an administration interface.

Start with the content, then choose the model

I plan to assemble a reviewed set of facts from the project pages, Stack, About and Writing. Each item would retain its source URL and review date. The first prototype would use a small, explicit context set. Search-based retrieval would only be added if that proves insufficient.

Ollama is already part of the tooling described in this portfolio. It is one candidate to evaluate alongside llama.cpp. Neither a runtime nor a model is selected for this project yet. Model licensing, answer quality, memory demand and response time on the available hardware will guide that decision.

A separate service behind WordPress

The proposed request path is: visitor question, a server-side gateway, a private inference service, then an answer with project links. WordPress would provide the interface and approved content. The browser would not receive service credentials or connect directly to the model server.

The gateway would enforce input limits, request limits, timeouts and a bounded queue. Generated text would be treated as untrusted output. The assistant would have no access to WordPress administration, private documents, shell commands or infrastructure controls.

Hosting location remains an open decision. Existing infrastructure is a possible home for the service, but only after checking capacity and the effect on other workloads. Self-hosting still has costs: electricity, maintenance, hardware and time.

Keep the useful part when inference is unavailable

The current clickable questions would remain available if the model is offline, busy or too slow. Visitors should still be able to browse projects and contact me. Free-text chat would be clearly identified as AI-generated, with a reminder not to submit sensitive information.

Before opening the service publicly, I would define what is logged and for how long. The starting preference is minimal operational metrics rather than storing conversation text by default.

What I intend to test

  • Evidence: do answers accurately reflect the linked pages, and acknowledge missing information?
  • Boundaries: what happens when a visitor asks it to ignore its instructions, reveal private information or invent a qualification?
  • Responsiveness: measure time to the first response, total response time and memory use under single and concurrent requests.
  • Failure behaviour: stop the inference service and confirm that the ordinary portfolio guide still works.
  • Usability: check keyboard navigation, screen-reader announcements and mobile behaviour before release.

Delivery checkpoints

  1. Review the public source material and define a repeatable set of questions.
  2. Compare a small number of local models on the actual host.
  3. Build a private prototype with source links and the existing guide as fallback.
  4. Test abuse limits, accessibility and service failures.
  5. Decide whether the results justify a public trial, then publish measurements and lessons learned.

No launch date or performance target is claimed yet. The first deliverable will be the evaluation, not an unsupported promise that adding AI improves the site.

Related work

Related: Local AI Development Environment, Containerised WordPress Platform and A lighter portfolio.