import gradio as gr import time def generate_no_stream(): text = "Hello, this is an example without using streaming that emulates a model." time.sleep(1.2) return text def generate_streaming(): text = "Hello, this is an example using streaming that emulates a model ." results = "" for word in text.split(): time.sleep(0.1) results += word results += " " yield results with gr.Blocks() as demo: btn = gr.Button("Generate") out_non_stream = gr.Textbox(label="Non-streaming Generation") out_stream = gr.Textbox(label="Streaming Generation") def change_visibility(): return { out_non_stream: gr.update(visible=True), out_stream: gr.update(visible=True), } btn.click(fn=change_visibility, outputs=[out_non_stream, out_stream]) btn.click(fn=generate_streaming, outputs=out_stream) btn.click(fn=generate_no_stream, outputs=out_non_stream) demo.queue(2) demo.launch(debug=True)