import gradio as gr from datasets import load_dataset from typing import List,Dict from gradio import ChatMessage DATASETS_LIST = [("Self-GRIT/tuluv2-expanded-150k-part_v0-chat-format-syn-knowledge","part_v0")] DATASETS = {f"{name}: {split}":load_dataset(name,split = split) for name,split in DATASETS_LIST} LENS = {name:len(dataset) for name,dataset in DATASETS.items()} KEY_MESSAGES_ORIGINAL = "messages_original" KEY_MESSAGES_AUGMENTED = "messages_augmented" def return_conversation_chat_message(history: List[Dict]): conversation = [] for message in history: conversation.append(ChatMessage(role = message["role"],content = message["content"])) return conversation def update_chatbot(value,dataset_name): example = DATASETS[dataset_name][int(value)] domain,_id = example["dataset"],example["id"] oring_chat_history = return_conversation_chat_message(example[KEY_MESSAGES_ORIGINAL]) augmented_chat_history = return_conversation_chat_message(example[KEY_MESSAGES_AUGMENTED]) return oring_chat_history,augmented_chat_history,domain,_id with gr.Blocks() as demo: with gr.Group(): with gr.Row(): with gr.Column(): dropdown = gr.Dropdown(DATASETS.keys(), label="Select the dataset") with gr.Column(): slider = gr.Slider(minimum=0, maximum=48127, step=1, label="Select the example") with gr.Group(): with gr.Row(): with gr.Column(): domain_text = gr.Textbox("Domain") with gr.Column(): id_text = gr.Textbox("ID") with gr.Row(): gr.Markdown("Original Chat") with gr.Row(): chatbot_original = gr.Chatbot(type = "messages") with gr.Group(): with gr.Row(): gr.Markdown("Augmented Chat") with gr.Row(): chatbot_augmented = gr.Chatbot(type = "messages") slider.change(fn=update_chatbot, inputs=[slider,dropdown], outputs=[chatbot_original,chatbot_augmented,domain_text,id_text]) demo.launch()