40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package dialogue
|
||
|
||
import (
|
||
"strings"
|
||
|
||
"ai-operator/internal/dialogue/language"
|
||
"ai-operator/internal/dialogue/state"
|
||
)
|
||
|
||
func inferLanguageFromText(text string) state.Language {
|
||
n := language.Normalize(text)
|
||
if n == "" {
|
||
return state.LanguageRU
|
||
}
|
||
kkSignals := []string{"қ", "ә", "ө", "ү", "ұ", "ң", "ғ", "і", "һ", "сәлем", "қалай", "көмек", "құны", "мекенжай", "байланыс", "облыс", "қала", "қазақша"}
|
||
for _, sig := range kkSignals {
|
||
if strings.Contains(n, sig) {
|
||
return state.LanguageKK
|
||
}
|
||
}
|
||
return state.LanguageRU
|
||
}
|
||
|
||
func isRegionRequiredQuery(query string) bool {
|
||
n := language.Normalize(query)
|
||
if n == "" {
|
||
return false
|
||
}
|
||
phrases := []string{
|
||
"филиал", "адрес", "контакт", "контакты", "где находится", "куда обратиться", "город", "область", "регион",
|
||
"мекенжай", "байланыс", "қайда жүгіну", "қайда орналасқан", "қала", "облыс", "аймақ", "өңір",
|
||
}
|
||
for _, p := range phrases {
|
||
if strings.Contains(n, language.Normalize(p)) {
|
||
return true
|
||
}
|
||
}
|
||
return false
|
||
}
|