Avoid Russian lock during name capture
This commit is contained in:
+19
-2
@@ -304,6 +304,19 @@ def _detect_preferred_session_language(text: str) -> str | None:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
def _detect_name_collection_language(text: str) -> str | None:
|
||||
normalized = str(text or "").strip().lower()
|
||||
if not normalized:
|
||||
return None
|
||||
preferred_language = _detect_preferred_session_language(normalized)
|
||||
if preferred_language:
|
||||
return preferred_language
|
||||
if any(ch in _KAZAKH_SPECIFIC_LETTERS for ch in normalized):
|
||||
return "kk"
|
||||
return None
|
||||
|
||||
def _detect_session_language(text: str) -> str | None:
|
||||
normalized = str(text or "").strip().lower()
|
||||
if not normalized:
|
||||
@@ -1375,7 +1388,11 @@ class CallSession:
|
||||
self._active_user_transcript = transcript
|
||||
|
||||
if self._session_language is None:
|
||||
detected_language = _detect_session_language(transcript)
|
||||
detected_language = (
|
||||
_detect_name_collection_language(transcript)
|
||||
if self._awaiting_customer_name
|
||||
else _detect_session_language(transcript)
|
||||
)
|
||||
if detected_language:
|
||||
self._session_language = detected_language
|
||||
LOGGER.info(
|
||||
@@ -1738,7 +1755,7 @@ class CallSession:
|
||||
if not self._awaiting_customer_name:
|
||||
return None
|
||||
if self._session_language is None:
|
||||
detected_language = _detect_session_language(transcript)
|
||||
detected_language = _detect_name_collection_language(transcript)
|
||||
if detected_language:
|
||||
self._session_language = detected_language
|
||||
LOGGER.info(
|
||||
|
||||
Reference in New Issue
Block a user