The House Somm / Case Study 001

What a working AI sommelier actually takes

I built one and put it on a live site, so I could show the work instead of describing it. Here is what it does, how it is built to fail safely, and how I measure whether a version of it would earn its place in your business.

01 / The problem

The problem it is built around

Most AI a restaurant is offered can hold a wine list and answer a question. That is the easy ninety percent, and it is not where the value or the damage lives.

The hard ten percent is judgment. Knowing that a guest who says "I am not drinking tonight" has made a statement, not a request. Knowing that a guest who is not drinking should be offered the same care as one who is, not fewer options and a shrug. Knowing when the honest answer is "I do not know, let me get someone." Those are the moments a real sommelier is paid for, and they are exactly the moments a generic chatbot gets wrong.

So I did not build a chatbot that knows about wine. I built an assistant with a sommelier's judgment encoded as rules it cannot break, and then I tried to make it fail so I could see where it would.

02 / The build

What it is

The House Somm is a live AI sommelier running on a demonstration restaurant, a fictional venue called The Aster Room. It reads what a guest is actually asking for, holds a real by-the-glass list with real prices, answers pairing questions itself instead of deferring, and speaks native English and Chinese.

It is a demonstration, not a client's system. The venue is invented and it has no real guests. That is deliberate: it lets me show exactly how the thing is built without putting anyone's business on display. What you are looking at is the method, not a customer.

03 / The standard

The three tests it has to pass

I hold every version of this to three behaviours. Each one is a place a lesser system fails, and each is checked on every build, in both languages.

Test 01

It reads the guest

Ask it what to drink with the duck and it leads with the dish, then names three specific wines at three real prices: an honest lower option, its recommendation, and one step up. Never a vague gesture at a region.

But tell it "I am not drinking tonight" and it does something most systems cannot: nothing it was not asked for. It acknowledges you, lets you know the zero proof list is made with real care, and asks what you are eating. It does not fire three recommendations at someone who just declined. A statement is not a request, and pushing drinks at a guest who said no is the exact opposite of service.

Test 02

It treats the non-drinking guest as a full guest

When a guest is not drinking, the system offers the same number of options, the same specificity, and the same reasoning it would offer a drinker. An earlier version quietly gave non-drinkers fewer choices. Nobody designed that; it emerged, and it encoded the second-class treatment sober and pregnant and driving guests already get in most rooms. Catching and fixing that took longer than building the wine logic. It is the part a guest would actually feel.

Test 03

It knows the edge of what it knows

Every system meets a question it cannot answer. What it does then is the whole test. This one says plainly when something is not on the list, offers the closest real thing, and hands allergies, complaints, and anything with real stakes to a human immediately. It does not invent a price or a policy to seem helpful, and it does not defer the easy things it should simply answer. Confident invention is the single worst failure mode in this product, so it is the one I build hardest against.

04 / The measure

How I measure whether it earns

This is the part almost everyone selling AI skips, and it is the reason most of these projects cannot tell you whether they worked.

The system logs what it does, with no guest messages stored and session identifiers hashed, so the numbers are real rather than asserted. It reports two honest things: whether it held the standard, and what it resolved without a person. Questions answered before service. Inquiries handled without staff time, counted conservatively so the number is one you could audit and find understated. A price accuracy check that runs on every reply, in every language, because a misquoted price is an argument at the table.

And it reports a third thing that matters more than either: what it refuses to claim.

05 / The boundary

What it refuses to claim

It does not claim it lifted revenue. Without a proper control period, nobody can prove a tool on a website caused a bigger check, because guest mix, season, menu, and weather all move that number. It does not claim it saved covers. It does not count usage as value, because a thousand conversations that resolved nothing is a cost, not a saving.

What it claims is narrow and true: inquiries resolved without staff time, at a standard you can read for yourself. I would rather hand an operator a small honest number than a large invented one, because the small honest number is the one that survives contact with their accountant.

06 / Try the work

See it yourself

The fastest way to understand it is to try to break it, the way I did.

Ask it what to drink with the duck. Then tell it you are not drinking tonight. Then ask it something that is not on the list. It will show you the judgment in about thirty seconds, which is the whole point: you should not have to take my word for any of this.

This is a demonstration of how I build. If you want to know what the same method would find in your business, that is what the Service Audit is for.