parallel_en2fr / app.py
Renecto's picture
Update app.py
0ea1f1c verified
from gradio_client import Client, file
import gradio as gr
import time
import concurrent
client = Client("abidlabs/en2fr")
inputs = ["Hello", "Bonjour", "Hola", "Guten Tag", "Ciao"]
def fetch_result(i):
start = time.time()
job = client.submit(i, api_name="/predict")
result = job.result()
end = time.time()
duration = end - start
return result, duration
def ens2frs(ens):
start_total = time.time()
acum = 0
en = ens.split("\n")
with concurrent.futures.ThreadPoolExecutor() as executor:
results = list(executor.map(fetch_result, en))
frs = []
for result, duration in results:
print(f"Result:{result}, Time taken: {duration:.2f} seconds")
frs.append([result, duration])
acum += duration
end_total = time.time()
duration_total = end_total - start_total
print(f"total time: {duration_total:.2f} seconds")
print(f"acum time: {acum:.2f} seconds")
print(f"Efficiency: {acum/duration_total*100:.1f} %")
return frs
with gr.Blocks() as app:
ens = gr.TextArea(
"""love
book
world
wide""")
button1 = gr.Button("↓en2fr")
output = gr.Dataframe(label="result")
button1.click(ens2frs, inputs=ens, outputs=output)
app.launch(debug=True, share=True)