Lenylvt commited on
Commit
d65424d
·
verified ·
1 Parent(s): 3e4e216

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -13
app.py CHANGED
@@ -6,26 +6,30 @@ from transformers import MarianMTModel, MarianTokenizer
6
  # Fetch and parse language options from the provided URL
7
  url = "https://huggingface.co/Lenylvt/LanguageISO/resolve/main/iso.md"
8
  response = requests.get(url)
9
- # Assuming the response content is a Markdown table, convert it to a DataFrame
10
- df = pd.read_csv(url, delimiter="|", skiprows=2, header=None).dropna(axis=1, how='all')
11
  df.columns = ['ISO 639-1', 'ISO 639-2', 'Language Name', 'Native Name']
12
  df['ISO 639-1'] = df['ISO 639-1'].str.strip()
13
 
14
  # Prepare language options for the dropdown
15
- language_options = [(row['ISO 639-1'], f"{row['Language Name']} ({row['ISO 639-1']})") for index, row in df.iterrows()]
16
 
17
- # Your translate_text function and Gradio interface setup goes here
18
- # Replace the previous static language_options list with the dynamic one created above
 
 
 
 
 
 
 
 
 
 
 
19
 
20
- # Example translate_text function placeholder
21
- def translate_text(text, source_language, target_language):
22
- return "Translation function implementation"
23
-
24
- # Create dropdowns for source and target languages, using only the codes for value
25
  source_language_dropdown = gr.Dropdown(choices=language_options, label="Source Language")
26
  target_language_dropdown = gr.Dropdown(choices=language_options, label="Target Language")
27
 
28
- # Define the interface
29
  iface = gr.Interface(
30
  fn=translate_text,
31
  inputs=[gr.Textbox(lines=2, placeholder="Enter text to translate..."), source_language_dropdown, target_language_dropdown],
@@ -34,5 +38,4 @@ iface = gr.Interface(
34
  description="Select source and target languages to translate text."
35
  )
36
 
37
- # Launch the app
38
- iface.launch()
 
6
  # Fetch and parse language options from the provided URL
7
  url = "https://huggingface.co/Lenylvt/LanguageISO/resolve/main/iso.md"
8
  response = requests.get(url)
9
+ df = pd.read_csv(response.url, delimiter="|", skiprows=2, header=None).dropna(axis=1, how='all')
 
10
  df.columns = ['ISO 639-1', 'ISO 639-2', 'Language Name', 'Native Name']
11
  df['ISO 639-1'] = df['ISO 639-1'].str.strip()
12
 
13
  # Prepare language options for the dropdown
14
+ language_options = [(row['ISO 639-1'], f"{row['ISO 639-1']} - {row['Language Name']}") for index, row in df.iterrows()]
15
 
16
+ def translate_text(text, source_language_code, target_language_code):
17
+ # Construct model name using ISO 639-1 codes
18
+ model_name = f"Helsinki-NLP/opus-mt-{source_language_code}-{target_language_code}"
19
+ if source_language_code == target_language_code:
20
+ return "Translation between the same languages is not supported."
21
+ try:
22
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
23
+ model = MarianMTModel.from_pretrained(model_name)
24
+ except Exception as e:
25
+ return f"Failed to load model for {source_language_code} to {target_language_code}: {str(e)}"
26
+ translated = model.generate(**tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=512))
27
+ translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
28
+ return translated_text
29
 
 
 
 
 
 
30
  source_language_dropdown = gr.Dropdown(choices=language_options, label="Source Language")
31
  target_language_dropdown = gr.Dropdown(choices=language_options, label="Target Language")
32
 
 
33
  iface = gr.Interface(
34
  fn=translate_text,
35
  inputs=[gr.Textbox(lines=2, placeholder="Enter text to translate..."), source_language_dropdown, target_language_dropdown],
 
38
  description="Select source and target languages to translate text."
39
  )
40
 
41
+ iface.launch()