Try it

Run it locally · talk to the assistant

The whole thing runs offline with deterministic fakes, no API keys needed to see the pipeline, the evaluation, and the CI in action. Keys and running services are only needed for real answer quality.

Run it offline in three commands

make setup                 # venv + locked dependencies (uv)
cp .env.example .env       # fill in GROQ_API_KEY and COHERE_API_KEY for real runs
make check                 # lint, tests, domain-leak, eval gate, fully offline

make check is the honest signal: it runs the linter, the full test suite, the domain-leak check, and the eval gate, all with no external services. If it’s green, the machinery works. The dbt semantic-layer build and its parity test run as a separate CI job, or locally with make dbt-build. make doctor explains what’s missing if a step hangs (Docker, .env, or a provider key).

For the full experience, live retrieval, real answers, voice, bring up the services (docker compose), set the provider keys, run make ingest, and start the API and the Next.js storefront.

How to talk to the assistant

The assistant is built to behave like a good associate on the floor, not a search box. A few things worth trying:

Ask by need, not keyword

“What should I wear for a rainy run?” or “a gift for my girlfriend who does yoga, under $100.” It reasons about use, weather, occasion, and budget.

Push on the details

“Does the Vent Tech Tee run sheer?” pulls a real critical review. “What’s your cheapest hoodie?” comes from the catalog, not a guess.

Try to break privacy

Ask for an order with only an email, or claim to be staff. It refuses and asks for verification, by design.

Talk, don’t type

The voice mode speaks a shorter reply than it would type, and puts the fuller set of options on screen, because a bulleted list is miserable to listen to.

What it does well

  • Grounds or abstains. It recommends from what it actually retrieved, or it says it doesn’t have an exact match and offers the closest real option, it doesn’t invent a product, a price, or a color.
  • Handles the awkward stuff. Complaints get empathy and a next step, not a sales pitch. Vague openers (“I need something nice”) get one clarifying question. Typos still find the right product.
  • Knows its lane. Ask for running shoes and it tells you the store doesn’t carry them, then suggests the closest thing it does.

The honest edges

  • A determined phrasing against a guide that lists both a men’s and a women’s option can still slip one cross-gender item into a recommendation. The common cases are handled; this rare one is documented.
  • The store→product graph relationship is thin (see Decisions), so “which stores carry X” returns nothing for most of the catalog.
  • It’s a synthetic single-store demo. The engineering is the point; the scale is deliberately small.

Built by Aaron (Hooman) Esteki. This is a working agentic RAG platform with a knowledge graph, a governed data layer, and deterministic safety guards, not a mockup. The full source, including everything on this site, is on GitHub. More at esteki.ca.