← Back to projects

Personal Portfolio + AI Chatbot

My portfolio with an AI chatbot that answers questions about me, backed by pgvector semantic retrieval.

  • Django
  • Python
  • PostgreSQL
  • pgvector
  • OpenAI
  • Caddy
  • Docker

Overview

This site — a Django portfolio with an AI chatbot that answers questions about my experience, skills, and availability.

- Knowledge is stored as facts and corrections in **PostgreSQL with the pgvector extension**; each row is embedded with OpenAI `text-embedding-3-small` (1536 dims), stored alongside the data.
- A `post_save` signal recomputes embeddings on change, with a hash short-circuit to skip no-op saves.
- Retrieval ranks by **cosine distance** with tuned thresholds, always includes contact/availability, and **degrades gracefully** to recent facts if the embedding service is down.
- Runs in Docker behind Caddy on my self-hosted home server.

Updates

No updates added yet.