> 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/reference/hi/platform/choosing-the-right-tool.md).

# सही टूल चुनना

Roboflow तीन डेवलपर टूल्स के ज़रिए वही अंतर्निहित प्लेटफ़ॉर्म उपलब्ध कराता है। ये एक-दूसरे के विपरीत नहीं हैं - अधिकांश प्रोडक्शन वर्कफ़्लो तीनों का उपयोग करते हैं। यह पेज एक त्वरित निर्णय-मार्गदर्शिका है।

## एक नज़र में

|                      | CLI                                                          | Python SDK                                                 | REST API                                         |
| -------------------- | ------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------ |
| **के लिए सर्वोत्तम** | एड-हॉक स्क्रिप्ट्स, AI एजेंट, शेल ऑटोमेशन                    | नोटबुक्स, शेड्यूल किए गए जॉब्स, Python एप्लिकेशन           | ग़ैर-Python सेवाएँ, वेबहुक, एज डिवाइस            |
| **प्रमाणीकरण**       | `ROBOFLOW_API_KEY` env var या `roboflow login`               | API key पास किया गया `Roboflow(...)` या `ROBOFLOW_API_KEY` | `api_key=` क्वेरी पैरामीटर या बॉडी फ़ील्ड        |
| **आउटपुट**           | डिफ़ॉल्ट रूप से सुंदर तालिकाएँ, `--json` स्क्रिप्टिंग के लिए | Python dicts और objects                                    | JSON                                             |
| **इंस्टॉल**          | `pip install roboflow`                                       | `pip install roboflow`                                     | None                                             |
| **कवरेज**            | SDK को ट्रैक करता है; एजेंट-अनुकूल                           | REST जैसा ही, साथ में सुविधाजनक हेल्पर्स                   | प्रामाणिक - हर फ़ीचर सबसे पहले यहीं जारी होता है |
| **त्रुटियाँ**        | एग्ज़िट कोड (0 / 1 / 2 / 3) + stderr पर JSON त्रुटि बॉडी     | Python अपवाद                                               | HTTP स्थिति कोड + JSON त्रुटि बॉडी               |

## CLI का उपयोग कब करें

CLI का उपयोग तब करें जब आप कुछ करना चाहते हों **एक बार या शेल पाइपलाइन के एक चरण के रूप में**. आउटपुट फ़ॉर्मेट और एग्ज़िट कोड स्क्रिप्टिंग और AI एजेंटों के लिए डिज़ाइन किए गए हैं।

ठोस रूप से:

* आप प्रोटोटाइप बना रहे हैं और Python लिखे बिना जल्दी परिणाम देखना चाहते हैं।
* आप Roboflow ऑपरेशन्स को अन्य टूल्स में पाइप करना चाहते हैं (`roboflow project list --json | jq …`).
* आप एक AI कोडिंग एजेंट (Claude Code, Cursor) का उपयोग कर रहे हैं - CLI का संरचित JSON आउटपुट और स्थिर एग्ज़िट कोड किसी एजेंट के लिए Python REPL की तुलना में संसाधित करना आसान होता है।
* आप एक `Makefile` लिख रहे हैं, GitHub Action, या shell script जो छवियाँ अपलोड करता है, प्रशिक्षण शुरू करता है, या डेटासेट डाउनलोड करता है।

देखें [CLI](/reference/hi/platform/cli.md).

## Python SDK का उपयोग कब करें

SDK का उपयोग तब करें जब आप पहले से Python में हों और **टाइप किए हुए objects, idiomatic helpers, और कॉल-भर साझा स्थिति** चाहते हों। SDK REST API के ऊपर एक पतला wrapper है, लेकिन यह जोड़ता है:

* `वर्कस्पेस` / `प्रोजेक्ट` / `संस्करण` / `मॉडल` खोजने योग्य मेथड्स वाले objects.
* समवर्ती अपलोड्स (`upload_dataset(num_workers=10)`).
* प्रेडिक्शन विज़ुअलाइज़ेशन हेल्पर्स (जब पूरा `roboflow` package इंस्टॉल हो - न `roboflow-slim`).
* ऐक्टिव-लर्निंग लूप्स जो इन्फरेंस और अपलोड को जोड़ते हैं।
* vision-events ingestion तक सीधी पहुँच।

ठोस रूप से:

* आप डेटासेट पर काम करते हुए Jupyter notebook में हैं।
* आप एक Python service बना रहे हैं जो ज़रूरत पड़ने पर अपलोड, ट्रेन, या इन्फरेंस चलाता है।
* आपको ऑपरेशन्स को चेन करना है (upload → train → wait for ready → predict).
* आप Roboflow को किसी मौजूदा Python app में इंटीग्रेट कर रहे हैं।

देखें [Python SDK](/reference/hi/platform/python-sdk.md).

## REST API का उपयोग कब करें

REST API का उपयोग तब करें जब **आप Python में न हों**, जब आपको ऐसे वातावरण से कॉल करना हो जहाँ Python packages इंस्टॉल नहीं किए जा सकते (ब्राउज़र, Cloudflare Worker, embedded device, छोटे zipfile वाली Lambda), या जब आप वेबहुक से Roboflow का उपयोग करना चाहते हों।

ठोस रूप से:

* आप JavaScript / TypeScript / Go / Rust क्लाइंट बना रहे हैं।
* आप एक webcam या sensor से events भेज रहे हैं जो custom firmware चलाता है।
* आपको Zapier / n8n / किसी no-code automation tool के साथ इंटीग्रेट करना है।
* किसी विशिष्ट फ़ीचर के SDK में आने से पहले वह REST API में जारी हो जाता है।

देखें [REST API](/reference/hi/platform/rest-api.md).

## टूल्स को मिलाना

व्यावहारिक रूप से टीमें तीनों का उपयोग करती हैं:

* **CI/CD** डेटासेट अपलोड करने और प्रशिक्षण शुरू करने के लिए CLI का उपयोग करता है।
* **एक Python डेटा पाइपलाइन** ट्रेनिंग परिणामों पर प्रतिक्रिया देने और मॉडल संस्करणों को ट्यून करने के लिए SDK का उपयोग करती है।
* **एक प्रोडक्शन ऐप** इन्फरेंस चलाने और events पोस्ट करने के लिए REST API का उपयोग करता है।

एक ही workspace और API key तीनों के साथ authenticate करती है, इसलिए credentials की संख्या नहीं बढ़ती।

## इन्फरेंस विशेष है

किसी प्रशिक्षित मॉडल को किसी image या video पर चलाने के लिए, इन तीनों के अलावा आपके पास अतिरिक्त विकल्प हैं। Hosted inference इसके [Roboflow Serverless Hosted API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api) पर `serverless.roboflow.com` के विरुद्ध चलता है; अधिक throughput या on-prem उपयोग मामलों के लिए देखें [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) (self-hosted) और [डेडिकेटेड डिप्लॉयमेंट्स](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) (managed GPU machines).

CLI का `infer` कमांड, SDK का `model.predict()`, और inference URL पर एक सीधा REST कॉल, सभी उसी अंतर्निहित inference engines तक पहुँचने के रास्ते हैं।
