Select latest relevant local search goal #323
@@ -75,17 +75,19 @@ func ContinueLocalSearch(message string, history []interaction.HumanUtterance) s
|
||||
}
|
||||
var latest *interaction.HumanUtterance
|
||||
for index := range history {
|
||||
if latest == nil || history[index].ReceivedAtUnixMillis > latest.ReceivedAtUnixMillis {
|
||||
candidate := history[index]
|
||||
candidate := history[index]
|
||||
candidateText := strings.TrimSpace(StripAssistantVocative(candidate.Content))
|
||||
candidateTokens := semanticTokens(candidateText)
|
||||
if !containsStemInTokens(candidateTokens, "ресторан", "кафе") || !containsStemInTokens(candidateTokens, "ближ", "рядом") {
|
||||
continue
|
||||
}
|
||||
if latest == nil || candidate.ReceivedAtUnixMillis > latest.ReceivedAtUnixMillis {
|
||||
latest = &candidate
|
||||
}
|
||||
}
|
||||
if latest != nil {
|
||||
previous := strings.TrimSpace(StripAssistantVocative(latest.Content))
|
||||
previousTokens := semanticTokens(previous)
|
||||
if containsStemInTokens(previousTokens, "ресторан", "кафе") && containsStemInTokens(previousTokens, "ближ", "рядом") {
|
||||
return strings.TrimSpace(previous + " " + current)
|
||||
}
|
||||
return strings.TrimSpace(previous + " " + current)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user