Spaces:
Sleeping
Sleeping
| from smolagents import Tool | |
| from typing import Optional | |
| class TranslateTool(Tool): | |
| name = "google_translate" | |
| description = """ | |
| Translates text from one language to another using the Google Translate API. | |
| Supports a wide range of languages using standard language codes (e.g., 'en' for English, 'fr' for French). | |
| If source_language is not specified, it will be auto-detected. If target_language is not specified, it defaults to English ('en'). | |
| """ | |
| inputs = { | |
| "text": { | |
| "type": "string", | |
| "description": "The text to translate." | |
| }, | |
| "source_language": { | |
| "type": "string", | |
| "description": "The source language code (e.g., 'en' for English, 'fr' for French).", | |
| }, | |
| "target_language": { | |
| "type": "string", | |
| "description": "The target language code (e.g., 'es' for Spanish, 'de' for German).", | |
| } | |
| } | |
| output_type = "string" | |
| async def translate_text(text: str, src: str, dest: str): | |
| """ | |
| Translates text from one language to another using the Google Translate API. | |
| Args: | |
| text (str): The text to translate. | |
| src (str): The source language code. | |
| dest (str): The target language code. | |
| Returns: | |
| str: The translated text. | |
| """ | |
| from googletrans import Translator | |
| async with Translator() as translator: | |
| res = await translator.translate(text, src, dest) | |
| return res | |
| def forward(self, text: str, source_language: str, target_language: str): | |
| import asyncio | |
| try: | |
| translator = Translator() | |
| translation = asyncio.run(translator.translate(text, src=source_language, dest=target_language)) | |
| return translation.text | |
| except Exception as e: | |
| return f"Error: Unable to translate due to {e}" | |