Extractor Pod — black-box overview
One AI reading per turn, wrapped in deterministic code that re-checks every number and date before it can reach a quotation. A guest's WhatsApp message goes in on the left; a structured booking and a safe reply come out on the right. Section 2 opens the box, node by node.
What the pipeline consumes
Everything that reaches the pipeline before a single model call is made.
-
Guest WhatsApp messageFree text, written however a real guest writes — English, Vietnamese or Chinese
-
Conversation historyThe whole transcript, re-sent every turn — no incremental state to drift
-
Manila date"This Saturday" is resolved in code against Asia/Manila, never taken from the model
-
Trip JSON schema18 fields generated from the zod contract — the only shape the model may answer in
-
House normsExactly 4 fields may be defaulted — meals, transport, rooms, language
-
Provider configOne env var picks the model — swapping vendors is not a code change
What runs inside
What is really wired today — measured from the source, not the roadmap.
What user receive
Three things per turn, each mapped to the stage that produced it.
TripStructured booking .json
18 fields, each carrying a state and — where it claims the guest said it — the verbatim quote it came from. This is what the pricing step consumes.
ReplyGuest-facing message whatsapp
Facts come from the code-verified Trip; the wording is then written by the model in a concierge voice, under guardrails that forbid quoting a price or confirming a booking. If that call fails or times out, the deterministic template is sent instead — the guest is never left waiting.
OpenWhat is still missing []
The remaining fields in priority order. Empty means the enquiry is complete and a human takes it from there — nothing is booked automatically.
Inside the workflow — stage by stage
Five phases, left to right, for one guest message. Everything orange is a model call; everything green is code that checks the model's work. Hover a node (screen) or read the callout (print) for its full detail card.