LouisMonawe commited on
Commit
1748350
Β·
1 Parent(s): e60b6bc

//Changed models

Browse files

ued this model that unesco uses

facebook/nllb-200-3.3B

.gradio/certificate.pem ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
31
+ -----END CERTIFICATE-----
.gradio/flagged/dataset2.csv CHANGED
@@ -1,2 +1,3 @@
1
  Input Text,Select Language Pair,Translation,timestamp
2
  ,,,2025-03-11 09:35:16.765365
 
 
1
  Input Text,Select Language Pair,Translation,timestamp
2
  ,,,2025-03-11 09:35:16.765365
3
+ Translate text between English and all 11 South African languages.,English ↔ Afrikaans,,2025-06-25 12:24:33.495768
app.py CHANGED
@@ -37,58 +37,143 @@
37
  # translator.launch()
38
 
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  import requests
41
  import gradio as gr
42
  from dotenv import load_dotenv
43
  import os
44
 
45
- # Load environment variables
46
  load_dotenv()
47
  HF_TOKEN = os.getenv("HF_TOKEN")
48
  headers = {"Authorization": f"Bearer {HF_TOKEN}"}
49
 
50
- # Dictionary of available language models
51
- MODELS = {
52
- "English ↔ Afrikaans": "Helsinki-NLP/opus-mt-en-af",
53
- "English ↔ Xhosa": "Helsinki-NLP/opus-mt-en-xh",
54
- # "English ↔ Zulu": "Helsinki-NLP/opus-mt-en-zu",
55
- "English ↔ Sesotho": "Helsinki-NLP/opus-mt-en-st",
56
- "English ↔ Tswana": "Helsinki-NLP/opus-mt-en-tn",
57
- "English ↔ Northern Sotho": "Helsinki-NLP/opus-mt-en-nso",
58
- "English ↔ Swati": "Helsinki-NLP/opus-mt-en-ss",
59
- # "English ↔ Venda": "Helsinki-NLP/opus-mt-en-ven",
60
- "English ↔ Tsonga": "Helsinki-NLP/opus-mt-en-ts",
 
 
 
 
 
 
 
 
 
 
 
61
  }
62
 
63
 
64
- def query(payload, model_name):
65
- api_url = f"https://api-inference.huggingface.co/models/{model_name}"
66
- response = requests.post(api_url, headers=headers, json=payload)
67
- return response.json()
68
 
 
 
 
 
 
 
 
 
69
 
70
- def translate(input_text, language_pair):
71
- model_name = MODELS[language_pair]
72
- response = query(
73
- {"inputs": input_text, "options": {"wait_for_model": True}}, model_name
74
- )
75
 
76
- if "error" in response:
77
- return f"Error: {response['error']}"
78
 
79
- return response[0]["translation_text"]
 
 
 
 
80
 
81
 
 
82
  translator = gr.Interface(
83
  fn=translate,
84
  inputs=[
85
  gr.Textbox(label="Input Text", placeholder="Type text here..."),
86
- gr.Dropdown(list(MODELS.keys()), label="Select Language Pair"),
87
  ],
88
  outputs=gr.Textbox(label="Translation"),
89
- # title="South African Language Translator",
90
- title="Translademia",
91
- description="Translate text between English and all 11 South African languages.",
92
  )
93
 
94
- translator.launch()
 
37
  # translator.launch()
38
 
39
 
40
+ # import requests
41
+ # import gradio as gr
42
+ # from dotenv import load_dotenv
43
+ # import os
44
+
45
+ # # Load environment variables
46
+ # load_dotenv()
47
+ # HF_TOKEN = os.getenv("HF_TOKEN")
48
+ # headers = {"Authorization": f"Bearer {HF_TOKEN}"}
49
+
50
+ # # Dictionary of available language models
51
+ # MODELS = {
52
+ # "English ↔ Afrikaans": "Helsinki-NLP/opus-mt-en-af",
53
+ # "English ↔ Xhosa": "Helsinki-NLP/opus-mt-en-xh",
54
+ # # "English ↔ Zulu": "Helsinki-NLP/opus-mt-en-zu",
55
+ # "English ↔ Sesotho": "Helsinki-NLP/opus-mt-en-st",
56
+ # "English ↔ Tswana": "Helsinki-NLP/opus-mt-en-tn",
57
+ # "English ↔ Northern Sotho": "Helsinki-NLP/opus-mt-en-nso",
58
+ # "English ↔ Swati": "Helsinki-NLP/opus-mt-en-ss",
59
+ # # "English ↔ Venda": "Helsinki-NLP/opus-mt-en-ven",
60
+ # "English ↔ Tsonga": "Helsinki-NLP/opus-mt-en-ts",
61
+ # }
62
+
63
+
64
+ # def query(payload, model_name):
65
+ # api_url = f"https://api-inference.huggingface.co/models/{model_name}"
66
+ # response = requests.post(api_url, headers=headers, json=payload)
67
+
68
+ # if response.status_code != 200:
69
+ # print(
70
+ # f"[ERROR] API {model_name} failed: {response.status_code} - {response.text}"
71
+ # )
72
+ # return {"error": f"Request failed with {response.status_code}"}
73
+
74
+ # try:
75
+ # return response.json()
76
+ # except requests.exceptions.JSONDecodeError:
77
+ # print(f"[ERROR] Failed to parse JSON: {response.text}")
78
+ # return {"error": "Invalid JSON from API"}
79
+
80
+
81
+ # def translate(input_text, language_pair):
82
+ # model_name = MODELS[language_pair]
83
+ # response = query(
84
+ # {"inputs": input_text, "options": {"wait_for_model": True}}, model_name
85
+ # )
86
+
87
+ # if "error" in response:
88
+ # return f"Error: {response['error']}"
89
+
90
+ # return response[0]["translation_text"]
91
+
92
+
93
+ # translator = gr.Interface(
94
+ # fn=translate,
95
+ # inputs=[
96
+ # gr.Textbox(label="Input Text", placeholder="Type text here..."),
97
+ # gr.Dropdown(list(MODELS.keys()), label="Select Language Pair"),
98
+ # ],
99
+ # outputs=gr.Textbox(label="Translation"),
100
+ # # title="South African Language Translator",
101
+ # title="Translademia",
102
+ # description="Translate text between English and all 11 South African languages.",
103
+ # )
104
+
105
+ # translator.launch()
106
+
107
+
108
  import requests
109
  import gradio as gr
110
  from dotenv import load_dotenv
111
  import os
112
 
113
+ # Load Hugging Face token from .env
114
  load_dotenv()
115
  HF_TOKEN = os.getenv("HF_TOKEN")
116
  headers = {"Authorization": f"Bearer {HF_TOKEN}"}
117
 
118
+ # NLLB model name
119
+ MODEL_NAME = "facebook/nllb-200-3.3B"
120
+ API_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
121
+
122
+ # Define supported language pairs and NLLB codes
123
+ LANGUAGE_PAIRS = {
124
+ "English β†’ Afrikaans": ("eng_Latn", "afr_Latn"),
125
+ "English β†’ Xhosa": ("eng_Latn", "xho_Latn"),
126
+ "English β†’ Zulu": ("eng_Latn", "zul_Latn"),
127
+ "English β†’ Sesotho": ("eng_Latn", "sot_Latn"),
128
+ "English β†’ Tswana": ("eng_Latn", "tsn_Latn"),
129
+ "English β†’ Northern Sotho": ("eng_Latn", "nso_Latn"),
130
+ "English β†’ Swati": ("eng_Latn", "ssw_Latn"),
131
+ "English β†’ Tsonga": ("eng_Latn", "tso_Latn"),
132
+ "Afrikaans β†’ English": ("afr_Latn", "eng_Latn"),
133
+ "Xhosa β†’ English": ("xho_Latn", "eng_Latn"),
134
+ "Zulu β†’ English": ("zul_Latn", "eng_Latn"),
135
+ "Sesotho β†’ English": ("sot_Latn", "eng_Latn"),
136
+ "Tswana β†’ English": ("tsn_Latn", "eng_Latn"),
137
+ "Northern Sotho β†’ English": ("nso_Latn", "eng_Latn"),
138
+ "Swati β†’ English": ("ssw_Latn", "eng_Latn"),
139
+ "Tsonga β†’ English": ("tso_Latn", "eng_Latn"),
140
  }
141
 
142
 
143
+ def translate(input_text, language_pair):
144
+ src_lang, tgt_lang = LANGUAGE_PAIRS[language_pair]
 
 
145
 
146
+ payload = {
147
+ "inputs": input_text,
148
+ "parameters": {
149
+ "src_lang": src_lang,
150
+ "tgt_lang": tgt_lang,
151
+ },
152
+ "options": {"wait_for_model": True},
153
+ }
154
 
155
+ response = requests.post(API_URL, headers=headers, json=payload)
 
 
 
 
156
 
157
+ if response.status_code != 200:
158
+ return f"[ERROR] {response.status_code}: {response.text}"
159
 
160
+ try:
161
+ output = response.json()
162
+ return output[0]["translation_text"]
163
+ except Exception as e:
164
+ return f"[ERROR] Failed to parse response: {e}"
165
 
166
 
167
+ # Gradio UI
168
  translator = gr.Interface(
169
  fn=translate,
170
  inputs=[
171
  gr.Textbox(label="Input Text", placeholder="Type text here..."),
172
+ gr.Dropdown(choices=list(LANGUAGE_PAIRS.keys()), label="Select Language Pair"),
173
  ],
174
  outputs=gr.Textbox(label="Translation"),
175
+ title="Translademia (NLLB Edition)",
176
+ description="Translate between English and official South African languages using Meta's NLLB-200 model.",
 
177
  )
178
 
179
+ translator.launch(share=True)
tempCodeRunnerFile.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()