medichaid/docker_svc/agent/app/libs/manage_languages.py

37 lines
1.2 KiB
Python
Raw Normal View History

2025-07-10 01:43:01 +02:00
# libs/manage_languages.py
from langdetect import detect
from fastapi import HTTPException
import logging
logger = logging.getLogger(__name__)
def validate_language(language: str) -> None:
"""Validate the language parameter. Throws an HTTPException if the language is invalid."""
valid_languages = {"french", "italian", "english", "german", "auto"}
if language not in valid_languages:
raise HTTPException(
status_code=400,
detail="Invalid language. Must be one of: french, italian, english, german, or auto"
)
def detect_language(current_message: str) -> str:
"""Detect the language of the current message. Defaults to French if detection fails."""
try:
detected_lang = detect(current_message)
if detected_lang == "fr":
language = "french"
elif detected_lang == "it":
language = "italian"
elif detected_lang == "en":
language = "english"
elif detected_lang == "de":
language = "german"
else:
language = "french"
logger.info(f"Detected language: {language}")
return language
except Exception as e:
logger.error(f"Language detection failed: {str(e)}")
return "french"