I need to run long running tasks (like vector embeddings of large documents) in Streamlit without blocking the user interface. How to properly do this?
I have been reading about using Streamlit asynchronously for the past several days but to me as a newbie (both Streamlit and Python) it is not obvious how to do a simple task: user uploads several large documents that need to be embedded using ChatGPT API calls. This runs a long time and I want to offer the user to do something else in the mean time (run this embedding process in the background) and just notify the user when finished (successful or with an error) using st.status.
Thanks for any comments or pointers where the solution for this is being shown.