{"id":19490264,"url":"https://github.com/rstudio/vetiver-python","last_synced_at":"2025-04-04T12:05:47.015Z","repository":{"id":37072341,"uuid":"436454363","full_name":"rstudio/vetiver-python","owner":"rstudio","description":"Version, share, deploy, and monitor models.","archived":false,"fork":false,"pushed_at":"2025-03-21T16:59:42.000Z","size":7235,"stargazers_count":65,"open_issues_count":17,"forks_count":18,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T11:06:14.342Z","etag":null,"topics":["mlops","model-deploy","model-monitoring","model-versioning","python"],"latest_commit_sha":null,"homepage":"https://rstudio.github.io/vetiver-python/stable/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rstudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-09T02:14:08.000Z","updated_at":"2025-03-21T16:57:15.000Z","dependencies_parsed_at":"2023-11-07T04:48:35.514Z","dependency_job_id":"6af42f6c-447c-4ac1-a2a2-f2970c53ce7a","html_url":"https://github.com/rstudio/vetiver-python","commit_stats":{"total_commits":562,"total_committers":15,"mean_commits":37.46666666666667,"dds":0.1512455516014235,"last_synced_commit":"eeab40ef5f7d9b1a2a47278645e257083afb9d2a"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fvetiver-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fvetiver-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fvetiver-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fvetiver-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rstudio","download_url":"https://codeload.github.com/rstudio/vetiver-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174402,"owners_count":20896075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mlops","model-deploy","model-monitoring","model-versioning","python"],"created_at":"2024-11-10T21:12:02.319Z","updated_at":"2025-04-04T12:05:46.994Z","avatar_url":"https://github.com/rstudio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vetiver \u003ca href='https://rstudio.github.io/vetiver-python/'\u003e\u003cimg src='docs/figures/logo.png' align=\"right\" height=\"138\" /\u003e\u003c/a\u003e\n\n\u003c!-- badges: start --\u003e\n\n[![Lifecycle:\nexperimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) [![codecov](https://codecov.io/gh/isabelizimm/vetiver-python/branch/main/graph/badge.svg?token=CW6JHVS6ZX)](https://codecov.io/gh/isabelizimm/vetiver-python)\n\n\u003c!-- badges: end --\u003e\n\n_Vetiver, the oil of tranquility, is used as a stabilizing ingredient in perfumery to preserve more volatile fragrances._\n\nThe 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:\n\n- the documentation at \u003chttps://vetiver.rstudio.com/\u003e\n- the R package at \u003chttps://rstudio.github.io/vetiver-r/\u003e\n\nYou can use vetiver with:\n\n-   [scikit-learn](https://scikit-learn.org/)\n-   [torch](https://pytorch.org/)\n-   [statsmodels](https://www.statsmodels.org/stable/index.html)\n-   [xgboost](https://xgboost.readthedocs.io/en/stable/)\n-   [spacy](https://spacy.io/)\n-   or utilize [custom handlers](https://rstudio.github.io/vetiver-python/stable/advancedusage/custom_handler.html) to support your own models!\n\n## Installation\n\nYou can install the released version of vetiver from [PyPI](https://pypi.org/project/vetiver/):\n\n```python\npython -m pip install vetiver\n```\n\nAnd the development version from [GitHub](https://github.com/rstudio/vetiver-python) with:\n\n```python\npython -m pip install git+https://github.com/rstudio/vetiver-python\n```\n\n## Example\n\nA `VetiverModel()` object collects the information needed to store, version, and deploy a trained model.\n\n```python\nfrom vetiver import mock, VetiverModel\n\nX, y = mock.get_mock_data()\nmodel = mock.get_mock_model().fit(X, y)\n\nv = VetiverModel(model, model_name='mock_model', prototype_data=X)\n```\n\nYou 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.\n\n```python\nfrom pins import board_temp\nfrom vetiver import vetiver_pin_write\n\nmodel_board = board_temp(versioned = True, allow_pickle_read = True)\nvetiver_pin_write(model_board, v)\n```\n\nYou can **deploy** your pinned `VetiverModel()` using `VetiverAPI()`, an extension of [FastAPI](https://fastapi.tiangolo.com/).\n\n```python\nfrom vetiver import VetiverAPI\napp = VetiverAPI(v, check_prototype = True)\n```\n\nTo start a server using this object, use `app.run(port = 8080)` or your port of choice.\n\n## Contributing\n\nThis 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.\n\n- 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\u0026tags=vetiver,question).\n\n- If you think you have encountered a bug, please [submit an issue](https://github.com/rstudio/vetiver-python/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstudio%2Fvetiver-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frstudio%2Fvetiver-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstudio%2Fvetiver-python/lists"}