https://github.com/rstudio/vetiver-python
Version, share, deploy, and monitor models.
https://github.com/rstudio/vetiver-python
mlops model-deploy model-monitoring model-versioning python
Last synced: about 1 year ago
JSON representation
Version, share, deploy, and monitor models.
- Host: GitHub
- URL: https://github.com/rstudio/vetiver-python
- Owner: rstudio
- License: mit
- Created: 2021-12-09T02:14:08.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-21T16:59:42.000Z (over 1 year ago)
- Last Synced: 2025-03-28T11:06:14.342Z (over 1 year ago)
- Topics: mlops, model-deploy, model-monitoring, model-versioning, python
- Language: Python
- Homepage: https://rstudio.github.io/vetiver-python/stable/
- Size: 6.9 MB
- Stars: 65
- Watchers: 6
- Forks: 18
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://lifecycle.r-lib.org/articles/stages.html#experimental) [](https://codecov.io/gh/isabelizimm/vetiver-python)
_Vetiver, the oil of tranquility, is used as a stabilizing ingredient in perfumery to preserve more volatile fragrances._
The goal of vetiver is to provide fluent tooling to version, share, deploy, and monitor a trained model. Functions handle both recording and checking the model's input data prototype, and predicting from a remote API endpoint. The vetiver package is extensible, with generics that can support many kinds of models, and available for both Python and R. To learn more about vetiver, see:
- the documentation at
- the R package at
You can use vetiver with:
- [scikit-learn](https://scikit-learn.org/)
- [torch](https://pytorch.org/)
- [statsmodels](https://www.statsmodels.org/stable/index.html)
- [xgboost](https://xgboost.readthedocs.io/en/stable/)
- [spacy](https://spacy.io/)
- or utilize [custom handlers](https://rstudio.github.io/vetiver-python/stable/advancedusage/custom_handler.html) to support your own models!
## Installation
You can install the released version of vetiver from [PyPI](https://pypi.org/project/vetiver/):
```python
python -m pip install vetiver
```
And the development version from [GitHub](https://github.com/rstudio/vetiver-python) with:
```python
python -m pip install git+https://github.com/rstudio/vetiver-python
```
## Example
A `VetiverModel()` object collects the information needed to store, version, and deploy a trained model.
```python
from vetiver import mock, VetiverModel
X, y = mock.get_mock_data()
model = mock.get_mock_model().fit(X, y)
v = VetiverModel(model, model_name='mock_model', prototype_data=X)
```
You can **version** and **share** your `VetiverModel()` by choosing a [pins](https://rstudio.github.io/pins-python/) "board" for it, including a local folder, [Connect](https://posit.co/products/enterprise/connect/), Amazon S3, and more.
```python
from pins import board_temp
from vetiver import vetiver_pin_write
model_board = board_temp(versioned = True, allow_pickle_read = True)
vetiver_pin_write(model_board, v)
```
You can **deploy** your pinned `VetiverModel()` using `VetiverAPI()`, an extension of [FastAPI](https://fastapi.tiangolo.com/).
```python
from vetiver import VetiverAPI
app = VetiverAPI(v, check_prototype = True)
```
To start a server using this object, use `app.run(port = 8080)` or your port of choice.
## Contributing
This project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.
- For questions and discussions about deploying models, statistical modeling, and machine learning, please [post on Posit Community](https://forum.posit.co/new-topic?category_id=15&tags=vetiver,question).
- If you think you have encountered a bug, please [submit an issue](https://github.com/rstudio/vetiver-python/issues).
