Spaces:
Sleeping
Sleeping
import copy | |
import random | |
import gradio as gr | |
TEST = """ Test of Time. A Benchmark for Evaluating LLMs on Temporal Reasoning. Large language models (LLMs) have | |
showcased remarkable reasoning capabilities, yet they remain susceptible to errors, particularly in temporal | |
reasoning tasks involving complex temporal logic. """ | |
def generate_data_test(): | |
"""Generator to yield words""" | |
temp = copy.deepcopy(TEST) | |
l1 = temp.split() | |
random.shuffle(l1) | |
temp = ' '.join(l1) | |
for word in temp.split(" "): | |
yield word + " " | |
def stream_data(content_list, model): | |
"""Stream data to three columns""" | |
outputs = ["" for _ in content_list] | |
# Use the gen method to handle batch generation | |
generator = model.streaming(content_list) | |
while True: | |
updated = False | |
try: | |
id, word = next(generator) # Get the next generated word for the corresponding content | |
outputs[id] += f"{word} " | |
updated = True | |
except StopIteration: | |
break | |
if updated: | |
yield tuple(outputs) | |
def create_interface(): | |
with gr.Blocks() as demo: | |
with gr.Group(): | |
with gr.Row(): | |
columns = [gr.Textbox(label=f"Column {i+1}", lines=10) for i in range(3)] | |
start_btn = gr.Button("Start Streaming") | |
def start_streaming(): | |
content_list = [col.value for col in columns] # Get input texts from text boxes | |
for data in stream_data(content_list): | |
updates = [gr.update(value=data[i]) for i in range(len(columns))] | |
yield tuple(updates) | |
start_btn.click( | |
fn=start_streaming, | |
inputs=[], | |
outputs=columns, | |
show_progress=False | |
) | |
return demo | |
if __name__ == "__main__": | |
demo = create_interface() | |
demo.queue() | |
demo.launch() |