# Custom Model Integration

This series will guide you through integrating your custom model (or a custom NN architecture) into the Supervisely Platform. You'll learn how to create a Training App to allow training of your model in Supervisely and Serving App to deploy it for inference. Don't worry, the [Supervisely SDK](https://github.com/supervisely/supervisely) has been designed to make this process as simple as possible! 😊

## Inference and Training Apps

When you integrate a custom model into Supervisely, you are creating two closely related apps:

* **Inference (Serving) App**

  We will create a custom [Serving App](/neural-networks/inference-and-deployment/supervisely-serving-apps.md) that deploys model as an API service. Once the model is deployed, user can make predictions on images and videos. Supervisely SDK provides a convenient `Inference` class with built-in GUI and ready-to-use methods and interfaces for model deployment and inference.

  Read more in [Integrate Custom Inference](/neural-networks/custom-model-integration/integrate-custom-inference.md).
* **Training App**

  This app handles the training process of your model from data preparation and hyperparameter configuration to checkpoint creation and evaluation. Like in the Inference App, Supervisely SDK provides a `TrainApp` class with built-in GUI and useful methods for development training app.

  Read more in [Integrate Custom Training](/neural-networks/custom-model-integration/integrate-custom-training.md).

### Shared Repository

We recommend that both the training and serving apps will be implemented in a single GitHub repository. This design enables shared configurations, dockerfile with dependencies and easier management of common files (e.g., `models.json`, configs). However, you can also create separate repositories for each app, but you may miss out on some important features.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.supervisely.com/neural-networks/custom-model-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
