We've been using Plotly's Dash framework for about a year and a half at work and its been fantastic and only getting better. I do like the idea of not having callbacks here, though I've started to get a lot more comfortable with it and it feels a bit more robust.
At first glance, this feels like a competitor to Dash, but after chatting about this with my team, we realized it actually is closer to being a Jupyter Notebook/Lab replacement!
One of the things we all, my team that is, dislike about notebooks is the autocomplete and half baked IDE feeling. All of us prefer to stay in PyCharm and Streamlit lets you do just that, while keeping the interactive interface in addition to caching, which emulates the best part of notebook cells, saving your state and not having to rerun the entire script!
And for the nerdier people on your team, they may appreciate our post in Towards Data Science today:
I'm happy to answer any questions you have!
I'm currently doing the "develop in jupyter notebooks, deploy in python scripts" thing, however I'm only deploying predictive models, using AWS Lambda.
Would Streamlit be a good fit for this? I can see the value of the inline visualisation for code demos, testing, etc but it is not clear how I would then go about deploying any part of this into production ML environment, where the "data vis" part is less useful.
I'd love something that allowed me to deploy some code to Lambda, while also deploying Streamlit as a "swagger docs" type of explanation/exploration tool showing how what I've built works.
I'm going to try and build this into my current deployment, but I don't see anything on Streamlit in terms of an opinion on "deployment" concepts/options.
I've never used Lambda, but your question prompted two thoughts:
(1) Streamlit has an interesting property which we haven't yet publicized which is that if you:
streamlit run a_streamlit_sctipt.py
It runs a_streamlit_sctipt.py from top to bottom but disables all the Streamlit code! This is intended so that Streamlit scripts can doouble-duty as both ordinary python scripts and inline visualizations. Now. I'm not sure how this would behave with lambda, but I'd be very curious to hear your experience.
(2) The more standard Streamlit approach would be to deploy your model to lambda, and then write a Streamlit app which connects to that model on lambda and visualizes your model.
I hope that helps. Please do share your experiences! Streamlit is an emerging technology and we're still very much figuring out how it fits in the ecosystem. I think figuring out Streamlit <-> Lambda is important and I very curious to hear what you find!
Btw, the best place to continue the conversation would be at discuss.streamlit.io because there are probably more people there with Lambda experience who could help you. Also, more Streamlit users could benefit from your insights. :)
> python a_streamlit_sctipt.py
This is golden, well done.
I'll do some further tinkering and create a discuss thread once I have some further insights.
I've played around with the beta a bit, and really enjoy the workflow for building simple, interactive apps for showing off ML models.