dstack 0.6.2: an alpha version of interactive applications is here!
Started in 2020 as a pet project, this year dstack plans to double down on its mission to make prototyping ML applications easier.
Based on the continuous interaction we have had with some of you, we are now releasing the alpha version of dstack 0.6.2, which is a preview of the new feature called “interactive applications” that we promised some time ago.
Here’s a very simple example of how it works:
pip install dstack==0.6.2
dstack server start
Run a simple script:
import dstack.controls as ctrl import dstack as ds import plotly.express as px def get_data(): return px.data.stocks() def ticker_handler(self: ctrl.ComboBox): self.items = get_data().columns[1:].tolist() def output_handler(self, ticker): self.data = px.line(get_data(), x='date', y=ticker.value()) app = ds.app(controls=[(ctrl.ComboBox(handler=ticker_handler))], outputs=[ctrl.Output(data=ds.md("Here's a simple application" " with **Markdown** and a chart.")), ctrl.Output(handler=output_handler)]) result = ds.push("markdown", app) print(result.url)
If you click the link, you'll see the following:
Here’s what dstack currently supports:
- The supported controls include TextField, ComboBox, CheckBox, Slider, FileUploader, and Apply.
- Controls may be populated from external data sources, and may also depend on each other.
- Outputs may contain dataframes (table data), charts (Plotly, Matplotlib, Bokeh, Seaborn), and markdown.
- Any function used by the application can be cached according to provided rules.
- Applications may have dependencies to local modules and to third party packages. The server in that case will create a virtual environment and fetch all dependencies on the first run.
- It’s possible to write application logs and access them from the application.
- It’s possible to store ML models with dstack’s ML Registry and re-use them from applications.
- It’s possible to run a dstack server locally via the command line, or on a server via its Docker image.
- It’s possible to manage access level per application and for the entire server.
- It’s possible to invite other users to work with applications.
- For sharing purposes, it’s possible to deploy dstack applications to dstack.cloud. It’s a free managed service to host applications.
How is this helpful?
Imagine, you want to have a dashboard that predicts which of your customers you need to contact and offer help before they leave your service. You would like to build a quick prototype for your sales team and see if it works before you invest in an expensive B2B product to build the dashboard. Now, with dstack, you can build this dashboard that uses an ML model against your live data within minutes. Once the application is ready, it can be immediately shared with the sales team. No development or deployment skills are required!
dstack can also be used to get insights into other problems beyond churn and sales within your company.. All you need is to set up a dstack server and push applications and models to the server. Given the tool is entirely open-source, you don’t have to go through a long vetting process inside your company and get all stakeholders on board before you can use it. Just run it on your local machine or deploy via a Docker to a server!
Here’s a list with some questions and answers:
Q: Where do I find more information? A: All documentation is available at docs.dstack.ai
Q: Where do I start? Are there any tutorials? A: The easiest way to start is by following the quickstart . More tutorials are available here . The source code of the example is also available in this GItHub repo .
We continue improving the tool according to your feedback. We plan to fully focus on the open-source product and do not plan to invest time or energy into SaaS or another commercial offering.
Call to action:
- Build an application using dstack
- Share your application with others using dstack.cloud.
- Tell us about your feedback (for bugs, create issues , for other feedback, email to the team at dstack.ai, or ask in Discord )
P.S.: We’re hiring a founding data scientist. Apply if you’d like to join our team.