Add flight-booking community ability#209
Add flight-booking community ability#209hassan1731996 wants to merge 8 commits intoopenhome-dev:devfrom
Conversation
🔀 Branch Merge CheckPR direction: ✅ Passed — |
✅ Community PR Path Check — PassedAll changed files are inside the |
✅ Ability Validation Passed |
🔍 Lint Results✅
|
|
Really good work — the Duffel integration is clean, the retry loops are well-structured, and using LLM extraction on the trigger utterance is exactly the right pattern. Notes below are about hardening the voice layer; the core logic is in good shape. Please review this and apply the changes so the conversation flow looks natural.Replace hardcoded word lists with LLM classifiersSeveral
24-hour times in
|
…mbined pax prompt
|
uzair401
left a comment
There was a problem hiding this comment.
Hey, great work on this — the flight selection flow is much improved and delivers a solid voice experience overall!
A couple of things still need attention before this can be approved:
-
Passenger details collection — the fallback chain can hit up to 6 sequential one-by-one prompts if the combined extraction misses fields. On a voice device this feels robotic and form-like. Consider collapsing the fallbacks into a maximum of 2 prompts (name + DOB in one, email + phone in another) and letting the LLM extract from each. The current approach works when STT is clean but breaks down quickly when it isn't.
-
No exit path in the flow — if the user says "never mind", "forget it", or "cancel" at any point during passenger details or the search loop, the ability has no way to detect it and exits uncleanly. Add an LLM-based exit check after each
run_io_loopresponse. -
Confirmation step needs a change path — right now
run_confirmation_looponly gives the user yes or no. If the user wants to change something at confirmation (e.g. wrong date, wrong passenger name), there's no way to do that — it either books or cancels. Consider replacingrun_confirmation_loopwith arun_io_loopand routing the response through the LLM so the user can confirm, cancel, or request a specific change.
The rest of the flow is clean — nice job on the progressive offer reveal and the retry logic!
…rmation change routing, 12h times
|
Hi — thanks for the detailed feedback! All three points addressed plus a few improvements in the same commit: Reviewer-requested:
In anticipation of this:
Let me know if anything else needs adjusting! |
…rds, retry, README
|
Another round of improvements pushed: Correctness fixes:
Performance:
Voice UX:
Reliability:
README:
|
What This Ability Does
Search and book flights entirely by voice using the Duffel API. Supports one-way and round-trip searches, reads back up to 3 options, collects passenger details, and creates a hold booking (pay-later — no payment by voice).
Checklist
community/flight-booking/MatchingCapabilitywith#{{register capability}}tagresume_normal_flow()called on every exit pathprint()statements (useseditor_logging_handler)duffel_test_YOUR_KEY_HERE)Setup Required
duffel_test_YOUR_KEY_HEREinmain.pywith your tokenTesting
Tested end-to-end in OpenHome Live Editor:
_parse_phone)_normalize_city_name)