# Drop-in environments
URL: https://docs.datarobot.com/en/docs/classic-ui/mlops/deployment/custom-models/custom-model-environments/drop-in-environments.html

> Describes DataRobot's built-in custom model environments.

# Drop-in environments

DataRobot provides drop-in environments in the Custom Model Workshop. Drop-in environments contain the model requirements and the `start_server.sh` file for a custom model so that you don't need to provide them in the model's folder. The following table details the drop-in environments provided by DataRobot. Each environment is prefaced with [DataRobot]in the Environments tab of the Custom Model Workshop. You can select these drop-in environments when you [create a custom model](https://docs.datarobot.com/en/docs/classic-ui/mlops/deployment/custom-models/custom-model-workshop/custom-inf-model.html).

The available drop-in environments depend on your DataRobot installation; however, the table below lists commonly available public drop-in environments with [templates in the DRUM repository](https://github.com/datarobot/datarobot-user-models/tree/master/public_dropin_environments). Depending on your DataRobot installation, the Python version of these environments may vary, and additional non-public environments may be available for use.

**Managed AI Platform (SaaS):**
> [!NOTE] Drop-in environment security
> Starting with the March 2025 Managed AI Platform release, most general purpose DataRobot custom model drop-in environments are security-hardened container images. When you require a security-hardened environment for running custom jobs, only shell code following the [POSIX-shell standard](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/sh.html) is supported. Security-hardened environments following the POSIX-shell standard support a limited set of shell utilities.

**Self-Managed AI Platform:**
> [!NOTE] Drop-in environment security
> Starting with the 11.0 Self-Managed AI Platform release, most general purpose DataRobot custom model drop-in environments are security-hardened container images. When you require a security-hardened environment for running custom jobs, only shell code following the [POSIX-shell standard](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/sh.html) is supported. Security-hardened environments following the POSIX-shell standard support a limited set of shell utilities.


| Environment name & example | Compatibility & artifact file extension |
| --- | --- |
| Python 3.X | Python-based custom models and jobs. You are responsible for installing all required dependencies through the inclusion of a requirements.txt file in your model files. |
| Python 3.X GenAI Agents | Generative AI models (Text Generation or Vector Database target type) |
| Python 3.X ONNX Drop-In | ONNX models and jobs (.onnx) |
| Python 3.X PMML Drop-In | PMML models and jobs (.pmml) |
| Python 3.X PyTorch Drop-In | PyTorch models and jobs (.pth) |
| Python 3.X Scikit-Learn Drop-In | Scikit-Learn models and jobs (.pkl) |
| Python 3.X XGBoost Drop-In | Native XGBoost models and jobs (.pkl) |
| Python 3.X Keras Drop-In | Keras models and jobs backed by tensorflow (.h5) |
| Java Drop-In | DataRobot Scoring Code models (.jar) |
| R Drop-in Environment | R models trained using CARET (.rds) Due to the time required to install all libraries recommended by CARET, only model types that are also package names are installed (e.g., brnn, glmnet). Make a copy of this environment and modify the Dockerfile to install the additional, required packages. To decrease build times when you customize this environment, you can also remove unnecessary lines in the # Install caret models section, installing only what you need. Review the CARET documentation to check if your model's method matches its package name. (Log in to GitHub before clicking this link.) |

> [!NOTE] scikit-learn
> All Python environments contain scikit-learn to help with preprocessing (if necessary), but only scikit-learn can make predictions on `sklearn` models.

## Environment variables

When you use a drop-in environment, your custom model code can reference several environment variables injected to facilitate access to the [DataRobot Client](https://pypi.org/project/datarobot/) and [MLOps Connected Client](https://pypi.org/project/datarobot-mlops-connected-client/):

| Environment Variable | Description |
| --- | --- |
| MLOPS_DEPLOYMENT_ID | If a custom model is running in deployment mode (i.e., the custom model is deployed), the deployment ID is available. |
| DATAROBOT_ENDPOINT | If a custom model has public network access, the DataRobot endpoint URL is available. |
| DATAROBOT_API_TOKEN | If a custom model has public network access, your DataRobot API token is available. |

---
