├── 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}")
--------------------------------------------------------------------------------