Read the full writeup →

Retrieval-augmented, cited, free

Wine Sommelier RAG

Ask for a wine in plain English and get real recommendations, cited to professional reviews. Drawn from a local index of ~130,000 Wine Enthusiast tastings. No invented bottles, no made-up scores.

By Jeremy Lee · WSET Level 3

You
A bold, full-bodied red for a steak dinner, not too expensive.
Somm
For a wine to stand up to steak you want power and dark tannins. Mouchão 2007, Alentejano: 95 pts, $36 [4]: dense and concentrated with big dark fruit and a rustic grip that loves charred, fatty beef. Great value for this level of heft.

Why RAG?

Wine search is either rigid keyword filters: useless for "something like a Rhône but cheaper", or a chatbot that confidently invents vintages, scores and prices. Retrieval-augmented generation gets the best of both: a semantic index retrieves the most relevant real reviews, then Claude recommends only from what was retrieved, citing every pick. If nothing truly fits, it says so.

130k real reviews

Grounded in the Wine Enthusiast corpus: actual tasting notes, scores, prices and regions.

Grounded & cited

Every recommendation carries a [n] citation back to the review it came from. No hallucinated bottles.

Free & local

Embeddings and vector search run on your machine with sentence-transformers + Chroma: no API key, no data leaves your laptop.

Filters that compose

Layer price, country, grape and minimum score onto any natural-language request.

How it works

  1. Your request is embedded locally and matched against the review index (cosine similarity in Chroma).
  2. Candidates are filtered by any price / country / variety / score constraints, then reranked by relevance × rating.
  3. The top reviews become context; Claude recommends 2–3 wines, citing each one.
  4. You see the answer plus the exact reviews it was built from.
Under the hood: generation runs on the Claude CLI by default (uses your Claude subscription, no per-token cost); set ANTHROPIC_API_KEY to use the API instead. Retrieval is always local and free.
Get it on GitHub Read the setup guide