aliabid94's picture
aliabid94 HF staff
Upload folder using huggingface_hub
1f4efdc verified
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()