Streamlit in Snowflake: Improved Customization, Performance and AI Capabilities
Snowflake’s mission is to mobilize the entire world’s data, and there are millions of data scientists and developers who don’t have access to full-stack engineering teams. It’s been our endeavor to bring the power of the AI Data Cloud to every individual developer, data scientist and machine learning engineer, so that they can build and share world-class data apps — all by themselves. Streamlit is an open source library that turns Python scripts into shareable web apps. No frontend experience is needed, and apps are written in pure Python. Over the past couple of years, Streamlit has become the standard for Python-based data app development and, with Streamlit in Snowflake, users can build an app in minutes.
Since the public preview of Streamlit in Snowflake (“SiS”) and its subsequent release to general availability across commercial clouds (AWS, Azure, GCP) — we have seen tremendous adoption among our customers with more than 11,000 new Streamlit apps were created in the just the last 30 days (as of June 1st, 2024). Streamlit in Snowflake apps can be used for a variety of use cases, some of which are shown below.
What’s new: AI chatbots
Streamlit provides chat elements that can be used to build conversational apps. Combined with Snowflake Cortex AI, customers can build chat-based applications that utilize industry leading models, such as Snowflake Arctic, Llama3, Mixtral 8x7b and others. Using the models hosted in Cortex AI inside a Streamlit app is as simple as importing a Python library and making a function call.
Some customers may also want to access Externally hosted LLMs. With External Access Integration support in SiS (private preview), customers can now also call externally-hosted models, like OpenAI’s ChatGPT, or other APIs directly in their apps. External Access Integrations can be used to access specific external network locations, which are controlled via a list of network rules, and governed via role based access control.
What’s new: Custom UI
With support for Custom UI (private preview), customers can create apps that reflect their branding with custom HTML and CSS.
Additionally, Streamlit in Snowflake apps now also support Dark Mode.
What’s new: Performance improvements
App load time is a critical component of usability, and we have been making investments in improving the performance of Streamlit in Snowflake apps. Through backend improvements, we have reduced the initial load time and creation times. Additionally, the loading experience now feels smoother with Initial Response Caches (private preview), which instantly renders tables, charts, and text on the screen showing the end user app content right away. In parallel, the warehouse spins up, and once ready the end user can start interacting with the app.
Here’s a GIF showing the enhanced loading experience with Initial Response Cache enabled.
What’s new: Improved parity with open source Streamlit
In the past couple of quarters, we have been making improvements to support the same experience in SiS that customers have when using open source Streamlit. Updates include support for the following open source components:
- Input/output: st.download_button
- Media elements, including st.image, st.audio and st.video
- Expanded charting support for Matplotlib, Seaborn and H3
- Newer Streamlit library versions: 1.26, 1.29 and 1.31
Ready to unlock the power of Streamlit in Snowflake?
With a robust foundation for secure, scalable data app development and a commitment to ongoing innovation, Streamlit in Snowflake offers you a multitude of ways to explore and interact with your data. To help you get started, we’re also open sourcing a set of curated examples, which an app builder can take and run in their own Snowflake account (all setup steps included)! Explore example apps and tutorials to get hands-on in our Examples Github repo.
Resources
- Dive deeper into the latest features with our comprehensive documentation.
- Join our growing community of Streamlit users and Snowflake enthusiasts, and give us your feedback on Streamlit in Snowflake.
- Streamlit in Snowflake Examples Github repo
We're excited to see what you build. Happy Streamlit-ing!