from gradio_client import Client, file import gradio as gr import time import concurrent client = Client("Renecto/parallel_en2fr") def fetch_result(ens): result = client.predict( ens=ens, api_name="/ens2frs" ) print(result["data"]) return result["data"] def ens2frs(ens1, ens2, ens3): acum = 0 start_total = time.time() tasks = [ens1, ens2, ens3] with concurrent.futures.ThreadPoolExecutor() as executor: results = list(executor.map(fetch_result, tasks)) frs = [] for result in results: for r in result: frs.append([r[0], r[1]]) print(f"Result:{r[0]}, Time taken: {r[1]} seconds") acum += r[1] end_total = time.time() duration_total = end_total - start_total print(f"total time: {duration_total} seconds") print(f"acum time: {acum:.2f} seconds") print(f"Efficiency: {acum/duration_total*100:.1f} %") return frs with gr.Blocks() as app: ens1 = gr.TextArea( """love book world wide""") ens2 = gr.TextArea( """hate television local narrow""") ens3 = gr.TextArea( """neutral radio urban normal""") button1 = gr.Button("↓en2fr") output = gr.Dataframe(label="result") button1.click(ens2frs, inputs=[ens1,ens2,ens3], outputs=output) app.launch(debug=True, share=True)