AI Wine Pairing for a Bordeaux Restaurant Group
Designed and built a clickable wine director console for an AI sommelier at a group of six Bordeaux restaurants: guests get pairings only from wines on that restaurant's list and in stock, with the price shown, factual reasons and an alcohol-free option, and every answer can be traced and scored by the sommeliers.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, wine list, wine detail with 7 tabs, the conversation review board and conversation detail with the answer trace panel and a 5-criteria scorecard.
Wine ids from the candidate set, prices from the list entry, the lower-half budget share, an alcohol-free pick, the Loi Evin watch list and the AI notice - each shown as passed or failed in the answer trace.
Client policy: at least half of Pour's picks sit in the lower half of the guest's budget. Each pick is labelled lower half, upper half or above, and the dashboard tracks the share against the target.
In French and English across 6 restaurants, with 26 wines, 13 producers, 14 dishes and 10 pairing rules. Scenarios include a pregnancy mention, an under-18 table, an off-list request and a budget below anything in stock.
Tables du Carrelet has one head sommelier and two sommeliers for six restaurants and a combined list of about 900 wines. On a busy Saturday most tables never see one, and waiters recommend the three wines they know. The list lives in a spreadsheet, the POS and a cellar notebook that disagree, so guests are offered bottles that sold out last week, Coravin bottles are tracked on paper, and nobody can say which recommended wines actually sell.
Pour lets guests ask, in French or English, for a pairing with their dishes and a budget, and answers only with wines on that restaurant's list and in stock, with the price, plain factual reasons and an alcohol-free option. The wine director runs the list, prices and stock from a console, sees what was recommended against what sold, and reviews and scores real conversations with the sommeliers.
An AI sommelier in France has to be accurate about a list that changes every service, honest about price, and careful in how it talks about alcohol, to guests who may not read French or wine vocabulary.
The spreadsheet, the POS and the cellar notebook each held a different version of the list and the stock. Any recommendation, human or AI, was only as good as the least up-to-date of the three.
France's Loi Evin limits alcohol promotion to objective information. Whether an in-restaurant digital list counts as advertising is not settled, so every description has to stay factual: no superlatives, no lifestyle or social claims, no urgency.
Alcohol may not be sold or offered to anyone under 18, venues must offer non-alcoholic drinks, and a guest who mentions pregnancy, driving or medication must get no health advice. Each case needs a fixed, predictable answer, not a model's improvisation.
A language model can name a wine that is not on the list, quote a wrong price or drift towards the most expensive bottle. Pour has to be grounded in the restaurant's own list and fair to the guest's budget, and staff have to be able to check that it was.
Mapped 7 user roles from guest to wine director, 34 screens across the guest app, the staff app and the wine director console, and the data model for wines, list entries with versioned prices, stock, open and Coravin bottles, dishes, pairing rules, guardrail versions, table sessions, answers, sales, reviews and evaluation runs. Wrote down the rules the design follows: the Loi Evin, the sale of alcohol to minors, alcohol-free drinks, price display including tax and service, GDPR and the Loi Informatique et Libertés, CNIL tracker guidance and EU AI Act transparency.
Built the wine director console's 5 key screens on a production dashboard kit: the dashboard with recommended vs sold for the top 10 wines and the price position of picks, the wine list with filters and bulk actions, wine detail with tasting notes, a live Loi Evin check, prices and margins per restaurant and stock movements, the conversation review board, and conversation detail with each answer's picks, rules, guardrail checks and trace. All actions run on local state.
A language model with EU hosting preferred (such as the Anthropic Claude API or Mistral AI), PostgreSQL with pgvector for search, the restaurant POS (such as Zelty, Tiller or Lightspeed Restaurant), cellar stock imports, the INAO appellation list and DeepL translation with human review. Magic-link sign-in for the console and device plus PIN for staff, an append-only audit log, the guest and staff apps, and the remaining console screens: pairing rules, AI guardrails and prompt versions, evaluation sets, stock and sync, pricing and reports.
The model can only pick from the wine ids it is given, and the server rejects any answer that cites anything else. Prices always come from the list entry, never from the model's text, and each answer shows when stock was checked. The demo includes a first draft blocked for grounding and regenerated.
Picks are ordered by fit, not by price, and at least half sit in the lower half of the budget. When nothing in stock fits, Pour says so and shows the nearest options with the price difference. Stretch picks above budget appear only when the guest asks.
A watch list of promotional phrases in French and English is highlighted as tasting notes are written and checked on every answer. A pregnancy mention gets a fixed reply and alcohol-free options without asking the model, and an under-18 table sees alcohol-free wines only.
Conversations are kept 90 days without guest identifiers and reviewed on a board with a weekly random sample. Reviewers score each one on 5 criteria, can add it to an evaluation set or turn it into a pairing rule, and the dashboard shows agreement with the sommeliers' own picks.

Designed and built a clickable QR ordering and service console for a four-venue restaurant group in Phnom Penh: guests order in rounds from a shared table cart and pay by KHQR or card, every price shows in USD and riel, tickets route to the right kitchen station, and managers run the floor and the 86 board from one place.

Designed and built a clickable kitchen display system for a 26-restaurant burger and fried chicken chain in Algeria: every order from the till, kiosks, drive-thru and delivery apps is split into station tickets, timed so the whole order finishes together, paced to the rider and checked at expo before it leaves, with allergy notes that can never be hidden.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab