LouisMonawe commited on
Commit
134b06e
Β·
1 Parent(s): b0e9c33
Files changed (5) hide show
  1. .gradio/flagged/dataset3.csv +2 -0
  2. app.py +94 -94
  3. main.py +7 -8
  4. tempCodeRunnerFile.py +0 -37
  5. two.py +61 -0
.gradio/flagged/dataset3.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ Input Text,Translation,timestamp
2
+ Thobela,,2025-07-27 21:39:41.511509
app.py CHANGED
@@ -1,40 +1,40 @@
1
- # import requests
2
- # import gradio as gr
3
- # from dotenv import load_dotenv
4
- # import os
5
 
6
- # # Load environment variables from .env file
7
- # load_dotenv()
8
- # HF_TOKEN = os.getenv("HF_TOKEN")
9
 
10
- # model_name = "Helsinki-NLP/opus-mt-en-nso"
11
- # API_URL = f"https://api-inference.huggingface.co/models/{model_name}"
12
- # headers = {"Authorization": f"Bearer {HF_TOKEN}"}
13
 
14
 
15
- # def query(payload):
16
- # # HTTP POST Request
17
- # response = requests.post(API_URL, headers=headers, json=payload)
18
- # return response.json()
19
 
20
 
21
- # def translate(input_text):
22
- # # API Request:
23
- # response = query({"inputs": input_text, "options": {"wait_for_model": True}})
24
 
25
- # translation = response[0]["translation_text"]
26
 
27
- # return translation
28
 
29
 
30
- # translator = gr.Interface(
31
- # fn=translate,
32
- # inputs=[gr.Textbox(label="Input Text", placeholder="Input Text To Be Translated")],
33
- # outputs=gr.Textbox(label="Translation"),
34
- # title="Translademia",
35
- # )
36
 
37
- # translator.launch()
38
 
39
 
40
  # import requests
@@ -182,79 +182,79 @@
182
  # ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
183
  # Using Unesco API
184
 
185
- import requests
186
- import gradio as gr
187
- from dotenv import load_dotenv
188
- import os
189
 
190
- # Load Hugging Face token from .env
191
- load_dotenv()
192
- HF_TOKEN = os.getenv("HF_TOKEN")
193
- headers = {"Authorization": f"Bearer {HF_TOKEN}"}
194
 
195
- # NLLB model endpoint
196
- MODEL_NAME = "facebook/nllb-200-3.3B"
197
- API_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
198
-
199
- # Define supported language pairs and NLLB codes
200
- LANGUAGE_PAIRS = {
201
- "English β†’ Afrikaans": ("eng_Latn", "afr_Latn"),
202
- "English β†’ Xhosa": ("eng_Latn", "xho_Latn"),
203
- "English β†’ Zulu": ("eng_Latn", "zul_Latn"),
204
- "English β†’ Sesotho": ("eng_Latn", "sot_Latn"),
205
- "English β†’ Tswana": ("eng_Latn", "tsn_Latn"),
206
- "English β†’ Northern Sotho": ("eng_Latn", "nso_Latn"),
207
- "English β†’ Swati": ("eng_Latn", "ssw_Latn"),
208
- "English β†’ Tsonga": ("eng_Latn", "tso_Latn"),
209
- "Afrikaans β†’ English": ("afr_Latn", "eng_Latn"),
210
- "Xhosa β†’ English": ("xho_Latn", "eng_Latn"),
211
- "Zulu β†’ English": ("zul_Latn", "eng_Latn"),
212
- "Sesotho β†’ English": ("sot_Latn", "eng_Latn"),
213
- "Tswana β†’ English": ("tsn_Latn", "eng_Latn"),
214
- "Northern Sotho β†’ English": ("nso_Latn", "eng_Latn"),
215
- "Swati β†’ English": ("ssw_Latn", "eng_Latn"),
216
- "Tsonga β†’ English": ("tso_Latn", "eng_Latn"),
217
- }
218
-
219
-
220
- def translate(input_text, language_pair):
221
- if not input_text.strip():
222
- return "[ERROR] Please enter some text to translate."
223
-
224
- # Get source and target language codes
225
- src_lang, tgt_lang = LANGUAGE_PAIRS[language_pair]
226
-
227
- # Prepend target language token to the input
228
- formatted_input = f">>{tgt_lang}<< {input_text.strip()}"
229
-
230
- # Send request to Hugging Face Inference API
231
- payload = {
232
- "inputs": formatted_input,
233
- "options": {"wait_for_model": True},
234
- }
235
 
236
- response = requests.post(API_URL, headers=headers, json=payload)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
- if response.status_code != 200:
239
- return f"[ERROR] {response.status_code}: {response.text}"
240
 
241
- try:
242
- output = response.json()
243
- return output[0]["translation_text"]
244
- except Exception as e:
245
- return f"[ERROR] Failed to parse response: {e}"
246
 
 
 
247
 
248
- # Gradio UI
249
- translator = gr.Interface(
250
- fn=translate,
251
- inputs=[
252
- gr.Textbox(label="Input Text", placeholder="Type text here..."),
253
- gr.Dropdown(choices=list(LANGUAGE_PAIRS.keys()), label="Select Language Pair"),
254
- ],
255
- outputs=gr.Textbox(label="Translation"),
256
- title="Translademia (NLLB Edition)",
257
- description="Translate between English and South African languages using Meta's NLLB-200 multilingual model.",
258
- )
259
 
260
- translator.launch(share=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import gradio as gr
3
+ from dotenv import load_dotenv
4
+ import os
5
 
6
+ # Load environment variables from .env file
7
+ load_dotenv()
8
+ HF_TOKEN = os.getenv("HF_TOKEN")
9
 
10
+ model_name = "Helsinki-NLP/opus-mt-en-nso"
11
+ API_URL = f"https://api-inference.huggingface.co/models/{model_name}"
12
+ headers = {"Authorization": f"Bearer {HF_TOKEN}"}
13
 
14
 
15
+ def query(payload):
16
+ # HTTP POST Request
17
+ response = requests.post(API_URL, headers=headers, json=payload)
18
+ return response.json()
19
 
20
 
21
+ def translate(input_text):
22
+ # API Request:
23
+ response = query({"inputs": input_text, "options": {"wait_for_model": True}})
24
 
25
+ translation = response[0]["translation_text"]
26
 
27
+ return translation
28
 
29
 
30
+ translator = gr.Interface(
31
+ fn=translate,
32
+ inputs=[gr.Textbox(label="Input Text", placeholder="Input Text To Be Translated")],
33
+ outputs=gr.Textbox(label="Translation"),
34
+ title="Translademia",
35
+ )
36
 
37
+ translator.launch(share=True)
38
 
39
 
40
  # import requests
 
182
  # ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
183
  # Using Unesco API
184
 
185
+ # import requests
186
+ # import gradio as gr
187
+ # from dotenv import load_dotenv
188
+ # import os
189
 
190
+ # # Load Hugging Face token from .env
191
+ # load_dotenv()
192
+ # HF_TOKEN = os.getenv("HF_TOKEN")
193
+ # headers = {"Authorization": f"Bearer {HF_TOKEN}"}
194
 
195
+ # # NLLB model endpoint
196
+ # MODEL_NAME = "facebook/nllb-200-3.3B"
197
+ # API_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
 
199
+ # # Define supported language pairs and NLLB codes
200
+ # LANGUAGE_PAIRS = {
201
+ # "English β†’ Afrikaans": ("eng_Latn", "afr_Latn"),
202
+ # "English β†’ Xhosa": ("eng_Latn", "xho_Latn"),
203
+ # "English β†’ Zulu": ("eng_Latn", "zul_Latn"),
204
+ # "English β†’ Sesotho": ("eng_Latn", "sot_Latn"),
205
+ # "English β†’ Tswana": ("eng_Latn", "tsn_Latn"),
206
+ # "English β†’ Northern Sotho": ("eng_Latn", "nso_Latn"),
207
+ # "English β†’ Swati": ("eng_Latn", "ssw_Latn"),
208
+ # "English β†’ Tsonga": ("eng_Latn", "tso_Latn"),
209
+ # "Afrikaans β†’ English": ("afr_Latn", "eng_Latn"),
210
+ # "Xhosa β†’ English": ("xho_Latn", "eng_Latn"),
211
+ # "Zulu β†’ English": ("zul_Latn", "eng_Latn"),
212
+ # "Sesotho β†’ English": ("sot_Latn", "eng_Latn"),
213
+ # "Tswana β†’ English": ("tsn_Latn", "eng_Latn"),
214
+ # "Northern Sotho β†’ English": ("nso_Latn", "eng_Latn"),
215
+ # "Swati β†’ English": ("ssw_Latn", "eng_Latn"),
216
+ # "Tsonga β†’ English": ("tso_Latn", "eng_Latn"),
217
+ # }
218
 
 
 
219
 
220
+ # def translate(input_text, language_pair):
221
+ # if not input_text.strip():
222
+ # return "[ERROR] Please enter some text to translate."
 
 
223
 
224
+ # # Get source and target language codes
225
+ # src_lang, tgt_lang = LANGUAGE_PAIRS[language_pair]
226
 
227
+ # # Prepend target language token to the input
228
+ # formatted_input = f">>{tgt_lang}<< {input_text.strip()}"
 
 
 
 
 
 
 
 
 
229
 
230
+ # # Send request to Hugging Face Inference API
231
+ # payload = {
232
+ # "inputs": formatted_input,
233
+ # "options": {"wait_for_model": True},
234
+ # }
235
+
236
+ # response = requests.post(API_URL, headers=headers, json=payload)
237
+
238
+ # if response.status_code != 200:
239
+ # return f"[ERROR] {response.status_code}: {response.text}"
240
+
241
+ # try:
242
+ # output = response.json()
243
+ # return output[0]["translation_text"]
244
+ # except Exception as e:
245
+ # return f"[ERROR] Failed to parse response: {e}"
246
+
247
+
248
+ # # Gradio UI
249
+ # translator = gr.Interface(
250
+ # fn=translate,
251
+ # inputs=[
252
+ # gr.Textbox(label="Input Text", placeholder="Type text here..."),
253
+ # gr.Dropdown(choices=list(LANGUAGE_PAIRS.keys()), label="Select Language Pair"),
254
+ # ],
255
+ # outputs=gr.Textbox(label="Translation"),
256
+ # title="Translademia (NLLB Edition)",
257
+ # description="Translate between English and South African languages using Meta's NLLB-200 multilingual model.",
258
+ # )
259
+
260
+ # translator.launch(share=True)
main.py CHANGED
@@ -1,11 +1,10 @@
1
- import requests
2
 
3
- API_URL = "https://api-inference.huggingface.co/models/facebook/nllb-200-3.3B"
4
- HF_TOKEN = ""
5
 
6
- headers = {"Authorization": f"Bearer {HF_TOKEN}"}
7
- payload = {"inputs": ">>zul_Latn<< Hello, how are you?"}
8
 
9
- response = requests.post(API_URL, headers=headers, json=payload)
10
- print(response.status_code)
11
- print(response.text)
 
1
+ from transformers import pipeline
2
 
3
+ # Create translation pipeline
4
+ translator = pipeline("translation", model="facebook/nllb-200-3.3B")
5
 
6
+ # Translate English to Zulu (you prepend the target language code in input)
7
+ input_text = ">>zul_Latn<< Hello, how are you?"
8
 
9
+ result = translator(input_text)
10
+ print(result[0]["translation_text"])
 
tempCodeRunnerFile.py DELETED
@@ -1,37 +0,0 @@
1
- import requests
2
- import gradio as gr
3
- from dotenv import load_dotenv
4
- import os
5
-
6
- # Load environment variables from .env file
7
- load_dotenv()
8
- HF_TOKEN = os.getenv("HF_TOKEN")
9
-
10
- model_name = "Helsinki-NLP/opus-mt-en-nso"
11
- API_URL = f"https://api-inference.huggingface.co/models/{model_name}"
12
- headers = {"Authorization": f"Bearer {HF_TOKEN}"}
13
-
14
-
15
- def query(payload):
16
- # HTTP POST Request
17
- response = requests.post(API_URL, headers=headers, json=payload)
18
- return response.json()
19
-
20
-
21
- def translate(input_text):
22
- # API Request:
23
- response = query({"inputs": input_text, "options": {"wait_for_model": True}})
24
-
25
- translation = response[0]["translation_text"]
26
-
27
- return translation
28
-
29
-
30
- translator = gr.Interface(
31
- fn=translate,
32
- inputs=[gr.Textbox(label="Input Text", placeholder="Input Text To Be Translated")],
33
- outputs=gr.Textbox(label="Translation"),
34
- title="Translademia",
35
- )
36
-
37
- translator.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
two.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
2
+ import gradio as gr
3
+ import torch
4
+
5
+ # Load NLLB-200 model and tokenizer
6
+ model_name = "facebook/nllb-200-3.3B"
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
9
+
10
+ # Define supported language pairs and NLLB codes
11
+ LANGUAGE_PAIRS = {
12
+ "English β†’ Afrikaans": ("eng_Latn", "afr_Latn"),
13
+ "English β†’ Xhosa": ("eng_Latn", "xho_Latn"),
14
+ "English β†’ Zulu": ("eng_Latn", "zul_Latn"),
15
+ "English β†’ Sesotho": ("eng_Latn", "sot_Latn"),
16
+ "English β†’ Tswana": ("eng_Latn", "tsn_Latn"),
17
+ "English β†’ Northern Sotho": ("eng_Latn", "nso_Latn"),
18
+ "English β†’ Swati": ("eng_Latn", "ssw_Latn"),
19
+ "English β†’ Tsonga": ("eng_Latn", "tso_Latn"),
20
+ "Afrikaans β†’ English": ("afr_Latn", "eng_Latn"),
21
+ "Xhosa β†’ English": ("xho_Latn", "eng_Latn"),
22
+ "Zulu β†’ English": ("zul_Latn", "eng_Latn"),
23
+ "Sesotho β†’ English": ("sot_Latn", "eng_Latn"),
24
+ "Tswana β†’ English": ("tsn_Latn", "eng_Latn"),
25
+ "Northern Sotho β†’ English": ("nso_Latn", "eng_Latn"),
26
+ "Swati β†’ English": ("ssw_Latn", "eng_Latn"),
27
+ "Tsonga β†’ English": ("tso_Latn", "eng_Latn"),
28
+ }
29
+
30
+
31
+ def translate(input_text, language_pair):
32
+ if not input_text.strip():
33
+ return "[ERROR] Please enter text."
34
+
35
+ _, tgt_lang = LANGUAGE_PAIRS[language_pair]
36
+
37
+ # Prepend target language token
38
+ input_with_lang = f">>{tgt_lang}<< {input_text.strip()}"
39
+
40
+ # Tokenize and generate
41
+ inputs = tokenizer(input_with_lang, return_tensors="pt")
42
+ with torch.no_grad():
43
+ outputs = model.generate(**inputs, max_length=256)
44
+
45
+ translated = tokenizer.decode(outputs[0], skip_special_tokens=True)
46
+ return translated
47
+
48
+
49
+ # Gradio Interface
50
+ translator = gr.Interface(
51
+ fn=translate,
52
+ inputs=[
53
+ gr.Textbox(label="Input Text", placeholder="Type text here..."),
54
+ gr.Dropdown(choices=list(LANGUAGE_PAIRS.keys()), label="Select Language Pair"),
55
+ ],
56
+ outputs=gr.Textbox(label="Translation"),
57
+ title="Translademia (Local NLLB Edition)",
58
+ description="Translate between English and South African languages using Meta's NLLB-200 locally.",
59
+ )
60
+
61
+ translator.launch(share=True)