Spaces:
Runtime error
Runtime error
import gradio as gr | |
def get_model_response(txt: str, user_chats: list[str], full_chat_history: list[str]): | |
response = f'Hello, you said "{txt}"' | |
full_chat_history = full_chat_history + [txt, response] | |
user_chats.append(txt) | |
responses = [ | |
(full_chat_history[i], full_chat_history[i + 1]) | |
for i in range(0, len(full_chat_history) - 1, 2) | |
] | |
return responses, full_chat_history, user_chats | |
def clear_chat( | |
full_chat_history: list[str], | |
chatbox: list[tuple[str, str]], | |
user_chats: list[str], | |
cleartill_dropdown_choices: list[str], | |
drop_down: str, | |
): | |
if drop_down == "": | |
index = 0 | |
else: | |
index = user_chats.index(drop_down) | |
return ( | |
# full_chat_history has user_chat and response chats in a single line. | |
full_chat_history[: index * 2], | |
chatbox[:index], | |
user_chats[:index], | |
cleartill_dropdown_choices[:index], | |
gr.update(choices=cleartill_dropdown_choices[:index], value=""), | |
) | |
def add_to_dropdown(txt, drop_down_options): | |
drop_down_options = drop_down_options + [txt] | |
return gr.update(choices=drop_down_options), drop_down_options | |
drop_down = gr.Dropdown( | |
label="Clear From (including)", | |
choices=[], | |
interactive=True, | |
multiselect=False, | |
) | |
with gr.Blocks() as demo: | |
user_chats = gr.State(value=[]) | |
full_chat_history = gr.State(value=[]) | |
cleartill_dropdown_choices = gr.State(value=[]) | |
chatbox = gr.Chatbot() | |
with gr.Row(): | |
with gr.Column(scale=5): | |
user_chat_txt = gr.Textbox( | |
placeholder="Say Hi!", label="press Enter to submit" | |
) | |
user_chat_txt.submit( | |
get_model_response, | |
inputs=[user_chat_txt, user_chats, full_chat_history], | |
outputs=[chatbox, full_chat_history, user_chats], | |
) | |
user_chat_txt.submit(lambda: gr.update(value=""), [], user_chat_txt) | |
user_chat_txt.submit( | |
add_to_dropdown, | |
inputs=[user_chat_txt, cleartill_dropdown_choices], | |
outputs=[drop_down, cleartill_dropdown_choices], | |
) | |
with gr.Column(scale=1, min_width=250): | |
drop_down.render() | |
clear_btn = gr.Button("Clear", label="Clear chat history") | |
clear_btn.click( | |
clear_chat, | |
inputs=[ | |
full_chat_history, | |
chatbox, | |
user_chats, | |
cleartill_dropdown_choices, | |
drop_down, | |
], | |
outputs=[ | |
full_chat_history, | |
chatbox, | |
user_chats, | |
cleartill_dropdown_choices, | |
drop_down, | |
], | |
) | |
with gr.Accordion(label="Red-Teaming", open=True): | |
gr.Markdown("*instructions on what to do if you break the model*") | |
gr.Textbox() | |
with gr.Row(): | |
submit_btn = gr.Button("Submit", label="Submit") | |
import_chat_btn = gr.Button("Import Chat", label="import chat") | |
export_chat_btn = gr.Button("Export Chat", label="export chat") | |
demo.launch() | |