Back to work

Personal project / Document RAG

Document RAG for my portfolio

An assistant that answered questions about my portfolio from my documents, using ChromaDB on a VPS and a model accessed through an external API.

Current state
Documented prototype / interface removed
Technologies
Astro / Node.js / ChromaDB / API LLM

A concise view of a question moving through retrieval to a contextualised, sourced answer.

Context

I integrated this assistant into an earlier version of my portfolio so visitors could ask about my projects and Markdown notes without opening every page.

After local trials with Ollama, I kept retrieval on the VPS and moved generation to an external API.

How it worked

The system had two stages: preparing the documents, then retrieving relevant passages for each question.

RAG pipeline: leopalich.com, embeddings, ChromaDB, chunks, prompt, LLM API and a chat interface, connected to the user's question.

Pipeline of the former portfolio RAG assistant.

Retrieval on the VPS, followed by generation through an external API.

Indexing

Markdown files were split into passages, converted into embeddings and indexed in ChromaDB. This preparation happened before queries were processed.

ChromaDB ran in Docker on a Linux VPS.

Corpus indexing flow: Markdown files, passage chunking, embeddings, then storage in ChromaDB running with Docker on a Linux VPS.

Preparing the Markdown corpus before queries: passages, embeddings and storage in ChromaDB.

Query

Node.js received the question and retrieved relevant passages from ChromaDB. It assembled a prompt with that context for the model called through the external API. The Astro interface then displayed the answer progressively.

Components

Interface
Astro
Corpus
Markdown
Orchestration
Node.js
Retrieval
ChromaDB
Generation
Model via external API
Infrastructure
Docker / Linux VPS for ChromaDB

Limitations

No quantitative measurements of quality, latency or coverage are available for this prototype.

Areas to evaluate

  • corpus freshness and traceability;
  • retrieval evaluation with representative questions;
  • access control for non-public documents;
  • source presentation and explicit handling of uncertainty.
Back to work