{"id":30620300,"url":"https://github.com/gagansingh894/jams-rs","last_synced_at":"2025-08-30T13:10:32.503Z","repository":{"id":242515533,"uuid":"801804262","full_name":"gagansingh894/jams-rs","owner":"gagansingh894","description":"Rust based model serving solution for popular machine learning frameworks","archived":false,"fork":false,"pushed_at":"2025-05-30T02:03:08.000Z","size":22628,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-18T16:04:39.675Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gagansingh894.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":"2024-05-17T00:23:31.000Z","updated_at":"2025-05-30T02:03:12.000Z","dependencies_parsed_at":"2024-06-03T14:07:08.419Z","dependency_job_id":"ae205bfc-66c8-4ff9-be97-d8b4cdd89b3b","html_url":"https://github.com/gagansingh894/jams-rs","commit_stats":null,"previous_names":["gagansingh894/jams-rs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gagansingh894/jams-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagansingh894%2Fjams-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagansingh894%2Fjams-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagansingh894%2Fjams-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagansingh894%2Fjams-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gagansingh894","download_url":"https://codeload.github.com/gagansingh894/jams-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagansingh894%2Fjams-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272853117,"owners_count":25004202,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-08-30T13:10:25.668Z","updated_at":"2025-08-30T13:10:32.482Z","avatar_url":"https://github.com/gagansingh894.png","language":"Rust","funding_links":[],"categories":["Machine Learning"],"sub_categories":[],"readme":"```\n    ___           ________           _____ ______            ________\n   |\\  \\         |\\   __  \\         |\\   _ \\  _   \\         |\\   ____\\\n   \\ \\  \\        \\ \\  \\|\\  \\        \\ \\  \\\\\\__\\ \\  \\        \\ \\  \\___|_\n __ \\ \\  \\        \\ \\   __  \\        \\ \\  \\\\|__| \\  \\        \\ \\_____  \\\n|\\  \\\\_\\  \\  ___   \\ \\  \\ \\  \\  ___   \\ \\  \\    \\ \\  \\  ___   \\|____|\\  \\\n\\ \\________\\|\\__\\   \\ \\__\\ \\__\\|\\__\\   \\ \\__\\    \\ \\__\\|\\__\\    ____\\_\\  \\\n \\|________|\\|__|    \\|__|\\|__|\\|__|    \\|__|     \\|__|\\|__|   |\\_________\\\n                                                               \\|_________|\n\nJ.A.M.S - Just Another Model Server\n```\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) \n[![Build](https://github.com/gagansingh894/jams-rs/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/gagansingh894/jams-rs/actions/workflows/build.yml)\n![Codecov](https://img.shields.io/codecov/c/github/gagansingh894/jams-rs)\n\n\n\n**J.A.M.S** acronym for Just Another Model Server aims to provide a fast, comprehensive and modular serving solution for tree based and deep learning models written in Rust 🦀\n\nIt is primarily targeted for software and data professionals for deploying their models in production\n\n## Features\n- Modular Design 📦\n- Config based deployment 🛠️\n- Supports PyTorch* and Tensorflow Models via FFI Bindings 🤖\n- Supports Tree Models - Catboost, LightGBM, (🚧) XGBoost via FFI Bindings 🌳\n- Supports multiple backends for model stores - local file system, AWS S3, Azure Blob,MinIO 🗳️\n- Supports model store polling ⌛\n- HTTP \u0026 gRPC API with ready to use clients in Python, Go, Rust, (🚧) TypeScript and (🚧) Java 🚀\n- CLI 💻  \n\nThe project is divided into the following crates\n\n- jams-core ![](https://img.shields.io/crates/v/jams-core)\n- jams-serve ![](https://img.shields.io/crates/v/jams-serve)\n- jams-proto ![](https://img.shields.io/crates/v/jams-proto)\n- jams ![](https://img.shields.io/crates/v/jams)\n\n`jams-core`\nis the core library\nwhich provides thin abstraction around common machine learning and deep learning models and model stores like AWS S3, \nAzure Blob Storage, Local Filesystem.\nYou can think of each component as a LEGO block which can be used to build a system depending on the requirements\n\n`jams-proto` provides the gRPC contract for jams-serve.\n\n`jams-serve` is a http and gRPC API library for jams-core.\nThe API is highly configurable, allowing the user to select which components to use when setting up the model server.\nPlease refer to examples for different types of setup.\n\n`jams` is an easy-to-use CLI application for interaction with J.A.M.S - Just Another Model Server.\n\n\n(🚧) **J.A.M.S** also provides HTTP \u0026 gRPC client implementations in multiple languages. [See here](https://github.com/gagansingh894/jams-rs/tree/main/clients)\n\n⚠️ **DISCLAIMER: jams is reaching stable version but may not run properly on ARM chips. Future releases will fix this.\nFor now use docker image or Linux x86_64 architecture. Only Pytorch 2.2.0 is supported for now due to dependencies on FFI bindings.\nAlthough you may be able to run models trained on version \u003c= 2.2.0**\n\n---\n\n## Docker Setup\nJ.A.M.S is hosted on [DockerHub](https://hub.docker.com/r/gagansingh894/jams).\n\n`docker pull gagansingh894/jams`\n\n##### Docker Compose\n\nEnsure that you have `docker compose` installed on your system. Please follow instructions [here](https://docs.docker.com/compose/install/)\n\n**Note: If you are on Apple Silicon, please disable `Use Rosetta for x86_64/amd64 emulation on Apple Silicon` option under settings**\n\nTo quickly get started running with `J.A.M.S`, please run the following\n\n1. Execute bash script\n\nThe script creates a jams-playground directory with a subdirectory models, and then downloads a Docker Compose configuration file and several machine learning model files from a GitHub repository into the respective directories. It runs with superuser privileges using sudo to ensure necessary permissions for directory creation and file downloads.\n\n```\nsudo bash -c 'mkdir -p jams-playground/models \u0026\u0026 \\\nwget -q -O jams-playground/docker-compose-playground.yml https://raw.githubusercontent.com/gagansingh894/jams-rs/main/build/docker-compose-playground.yml \u0026\u0026 \\\nwget -q -O jams-playground/models/catboost-titanic_model.tar.gz https://github.com/gagansingh894/jams-rs/raw/main/jams-serve/tests/model_store/catboost-titanic_model.tar.gz \u0026\u0026 \\\nwget -q -O jams-playground/models/lightgbm-my_awesome_reg_model.tar.gz https://github.com/gagansingh894/jams-rs/raw/main/jams-serve/tests/model_store/lightgbm-my_awesome_reg_model.tar.gz \u0026\u0026 \\\nwget -q -O jams-playground/models/pytorch-my_awesome_californiahousing_model.tar.gz https://github.com/gagansingh894/jams-rs/raw/main/jams-serve/tests/model_store/pytorch-my_awesome_californiahousing_model.tar.gz \u0026\u0026 \\\nwget -q -O jams-playground/models/tensorflow-my_awesome_penguin_model.tar.gz https://github.com/gagansingh894/jams-rs/raw/main/jams-serve/tests/model_store/tensorflow-my_awesome_penguin_model.tar.gz'\n```\n2. Run docker compose\n```\ndocker compose -f jams-playground/docker-compose-playground.yml up\n```\n\nIf everything worked fine, this should start a `minio` server with some preloaded models as model store, `J.A.M.S http` and `J.A.M.S grpc` server for\nmaking predictions. You can add new models by uploading them directly to `minio` via UI (http://0.0.0.0:9001). The models\nshould be of supported types and follow the naming convention  `\u003cmodel_framework\u003e-model_name.tar.gz`. \n\n[//]: # (In addition to this, it will also start jaeger service for observability. The UI can be accessed at http://0.0.0.0:16686)\n\nUse the curl commands to make predictions \n\n```\ncurl --location '0.0.0.0:3000/api/predict' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n  \"model_name\": \"my_awesome_penguin_model\",\n  \"input\": \"{\\\"island\\\":[2.0,2.0,2.0,2.0,2.0],\\\"bill_length_mm\\\":[39.1,39.5,40.3,36.7,39.3],\\\"bill_depth_mm\\\":[18.7,17.4,18.0,19.3,20.6],\\\"flipper_length_mm\\\":[181.0,186.0,195.0,193.0,190.0],\\\"body_mass_g\\\":[3750.0,3800.0,3250.0,3450.0,3650.0],\\\"sex\\\":[1.0,0.0,0.0,0.0,1.0]}\"\n}'\n```\n\n```\ncurl --location '0.0.0.0:3000/api/predict' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--data '{\n  \"model_name\": \"titanic_model\",\n  \"input\": \"{\\\"adult_male\\\":[\\\"True\\\",\\\"False\\\"],\\\"age\\\":[22.0,23.79929292929293],\\\"alone\\\":[\\\"True\\\",\\\"False\\\"],\\\"class\\\":[\\\"First\\\",\\\"Third\\\"],\\\"deck\\\":[\\\"Unknown\\\",\\\"Unknown\\\"],\\\"embark_town\\\":[\\\"Southampton\\\",\\\"Cherbourg\\\"],\\\"embarked\\\":[\\\"S\\\",\\\"C\\\"],\\\"fare\\\":[151.55,14.4542],\\\"parch\\\":[\\\"0\\\",\\\"0\\\"],\\\"pclass\\\":[\\\"1\\\",\\\"3\\\"],\\\"sex\\\":[\\\"male\\\",\\\"female\\\"],\\\"sibsp\\\":[\\\"0\\\",\\\"1\\\"],\\\"who\\\":[\\\"man\\\",\\\"woman\\\"]}\"\n}'\n```\n\nAlternatively, you can use Postman or equivalent.\n\n### Config File\n\nThe easiest way to start J.A.M.S is by providing a config TOML file\n```\n[config]\nprotocol = \"http\"                               # Specifies the protocol to be used by the server.\n                                                # Allowed values: \"http\", \"grpc\"\n\nport = 3000                                     # Defines the port number on which the server will listen.\n                                                # This should be an integer between 1 and 65535.\n                                                # Example: 3000 for HTTP, 443 for HTTPS\n\nmodel_store = \"local\"                           # Indicates the type of model store being used.\n                                                # Allowed values:\n                                                # - \"local\": Use local storage.\n                                                # - \"aws\": Use AWS S3 for model storage.\n                                                # - \"azure\": Use Azure Blob Storage.\n\nmodel_dir = \"\u003cabsolute path\u003e\"                   # Specifies the directory path where models are stored locally.\n                                                # If `model_store` is set to \"local\", this directory is used\n                                                # to store or load models.\n\nazure_storage_container_name = \"jamsmodelstore\" # Specifies the name of the Azure Blob Storage container\n                                                # used for storing models when `model_store` is set to \"azure\".\n                                                # This should be a valid container name in Azure.\n\ns3_bucket_name = \"jamsmodelstore\"               # Indicates the name of the S3 bucket used for storing models\n                                                # when `model_store` is set to \"aws\".\n                                                # This should be a valid bucket name in AWS S3.\n\npoll_interval = 600                             # Defines the time interval (in seconds) for polling the model store\n                                                # to check for updates.\n                                                # Example: 600 means the application will poll every 10 minutes.\n\nnum_workers = 4                                 # Sets the number of Rayon threadpool worker threads\n                                                # Example: 4 threads\n```\n\nThen Run\n\n```\ndocker run --rm -v /your/path/to/model_store:/model_store -p 3000:3000 gagansingh894/jams start -f config.toml\n```\n\n\n\nThere are other ways to start J.A.M.S.\nPlease follow the following commands to start the server inside docker.\n\nIf you want to disable polling, then do not pass `--poll-interval`\n\nTo run HTTP server, use\n```\ndocker run --rm -v /your/path/to/model_store:/model_store -p 3000:3000 gagansingh894/jams start http --model-dir local --poll-interval 3600\n```\n\nTo run gRPC server, use\n```\ndocker run --rm -v /your/path/to/model_store:/model_store -p 4000:4000 gagansingh894/jams start grpc --model-store=local --poll-interval 3600\n```\n\n### To run with a S3/MinIo backend\n- Create a S3 bucket with some models in it. Please refer to the structure of model store [here](https://github.com/gagansingh894/jams-rs?tab=readme-ov-file#model-store).\n- Set the environment variables - `AWS_REGION`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`. Alternatively if you have multiple AWS profiles then just set the `AWS_PROFILE-\u003cprofile_name\u003e`\n  You also need to set the bucket name. This can either be set via `S3_BUCKET_NAME` env variable or passed via `--s3-bucket-name` flag\n- If using `minio`, you will need to set these environment variables in addition to the above = `MINIO_ACCESS_KEY_ID`, `MINIO_SECRET_ACCESS_KEY` and `MINIO_URL`. The default values are `minioadmin` and `http://0.0.0.0:9000` respectively\n- Run the command to start HTTP server with S3 model store. It assumes that bucket name is already set via `S3_BUCKET_NAME`\n\n```\ndocker run --rm -p 3000:3000 gagansingh894/jams start http --model-store=\u003caws|minio\u003e --poll-interval 3600\n```\n\n- For gRPC server, use\n```\ndocker run --rm -p 4000:4000 gagansingh894/jams start grpc --model-store=\u003caws|minio\u003e --poll-interval 3600\n```\n\n- If you want to pass bucket name, use\n```\ndocker run --rm -p 3000:3000 gagansingh894/jams start http --model-store=\u003caws|minio\u003e --s3-bucket-name=\u003cbucket_name\u003e\n```\n\n### To run with a Azure Blob Storage backend\n- Create a Azure Storage container with some models in it. Please refer to the structure of model store [here](https://github.com/gagansingh894/jams-rs?tab=readme-ov-file#model-store).\n- Set the environment variables - `STORAGE_ACCOUNT`, `STORAGE_ACCESS_KEY`. You also need to set the azure container name. This can either be set via `AZURE_STORAGE_CONTAINER_NAME` env variable or passed via `--azure-storage-container-name` flag\n- Run the command to start HTTP server with Azure model store. It assumes that container name is already set via `AZURE_STORAGE_CONTAINER_NAME`\n\n```\ndocker run --rm -p 3000:3000 gagansingh894/jams start http --model-store=azure --poll-interval 3600\n```\n\n- For gRPC server, use\n```\ndocker run --rm -p 4000:4000 gagansingh894/jams start grpc --model-store=azure --poll-interval 3600\n```\n\n- If you want to pass container name, use\n```\ndocker run --rm -p 3000:3000 gagansingh894/jams start http --model-store=azure --azure-storage-container-name=\u003ccontainer_name\u003e --poll-interval 3600\n```\n\nPlease refer to [OpenAPI Spec](https://github.com/gagansingh894/jams-rs/blob/main/openapi.yml) for API endpoints. \nAlternatively, you can also refer to the [proto definition](https://github.com/gagansingh894/jams-rs/blob/main/internal/jams-proto/proto/api/v1/jams.proto).\n\n---\n\n## Local Setup\n**Ensure that Cargo and Rust compiler are installed. Follow instructions [here](https://www.rust-lang.org/tools/install) if not installed**\n\nThis project relies on a couple of shared libraries. To easily set up, please follow the steps below\n\n\n### Mac - Apple Silicon\n1. Install [Homebrew](https://brew.sh/) if not already installed\n2. Install [Rust](https://www.rust-lang.org/tools/install) if not already installed. **The MSRV is 1.82.**\n3. Run the following command to install bazel, lightgbm, pytorch and tensorflow\n```\nbrew install bazel lightgbm tensorflow\n```\n3. Download **Pytorch 2.2.0** from Pytorch website and set it to path\n```\nsudo sh -c '\n    echo \"Downloading libtorch for macOS (ARM64)...\";\n    wget https://download.pytorch.org/libtorch/cpu/libtorch-macos-arm64-2.2.0.zip -O /usr/local/lib/libtorch-macos-arm64-2.2.0.zip;\n\n    echo \"Unzipping libtorch into /usr/local/lib/libtorch2_2_0...\";\n    mkdir -p /usr/local/lib/libtorch2_2_0;\n    unzip /usr/local/lib/libtorch-macos-arm64-2.2.0.zip -d /usr/local/lib/libtorch2_2_0;\n\n    echo \"Cleaning up by deleting the zip file...\";\n    rm /usr/local/lib/libtorch-macos-arm64-2.2.0.zip;\n\n    echo \"Please add the following to your .bashrc/.zshrc and restart terminal...\";\n    COMMON_LIBS_PATH=/usr/local/lib\n    LIBTORCH=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\n    LIBTORCH_INCLUDE=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\n    LIBTORCH_LIB=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\n    DYLD_LIBRARY_PATH=$COMMON_LIBS_PATH:$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\n\n    echo \"Libtorch installed in /usr/local/lib/libtorch2_2_0 and zip file deleted.\";\n'\n```\n4. Download catboost library(.dylib) directly from Github\n```\nsudo wget -q https://github.com/catboost/catboost/releases/download/v1.2.5/libcatboostmodel-darwin-universal2-1.2.5.dylib -O /usr/local/lib/libcatboostmodel.dylib\n```\n5. Copy lightGBM library(.dylib) and libomp library to usr/local/lib\n```\nsudo cp /opt/homebrew/Cellar/lightgbm/$(brew list --versions lightgbm | awk '{print $2}')/lib/lib_lightgbm.dylib /usr/local/lib/ \u0026\u0026 sudo cp /opt/homebrew/Cellar/libomp/$(brew list --versions libomp | awk '{print $2}')/lib/libomp.dylib /usr/local/lib/\n```\n6. Add the following environment variables to .bashrc/.zshrc\n```\nexport COMMON_LIBS_PATH=/usr/local/lib\nexport LIBTORCH=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\nexport LIBTORCH_INCLUDE=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\nexport LIBTORCH_LIB=$COMMON_LIBS_PATH/libtorch2_2_0/libtorch\nexport DYLD_LIBRARY_PATH=$COMMON_LIBS_PATH:$COMMON_LIBS_PATH/libtorch2_2_0/libtorch/lib\n```\n6. Run the following command to install **jams**\n```\ncargo install jams\n```\n\n*Note: If the above command fails, install `Xcode` from App store and run the following commands*\n```\nsudo xcode-select -s /Applications/Xcode.app/Contents/Developer\nsudo xcodebuild -license\n```\n*Optional: Ensure you are using correct Clang on MacOS. Set the following environment variables*\n```\nexport CC=clang\nexport CXX=clang++\n```\n\n### Linux\n1. Use the bash script [here](https://github.com/gagansingh894/jams-rs/blob/main/build) based on your system architecture\n\n2. Run the following commands or add them to shell profile\n```\n# add environment variables\nexport COMMON_LIBS_PATH=/usr/local/lib\nexport LIGHTGBM_LIB_DIR=$COMMON_LIBS_PATH\nexport LIBTORCH=$COMMON_LIBS_PATH/libtorch\nexport LIBTORCH_INCLUDE=$COMMON_LIBS_PATH/libtorch\nexport LIBTORCH_LIB=$COMMON_LIBS_PATH/libtorch\nexport LD_LIBRARY_PATH=$COMMON_LIBS_PATH:$COMMON_LIBS_PATH/libtorch/lib\nexport LIBRARY_PATH=$LIBRARY_PATH:$COMMON_LIBS_PATH/libtensorflow\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COMMON_LIBS_PATH/libtensorflow/lib\n```\n\n3. Run the following command to install **J.A.M.S**\n```\ncargo install jams\n```\n---\n\n## API Endpoints\nOnce **J.A.M.S** is up and running, these endpoints will help you interact with the server. \n\nPlease refer to [OpenAPI Spec](https://github.com/gagansingh894/jams-rs/blob/main/openapi.yml) for details.\n\n`/healthcheck`: Endpoint for health checks\n\n`/api/predict`: Endpoint for making predictions\n\n`/api/models`: Endpoint for managing models\n\nAlternatively, you can also refer to the [proto definition](https://github.com/gagansingh894/jams-rs/blob/main/internal/jams-proto/proto/api/v1/jams.proto). It provides the following **RPCs**\n\n- `HealthCheck`\n- `Predict`\n- `GetModels`\n- `AddModel`\n- `UpdateModel`\n- `DeleteModel`\n\n---\n\n## Usage\nThe CLI provides the following commands\n\n```\n- jams start\n- jams predict\n```\n\n### start\nUse this command to start either the HTTP/gRPC model server on `0.0.0.0:3000`/`0.0.0.0:4000` with separate rayon threadpool for computing predictions\n\nThe server expects a model directory containing the models. This can be either passed using the\n```--model-dir``` flag\n\nTo start HTTP server\n```\njams start http --model-dir path/to/model_dir\n```\n\nTo start gRPC server\n```\njams start grpc --model-dir path/to/model_dir\n```\n\nAlternatively, you can set the **MODEL_STORE_DIR** env variable pointing to the model directory\nand run `jams start http` or `jams start grpc`\n```\nexport MODEL_STORE_DIR=path/to/model_dir\n```\n\nBy default, the server runs on port `3000` and `2` workers in the rayon threadpool.You can override using\nthe `--port` and `--num-workers` flags respectively. The log level can also be changed to\n`DEBUG` level using `--use-debug-level=true`.\n\n#### Model Store\nBelow is the expected structure of model stores. \n\n- Notice the model naming convention\n**\u003cmodel_framework\u003e-model_name.tar.gz**.\n- The server unpacks and loads the model files.\n- The server will warn about the unsupported formats and continue to load other models\n\n```\n└── model_store\n    ├── catboost-my_awesome_binary_model.tar.gz\n    ├── catboost-my_awesome_multiclass_model.tar.gz\n    ├── catboost-my_awesome_regressor_model.tar.gz\n    ├── catboost-titanic_model.tar.gz\n    ├── lightgbm-my_awesome_binary_model_2.tar.gz\n    ├── lightgbm-my_awesome_reg_model.tar.gz\n    ├── lightgbm-my_awesome_xen_binary_model.tar.gz\n    ├── lightgbm-my_awesome_xen_prob_model.tar.gz\n    ├── pytorch-my_awesome_californiahousing_model.tar.gz\n    ├── tensorflow-my_awesome_autompg_model.tar.gz\n    ├── tensorflow-my_awesome_penguin_model.tar.gz\n    ├── tensorflow-my_awesome_sequential_model.tar.gz\n    └── torch-my_awesome_penguin_model.tar.gz\n\n```\n\n### predict\nUse this command for making predictions via CLI for making predictions for the following models\n\n- Tensorflow\n- Torch\n- Catboost\n- LightGBM\n\nThis command does not expect the model format to be `.tar.gz`.\n\nRefer below for some examples of the **predict** command.\n\nThere are multiple python scripts in [examples folder](https://github.com/gagansingh894/jams-rs/tree/main/jams-cli/examples) which would allow you to generate different models and their\ncorresponding sample json input. Below are some examples\n\n#### Tensorflow\n1. Run tensorflow_penguin_multiclass_classification_model.py\n2. This will create two files- a model file and input json file\n3. Run the following command and pass in the path for model file and input file\n```\njams predict tensorflow --model-path=tensorflow_penguin_functional --input-path=tensorflow_input.json\n\n```\n\n#### Torch\n1. Run torch_penguin_multiclass_classification_model.py\n2. This will create two files- a model file and input json file\n3. Run the following command and pass in the path for model file and input file\n```\njams predict torch --model-path=torch_penguin.pt --input-path=torch_input.json\n```\n\n\n#### Catboost\n1. Run catboost_titanic_binary_classification_model.py\n2. This will create two files- a model file and input json file\n3. Run the following command and pass in the path for model file and input file\n```\njams predict catboost --model-path=catboost_titanic --input-path=catboost_input.json\n```\n\n#### LightGBM\n1. Run lightgbm_iris_binary_classification_model.py\n2. This will create two files- a model file and input json file\n3. Run the following command(example) and pass in the path for model file and input file\n```\njams predict lightgbm --model-path=lightgbm_iris.txt --input-path=lightgbm_input.json\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagansingh894%2Fjams-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgagansingh894%2Fjams-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagansingh894%2Fjams-rs/lists"}