Technical project
LangThang AI — tour advisory chatbot
A retrieval-grounded tour advisor for the Vietnamese market, built to test a two-layer NLU design: deterministic rules first, the language model only where the rules run out.
What this is, plainly
LangThang AI is a retrieval-grounded tour advisory chatbot for the Vietnamese market, built as a technical project. It is in active development: not launched, not a commercial product, and not a service EthanCorp currently offers. It is on this site because of what it demonstrates, not because it is for sale.
The design question
Conversational advisory systems tend to route everything through the language model because that is the easy architecture. It is also expensive, slower than it needs to be, and unpredictable in exactly the places where predictability matters — dates, budgets, group sizes and availability.
The question this project tests is how much of a real advisory conversation can be handled deterministically, and whether restricting the model to genuine ambiguity produces a better system rather than just a cheaper one.
Constraints
- Vietnamese-language conversation, where off-the-shelf intent tooling is weaker than in English.
- Recommendations must come from real listings — an invented tour is a failure, not a hallucination to be tolerated.
- Hard constraints such as dates, budget and group size are non-negotiable and should never be treated as soft ranking signals.
- The system must not attempt to close a sale; it qualifies and hands off.
Approach
Two-layer NLU. A deterministic rule layer handles clear intents; only ambiguous messages fall through to the model. This keeps latency and cost down, and — more importantly — makes the common path testable.
Structured filtering before vector search. Dates, budget and group size are applied as SQL filters first, so the vector search only ever ranks candidates that already satisfy the hard constraints. Semantic similarity decides which valid option fits best; it never decides whether an option is valid.
Explicit conversation state across four stages — explore, narrow, qualify, hand off. Tracking state explicitly rather than inferring it from history is what makes the closing flow controllable and what makes it testable. 96 backend unit and integration tests cover the rule layer, the filter logic and the state transitions.
Current status
In active development. There is no public launch date, no commercial offering attached to it, and no claim here about production usage — because there is not any yet. When that changes, this page changes.
Outcome
The measured result.
Lessons
What I would tell the next client.
- Rules first is not a compromise. It is faster, cheaper, testable, and it makes the model's job narrow enough to do well.
- Filter on hard constraints before you rank on similarity. Semantic search is very good at confidently ranking something that should never have been a candidate.
- Explicit state beats inferred state. A conversation you can assert about in a test is a conversation you can change safely.
Have a data, analytics or automation problem that should not need another workaround?
Tell me what is breaking and what you have already tried. If EthanCorp is not the right fit, I will say so and point you somewhere better.
- Response time
- Within two business days
- dattran.bi@gmail.com
- Based in
- Ho Chi Minh City, Vietnam — working across Asia and remote