In production

Bảo Bối — Voice Ordering Assistant

A cat that takes your coffee order by voice.

  • LiveKit
  • Voice
  • Go
Screenshot of the ordering assistant recommending drinks in a chat conversation
Chat recommendation
Client
F&B and AI-commerce company
Timeline
May 2026 – Present
Role
Backend & AI Engineer
Outcome
Ran in a real café

About the project

A cat-mascot assistant for an F&B and AI-commerce company that suggests drinks by mood, takes the order by chat or voice (LiveKit), pushes it to the café's POS and returns a VietQR to pay. Version 1 ran in the café, with a loop that turns bad replies into scenarios staff can approve and a watchdog added after a silent LiveKit outage. Version 2 rebuilds it for many shops: a Go core, per-shop isolation with PostgreSQL row-level security and a Python LiveKit agent. May 2026 – Present.

The problem

A café wanted customers to order by talking, without waiting for staff at peak hours. A voice assistant in a real shop has to be friendly, get the order right, hand it to the till and take payment, and keep working when nobody is watching it.

What I built

Bảo Bối is a cat-mascot ordering assistant for an F&B and AI-commerce company, where I work as Backend & AI Engineer on contract since May 2026. I built the ordering flow end to end:

  • Chat and real-time voice — speech-to-text and text-to-speech over LiveKit, so customers can type or simply talk.
  • Drink suggestions by mood — the assistant recommends drinks from how the customer feels.
  • Order dispatch — the cart is pushed to the café's POS, and the customer gets a VietQR code to pay.
  • A review loop — bad replies are turned into scenarios that staff can approve, so the assistant improves from real conversations.
  • A self-healing watchdog — added after a LiveKit outage went unnoticed for two weeks, plus an admin page that checks every service the assistant depends on.

How it works

Version 1 runs in the café. The customer talks to Bảo Bối on a tablet or phone; the LiveKit agent turns speech into text, the assistant builds the order, and the backend sends it to the POS and returns a VietQR. The watchdog restarts what has stopped instead of waiting for someone to notice.

Version 2 rebuilds it for many shops: a Go core with per-shop isolation through PostgreSQL row-level security, a Python LiveKit agent, and safe fallbacks when Redis is down. Each shop only ever sees its own data, enforced by the database rather than by application code alone.

Outcome

Bảo Bối ran in a real café, taking orders by chat and voice and handing them to the POS with payment by VietQR. Version 2, the multi-shop rebuild, is the current work.

Stack

  • LiveKit (speech-to-text, text-to-speech) with a Python agent
  • Go core service
  • PostgreSQL with row-level security, Redis
  • VietQR payment

Screens

Screenshot of the cat mascot voice assistant taking an order on a tablet

Mobile voice agent

Screenshot of the voice ordering assistant on desktop

Desktop experience

Screenshot of the cart the assistant fills and sends to the café's ordering system

Order dispatch

Screenshot of the admin page checking every service the assistant depends on

Admin system health

Stack & links

STACK

  • LiveKit
  • Go
  • Python
  • PostgreSQL RLS
  • VietQR

DOMAIN

F&B

IMPACT

Ran in a real café

NEXT PROJECTAdmissions Chatbot & Advisor Cockpit

Let's talk

I usually reply within 1–2 days (GMT+7).

Topic (optional)

At least 10 characters.

or email me at [email protected]