Route travel searches to current sources #293

Merged
m merged 2 commits from codex/chat-semantic-inventory into main 2026-08-24 23:09:33 +00:00
2 changed files with 3 additions and 2 deletions
+2 -1
View File
@@ -479,7 +479,8 @@ func sourceDependentQuestion(primary, secondary interaction.SpeechAct, tokens []
currentCue := containsStemInTokens(tokens, "сейчас", "сегодня", "текущ", "актуаль", "последн", "прямо")
observedStateCue := containsStemInTokens(tokens, "погод", "температур", "осад", "ветер", "курс", "цен", "стоим", "новост", "распис", "событ", "статус", "доступен", "работает", "запущен", "срок") || approximateToken(tokens, "погод", 2)
placeSearchCue := containsStemInTokens(tokens, "ресторан", "кафе", "отел", "магаз", "мест", "ближ", "адрес", "организац")
return currentCue || observedStateCue || placeSearchCue
travelSearchCue := containsStemInTokens(tokens, "билет", "рейс", "поезд", "автобус", "перелет", "перелёт", "отправлен", "прибыт")
return currentCue || observedStateCue || placeSearchCue || travelSearchCue
}
// approximateToken catches ordinary keyboard slips without turning routing
+1 -1
View File
@@ -155,7 +155,7 @@ func TestSourceDependentQuestionRequestsWebResearchWithoutEntityBranch(t *testin
}
func TestSourceDependentQuestionToleratesTyposAndPlaceSearch(t *testing.T) {
for _, message := range []string{"какая пугода в Сочи", "найди ближайший ресторан в Сочи"} {
for _, message := range []string{"какая пугода в Сочи", "найди ближайший ресторан в Сочи", "найди билеты до Ялты"} {
candidate := BuildDeterministicCandidate(message, "", time.Unix(10, 0).UnixMilli())
seen := false
for _, hint := range candidate.CapabilityHints {