> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/hi/self-hosted/self-hosted.md).

# स्व-होस्टेड डिप्लॉयमेंट

[इन्फ़रेंस](https://github.com/roboflow/inference) एक ओपन सोर्स कंप्यूटर विज़न डिप्लॉयमेंट हब है। यह मॉडल और वर्कफ़्लोज़ को सर्व करता है, वीडियो स्ट्रीम्स को मैनेज करता है, और CPUs तथा GPUs के लिए इन्फ़रेंस को ऑप्टिमाइज़ करता है। जब आपको लोकल प्रोसेसिंग, लेटेंसी और संसाधनों पर नियंत्रण, या ऑफ़लाइन डिप्लॉयमेंट की आवश्यकता हो, तो इसे स्वयं होस्ट करें। Apache 2.0 लाइसेंस वाला कोर Roboflow के होस्टेड APIs को भी शक्ति देता है।

{% hint style="info" %}
Self-hosting का मतलब है कि आप इन्फ्रास्ट्रक्चर को मैनेज करते हैं। यदि आप चाहेंगे कि Roboflow सर्वर चलाए, तो देखें [समर्पित डिप्लॉयमेंट्स](/deployment/hi/roboflow-cloud/dedicated-deployments.md) या [सर्वरलेस क्लाउड API](/deployment/hi/roboflow-cloud/serverless-api.md), और विकल्पों की पूरी [तुलना](/deployment/hi/choosing-a-deployment.md).
{% endhint %}

## एक मार्ग चुनें

अपने खुद के हार्डवेयर पर मॉडल चलाने के तीन तरीके हैं। अधिकांश प्रोजेक्ट्स Inference Server का उपयोग करते हैं।

<table data-view="cards" data-search="false"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">कवर इमेज</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>इन्फ़रेंस सर्वर</strong></td><td>एक Docker कंटेनर जो HTTP के माध्यम से मॉडल और वर्कफ़्लोज़ को सर्व करता है।</td><td><a href="/files/a1d6a01ab58206ad188e2aaed81c85872c2bcf45">/files/a1d6a01ab58206ad188e2aaed81c85872c2bcf45</a></td><td><a href="/pages/e82a9dfb71caeda43e2b4fd3e705e888f4ec6b73">/pages/e82a9dfb71caeda43e2b4fd3e705e888f4ec6b73</a></td></tr><tr><td><strong>इन्फ़रेंस लाइब्रेरी</strong></td><td>द <code>इन्फ़रेंस</code> अपने प्रोसेस में मॉडल चलाने के लिए Python पैकेज।</td><td><a href="/files/5fee84459cf4c3bf4d2b63e07602eabdcc231689">/files/5fee84459cf4c3bf4d2b63e07602eabdcc231689</a></td><td><a href="/pages/748aac6b4d83787ee894d997ee3d113912142ab7">/pages/748aac6b4d83787ee894d997ee3d113912142ab7</a></td></tr><tr><td><strong>अन्य SDKs</strong></td><td>वेब ब्राउज़र में, iOS पर, या एम्बेडेड डिवाइसों पर मॉडल चलाएँ।</td><td><a href="/files/56603765f45b5c0e8e8ff92ec9a401d307393313">/files/56603765f45b5c0e8e8ff92ec9a401d307393313</a></td><td><a href="/pages/4640f543003730e9903aedb5d5f3ca8362214f62">/pages/4640f543003730e9903aedb5d5f3ca8362214f62</a></td></tr></tbody></table>

जब एक से अधिक क्लाइंट या भाषा को प्रेडिक्शन की आवश्यकता हो, जब आप चाहते हों कि मॉडल आपकी ऐप्लिकेशन डिपेंडेंसीज़ से अलग रहें, या जब आप edge डिवाइसों पर डिप्लॉय करें, तब सर्वर का उपयोग करें।

<figure><img src="/files/2baf51a9e4a50c0cd80e3ccd2177f3ee81e98a4e" alt="Roboflow Inference architecture diagram"><figcaption><p>आपकी ऐप्लिकेशन, आपके मॉडल, और Roboflow प्लेटफ़ॉर्म के बीच Inference कहाँ स्थित है</p></figcaption></figure>

## मॉडल को लोकली चलाएँ

अधिकांश प्रोजेक्ट्स के लिए, Docker में Inference Server चलाएँ और `inference-sdk`के साथ अनुरोध भेजें। SDK एक Python HTTP क्लाइंट है जो आपकी ऐप्लिकेशन को Inference Server से जोड़ता है। जब आपको अपने Python प्रोसेस के अंदर सीधे मॉडल लोड और चलाने हों, तब Inference Library का उपयोग करें। दोनों पथ समान `model_id` मान स्वीकार करते हैं, इसलिए आप बाद में इनके बीच स्विच कर सकते हैं।

### Model IDs

द `model_id` पैरामीटर हो सकता है:

* एक [प्रशिक्षित मॉडल उपनाम](/models/hi/pretrained-aliases.md), उदाहरण के लिए `rfdetr-small` या `rfdetr-large`
* आपका अपना [Roboflow से fine-tuned मॉडल](https://app.gitbook.com/s/wdr4k0gUcsVnXVoafYcQ/train/model-ids), उदाहरण के लिए `my-project/1`
* एक [Universe मॉडल](https://docs.roboflow.com/datasets/universe/universe/find-a-model-on-universe), उदाहरण के लिए `soccer-players-xy9vk/2`

Fine-tuned मॉडल्स और Universe मॉडल्स के लिए एक [API key](https://docs.roboflow.com/reference/authentication/authentication/find-your-roboflow-api-key).

{% tabs %}
{% tab title="इन्फ़रेंस सर्वर" icon="docker" %}

### इंस्टॉल करें

सर्वर को शुरू करें [Inference CLI](https://docs.roboflow.com/reference/inference/inference-cli)के साथ। यह आपके हार्डवेयर का पता लगाता है और सुरक्षित डिफ़ॉल्ट्स के साथ सही Docker इमेज खींचता है:

```bash
pip install inference-cli && inference server start
```

फिर HTTP क्लाइंट इंस्टॉल करें:

```bash
pip install inference-sdk
```

हार्डवेयर आवश्यकताओं, प्रति-डिवाइस गाइड्स, और मैनुअल `docker run` कमांड्स के लिए, देखें [इन्फ़रेंस सर्वर इंस्टॉल करें](/deployment/hi/self-hosted/inference-server/install.md)। वही क्लाइंट [सर्वरलेस क्लाउड API](/deployment/hi/roboflow-cloud/serverless-api.md) और [समर्पित डिप्लॉयमेंट्स](/deployment/hi/roboflow-cloud/dedicated-deployments.md)के साथ भी काम करता है: केवल `api_url` बदलता है।

### इन्फ़रेंस चलाएँ

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image = "https://media.roboflow.com/inference/people-walking.jpg"
client = InferenceHTTPClient(
    api_url="http://localhost:9001",  # आपका self-hosted सर्वर
    api_key="YOUR_API_KEY",
).configure(InferenceConfiguration(api_key_transport="header"))
results = client.infer(image, model_id="rfdetr-small")
```

द `api_key_transport="header"` सेटिंग कुंजी को केवल एक `Authorization: Bearer` हेडर के रूप में भेजती है, जिससे यह URLs और लॉग्स में नहीं जाती। इसके लिए release 1.5.0 या नए का inference server चाहिए; उपयोग करें `api_key_transport="both"` जब तक आप पुराने सर्वरों को कॉल करते रहते हैं। देखें [API key transport](https://docs.roboflow.com/reference/inference/inference-sdk/configuration#api-key-transport).

बदलें `api_url` को `https://serverless.roboflow.com` का उपयोग करने के लिए [सर्वरलेस क्लाउड API](/deployment/hi/roboflow-cloud/serverless-api.md) इसके बजाय, बिना किसी अन्य कोड परिवर्तन के। देखें [Inference SDK संदर्भ](https://docs.roboflow.com/reference/inference/inference-sdk) विवरण के लिए।

### परिणामों का विज़ुअलाइज़ करें

इंस्टॉल करें [Supervision](https://supervision.roboflow.com):

```bash
pip install -U supervision
```

```python
import supervision as sv
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image = sv.load_image_from_url("https://media.roboflow.com/inference/people-walking.jpg")

client = InferenceHTTPClient(
    api_url="http://localhost:9001",
    api_key="YOUR_API_KEY",
).configure(InferenceConfiguration(api_key_transport="header"))
results = client.infer(image, model_id="rfdetr-medium")

detections = sv.Detections.from_inference(results)

annotated_image = sv.BoxAnnotator().annotate(scene=image, detections=detections)
annotated_image = sv.LabelAnnotator().annotate(scene=annotated_image, detections=detections)

sv.plot_image(annotated_image)
```

{% endtab %}

{% tab title="इन्फ़रेंस लाइब्रेरी" icon="python" %}

### इंस्टॉल करें

इंस्टॉल करें `इन्फ़रेंस` पैकेज को अपने खुद के Python वातावरण में:

```bash
pip install inference
```

यदि आपके पास NVIDIA GPU है, तो इसके बजाय `inference-gpu` इंस्टॉल करें, और index URL को आपके OS में इंस्टॉल CUDA संस्करण से मिलाएँ:

```bash
pip install --extra-index-url https://download.pytorch.org/whl/cu124 inference-gpu
```

देखें [इन्फ़रेंस लाइब्रेरी](/deployment/hi/self-hosted/inference-library.md) backend extras और GPU सेटअप विवरण के लिए।

### इन्फ़रेंस चलाएँ

```python
from inference import get_model

image = "https://media.roboflow.com/inference/people-walking.jpg"
model = get_model(model_id="rfdetr-small")
results = model.infer(image)
```

`get_model()` पहली बार उपयोग पर model weights डाउनलोड और cache करता है, फिर लोकली inference चलाता है। देखें [Inference Python Package संदर्भ](https://docs.roboflow.com/reference/inference/inference-python) विवरण के लिए।

### परिणामों का विज़ुअलाइज़ करें

इंस्टॉल करें [Supervision](https://supervision.roboflow.com):

```bash
pip install -U supervision
```

```python
import supervision as sv
from inference import get_model

image = sv.load_image_from_url("https://media.roboflow.com/inference/people-walking.jpg")

model = get_model(model_id="rfdetr-medium")
results = model.infer(image)[0]

detections = sv.Detections.from_inference(results)

annotated_image = sv.BoxAnnotator().annotate(scene=image, detections=detections)
annotated_image = sv.LabelAnnotator().annotate(scene=annotated_image, detections=detections)

sv.plot_image(annotated_image)
```

{% endtab %}
{% endtabs %}

![पता लगाए गए ऑब्जेक्ट्स के साथ एनोटेट किए गए लोग चलते हुए](https://storage.googleapis.com/com-roboflow-marketing/inference/people-walking-annotated.jpg)

{% hint style="warning" %}
सावधान रहें कि अपनी API key बाहरी उपयोगकर्ताओं को उजागर न करें। इसे सार्वजनिक-उपयोग वाले frontend ऐप में एम्बेड न करें; इसके बजाय अनुरोध को अपने backend के माध्यम से proxy करें।
{% endhint %}

आप एक [वर्कफ़्लो](https://docs.roboflow.com/workflows) इसी तरह, सर्वर पर या अपने खुद के प्रोसेस में चला सकते हैं: देखें [वर्कफ़्लो डिप्लॉय करें](https://docs.roboflow.com/workflows/deploy/deploy-a-workflow).

{% hint style="info" %}
प्राइवेट मॉडल्स के लिए TensorRT-optimized model packages केवल उपलब्ध हैं [Enterprise योजनाओं](/deployment/hi/self-hosted/enterprise.md) पर जब Inference को Roboflow प्लेटफ़ॉर्म के बाहर चलाया जा रहा हो। सार्वजनिक मॉडल सभी योजनाओं पर TensorRT packages शामिल करते हैं।
{% endhint %}
