add stop button
This commit is contained in:
@@ -238,13 +238,17 @@ def process_input(user_input, state):
|
|||||||
only_n_most_recent_images=state["only_n_most_recent_images"],
|
only_n_most_recent_images=state["only_n_most_recent_images"],
|
||||||
omniparser_url=args.omniparser_server_url
|
omniparser_url=args.omniparser_server_url
|
||||||
):
|
):
|
||||||
if loop_msg is None:
|
if loop_msg is None or state.get("stop"):
|
||||||
yield state['chatbot_messages']
|
yield state['chatbot_messages']
|
||||||
print("End of task. Close the loop.")
|
print("End of task. Close the loop.")
|
||||||
break
|
break
|
||||||
|
|
||||||
yield state['chatbot_messages'] # Yield the updated chatbot_messages to update the chatbot UI
|
yield state['chatbot_messages'] # Yield the updated chatbot_messages to update the chatbot UI
|
||||||
|
|
||||||
|
def stop_app(state):
|
||||||
|
state["stop"] = True
|
||||||
|
return "App stopped"
|
||||||
|
|
||||||
with gr.Blocks(theme=gr.themes.Default()) as demo:
|
with gr.Blocks(theme=gr.themes.Default()) as demo:
|
||||||
gr.HTML("""
|
gr.HTML("""
|
||||||
<style>
|
<style>
|
||||||
@@ -256,7 +260,7 @@ with gr.Blocks(theme=gr.themes.Default()) as demo:
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
""")
|
""")
|
||||||
state = gr.State({})
|
state = gr.State({"stop": False})
|
||||||
|
|
||||||
setup_state(state.value)
|
setup_state(state.value)
|
||||||
|
|
||||||
@@ -305,6 +309,8 @@ with gr.Blocks(theme=gr.themes.Default()) as demo:
|
|||||||
chat_input = gr.Textbox(show_label=False, placeholder="Type a message to send to Omniparser + X ...", container=False)
|
chat_input = gr.Textbox(show_label=False, placeholder="Type a message to send to Omniparser + X ...", container=False)
|
||||||
with gr.Column(scale=1, min_width=50):
|
with gr.Column(scale=1, min_width=50):
|
||||||
submit_button = gr.Button(value="Send", variant="primary")
|
submit_button = gr.Button(value="Send", variant="primary")
|
||||||
|
with gr.Column(scale=1, min_width=50):
|
||||||
|
stop_button = gr.Button(value="Stop", variant="secondary")
|
||||||
|
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
with gr.Column(scale=1):
|
with gr.Column(scale=1):
|
||||||
@@ -386,6 +392,7 @@ with gr.Blocks(theme=gr.themes.Default()) as demo:
|
|||||||
chatbot.clear(fn=clear_chat, inputs=[state], outputs=[chatbot])
|
chatbot.clear(fn=clear_chat, inputs=[state], outputs=[chatbot])
|
||||||
|
|
||||||
submit_button.click(process_input, [chat_input, state], chatbot)
|
submit_button.click(process_input, [chat_input, state], chatbot)
|
||||||
|
stop_button.click(stop_app, [state], None)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
demo.launch(server_name="0.0.0.0", server_port=7888)
|
demo.launch(server_name="0.0.0.0", server_port=7888)
|
||||||
Reference in New Issue
Block a user