{"id":28408065,"url":"https://github.com/siftly-ai/airdot-deployer","last_synced_at":"2025-07-04T09:07:24.980Z","repository":{"id":170600831,"uuid":"646776798","full_name":"siftly-ai/airdot-deployer","owner":"siftly-ai","description":"Tool to take your ML model from local to production with one-line of code.","archived":false,"fork":false,"pushed_at":"2024-01-19T09:30:05.000Z","size":840,"stargazers_count":25,"open_issues_count":13,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-02T11:07:53.526Z","etag":null,"topics":["k8s","machine-learning","ml","mlops","seldon-core"],"latest_commit_sha":null,"homepage":"","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/siftly-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2023-05-29T10:12:32.000Z","updated_at":"2025-01-07T10:35:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"ffc77782-b4dc-4c09-b4ee-595d059561cd","html_url":"https://github.com/siftly-ai/airdot-deployer","commit_stats":null,"previous_names":["airdot-io/airdot-deploy"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/siftly-ai/airdot-deployer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siftly-ai%2Fairdot-deployer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siftly-ai%2Fairdot-deployer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siftly-ai%2Fairdot-deployer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siftly-ai%2Fairdot-deployer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siftly-ai","download_url":"https://codeload.github.com/siftly-ai/airdot-deployer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siftly-ai%2Fairdot-deployer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262654591,"owners_count":23343681,"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":["k8s","machine-learning","ml","mlops","seldon-core"],"created_at":"2025-06-02T02:07:56.318Z","updated_at":"2025-07-04T09:07:24.965Z","avatar_url":"https://github.com/siftly-ai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Airdot Deployer\n\n\n[![Python](https://img.shields.io/badge/PythonVersion-3.7%20%7C%203.8%20%7C%203.9-blue)](https://www.python.org/downloads/release/python-360/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nDeploy your ML models in **minutes**, not **weeks**.\n\nDetailed documentation can be found [here](https://airdot-io.github.io/airdot-deployer/)\n\nAirdot Deployer will automatically:\n\n1. Restructure your Python code (from Jupyter Notebook/local IDEs) into modules.\n2. Builds a REST API around your code.\n3. Conterize the app.\n4. Spins up the required hardware (local or K8s or cloud).\n5. Monitors for model/data drift and performance (in development)\n\n## Take your ML model from Local to Production with one-line of code\n\n```python\nfrom airdot.deployer import Deployer\ndeployer_obj = Deployer().run(\u003cyour-ml-predictor\u003e)\n```\n\nOnce deployed, your model will be up and running on the intra/internet, accessible to your users. No more worrying about complex server setups or manual configuration. Airdot Deployer does all the heavy lifting for you.\n\n```bash\ncurl -XPOST \u003curl\u003e -H 'Content-Type: application/json' -d '{\"args\": \"some-value\"}'\n```\n\nWhether you're a data scientist, developer, or tech enthusiast, Airdot Deployer empowers you to showcase your machine learning prowess and share your creations effortlessly.\n\n\n\n## What does Airdot Deployer supports ?\n\n* Local Deployment with Docker ![docker](/icon/docker.png)\n* K8s Deployment with seldon core  ![core](/icon/seldon-core.webp)\n\n# Want to try Airdot ? follow setup instructions\n\n## 📋 Setup Instructions\n\nBefore we get started, you'll need to have Docker, Docker Compose, and s2i installed on your machine. If you don't have these installed yet, no worries! Follow the steps below to get them set up:\n\n\n### Docker Install\nPlease visit the appropriate links to install Docker on your machine:\n- For macOS, visit [here](https://docs.docker.com/desktop/install/mac-install/)\n- For Windows, visit [here](https://docs.docker.com/desktop/install/windows-install/)\n- For Linux, visit [here](https://docs.docker.com/desktop/install/linux-install/)\n\n#### S2I install\nFor Mac\nYou can either follow the installation instructions for Linux (and use the darwin-amd64 link) or you can just install source-to-image with Homebrew:\n\n```$ brew install source-to-image```\n\nFor Linux just run following command\n\n```bash\ncurl -s https://api.github.com/repos/openshift/source-to-image/releases/latest| grep browser_download_url | grep linux-amd64 | cut -d '\"' -f 4  | wget -qi -\n```\nFor Windows please follow instruction [here](https://github.com/openshift/source-to-image#for-windows)\n\n\n## 💻 Airdot Deployer Installation\nInstall the Airdot Deployer package using pip:\n\n```bash\npip install \"git+https://github.com/airdot-io/airdot-deployer.git@main#egg=airdot\"\n```\n\n## or\n\n```bash\npip install airdot\n```\n\n## 🎯 Let's try out\n\n### Local Deployments\n\n#### Run following in terminal to setup minio and redis on your machine\n\n```bash\ndocker network create minio-network \u0026\u0026 wget  https://raw.githubusercontent.com/airdot-io/airdot-deployer/main/docker-compose.yaml \u0026\u0026 docker-compose -p airdot up\n```\n\n### Train your model\n\n```python\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom airdot.deployer import Deployer\nfrom sklearn import datasets\nimport pandas as pd\nimport numpy as np\n\niris = datasets.load_iris()\niris = pd.DataFrame(\n    data= np.c_[iris['data'], iris['target']],\n    columns= iris['feature_names'] + ['target']\n)\nX = iris.drop(['target'], axis=1)\nX = X.to_numpy()[:, (2,3)]\ny = iris['target']\nX_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.5, random_state=42)\nlog_reg = LogisticRegression()\nlog_reg.fit(X_train,y_train)\n```\n\n### Test your model\n\n```python\ndef predict(value):\n    return log_reg.predict(value)\n```\n\n### Deploy in one step 🤯\n\n```python\ndeployer_obj = Deployer().run(predict)\n```\n\n### Use your deployed Model\n\n```bash\ncurl -XPOST http://127.0.0.1:8000 -H 'Content-Type: application/json' -d '{\"value\": [[4.7, 1.2]]}'\n```\n\n### Want to stop your deployment\n\n```python\ndeployer.stop('predict') # to stop container\n```\n\n## Deployment on k8s using seldon-core deployment\n\n**Note - This method will use your current cluster and uses seldon-core to deploy**\n\n```python\nfrom airdot import Deployer\nimport pandas as pd\n\n# this is using default seldon-deployment configuration.\nconfig = {\n        'deployment_type':'seldon',\n        'bucket_type':'minio',\n        'image_uri':'\u003cregistry\u003e/get_value_data:latest'\n        }\ndeployer = Deployer(deployment_configuration=config) \n\n\ndf2 = pd.DataFrame(data=[[10,20],[10,40]], columns=['1', '2'])\ndef get_value_data(cl_idx='1'):\n    return df2[cl_idx].values.tolist()\n\ndeployer.run(get_value_data) \n```\n\n#### you can also deploy using seldon custom configuration  \n\n```python\nfrom airdot import Deployer\nimport pandas as pd\n\n# this is using default seldon-deployment configuration.\nconfig = {\n        'deployment_type':'seldon',\n        'bucket_type':'minio',\n        'image_uri':'\u003cregistry\u003e/get_value_data:latest',\n        'seldon_configuration': '' # your custom seldon configuration\n        }\ndeployer = Deployer(deployment_configuration=config) \n\n\ndf2 = pd.DataFrame(data=[[10,20],[10,40]], columns=['1', '2'])\ndef get_value_data(cl_idx='1'):\n    return df2[cl_idx].values.tolist()\n\ndeployer.run(get_value_data) \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiftly-ai%2Fairdot-deployer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiftly-ai%2Fairdot-deployer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiftly-ai%2Fairdot-deployer/lists"}