An open-source tool to rapidly develop data applications with Python
No Data
dstack is an open-source platform to build and share data and ML applications within hours
Installing and running
dstackis very easy:
pip install dstack dstack server start
If you run it for the first time, it may take a while. Once it's done, you'll see the following output:
To access the application, open this URL in the browser: http://localhost:8080/auth/verify?user=dstack&code=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&next=/The default profile in "~/.dstack/config.yaml" is already configured. You are welcome to push your applications using Python package.
To access
dstack, click the URL provided in the output. If you try to access
dstackwithout using this URL, it will require you to sign up using a username and a password.
If you open the URL, you'll see the following interface:
You'll be logged as the
dstackuser. The page you'll see is
Applications. It shows you all published applications which you have access to. The sidebar on the left lets you open other pages:
ML Models,
Settings,
Documentation, and
Chat.
Here's an elementary example of using
dstack. The application takes real-time stock exchange data from Yahoo Finance for the FAANG companies and renders it for a selected symbol. Here's the Python code that you have to run to make such an application:
import dstack.controls as ctrl import dstack as ds import plotly.express as px@ds.cache() def get_data(): return px.data.stocks()
def output_handler(self, ticker): self.data = px.line(get_data(), x='date', y=ticker.value())
app = ds.app(controls=[(ctrl.ComboBox(items=get_data().columns[1:].tolist()))], outputs=[(ctrl.Output(handler=output_handler))])
result = ds.push("minimal_app", app) print(result.url)
If you run it and click the provided URL, you'll see the application:
To learn about how this application works and to see other examples, please check out the Tutorials documentation page.
To learn in more detail about what applications consist of and how to use all their features, check out the Concepts documentation page.
dstackdecouples the development of applications from the development of ML models by offering an
ML registry. This way, one can develop ML models, push them to the registry, and then later pull these models from applications.
dstack's
ML Registrysupports
Tensorflow,
PyTorch, or
Scikit-Learnmodels.
Here's a very simple example of how to push a model to
dstack:
from sklearn import datasets from sklearn import svm import dstack as dsdigits = datasets.load_digits() clf = svm.SVC(gamma=0.001, C=100.) clf.fit(digits.data[:-1], digits.target[:-1])
url = ds.push("clf_app", clf) print(url)
Now, if you click the URL, it will open the following page:
Here you can see the snippet of how to pull the model from an application or from anywhere else:
import dstack as dsmodel = ds.pull('/dstack/clf_app')
To learn how to build an application that uses a simple ML model, check out the corresponding tutorial.
Do you have any feedback either minor or critical? Please, file an issue in our GitHub repo or write to us on our Discord Channel.
Have you tried
dstack? Please share your feedback with us using this form!
For more details on the API and code samples, check out the docs.
The instructions on how to build dstack from sources can be found here.
dstackis an open-source library licensed under the Apache 2.0 license