Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import json | |
session_state, | |
consent_storage, | |
], | |
outputs=[chatbot_display], | |
) | |
.then(fn=set_interactive, inputs=[], outputs=[sandbox_html]) | |
.then(fn=reactivate_stop_btn, outputs=[stop_btn]) | |
) | |
def interrupt_agent(session_state): | |
if not session_state["agent"].interrupt_switch: | |
session_state["agent"].interrupt() | |
print("Stopping agent...") | |
return gr.Button("Stopping agent... (could take time)", variant="secondary") | |
else: | |
return gr.Button("Stop the agent!", variant="huggingface") | |
stop_btn.click(fn=interrupt_agent, inputs=[session_state], outputs=[stop_btn]) | |
def upload_interaction_logs(session: gr.Request): | |
data_dirs = [] | |
for interaction_id in list( | |
INTERACTION_IDS_PER_SESSION_HASH[session.session_hash].keys() | |
): | |
data_dir = os.path.join(TMP_DIR, interaction_id) | |
if os.path.exists(data_dir): | |
data_dirs.append(data_dir) | |
del INTERACTION_IDS_PER_SESSION_HASH[session.session_hash][ | |
interaction_id | |
] | |
upload_to_hf_and_remove(data_dirs) | |
demo.load( | |
fn=lambda: True, # dummy to trigger the load | |
outputs=[is_interactive], | |
).then( | |
fn=initialize_session, | |
inputs=[is_interactive], | |
outputs=[sandbox_html], | |
) | |
demo.unload(fn=upload_interaction_logs) | |
# Launch the app | |
if __name__ == "__main__": | |
Timer(60, cleanup_sandboxes).start() # Run every minute | |
demo.launch() | |