AndreasThinks commited on
Commit
dcd106e
·
verified ·
1 Parent(s): 6761fb1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -24
app.py CHANGED
@@ -1,7 +1,7 @@
1
-
2
  import gradio as gr
3
  import requests
4
  import os
 
5
  API_URL = os.environ.get("API_URL")
6
 
7
  # Hugging Face API configuration
@@ -13,7 +13,7 @@ def query(payload):
13
 
14
  def translate(text, source_lang, target_lang):
15
  if source_lang == target_lang:
16
- return text
17
 
18
  instruction = f"Translate the text from {source_lang} to {target_lang}"
19
 
@@ -29,35 +29,74 @@ def translate(text, source_lang, target_lang):
29
  "inputs": input_text,
30
  "parameters": {
31
  "max_new_tokens": 8000,
32
- "return_text": False,
33
- "return_full_text": False,
34
- "handle_long_generation": "hole",
35
- "stop": ['### Input']
36
  }
37
  })
38
 
39
- # Extract the translated text from the model output
40
- # Assuming the model returns just the translation without the instruction format
41
  translated_text = output[0]['generated_text']
42
 
43
- return translated_text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  # Create the Gradio interface
46
- iface = gr.Interface(
47
- fn=translate,
48
- inputs=[
49
- gr.Textbox(label="Enter text to translate"),
50
- gr.Radio(["English", "Welsh"], label="Source Language", value="English"),
51
- gr.Radio(["English", "Welsh"], label="Target Language", value="Welsh"),
52
- ],
53
- outputs=gr.Textbox(label="Translated Text"),
54
- title="English-Welsh Translator",
55
- description="Translate text between English and Welsh using a Hugging Face Inference Endpoint.",
56
- examples=[
57
- ["Hello, how are you?", "English", "Welsh"],
58
- ["Bore da!", "Welsh", "English"],
59
- ],
60
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
  # Launch the app
63
  iface.launch()
 
 
1
  import gradio as gr
2
  import requests
3
  import os
4
+
5
  API_URL = os.environ.get("API_URL")
6
 
7
  # Hugging Face API configuration
 
13
 
14
  def translate(text, source_lang, target_lang):
15
  if source_lang == target_lang:
16
+ return text, text, source_lang, target_lang
17
 
18
  instruction = f"Translate the text from {source_lang} to {target_lang}"
19
 
 
29
  "inputs": input_text,
30
  "parameters": {
31
  "max_new_tokens": 8000,
32
+ "return_text": False,
33
+ "return_full_text": False,
34
+ "handle_long_generation": "hole"
 
35
  }
36
  })
37
 
 
 
38
  translated_text = output[0]['generated_text']
39
 
40
+ return translated_text, input_text, source_lang, target_lang
41
+
42
+ def continue_generation(translated_text, input_text, source_lang, target_lang):
43
+ full_text = f"{input_text}{translated_text}"
44
+
45
+ output = query({
46
+ "inputs": full_text,
47
+ "parameters": {
48
+ "max_new_tokens": 8000,
49
+ "return_text": False,
50
+ "return_full_text": False,
51
+ "handle_long_generation": "hole"
52
+ }
53
+ })
54
+
55
+ new_translated_text = output[0]['generated_text']
56
+ updated_translated_text = translated_text + new_translated_text
57
+
58
+ return updated_translated_text, input_text, source_lang, target_lang
59
 
60
  # Create the Gradio interface
61
+ with gr.Blocks() as iface:
62
+ gr.Markdown("# English-Welsh Translator")
63
+ gr.Markdown("Translate text between English and Welsh using a Hugging Face Inference Endpoint.")
64
+
65
+ with gr.Row():
66
+ input_text = gr.Textbox(label="Enter text to translate")
67
+ output_text = gr.Textbox(label="Translated Text")
68
+
69
+ with gr.Row():
70
+ source_lang = gr.Radio(["English", "Welsh"], label="Source Language", value="English")
71
+ target_lang = gr.Radio(["English", "Welsh"], label="Target Language", value="Welsh")
72
+
73
+ translate_button = gr.Button("Translate")
74
+ continue_button = gr.Button("Continue Generating")
75
+
76
+ # Hidden components to store state
77
+ input_prompt = gr.Textbox(visible=False)
78
+ source_lang_state = gr.Textbox(visible=False)
79
+ target_lang_state = gr.Textbox(visible=False)
80
+
81
+ translate_button.click(
82
+ translate,
83
+ inputs=[input_text, source_lang, target_lang],
84
+ outputs=[output_text, input_prompt, source_lang_state, target_lang_state]
85
+ )
86
+
87
+ continue_button.click(
88
+ continue_generation,
89
+ inputs=[output_text, input_prompt, source_lang_state, target_lang_state],
90
+ outputs=[output_text, input_prompt, source_lang_state, target_lang_state]
91
+ )
92
+
93
+ gr.Examples(
94
+ examples=[
95
+ ["Hello, how are you?", "English", "Welsh"],
96
+ ["Bore da!", "Welsh", "English"],
97
+ ],
98
+ inputs=[input_text, source_lang, target_lang]
99
+ )
100
 
101
  # Launch the app
102
  iface.launch()