├── wsgi.py ├── requirements.txt ├── vercel.json ├── LICENSE ├── .gitignore ├── response.txt ├── README.md ├── main.py └── test.py /wsgi.py: -------------------------------------------------------------------------------- 1 | from main import app 2 | 3 | if __name__ == "__main__": 4 | app.run() -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/K-Jadeja/langAPI/main/requirements.txt -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "wsgi.py", 6 | "use": "@vercel/python" 7 | } 8 | ], 9 | "routes": [ 10 | { 11 | "src": "/(.*)", 12 | "dest": "wsgi.py" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Krishnasinh Jadeja 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.toptal.com/developers/gitignore/api/python 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=python 4 | 5 | ### Python ### 6 | # Byte-compiled / optimized / DLL files 7 | __pycache__/ 8 | *.py[cod] 9 | *$py.class 10 | 11 | # C extensions 12 | *.so 13 | 14 | # Distribution / packaging 15 | .Python 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | downloads/ 20 | eggs/ 21 | .eggs/ 22 | lib/ 23 | lib64/ 24 | parts/ 25 | sdist/ 26 | var/ 27 | wheels/ 28 | pip-wheel-metadata/ 29 | share/python-wheels/ 30 | *.egg-info/ 31 | .installed.cfg 32 | *.egg 33 | MANIFEST 34 | 35 | # PyInstaller 36 | # Usually these files are written by a python script from a template 37 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 38 | *.manifest 39 | *.spec 40 | 41 | # Installer logs 42 | pip-log.txt 43 | pip-delete-this-directory.txt 44 | 45 | # Unit test / coverage reports 46 | htmlcov/ 47 | .tox/ 48 | .nox/ 49 | .coveage 50 | .coverage.* 51 | .cache 52 | nosetests.xml 53 | coverage.xml 54 | *.cover 55 | *.py,cover 56 | .hypothesis/ 57 | .pytest_cache/ 58 | pytestdebug.log 59 | 60 | # Translations 61 | *.mo 62 | *.pot 63 | 64 | # Django stuff: 65 | *.log 66 | local_settings.py 67 | db.sqlite3 68 | db.sqlite3-journal 69 | 70 | # Flask stuff: 71 | instance/ 72 | .webassets-cache 73 | 74 | # Scrapy stuff: 75 | .scrapy 76 | 77 | # Sphinx documentation 78 | docs/_build/ 79 | doc/_build/ 80 | 81 | # PyBuilder 82 | target/ 83 | 84 | # Jupyter Notebook 85 | .ipynb_checkpoints 86 | 87 | # IPython 88 | profile_default/ 89 | ipython_config.py 90 | 91 | # pyenv 92 | .python-version 93 | 94 | # pipenv 95 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 96 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 97 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 98 | # install all needed dependencies. 99 | #Pipfile.lock 100 | 101 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 102 | __pypackages__/ 103 | 104 | # Celery stuff 105 | celerybeat-schedule 106 | celerybeat.pid 107 | 108 | # SageMath parsed files 109 | *.sage.py 110 | 111 | # Environments 112 | .env 113 | .nyayenv 114 | env/ 115 | venv/ 116 | ENV/ 117 | env.bak/ 118 | venv.bak/ 119 | pythonenv* 120 | 121 | # Spyder project settings 122 | .spyderproject 123 | .spyproject 124 | 125 | # Rope project settings 126 | .ropeproject 127 | 128 | # mkdocs documentation 129 | /site 130 | 131 | # mypy 132 | .mypy_cache/ 133 | .dmypy.json 134 | dmypy.json 135 | 136 | # Pyre type checker 137 | .pyre/ 138 | 139 | # pytype static type analyzer 140 | .pytype/ 141 | 142 | # profiling data 143 | .prof 144 | 145 | # Virtualenv 146 | # http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ 147 | .Python 148 | [Bb]in 149 | [Ii]nclude 150 | [Ll]ib 151 | [Ll]ib64 152 | [Ll]ocal 153 | [Ss]cripts 154 | pyvenv.cfg 155 | .venv 156 | pip-selfcheck.json 157 | 158 | 159 | # End of https://www.toptal.com/developers/gitignore/api/python 160 | -------------------------------------------------------------------------------- /response.txt: -------------------------------------------------------------------------------- 1 | { 2 | "detected_language": "es", 3 | "translated_text": "Below are some events available for booking:\n\nGovernment Museum Chennai\n\nType: Museum\nHistory: Founded in 1851, it is the second oldest museum in India and has a rich collection of artifacts.\nEntry Fee: \u20b950\nEvent Start: 12 September 2024, 09:00\nEvent End: 12 September 2024, 17:00\nCHILDREN'S MUSEUM\n\nType: Museum\nHistory: Founded in 1997 to educate children through interactive exhibits.\nTicket Price: \u20b930\nEvent Start: 13 September 2024, 10:00 AM\nEvent End: 13 September 2024, 4:00 PM\nDR. ARUN'S MUSEUM OF PHOTOGRAPHY AND VINTAGE CAMERAS\n\nType: Museum\nHistory: Showcases the evolution of photography with over 1500 vintage cameras.\nTicket Price: \u20b940\nEvent Start: 14 September 2024, 9:30 AM\nChennai Railway Museum\n\nType: Museum\nHistory: Showcases the rich heritage of Indian Railways with vintage locomotives and artefacts.\nTicket Price: \u20b950\nEvent Start: 15 September 2024, 10:00 AM\nEvent End: 15 September 2024, 6:00 PM\nVivekananda House\n\nType: Museum\nHistory: Dedicated to the life and teachings of Swami Vivekananda.\nTicket Price: \u20b960\nEvent Start: 16 September 2024, 9:00 AM\nEvent End: 16 September 2024, 5:00 PM\nFort St. George Museum\n\nType: Museum\nHistory: Houses artifacts from the colonial period inside the first British fort in India.\nTicket Price: \u20b960\nEvent Start: 17 September 2024, 09:00\nEvent End: 17 September 2024, 17:00\nNational Art Gallery, Chennai\n\nType: Museum\nHistory: Displays paintings from various art schools in India in a Victorian-style building.\nTicket Price: \u20b920\nEvent Start: 18 September 2024, 10:00\nEvent End: 18 September 2024, 16:00\nArt Through Time\n\nType: Exhibition\nHistory: Travel through history with famous paintings from different time periods.\nTicket Price: \u20b9250\nEvent Start: 20 September 2024, 11:00 AM\nEvent End: 20 September 2024, 5:00 PM\nWonders of Science\n\nType: Exhibition\nStory: Fun science adventure with experiments and interactive exhibits.\nTicket Price: \u20b9300\nEvent Start: 21 September 2024, 10:00 AM\nEvent End: 21 September 2024, 4:00 PM\nAncient Treasures\n\nType: Exhibition\nStory: Discover amazing artifacts from ancient civilizations.\nTicket Price: \u20b9200\nEvent Start: 22nd September 2024, 09:30\nEvent End: 22nd September 2024, 17:30\nPlease let me know which event Krishna would like to attend and how many tickets are needed. \nEvent End: 18th September 2024, 16:00\nArt Through Time\n\nType: Exhibition\nHistory: Travel through history with famous paintings from different time periods.\nTicket Price: \u20b9250\nEvent Start: 20th September 2024, 11:00\nEvent End: 20th September 2024, 17:00\nWonders of Science\n\nType: Exhibition\nHistory: Fun science adventure with interactive experiments and exhibits.\nTicket Price: \u20b9300\nEvent Start: 21st September 2024, 10:00 AM\nEvent End: 21st September 2024, 4:00 PM\nAncient Treasures\n\nType: Exhibition\nHistory: Discover amazing artifacts from ancient civilizations.\nTicket Price: \u20b9200\nEvent Start: 22nd September 2024, 9:30 AM\nEvent End: 22nd September 2024, 5:30 PM\nPlease let me know which event Krishna would like to attend and how many tickets are needed.\nEvent End: 18th September 2024, 4:00 PM\nArt Through Time\n\nType: Exhibition\nHistory: Travel through history with famous paintings from different time periods.\nTicket Price: \u20b9250\nEvent Start: 20 September 2024, 11:00 AM\nEvent End: 20 September 2024, 5:00 PM\nWonders of Science\n\nType: Exhibition\nStory: Fun science adventure with experiments and interactive exhibits.\nTicket Price: \u20b9300\nEvent Start: 21 September 2024, 10:00 AM\nEvent End: 21 September 2024, 4:00 PM\nAncient Treasures\n\nType: Exhibition\nStory: Discover amazing artifacts from ancient civilizations.\nTicket Price: \u20b9200\nEvent Start: 22nd September 2024, 09:30\nEvent End: 22nd September 2024, 17:30\nPlease let me know which event Krishna would like to attend and how many tickets are needed." 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LangAPI Documentation 2 | 3 | Base URL: `https://one-lang-api.vercel.app` 4 | 5 | ## Endpoints 6 | 7 | ### 1. Health Check 8 | 9 | **GET** `/health` 10 | 11 | Check the health status of the API. 12 | 13 | #### Request 14 | 15 | ```javascript 16 | fetch('https://one-lang-api.vercel.app/health') 17 | .then(response => response.json()) 18 | .then(data => console.log(data)); 19 | ``` 20 | 21 | #### Response 22 | 23 | ```json 24 | { 25 | "status": "healthy" 26 | } 27 | ``` 28 | 29 | ### 2. Detect and Translate 30 | 31 | **POST** `/detect-and-translate` 32 | 33 | Detects the language of the input text and translates it to English. 34 | 35 | #### Request 36 | 37 | ```javascript 38 | const response = await fetch('https://one-lang-api.vercel.app/detect-and-translate', { 39 | method: 'POST', 40 | headers: { 41 | 'Content-Type': 'application/json', 42 | }, 43 | body: JSON.stringify({ 44 | text: "Bonjour le monde" 45 | }), 46 | }); 47 | const data = await response.json(); 48 | ``` 49 | 50 | #### Response 51 | 52 | ```json 53 | { 54 | "detected_language": "fr", 55 | "translated_text": "Hello world" 56 | } 57 | ``` 58 | 59 | ### 3. Translate 60 | 61 | **POST** `/translate` 62 | 63 | Translates English text to the specified target language. 64 | 65 | #### Request 66 | 67 | ```javascript 68 | const response = await fetch('https://one-lang-api.vercel.app/translate', { 69 | method: 'POST', 70 | headers: { 71 | 'Content-Type': 'application/json', 72 | }, 73 | body: JSON.stringify({ 74 | target_language: "fr", 75 | text: "Hello world" 76 | }), 77 | }); 78 | const data = await response.json(); 79 | ``` 80 | 81 | #### Response 82 | 83 | ```json 84 | { 85 | "translated_text": "Bonjour le monde" 86 | } 87 | ``` 88 | 89 | ## Error Handling 90 | 91 | All endpoints may return error responses in the following format: 92 | 93 | ```json 94 | { 95 | "error": "Error message description" 96 | } 97 | ``` 98 | 99 | Common HTTP status codes: 100 | - 200: Successful request 101 | - 400: Bad request (e.g., missing parameters) 102 | - 500: Internal server error 103 | 104 | ## Usage with Next.js 105 | 106 | To use this API in a Next.js application, you can create a utility function for API calls: 107 | 108 | ```javascript 109 | // utils/api.js 110 | 111 | const API_BASE_URL = 'https://one-lang-api.vercel.app'; 112 | 113 | export async function detectAndTranslate(text) { 114 | const response = await fetch(`${API_BASE_URL}/detect-and-translate`, { 115 | method: 'POST', 116 | headers: { 117 | 'Content-Type': 'application/json', 118 | }, 119 | body: JSON.stringify({ text }), 120 | }); 121 | return response.json(); 122 | } 123 | 124 | export async function translate(text, targetLanguage) { 125 | const response = await fetch(`${API_BASE_URL}/translate`, { 126 | method: 'POST', 127 | headers: { 128 | 'Content-Type': 'application/json', 129 | }, 130 | body: JSON.stringify({ text, target_language: targetLanguage }), 131 | }); 132 | return response.json(); 133 | } 134 | ``` 135 | 136 | Then, you can use these functions in your Next.js components or pages: 137 | 138 | ```javascript 139 | import { detectAndTranslate, translate } from '../utils/api'; 140 | 141 | export default function TranslationComponent() { 142 | const [result, setResult] = useState(null); 143 | 144 | const handleDetectAndTranslate = async () => { 145 | const data = await detectAndTranslate('Bonjour le monde'); 146 | setResult(data); 147 | }; 148 | 149 | const handleTranslate = async () => { 150 | const data = await translate('Hello world', 'fr'); 151 | setResult(data); 152 | }; 153 | 154 | return ( 155 |
156 | 157 | 158 | {result &&
{JSON.stringify(result, null, 2)}
} 159 |
160 | ); 161 | } 162 | ``` 163 | 164 | Remember to handle errors and loading states in your Next.js application for a better user experience. 165 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import os 2 | import logging 3 | from flask import Flask, request, jsonify 4 | from flask_cors import CORS 5 | from dotenv import load_dotenv 6 | from easygoogletranslate import EasyGoogleTranslate 7 | import detectlanguage 8 | 9 | app = Flask(__name__) 10 | CORS(app, origins=["http://localhost:3000", "http://localhost:3001", "https://oneticket.vercel.app", "https://onetickett.vercel.app"]) 11 | 12 | load_dotenv() 13 | 14 | # Configure logging 15 | logging.basicConfig(level=logging.INFO) 16 | logger = logging.getLogger(__name__) 17 | 18 | logger.info("Loading API keys from .env file") 19 | # Load API keys from .env file 20 | DETECT_LANGUAGE_API_KEY = os.environ.get("DETECT_LANGUAGE_API_KEY") 21 | detectlanguage.configuration.api_key = DETECT_LANGUAGE_API_KEY 22 | 23 | logger.info("Initializing EasyGoogleTranslate") 24 | translator = EasyGoogleTranslate() 25 | 26 | def safe_translate(text, target_language): 27 | if translator is None: 28 | logger.error("Translator is not initialized") 29 | return "Translation service unavailable" 30 | try: 31 | logger.info(f"Attempting to translate: '{text}' to {target_language}") 32 | result = translator.translate(text, target_language=target_language) 33 | logger.info(f"Translation result: {result}") 34 | if result is None: 35 | return "Translation returned None" 36 | return result 37 | except AttributeError as e: 38 | logger.error(f"AttributeError in translation: {str(e)}") 39 | return "Error: Translation service configuration issue" 40 | except Exception as e: 41 | logger.error(f"Translation error: {str(e)}") 42 | return f"Translation error: {str(e)}" 43 | 44 | @app.route('/health', methods=['GET']) 45 | def health(): 46 | logger.info("Health check requested") 47 | return jsonify({"status": "healthy"}), 200 48 | 49 | @app.route('/detect-and-translate', methods=['POST']) 50 | def detect_and_translate(): 51 | logger.info("Detect and translate request received") 52 | try: 53 | input_text = request.json.get('text') 54 | logger.info(f"Input text: {input_text or 'None'}") 55 | if not input_text: 56 | logger.warning("Missing 'text' in the request") 57 | return jsonify({"error": "Missing 'text' in the request"}), 400 58 | 59 | logger.info("Detecting language") 60 | try: 61 | detected_lang = detectlanguage.simple_detect(input_text) 62 | logger.info(f"Detected language: {detected_lang or 'Unknown'}") 63 | except Exception as e: 64 | logger.error(f"Error detecting language: {str(e)}") 65 | detected_lang = "Unknown" 66 | 67 | logger.info("Translating text to English") 68 | try: 69 | translated_text = safe_translate(input_text, target_language='en') 70 | logger.info(f"Translated text: {translated_text or 'None'}") 71 | except Exception as e: 72 | logger.error(f"Error translating text: {str(e)}") 73 | translated_text = "Translation failed" 74 | 75 | response = { 76 | "detected_language": detected_lang or "Unknown", 77 | "translated_text": translated_text 78 | } 79 | logger.info(f"Sending response: {response}") 80 | return jsonify(response), 200 81 | 82 | except Exception as e: 83 | logger.error(f"An error occurred in detect_and_translate: {str(e)}") 84 | return jsonify({"error": f"An unexpected error occurred: {str(e)}"}), 500 85 | 86 | @app.route('/translate', methods=['POST']) 87 | def translate(): 88 | logger.info("Translation request received") 89 | try: 90 | target_lang = request.json.get('target_language') 91 | english_text = request.json.get('text') 92 | logger.info(f"Target language: {target_lang or 'None'}") 93 | logger.info(f"English text: {english_text or 'None'}") 94 | 95 | if not target_lang or not english_text: 96 | logger.warning("Missing 'target_language' or 'text' in the request") 97 | return jsonify({"error": "Missing 'target_language' or 'text' in the request"}), 400 98 | 99 | logger.info("Translating text") 100 | translated_text = safe_translate(english_text, target_language=target_lang) 101 | logger.info(f"Translated text: {translated_text or 'None'}") 102 | 103 | return jsonify({ 104 | "translated_text": translated_text 105 | }), 200 106 | 107 | except Exception as e: 108 | logger.error(f"An error occurred: {str(e)}") 109 | return jsonify({"error": "An unexpected error occurred"}), 500 110 | 111 | @app.route('/', methods=['GET']) 112 | def root(): 113 | logger.info("Root endpoint accessed") 114 | return jsonify({ 115 | "message": "Welcome to the Translation API", 116 | "endpoints": { 117 | "/health": "Check the health status of the API", 118 | "/detect-and-translate": "Detect language and translate to English", 119 | "/translate": "Translate from English to a target language" 120 | } 121 | }), 200 122 | 123 | if __name__ == '__main__': 124 | port = os.getenv("PORT", default=5000) 125 | logger.info(f"Starting the application on port {port}") 126 | app.run(debug=True, port=port) 127 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | data = {"target_language":"fr","text": """Here are some events available for booking: 4 | 5 | Government Museum Chennai 6 | 7 | Type: Museum 8 | History: Established in 1851, the second oldest museum in India with a rich collection of artifacts. 9 | Ticket Price: ₹50 10 | Event Start: 12th September 2024, 09:00 11 | Event End: 12th September 2024, 17:00 12 | CHILDREN'S MUSEUM 13 | 14 | Type: Museum 15 | History: Founded in 1997 to educate children through interactive exhibits. 16 | Ticket Price: ₹30 17 | Event Start: 13th September 2024, 10:00 18 | Event End: 13th September 2024, 16:00 19 | DR. ARUN'S PHOTOGRAPHY AND VINTAGE CAMERA MUSEUM 20 | 21 | Type: Museum 22 | History: Showcases the evolution of photography with over 1,500 antique cameras. 23 | Ticket Price: ₹40 24 | Event Start: 14th September 2024, 09:30 25 | Chennai Rail Museum 26 | 27 | Type: Museum 28 | History: Showcases the rich heritage of Indian Railways with vintage locomotives and artifacts. 29 | Ticket Price: ₹50 30 | Event Start: 15th September 2024, 10:00 31 | Event End: 15th September 2024, 18:00 32 | Vivekananda House 33 | 34 | Type: Museum 35 | History: Dedicated to the life and teachings of Swami Vivekananda. 36 | Ticket Price: ₹60 37 | Event Start: 16th September 2024, 09:00 38 | Event End: 16th September 2024, 17:00 39 | Fort St. George Museum 40 | 41 | Type: Museum 42 | History: Houses artifacts from the colonial period within the first British fortress in India. 43 | Ticket Price: ₹60 44 | Event Start: 17th September 2024, 09:00 45 | Event End: 17th September 2024, 17:00 46 | National Art Gallery Chennai 47 | 48 | Type: Museum 49 | History: Showcases paintings from various Indian art schools in a Victorian-style building. 50 | Ticket Price: ₹20 51 | Event Start: 18th September 2024, 10:00 52 | Event End: 18th September 2024, 16:00 53 | Art Through Time 54 | 55 | Type: Exhibition 56 | History: Walk through history with famous paintings from different time periods. 57 | Ticket Price: ₹250 58 | Event Start: 20th September 2024, 11:00 59 | Event End: 20th September 2024, 17:00 60 | Science Wonders 61 | 62 | Type: Exhibition 63 | History: Fun science adventure with experiments and interactive displays. 64 | Ticket Price: ₹300 65 | Event Start: 21st September 2024, 10:00 66 | Event End: 21st September 2024, 16:00 67 | Ancient Treasures 68 | 69 | Type: Exhibition 70 | History: Discover amazing objects from long-ago civilizations. 71 | Ticket Price: ₹200 72 | Event Start: 22nd September 2024, 09:30 73 | Event End: 22nd September 2024, 17:30 74 | Please let me know which event Krishna would like to attend and how many tickets are needed."""} 75 | # try: 76 | # response = requests.post('http://localhost:5000/translate', json=data) 77 | # with open('response.txt', 'w', encoding='utf-8') as f: 78 | # f.write(response.text) 79 | # except Exception as e: 80 | # print(f"An error occurred: {e}") 81 | import requests 82 | import textwrap 83 | 84 | data = { 85 | "text":""" 86 | A continuación, se muestran algunos eventos disponibles para reservar: 87 | 88 | Museo del Gobierno de Chennai 89 | 90 | Tipo: Museo 91 | Historia: Fundado en 1851, es el segundo museo más antiguo de la India y cuenta con una rica colección de artefactos. 92 | Precio de la entrada: ₹50 93 | Inicio del evento: 12 de septiembre de 2024, 09:00 94 | Fin del evento: 12 de septiembre de 2024, 17:00 95 | MUSEO INFANTIL 96 | 97 | Tipo: Museo 98 | Historia: Fundado en 1997 para educar a los niños a través de exhibiciones interactivas. 99 | Precio de la entrada: ₹30 100 | Inicio del evento: 13 de septiembre de 2024, 10:00 101 | Fin del evento: 13 de septiembre de 2024, 16:00 102 | MUSEO DE FOTOGRAFÍA Y CÁMARAS ANTIGUAS DEL DR. ARUN 103 | 104 | Tipo: Museo 105 | Historia: Muestra la evolución de la fotografía con más de 1500 cámaras antiguas. 106 | Precio de la entrada: ₹40 107 | Inicio del evento: 14 de septiembre de 2024, 09:30 108 | Museo del Ferrocarril de Chennai 109 | 110 | Tipo: Museo 111 | Historia: Muestra la rica herencia de los ferrocarriles indios con locomotoras y artefactos antiguos. 112 | Precio de la entrada: ₹50 113 | Inicio del evento: 15 de septiembre de 2024, 10:00 114 | Fin del evento: 15 de septiembre de 2024, 18:00 115 | Casa Vivekananda 116 | 117 | Tipo: Museo 118 | Historia: Dedicado a la vida y las enseñanzas de Swami Vivekananda. 119 | Precio de la entrada: ₹60 120 | Inicio del evento: 16 de septiembre de 2024, 09:00 121 | Fin del evento: 16 de septiembre de 2024, 17:00 122 | Museo del Fuerte St. George 123 | 124 | Tipo: Museo 125 | Historia: Alberga artefactos del período colonial dentro de la primera fortaleza británica en la India. 126 | Precio de la entrada: ₹60 127 | Inicio del evento: 17 de septiembre de 2024, 09:00 128 | Fin del evento: 17 de septiembre de 2024, 17:00 129 | Galería Nacional de Arte de Chennai 130 | 131 | Tipo: Museo 132 | Historia: Muestra pinturas de varias escuelas de arte de la India en un edificio de estilo victoriano. 133 | Precio de la entrada: ₹20 134 | Inicio del evento: 18 de septiembre de 2024, 10:00 135 | Fin del evento: 18 de septiembre de 2024, 16:00 136 | El arte a través del tiempo 137 | 138 | Tipo: Exposición 139 | Historia: Recorre la historia con pinturas famosas de diferentes períodos de tiempo. 140 | Precio de la entrada: 250 ₹ 141 | Inicio del evento: 20 de septiembre de 2024, 11:00 142 | Fin del evento: 20 de septiembre de 2024, 17:00 143 | Maravillas de la ciencia 144 | 145 | Tipo: Exposición 146 | Historia: Divertida aventura científica con experimentos y exhibiciones interactivas. 147 | Precio de la entrada: 300 ₹ 148 | Inicio del evento: 21 de septiembre de 2024, 10:00 149 | Fin del evento: 21 de septiembre de 2024, 16:00 150 | Tesoros antiguos 151 | 152 | Tipo: Exposición 153 | Historia: Descubra objetos asombrosos de civilizaciones antiguas. 154 | Precio de la entrada: 200 ₹ 155 | Inicio del evento: 22 de septiembre de 2024, 09:30 156 | Fin del evento: 22 de septiembre de 2024, 17:30 157 | Por favor, háganme saber a qué evento le gustaría asistir Krishna y cuántas entradas se necesitan. 158 | Fin del evento: 18 de septiembre de 2024, 16:00 159 | El arte a través del tiempo 160 | 161 | Tipo: Exposición 162 | Historia: Recorre la historia con pinturas famosas de diferentes períodos de tiempo. 163 | Precio de la entrada: 250 ₹ 164 | Inicio del evento: 20 de septiembre de 2024, 11:00 165 | Fin del evento: 20 de septiembre de 2024, 17:00 166 | Maravillas de la ciencia 167 | 168 | Tipo: Exposición 169 | Historia: Divertida aventura científica con experimentos y exhibiciones interactivas. 170 | Precio de la entrada: 300 ₹ 171 | Inicio del evento: 21 de septiembre de 2024, 10:00 172 | Fin del evento: 21 de septiembre de 2024, 16:00 173 | Tesoros antiguos 174 | 175 | Tipo: Exposición 176 | Historia: Descubra objetos asombrosos de civilizaciones antiguas. 177 | Precio de la entrada: 200 ₹ 178 | Inicio del evento: 22 de septiembre de 2024, 09:30 179 | Fin del evento: 22 de septiembre de 2024, 17:30 180 | Por favor, háganme saber a qué evento le gustaría asistir Krishna y cuántas entradas se necesitan. 181 | Fin del evento: 18 de septiembre de 2024, 16:00 182 | El arte a través del tiempo 183 | 184 | Tipo: Exposición 185 | Historia: Recorre la historia con pinturas famosas de diferentes períodos de tiempo. 186 | Precio de la entrada: 250 ₹ 187 | Inicio del evento: 20 de septiembre de 2024, 11:00 188 | Fin del evento: 20 de septiembre de 2024, 17:00 189 | Maravillas de la ciencia 190 | 191 | Tipo: Exposición 192 | Historia: Divertida aventura científica con experimentos y exhibiciones interactivas. 193 | Precio de la entrada: 300 ₹ 194 | Inicio del evento: 21 de septiembre de 2024, 10:00 195 | Fin del evento: 21 de septiembre de 2024, 16:00 196 | Tesoros antiguos 197 | 198 | Tipo: Exposición 199 | Historia: Descubra objetos asombrosos de civilizaciones antiguas. 200 | Precio de la entrada: 200 ₹ 201 | Inicio del evento: 22 de septiembre de 2024, 09:30 202 | Fin del evento: 22 de septiembre de 2024, 17:30 203 | Por favor, háganme saber a qué evento le gustaría asistir Krishna y cuántas entradas se necesitan. 204 | 205 | """ 206 | 207 | } 208 | 209 | try: 210 | response = requests.post('http://localhost:5000/detect-and-translate', json=data) 211 | with open('response.txt', 'w', encoding='utf-8') as f: 212 | f.write(response.text) 213 | except Exception as e: 214 | print(f"An error occurred: {e}") --------------------------------------------------------------------------------