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)