From 658a2625dadf7a6ed03f034f7c0dae1c3d19c90c Mon Sep 17 00:00:00 2001 From: MAHaines Date: Mon, 14 Jul 2025 14:43:13 -0500 Subject: [PATCH] Update file --- services/translator/src/api.py | 43 ++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/services/translator/src/api.py b/services/translator/src/api.py index 874a399..2886c14 100644 --- a/services/translator/src/api.py +++ b/services/translator/src/api.py @@ -1,20 +1,23 @@ - async def translate_with_free_google(self, text: str, source_lang: str, target_lang: str) -> Optional[str]: - """Translate using free Google Translate (no API key required)""" - try: - if not self.free_google_translator: - return None - - # Use the free Google Translate service - result = self.free_google_translator.translate(text, dest=target_lang, src=source_lang) - - if result and result.text and result.text != text: - return result.text.strip() - - return None - - except Exception as e: - logger.error("Error in free Google translation", - error=str(e), source=source_lang, target=target_lang) - return None - - async def translate_with_argos(self, text: str, source_lang: str, target_lang: str) -> Optional[str]: \ No newline at end of file + # Strategy 1: Try local NLLB model first (best quality) + if self.nllb_model: + translated_text = await self.translate_with_nllb(text, source_lang, target_lang) + if translated_text: + service_used = "nllb_local" + + # Strategy 2: Try free Google Translate (excellent quality, no API key) + if not translated_text: + translated_text = await self.translate_with_free_google(text, source_lang, target_lang) + if translated_text: + service_used = "google_free" + + # Strategy 3: Try Argos Translate (offline backup) + if not translated_text: + translated_text = await self.translate_with_argos(text, source_lang, target_lang) + if translated_text: + service_used = "argos_offline" + + # Strategy 4: Try MyMemory API (free online backup) + if not translated_text: + translated_text = await self.translate_with_mymemory(text, source_lang, target_lang) + if translated_text: + service_used = "mymemory_free" \ No newline at end of file