Ubuntu commited on
Commit
ebb51c2
Β·
1 Parent(s): d8c4e42

Remove max tokens slider and simplify interface

Browse files
Files changed (1) hide show
  1. app.py +40 -22
app.py CHANGED
@@ -1,58 +1,76 @@
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
 
4
- # Load both translation models from Hugging Face
5
- # English to Moroccan Arabic (Darija)
6
  tokenizer_eng_to_darija = AutoTokenizer.from_pretrained("lachkarsalim/Helsinki-translation-English_Moroccan-Arabic")
7
  model_eng_to_darija = AutoModelForSeq2SeqLM.from_pretrained("lachkarsalim/Helsinki-translation-English_Moroccan-Arabic")
8
 
9
- # Moroccan Arabic (Darija) to Modern Standard Arabic (MSA)
10
  tokenizer_darija_to_msa = AutoTokenizer.from_pretrained("Saidtaoussi/AraT5_Darija_to_MSA")
11
  model_darija_to_msa = AutoModelForSeq2SeqLM.from_pretrained("Saidtaoussi/AraT5_Darija_to_MSA")
12
 
13
- # Translation function for Darija to MSA
14
  def translate_darija_to_msa(darija_text):
15
  inputs = tokenizer_darija_to_msa(darija_text, return_tensors="pt", padding=True)
16
  translated = model_darija_to_msa.generate(**inputs)
17
  translated_text = tokenizer_darija_to_msa.decode(translated[0], skip_special_tokens=True)
18
  return translated_text
19
 
20
- # Translation function for English to Moroccan Arabic and vice versa
21
  def translate_eng_to_darija(eng_text, direction="eng_to_darija"):
22
  if direction == "eng_to_darija":
23
  inputs = tokenizer_eng_to_darija(eng_text, return_tensors="pt", padding=True)
24
  translated = model_eng_to_darija.generate(**inputs)
25
  translated_text = tokenizer_eng_to_darija.decode(translated[0], skip_special_tokens=True)
26
  else:
27
- # Translate from Darija to English (reverse translation)
28
  inputs = tokenizer_eng_to_darija(eng_text, return_tensors="pt", padding=True)
29
  translated = model_eng_to_darija.generate(**inputs)
30
  translated_text = tokenizer_eng_to_darija.decode(translated[0], skip_special_tokens=True)
31
  return translated_text
32
 
33
-
34
- # Gradio interface setup without max new tokens
35
- def respond(message, translation_choice: str):
36
- # Translate based on the user's choice
37
  if translation_choice == "Moroccan Arabic to MSA":
38
  return translate_darija_to_msa(message)
39
  elif translation_choice == "English to Moroccan Arabic":
40
  return translate_eng_to_darija(message, direction="eng_to_darija")
41
 
42
 
43
- demo = gr.Interface(
44
- fn=respond,
45
- inputs=[
46
- gr.Textbox(value="", label="Enter Your Text", placeholder="Type your sentence here..."),
47
- gr.Dropdown(
48
- label="Choose Translation Direction",
49
- choices=["English to Moroccan Arabic", "Moroccan Arabic to MSA"],
50
- value="English to Moroccan Arabic"
51
- ),
52
- ],
53
- outputs="text"
54
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  # Launch the interface
57
  demo.launch()
58
 
 
 
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
 
4
+ # Load models
 
5
  tokenizer_eng_to_darija = AutoTokenizer.from_pretrained("lachkarsalim/Helsinki-translation-English_Moroccan-Arabic")
6
  model_eng_to_darija = AutoModelForSeq2SeqLM.from_pretrained("lachkarsalim/Helsinki-translation-English_Moroccan-Arabic")
7
 
 
8
  tokenizer_darija_to_msa = AutoTokenizer.from_pretrained("Saidtaoussi/AraT5_Darija_to_MSA")
9
  model_darija_to_msa = AutoModelForSeq2SeqLM.from_pretrained("Saidtaoussi/AraT5_Darija_to_MSA")
10
 
11
+ # Translation functions
12
  def translate_darija_to_msa(darija_text):
13
  inputs = tokenizer_darija_to_msa(darija_text, return_tensors="pt", padding=True)
14
  translated = model_darija_to_msa.generate(**inputs)
15
  translated_text = tokenizer_darija_to_msa.decode(translated[0], skip_special_tokens=True)
16
  return translated_text
17
 
 
18
  def translate_eng_to_darija(eng_text, direction="eng_to_darija"):
19
  if direction == "eng_to_darija":
20
  inputs = tokenizer_eng_to_darija(eng_text, return_tensors="pt", padding=True)
21
  translated = model_eng_to_darija.generate(**inputs)
22
  translated_text = tokenizer_eng_to_darija.decode(translated[0], skip_special_tokens=True)
23
  else:
24
+ # Reverse translation (Darija to English)
25
  inputs = tokenizer_eng_to_darija(eng_text, return_tensors="pt", padding=True)
26
  translated = model_eng_to_darija.generate(**inputs)
27
  translated_text = tokenizer_eng_to_darija.decode(translated[0], skip_special_tokens=True)
28
  return translated_text
29
 
30
+ # Respond function
31
+ def respond(message, translation_choice):
 
 
32
  if translation_choice == "Moroccan Arabic to MSA":
33
  return translate_darija_to_msa(message)
34
  elif translation_choice == "English to Moroccan Arabic":
35
  return translate_eng_to_darija(message, direction="eng_to_darija")
36
 
37
 
38
+ # Gradio Interface Layout with organized components
39
+ with gr.Blocks() as demo:
40
+ with gr.Row():
41
+ with gr.Column():
42
+ # Header with logo and emojis
43
+ gr.Markdown("""
44
+ <h1 style="text-align: center;">
45
+ πŸ‡²πŸ‡¦ πŸš€ Moroccan Arabic Translation Demo by Amal 😍
46
+ </h1>
47
+ <p style="text-align: center;">
48
+ 🌟 Dima Meghrib 🌟 <br>
49
+ Select the translation direction and type your text. <br>
50
+ Get quick translations between **English** and **Moroccan Arabic (Darija)**! πŸ”₯
51
+ </p>
52
+ <img src="https://moroccan-culture-image.s3.eu-north-1.amazonaws.com/2159558.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAW3MD7RUI6BPOSTGF%2F20250225%2Feu-north-1%2Fs3%2Faws4_request&X-Amz-Date=20250225T212742Z&X-Amz-Expires=300&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEBUaCmV1LW5vcnRoLTEiSDBGAiEA2wC2GISJOKipdbfMelCGfMqoPHnVnM9aY0zmsgmINpACIQCkA5VvqMaCEHNVwJml3%2FBJu%2FQlrU120PByOy8dSEfkdSrqAwhPEAAaDDQ3MTExMjU4NDQ2NSIMosytLgjLE%2BjysHncKscD5SmK3%2FV7ycLFyJpg8GMUa2bi%2BB4Tlj4YLxW37IxScYWjA5dOLyc9NnJNQ87K73ZRJLFSv1sogcVvRQqOnq3Cjb1AQwtljD4MHBjPIpgy7QVBov%2BAdUMzehD7K%2FhL8ME2pLPMV70E12dSdRRpablepF3Y%2FrHU1S8s4HJ%2BDAmfEF6gmnexTRyXVIEYodn%2FqPtOR5oaUF17SGEmmKJBi4b2kLQN%2B353pYrkB8ciBn0gAScNVkkgs2PuDUmzcXtw%2F4qcASvZ%2F11za7YSO%2FPrK30tFrOuVQQgjaB2h4a5%2BETBuXdLDX6EkbnEmN2Rh2ZH0adBut2UnOR9AtR4lRHDtk7qnRrlof6byqCqjDHu9iaJVcBpNMojNo%2BFZMofqZrnKygggvCaJhI3a%2FmJo7v0moz0nRhljyCA18ieJ8PYIBwqGcc53MneKRBbyTrI%2F7lHimTQZ4RDiD8E42qyxyh5vYOOBd9ijYog%2FZEsvzzaLfQC1niWfT35NcpzNXn0QMp8vjHa3S57nV3vXY7uXqj7i6Hf0JGG8YrZ3bpizt3q%2FY1zSHc9RCrYALCmWm9xfXsxy4woC10vBTP9S9tYaKS1j60bOADWikoeemUw4Oj4vQY6kwKyzIUJZkcmGcdRVff6NtSS%2F7hCsUUtyoygbvXIudEFO2jQDChI%2Fx5YbO%2BPH3ynUKVjncXGmtWR7%2BoncsXjFg7xrzsYjBjmDuHWF1umN%2BnA%2FPng6CfJ%2Br%2BlI5VxjnZCAZsvbGEKp9xKSSUI9KXcdsOYC4sMzNm1NdzU3wuWPhlJHvv7Y6Ma%2FPQwUkfDCCBphGheYqiZrQieDLpcnI6TNiefFOzRipE27fbtJXwbzoXIIhlQdtML7LXsQq5XeISwXGRZjeIQo5bIF6ab5QpA%2BFcmvAiVQlAh%2Byqa2KMjZhVHiFxMcPZXb0lRO3y2lB40FGKbQ7SVyUrDJg6pE%2FF67NMhCkanOp34hhjZ4JlWbGcIeBTTPw%3D%3D&X-Amz-Signature=b1f49904eefdd46e21dfe6a89c73c39f41e1b8631afd2b242f9d68e79c025def&X-Amz-SignedHeaders=host&response-content-disposition=inline"
53
+ style="width: 100px; display: block; margin: 20px auto;" alt="Dima Meghrib Logo" />
54
+ """)
55
+
56
+ with gr.Column():
57
+ # Left Column for Inputs
58
+ user_input = gr.Textbox(label="Enter Your Text", placeholder="Type your sentence here...")
59
+ translation_choice = gr.Dropdown(
60
+ label="Choose Translation Direction",
61
+ choices=["English to Moroccan Arabic", "Moroccan Arabic to MSA"],
62
+ value="English to Moroccan Arabic"
63
+ )
64
+ submit_button = gr.Button("Submit", elem_id="submit_button")
65
+
66
+ with gr.Row():
67
+ # Right Column for Outputs
68
+ output = gr.Textbox(label="Translated Text", placeholder="Translation will appear here...")
69
+
70
+ # Define the action for submit
71
+ submit_button.click(fn=respond, inputs=[user_input, translation_choice], outputs=output)
72
 
73
  # Launch the interface
74
  demo.launch()
75
 
76
+