diff --git a/core/session.py b/core/session.py index 79a73a9..02620e6 100644 --- a/core/session.py +++ b/core/session.py @@ -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(