Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import time | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| messages_per_second = gr.Number(100, label="Messages per second") | |
| number_of_messages = gr.Number(200, label="Number of messages") | |
| chatbot = gr.Chatbot() | |
| start = gr.Button("Start") | |
| def bot(messages_per_second, number_of_messages): | |
| history = [[f"Streaming {number_of_messages} msgs at {messages_per_second} msg/s ", ""]] | |
| start_time = time.time() | |
| for num in range(number_of_messages): | |
| history[-1][1] += " " + str(num) | |
| time.sleep(1 / messages_per_second) | |
| yield history, None | |
| end_time = time.time() | |
| yield history, end_time - start_time | |
| with gr.Row(): | |
| expected_duration = gr.Number(label="Expected Duration (w/o Overhead)") | |
| backend_duration = gr.Number(label="Duration (for Backend)") | |
| frontend_duration = gr.Number(label="Duration (for Frontend)") | |
| start.click(fn=None, js="""() => { | |
| window.start_time = performance.now(); | |
| }""") | |
| start.click(lambda messages_per_second, number_of_messages: number_of_messages / messages_per_second, [messages_per_second, number_of_messages], [expected_duration]) | |
| start.click(bot, [messages_per_second, number_of_messages], [chatbot, backend_duration]).then( | |
| fn=None, | |
| outputs=frontend_duration, | |
| js="""() => { | |
| let now = performance.now(); | |
| return (now - window.start_time) / 1000; | |
| }""") | |
| demo.launch() |