# LLM प्रदाता

LLM प्रदाता Status200 की हर AI सुविधा के पीछे का मॉडल है: जांचें, AI से पूछें, ड्राफ़्ट और सुधार वाले पुल रिक्वेस्ट। यह पेज दिखाता है कि कोई सुविधा कौन-सा प्रदाता इस्तेमाल करती है, अपना प्रदाता कैसे जोड़ें (OpenAI, Azure OpenAI और Microsoft Foundry, Anthropic, Groq, Mistral, Ollama या कोई भी OpenAI-संगत सर्वर), और Status200 को अपने चलाए किसी मॉडल की ओर कैसे इंगित करें।

:::cards
- [AI कौन-सा प्रदाता इस्तेमाल करता है](#ai-कौन-सा-प्रदाता-इस्तेमाल-करता-है): प्रोजेक्ट का डिफ़ॉल्ट प्रदाता, नहीं तो वैश्विक प्रदाता।
- [सेल्फ-होस्टेड: एनवायरनमेंट वेरिएबल से बिना कॉन्फ़िगरेशन](#सेल्फ-होस्टेड-एनवायरनमेंट-वेरिएबल-से-बिना-कॉन्फ़िगरेशन): सर्वर की सेटिंग्स से हर प्रोजेक्ट के लिए एक प्रदाता।
- [LLM प्रदाता सेट करना](#llm-प्रदाता-सेट-करना): किसी प्रोजेक्ट में प्रदाता जोड़ें, और उसे परखें।
- [सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना](#सेल्फ-होस्टेड-मॉडल-के-लिए-बेस-url-चुनना): ऐसा पता जिस तक Status200 सर्वर पहुंच सके।
:::

## प्रदाता किन चीज़ों को चलाता है

- **जांचें**: Status200 AI नई घटनाओं और अलर्ट की जांच करता है और टाइमलाइन पर स्रोतों के साथ मूल कारण विश्लेषण पोस्ट करता है। देखें [AI SRE](/docs/ai/ai-sre)।
- **प्रश्न**: **Ask AI** आपके प्रोजेक्ट के डेटा से जवाब देता है, हर दावे के साथ एक स्रोत देकर। देखें [AI से पूछें](/docs/ai/ask-ai)।
- **ड्राफ़्ट**: घटनाओं, अलर्ट और निर्धारित रखरखाव के नोट्स में **Draft with AI**, और पोस्टमॉर्टम, जो अनुरोध पर या घटना सुलझने पर लिखे जाते हैं।
- **कोड**: ऐसे पुल रिक्वेस्ट जो अपवादों, धीमे ट्रेस और जांचों में मिले कारणों को ठीक करते हैं, Status200 से या GitHub से। देखें [कोड](/docs/ai/ai-agent)।
- **बाकी सब**: AI Insights की छंटाई, वर्कफ़्लो और रनबुक के AI चरण, और Slack व Microsoft Teams में जवाब।

## AI कौन-सा प्रदाता इस्तेमाल करता है

AI सुविधाएं प्रोजेक्ट का डिफ़ॉल्ट प्रदाता इस्तेमाल करती हैं। जिस प्रोजेक्ट का कोई डिफ़ॉल्ट प्रदाता नहीं है, वह वैश्विक प्रदाता इस्तेमाल करता है, अगर कोई हो। AI से पूछें किसी बातचीत को प्रोजेक्ट के किसी दूसरे प्रदाता या किसी वैश्विक प्रदाता पर भी बदल सकता है।

```mermaid title="कोई AI सुविधा कौन-सा प्रदाता इस्तेमाल करती है"
flowchart TB
    F["किसी AI सुविधा को<br/>एक मॉडल चाहिए"] --> D{"क्या प्रोजेक्ट का<br/>कोई डिफ़ॉल्ट<br/>प्रदाता है?"}
    D -->|"हां"| P["प्रोजेक्ट का<br/>डिफ़ॉल्ट प्रदाता"]
    D -->|"नहीं"| G{"क्या कोई वैश्विक<br/>प्रदाता है?"}
    G -->|"हां"| GP["वैश्विक प्रदाता:<br/>Status200 Cloud पर<br/>AI क्रेडिट"]
    G -->|"नहीं"| N["कुछ नहीं चलता, और<br/>AI पेज बताते हैं कि<br/>प्रदाता नहीं है"]
```

कोई प्रदाता प्रोजेक्ट का डिफ़ॉल्ट तब होता है जब **डिफ़ॉल्ट के रूप में सेट करें** चालू हो, जो हर नए प्रदाता के लिए होता है। जिस प्रोजेक्ट के सभी प्रदाताओं में यह बंद है, वह वैश्विक प्रदाता पर लौट जाता है, मानो उसका कोई प्रदाता ही न हो।

हर Status200 AI नियम — AI नियम और पोस्टमॉर्टम नियम — इसकी जगह अपने **और फ़ील्ड** में अपना प्रदाता चुन सकता है: प्रोजेक्ट के प्रदाताओं में से कोई एक या कोई ग्लोबल प्रदाता, जो नियम द्वारा शुरू की गई हर चीज़ के लिए इस्तेमाल होता है। कोई प्रदाता न चुनने वाला नियम डिफ़ॉल्ट प्रदाता इस्तेमाल करता है, और चुना गया प्रदाता अगर अब इस्तेमाल नहीं किया जा सकता तो उसी पर लौट आता है। देखें [कोई नियम कौन-सा LLM प्रदाता इस्तेमाल करता है](/docs/ai/ai-sre#कोई-नियम-कौन-सा-llm-प्रदाता-इस्तेमाल-करता-है)।

## Status200 Cloud

**Status200 Cloud** पर हर प्रोजेक्ट बिना किसी सेटअप के वैश्विक प्रदाता इस्तेमाल कर सकता है। यह हर AI सुविधा के लिए तैयार है, और इसका भुगतान प्रोजेक्ट के AI क्रेडिट से होता है।

इसके बजाय अपनी API कुंजियां या कोई खास मॉडल इस्तेमाल करने के लिए, नीचे बताए अनुसार अपना प्रदाता जोड़ें: आपके अपने प्रदाता पर चलने वाले AI के लिए आपसे शुल्क नहीं लिया जाता।

वैश्विक LLM प्रदाता का भुगतान प्रोजेक्ट के AI क्रेडिट से होता है। AI हर दिन कितना खर्च कर सकता है, इसकी सीमा तय करने के लिए **प्रोजेक्ट सेटिंग्स → एआई → AI Features → और सेटिंग्स** के तहत **दैनिक AI खर्च सीमा (USD)** सेट करें; वहीं की **दैनिक AI टोकन सीमा** किसी भी प्रदाता पर टोकन सीमित करती है, आपके अपने प्रदाता सहित। देखें [प्रोजेक्ट की अपनी दैनिक सीमाएं](/docs/ai/ai-sre#प्रोजेक्ट-की-अपनी-दैनिक-सीमाएं)।

Status200 Cloud सिर्फ़ सार्वजनिक इंटरनेट पर मौजूद LLM एंडपॉइंट तक पहुंच सकता है। यह आपके निजी नेटवर्क के किसी मॉडल से कनेक्ट नहीं हो सकता, जैसे सेल्फ-होस्टेड Ollama या vLLM सर्वर। अपने चलाए मॉडल को इस्तेमाल करने के लिए, Status200 को ऐसे नेटवर्क पर सेल्फ-होस्ट करें जो उस तक पहुंच सके, या मॉडल को किसी सार्वजनिक एंडपॉइंट पर उपलब्ध कराएं: देखें [सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना](#सेल्फ-होस्टेड-मॉडल-के-लिए-बेस-url-चुनना)।

## सेल्फ-होस्टेड: एनवायरनमेंट वेरिएबल से बिना कॉन्फ़िगरेशन

सेल्फ-होस्टेड इंस्टेंस पर **सभी प्रोजेक्ट के लिए एक साथ** AI चालू करने का सबसे तेज़ तरीका है अपने Status200 सर्वर पर `GLOBAL_LLM_PROVIDER_*` एनवायरनमेंट वेरिएबल सेट करना: Docker Compose के लिए `config.env` में, या Helm वैल्यू के ज़रिए। शुरू होते समय Status200 इनसे एक वैश्विक LLM प्रदाता रजिस्टर करता है और उसे अद्यतन रखता है; किसी प्रोजेक्ट को कुछ सेट नहीं करना पड़ता, और जब किसी प्रोजेक्ट का अपना प्रदाता नहीं होता, तो AI सुधार कार्य भी इसी का इस्तेमाल करते हैं।

| वेरिएबल | विवरण |
| --- | --- |
| `GLOBAL_LLM_PROVIDER_TYPE` | इसे चालू करने के लिए ज़रूरी। इनमें से एक: `OpenAI`, `AzureOpenAI`, `Anthropic`, `Groq`, `Mistral`, `Ollama`, `OpenAICompatible` |
| `GLOBAL_LLM_PROVIDER_API_KEY` | API कुंजी: OpenAI, Azure OpenAI, Anthropic, Groq और Mistral के लिए ज़रूरी; Ollama या बिना कुंजी वाले OpenAI-संगत सर्वर के लिए ज़रूरी नहीं |
| `GLOBAL_LLM_PROVIDER_BASE_URL` | एंडपॉइंट: Azure OpenAI, Ollama और OpenAI-संगत सर्वर के लिए ज़रूरी |
| `GLOBAL_LLM_PROVIDER_MODEL_NAME` | इस्तेमाल होने वाला मॉडल: OpenAI-संगत सर्वर के लिए ज़रूरी, बाकी के लिए सुझाया गया |
| `GLOBAL_LLM_PROVIDER_NAME` | एक वैकल्पिक पहचान नाम, जो डैशबोर्ड में दिखता है |

:::tabs
@tab Ollama
```bash
GLOBAL_LLM_PROVIDER_TYPE=Ollama
# An address the Status200 server can reach. Never localhost: see
# "Choosing a Base URL for a Self-Hosted Model" below.
GLOBAL_LLM_PROVIDER_BASE_URL=http://ollama:11434
GLOBAL_LLM_PROVIDER_MODEL_NAME=llama3.1
# No API key needed — Ollama is keyless.
```
@tab OpenAI
```bash
GLOBAL_LLM_PROVIDER_TYPE=OpenAI
GLOBAL_LLM_PROVIDER_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
GLOBAL_LLM_PROVIDER_MODEL_NAME=gpt-5.1
```
:::

सिंक घोषणात्मक है: कोई वेरिएबल बदलें और अगले रीस्टार्ट पर प्रदाता उसके अनुसार बदल जाता है; `GLOBAL_LLM_PROVIDER_TYPE` हटाएं और प्रदाता हटा दिया जाता है। Admin Dashboard में हाथ से बनाए गए वैश्विक प्रदाताओं को कभी नहीं छुआ जाता। कोई प्रोजेक्ट अब भी **प्रोजेक्ट सेटिंग्स → एआई → LLM प्रदाता** के तहत अपना प्रदाता जोड़ सकता है, और प्रोजेक्ट का अपना प्रदाता हमेशा पहले आता है।

## समर्थित प्रदाता

| प्रदाता | यह किसके लिए है | API कुंजी ज़रूरी | बेस URL ज़रूरी |
| --- | --- | --- | --- |
| **OpenAI** | GPT-5.1 और OpenAI के दूसरे मॉडल | हां | नहीं (डिफ़ॉल्ट इस्तेमाल करता है) |
| **Azure OpenAI / Microsoft Foundry** | वे मॉडल जिन्हें आप Microsoft Foundry या Azure OpenAI में डिप्लॉय करते हैं: OpenAI मॉडल, Foundry Models और Claude | हां | हां |
| **Anthropic** | Claude Sonnet 5.5, Claude Opus 5.5, Claude Haiku 5.5 और दूसरे Claude मॉडल | हां | नहीं (डिफ़ॉल्ट इस्तेमाल करता है) |
| **Groq** | Llama, Mixtral और दूसरे ओपन मॉडल के लिए तेज़ इन्फ़रेंस | हां | नहीं (डिफ़ॉल्ट इस्तेमाल करता है) |
| **Mistral** | Mistral के होस्ट किए गए मॉडल | हां | नहीं (डिफ़ॉल्ट इस्तेमाल करता है) |
| **Ollama** | ओपन-सोर्स मॉडल जिन्हें आप खुद चलाते हैं, जैसे Llama 3.1, Mistral या Qwen | नहीं | हां |
| **OpenAI Compatible** | कोई भी OpenAI-संगत सर्वर: vLLM, LocalAI, LM Studio और दूसरे | नहीं (वैकल्पिक) | हां |

## LLM प्रदाता सेट करना

:::steps
### LLM प्रदाता खोलें

**प्रोजेक्ट सेटिंग्स → एआई → LLM प्रदाता** पर जाएं (साइड मेन्यू का **एआई** सेक्शन शुरू में बंद रहता है) और **LLM प्रदाता बनाएँ** पर क्लिक करें।

### प्रदाता चुनें

**प्रदाता** में अपना **LLM प्रदाता** चुनें: OpenAI, Anthropic, Azure OpenAI / Microsoft Foundry, Groq, Mistral, Ollama और किसी भी OpenAI-संगत सर्वर के लिए एक-एक कार्ड है, हर कार्ड एक पंक्ति में बताता है कि वह क्या है।

### इसे कनेक्ट करें

**कनेक्शन** में फ़ॉर्म सिर्फ़ वही पूछता है जो वह प्रदाता इस्तेमाल करता है, हर फ़ील्ड के नीचे उसकी अपनी मदद के साथ:

- **API कुंजी**: आपकी API कुंजी, OpenAI, Azure OpenAI, Anthropic, Groq और Mistral के लिए ज़रूरी और OpenAI-संगत सर्वर के लिए वैकल्पिक; Ollama के लिए यह नहीं पूछी जाती
- **बेस URL**: एंडपॉइंट, Azure OpenAI, Ollama और OpenAI Compatible के लिए ज़रूरी; बाकी के लिए सिर्फ़ किसी प्रॉक्सी या गेटवे से होकर जाने के लिए
- **मॉडल नाम**: इस्तेमाल होने वाला मॉडल, जैसे `gpt-5.1`, `claude-sonnet-5-5` या `llama3.1`। खाली छोड़ने पर Status200 प्रदाता का डिफ़ॉल्ट मॉडल इस्तेमाल करता है, सिवाय OpenAI-संगत सर्वर के, जिसके लिए मॉडल ज़रूरी है
- **नाम**: जब तक आप अपना नाम नहीं लिखते, प्रदाता का नाम, जैसे "Production OpenAI" या "Local Ollama"
- **और फ़ील्ड**, ऊपर के फ़ील्ड के नीचे बंद: एक **विवरण**, **डिफ़ॉल्ट के रूप में सेट करें**, जो नए प्रदाता के लिए चालू रहता है क्योंकि AI सुविधाएं सिर्फ़ प्रोजेक्ट का डिफ़ॉल्ट प्रदाता इस्तेमाल करती हैं, और **अतिरिक्त पैरामीटर**, अतिरिक्त पैरामीटर का एक वैकल्पिक JSON ऑब्जेक्ट जो हर अनुरोध के साथ प्रदाता को भेजा जाता है (उदाहरण के लिए `{"temperature": 0.2}`)

**प्रदाता को कौन देख सकता है।** किसी प्रोजेक्ट के LLM प्रदाताओं को सिर्फ़ उसके वे सदस्य पढ़ते हैं जो प्रोजेक्ट की सेटिंग्स पढ़ सकते हैं: **Project Owner**, **Project Admin**, **Project Member**, **Viewer**, **Settings Admin**, **Settings Member**, **Settings Viewer** और **Read LLM**। किसी प्रदाता की **API कुंजी** और **अतिरिक्त पैरामीटर** सिर्फ़ प्रोजेक्ट के ओनर और एडमिन पढ़ते हैं, क्योंकि पैरामीटर हर अनुरोध के साथ प्रदाता को भेजे जाते हैं और कुंजी की तरह ही उनमें कोई टोकन या हेडर हो सकता है। बाकी सदस्य देखते हैं कि कोई पैरामीटर सहेजा गया है या नहीं, यह नहीं कि वे क्या हैं। जो सदस्य किसी प्रदाता को संपादित कर सकते हैं, वे उसकी API कुंजी या पैरामीटर को पढ़े बिना भी बदल सकते हैं: संपादन फ़ॉर्म में वे फ़ील्ड खाली शुरू होते हैं, और किसी फ़ील्ड को खाली छोड़ने पर सहेजा हुआ मान बना रहता है। पैरामीटर हटाने के लिए `{}` सहेजें। किसी प्रदाता का **बेस URL** सिर्फ़ प्रोजेक्ट के ओनर और एडमिन बदल सकते हैं, क्योंकि उसकी API कुंजी और अतिरिक्त पैरामीटर उसी पते पर भेजे जाते हैं; प्रदाता को संपादित कर सकने वाले बाकी सदस्य बाकी सब कुछ बदल सकते हैं। जो कोई भी प्रदाता पढ़ सकता है, वह उसका **बेस URL** पढ़ सकता है, इसलिए उसमें कभी कोई कुंजी, टोकन या पासवर्ड न डालें: **API कुंजी** का इस्तेमाल करें। उसी पेज पर **वैश्विक LLM प्रदाता** सूची, यानी वे साझा प्रदाता जिन पर कोई प्रोजेक्ट लौटता है, हर साइन-इन व्यक्ति को उनका नाम, विवरण और कीमत दिखाती है, और उनके बारे में और कुछ नहीं।

### इसे परखें

**प्रदाता को परखना।** प्रदाता के पेज पर या उसकी पंक्ति के मेन्यू में **परीक्षण**, प्रदाता को उसकी **API कुंजी**, **मॉडल नाम**, **बेस URL** और **अतिरिक्त पैरामीटर** के साथ एक छोटा प्रॉम्प्ट भेजता है, और बताता है कि उसने जवाब दिया या नहीं और कोई टूल कॉल किया या नहीं, जिसकी Status200 की AI सुविधाओं को ज़रूरत होती है। विफल परीक्षण पहले बताता है कि क्या जांचें, फिर यह कि प्रदाता ने क्या जवाब दिया। जो कोई प्रदाता बदल सकता है, वह उसे परख सकता है: **Project Owner**, **Project Admin**, **Project Member**, **Settings Admin**, **Settings Member** और **Edit LLM**। प्रदाता को देख सकने वाले बाकी सभी लोग **परीक्षण** को लॉक पाते हैं। किसी वैश्विक LLM प्रदाता को सर्वर एडमिनिस्ट्रेटर Admin Dashboard में **सेटिंग्स → वैश्विक LLM प्रदाता** के तहत परखता है।
:::

## हर प्रदाता का अपना कॉन्फ़िगरेशन

### OpenAI

1. [OpenAI Platform](https://platform.openai.com/api-keys) से अपनी API कुंजी लें
2. LLM प्रदाता के रूप में **OpenAI** चुनें
3. अपनी API कुंजी डालें
4. एक मॉडल नाम चुनें:
   - `gpt-5.1` - सुझाया गया डिफ़ॉल्ट, टूल कॉलिंग और जटिल जांचों में मज़बूत
   - `gpt-5.1-mini` - ज़्यादा तेज़ और किफ़ायती

```text title="Example configuration"
Name: Production OpenAI
LLM Provider: OpenAI
API Key: sk-xxxxxxxxxxxxxxxxxxxx
Model Name: gpt-5.1
```

### Anthropic

1. [Anthropic Console](https://console.anthropic.com/) से अपनी API कुंजी लें
2. LLM प्रदाता के रूप में **Anthropic** चुनें
3. अपनी API कुंजी डालें
4. एक मॉडल नाम चुनें:
   - `claude-sonnet-5-5` - सुझाया गया डिफ़ॉल्ट, समझ, गति और लागत का सबसे अच्छा संतुलन
   - `claude-opus-5-5` - ज़्यादा सक्षम, सबसे कठिन जांचों के लिए
   - `claude-haiku-5-5` - सबसे तेज़ और सबसे किफ़ायती

```text title="Example configuration"
Name: Production Anthropic
LLM Provider: Anthropic
API Key: sk-ant-xxxxxxxxxxxxxxxxxxxx
Model Name: claude-sonnet-5-5
```

Claude Opus 4.7 और उसके बाद के सभी Claude मॉडल अपना सैंपलिंग खुद चुनते हैं, और ऐसे अनुरोध को अस्वीकार करते हैं जिसमें `temperature`, `top_p` या `top_k` सेट हो। Status200 इन मॉडल के लिए ये सेटिंग्स नहीं भेजता। अगर फिर भी कोई मॉडल इनमें से किसी को अस्वीकार करता है, तो Status200 अनुरोध को उसके बिना दोबारा भेजता है और प्रदाता के लिए यह याद रखता है।

Claude 5 मॉडल जवाब देने से पहले सोचते हैं, और यह सोच जवाब की टोकन सीमा में गिनी जाती है, इसलिए Status200 इसके लिए जगह छोड़ता है। उन्हें कम सोचने और तेज़ व सस्ते में जवाब देने के लिए, प्रदाता के **अतिरिक्त पैरामीटर** में `{"output_config": {"effort": "low"}}` सेट करें। वहां जोड़ी गई सेटिंग्स Status200 हर अनुरोध के साथ Anthropic को भेजता है, सिवाय `model`, `messages`, `system`, `tools`, `tool_choice` और `stream` के, जिन्हें वह खुद सेट करता है।

Status200, Anthropic की प्रॉम्प्ट कैशिंग का उपयोग करता है। किसी जांच या AI से पूछें के जवाब की हर कॉल सिस्टम प्रॉम्प्ट, टूल और अब तक की बातचीत दोबारा भेजती है, और Status200 उन्हें कैश के लिए चिह्नित करता है: पिछली कॉलों ने जो भेजा था, उसके लिए कॉल कीमत का दसवां हिस्सा या उससे कम चुकाती है, और जो नया है, जिसे वह कैश में लिखती है, उसके लिए कीमत से एक चौथाई ज़्यादा। अगर Claude के आगे का कोई गेटवे कैश के निशान अस्वीकार करता है, तो Status200 अनुरोध को उनके बिना दोबारा भेजता है और प्रदाता के लिए यह याद रखता है। [टोकन कैसे गिने जाते हैं](/docs/ai/ai-sre#टोकन-कैसे-गिने-जाते-हैं) बताता है कि कैश किए गए टोकन आपकी सीमाओं में कैसे गिने जाते हैं।

### Azure OpenAI और Microsoft Foundry

Microsoft Foundry या Azure OpenAI में डिप्लॉय किए गए मॉडल के लिए **Azure OpenAI / Microsoft Foundry** इस्तेमाल करें: OpenAI मॉडल, दूसरे Foundry Models और Claude। रिसोर्स की किसी एक कुंजी को **API कुंजी** के रूप में, डिप्लॉयमेंट के नाम को **मॉडल नाम** के रूप में, और रिसोर्स के एंडपॉइंट को **बेस URL** के रूप में डालें, जैसे `https://contoso-ai.openai.azure.com/openai/v1`। [Microsoft Foundry और Azure OpenAI](/docs/ai/microsoft-foundry) Azure की तरफ़ का पूरा तरीका बताता है: रिसोर्स, अनुमतियां, मॉडल डिप्लॉयमेंट, नेटवर्क की ज़रूरतें और समस्या निवारण।

### Ollama (सेल्फ-होस्टेड)

Ollama आपकी अपनी मशीनों पर ओपन-सोर्स मॉडल चलाता है।

1. [ollama.ai](https://ollama.ai) से Ollama इंस्टॉल करें
2. एक मॉडल डाउनलोड करें: `ollama pull llama3.1`
3. पक्का करें कि Ollama चल रहा है और Status200 सर्वर उस तक पहुंच सकता है। नेटिव इंस्टॉलेशन सिर्फ़ `127.0.0.1` पर सुनता है, इसलिए दूसरी मशीनों और कंटेनरों से कनेक्शन स्वीकार करने के लिए इसे `OLLAMA_HOST=0.0.0.0:11434` के साथ शुरू करें (आधिकारिक `ollama/ollama` Docker इमेज यह पहले से करती है)
4. LLM प्रदाता के रूप में **Ollama** चुनें
5. बेस URL डालें: Ollama सर्वर का वह पता जिससे Status200 सर्वर उस तक पहुंचता है, जैसे `http://ollama:11434` (Status200 `/api/chat` खुद जोड़ता है)। `localhost` काम नहीं करता: देखें [सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना](#सेल्फ-होस्टेड-मॉडल-के-लिए-बेस-url-चुनना)
6. डाउनलोड किए गए मॉडल का नाम डालें

```text title="Ollama as a service named ollama on Status200's Docker Compose network"
Name: Self-Hosted Ollama
LLM Provider: Ollama
Base URL: http://ollama:11434
Model Name: llama3.1
```

**कॉन्टेक्स्ट विंडो बढ़ाएं।** जब तक कुछ और न बताया जाए, Ollama किसी मॉडल की कॉन्टेक्स्ट विंडो का आकार उसे मिली GPU मेमोरी से तय करता है: 24 GiB से कम पर 4k टोकन, 48 GiB तक 32k और उससे ऊपर 256k (पुराने संस्करण 2,048 या 4,096 टोकन इस्तेमाल करते हैं)। Status200 की AI सुविधाएं एजेंट हैं। हर अनुरोध में उनका सिस्टम प्रॉम्प्ट और टूल परिभाषाएं होती हैं, किसी भी प्रश्न से पहले 10,000 से ज़्यादा टोकन, और AI जांच आगे बढ़ते हुए हर क्वेरी नतीजे को बातचीत में जोड़ती जाती है। जब कोई अनुरोध समा नहीं पाता, तो Ollama सबसे पुराने संदेश हटा देता है, और प्रश्न भी उन्हीं के साथ चला जाता है। मॉडल और Ollama संस्करण के अनुसार, मॉडल तब प्रश्न के बिना या अपने टूल के बिना जवाब देता है, या अनुरोध "no user query found in messages" (Qwen 3.8 और बाद के) या "the prompt is longer than the context length currently available to the model" के साथ विफल हो जाता है। Status200 इन विफलताओं को "…the request is larger than the model's context window" के रूप में बताता है और जांच दोबारा नहीं चलाता। प्रदाता के **अतिरिक्त पैरामीटर** में बड़ा `num_ctx` सेट करें:

```json
{ "options": { "num_ctx": 65536 } }
```

Status200 इस `options` ऑब्जेक्ट को उन विकल्पों में मिलाता है जो वह Ollama को भेजता है, इसलिए सिर्फ़ वे सेटिंग्स लिखें जिन्हें आप बदलना चाहते हैं। Ollama एजेंट के लिए 65,536 टोकन सुझाता है, और यह ज़्यादातर जांचों के लिए काफ़ी है। लंबी जांच ज़्यादा इस्तेमाल कर सकती है, क्योंकि Status200 पुराने क्वेरी नतीजों को तभी छोटा करना शुरू करता है जब बातचीत लगभग 75,000 टोकन पार कर जाती है: अगर मॉडल समर्थन करता है और आपका GPU संभाल सकता है, तो 131,072 इस्तेमाल करें। बड़ी कॉन्टेक्स्ट विंडो को ज़्यादा मेमोरी चाहिए, और `ollama ps` दिखाता है कि हर लोड किए गए मॉडल को कितना कॉन्टेक्स्ट मिला। इसके बजाय हर क्लाइंट के लिए डिफ़ॉल्ट बढ़ाने के लिए, Ollama सर्वर पर `OLLAMA_CONTEXT_LENGTH` सेट करें। जब Status200 Ollama तक उसके OpenAI-संगत `/v1` API से पहुंचता है (**OpenAI Compatible** प्रदाता), तो यही एकमात्र तरीका है, क्योंकि वह `num_ctx` को अनदेखा करता है। `GLOBAL_LLM_PROVIDER_*` वेरिएबल से रजिस्टर हुए वैश्विक प्रदाता के लिए, Admin Dashboard में **सेटिंग्स → वैश्विक LLM प्रदाता** के तहत **अतिरिक्त पैरामीटर** सेट करें; शुरू होते समय का सिंक उस फ़ील्ड को नहीं छूता।

**लोकप्रिय Ollama मॉडल:**

- `llama3.1` - Meta का Llama 3.1 मॉडल, टूल कॉलिंग समर्थन वाला सबसे पुराना Llama
- `llama3.3` - Meta का Llama 3.3 मॉडल
- `qwen2.5` - Alibaba का Qwen 2.5 मॉडल
- `mistral-nemo` - Mistral AI का Nemo मॉडल

> [!NOTE]
> Status200 की AI सुविधाएं एजेंट हैं: वे टूल कॉलिंग पर बहुत निर्भर हैं। `llama3.1` या नया, या टूल कॉल करने वाला कोई और मॉडल इस्तेमाल करें। छोटा मॉडल, या टूल कॉलिंग के बिना वाला मॉडल (जैसे `llama2` या मूल `llama3`), खराब जवाब देता है: वह आपके मॉनिटर, घटनाओं या टेलीमेट्री से क्वेरी नहीं कर सकता, इसलिए जांचें खाली या मनगढ़ंत लौटती हैं।

### सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना

किसी सेल्फ-होस्टेड मॉडल का बेस URL, चाहे वह Ollama हो, vLLM, LM Studio या कोई और OpenAI-संगत सर्वर, ऐसा पता होना चाहिए जिस तक **Status200 सर्वर** पहुंच सके। आपका ब्राउज़र कभी उससे कनेक्ट नहीं होता।

**लूपबैक पते हमेशा अस्वीकार किए जाते हैं।** कनेक्ट करने से पहले, Status200 हर उस पते की जांच करता है जिसमें बेस URL का होस्ट नाम रिज़ॉल्व होता है। `localhost`, `127.0.0.1`, `[::1]` और `0.0.0.0`, साथ ही लिंक-लोकल और क्लाउड मेटाडेटा पते जैसे `169.254.169.254`, हर डिप्लॉयमेंट में अस्वीकार किए जाते हैं, सेल्फ-होस्टेड सहित। यह जानबूझकर है: किसी प्रदाता के बेस URL से Status200 सर्वर पर ही चल रही सेवाओं तक नहीं पहुंचा जाना चाहिए। Docker Compose या Kubernetes के अंदर `localhost` वैसे भी Status200 कंटेनर होता, न कि वह मशीन जो आपका मॉडल चलाती है।

इसके बजाय कोई निजी पता या आंतरिक होस्ट नाम इस्तेमाल करें:

| मॉडल सर्वर कहां चलता है | बेस URL |
| --- | --- |
| Status200 के Docker Compose नेटवर्क (`oneuptime`) पर कोई सेवा | सेवा का नाम, जैसे `http://ollama:11434` |
| Status200 वाला ही Kubernetes क्लस्टर | Service का DNS नाम, जैसे `http://ollama.<namespace>.svc.cluster.local:11434`, [साथ आने वाले vLLM](#kubernetes-पर-सेल्फ-होस्टेड-vllm-helm) जैसा ही पैटर्न |
| खुद होस्ट मशीन, किसी कंटेनर के बाहर | होस्ट का LAN IP, जैसे `http://192.168.1.20:11434`, या Docker Desktop पर `http://host.docker.internal:11434` |
| आपके नेटवर्क की कोई दूसरी मशीन | उसका निजी IP या आंतरिक होस्ट नाम, जैसे `http://10.0.0.12:11434` |

OpenAI-संगत सर्वर अपने पोर्ट और `/v1` पाथ के साथ यही नियम मानते हैं, जैसे `http://vllm:8000/v1`, या LM Studio के लिए `http://192.168.1.20:1234/v1`। नेटिव Ollama इंस्टॉलेशन की तरह, LM Studio भी तब तक सिर्फ़ `127.0.0.1` पर सुनता है जब तक आप उसकी सर्वर सेटिंग्स में **Serve on Local Network** चालू नहीं करते।

**सेल्फ-होस्टेड इंस्टॉलेशन पर निजी पते काम करते हैं।** सेल्फ-होस्टेड Status200 निजी नेटवर्क पतों तक पहुंच सकता है, जैसे `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `100.64.0.0/10` और IPv6 `fc00::/7`, जब तक आप `DATA_SOURCE_BLOCK_PRIVATE_ADDRESSES=true` सेट न करें, जो उन्हें वैसे ही अस्वीकार करता है जैसे Status200 Cloud करता है। यह सेटिंग किसी वैश्विक LLM प्रदाता पर लागू नहीं होती, जिसे कोई प्रोजेक्ट नहीं बल्कि एडमिनिस्ट्रेटर कॉन्फ़िगर करता है (`GLOBAL_LLM_PROVIDER_*` वेरिएबल से या Admin Dashboard में): वह अब भी निजी पतों तक पहुंच सकता है। लूपबैक और लिंक-लोकल पते हर प्रदाता के लिए अस्वीकार ही रहते हैं।

**Status200 Cloud (SaaS) निजी नेटवर्क तक नहीं पहुंच सकता।** यह हर LLM प्रदाता के लिए निजी नेटवर्क पतों को, और उनमें रिज़ॉल्व होने वाले होस्ट नामों को, अस्वीकार करता है। अपने इंफ्रास्ट्रक्चर पर चलने वाले मॉडल को इस्तेमाल करने के लिए, या तो Status200 को ऐसे नेटवर्क पर सेल्फ-होस्ट करें जो उस तक पहुंच सके, या मॉडल को सार्वजनिक रूप से पहुंच योग्य एंडपॉइंट पर उपलब्ध कराएं। सार्वजनिक एंडपॉइंट को API कुंजी से सुरक्षित करें: **Ollama** प्रदाता कोई क्रेडेंशियल नहीं भेजता, जबकि **OpenAI Compatible** API कुंजी को bearer टोकन के रूप में भेजता है (Ollama `/v1` के तहत एक OpenAI-संगत API भी देता है, इसलिए वह कुंजी जांचने वाले रिवर्स प्रॉक्सी के पीछे रह सकता है)।

### OpenAI Compatible (vLLM, LocalAI, LM Studio आदि)

**OpenAI Compatible** प्रदाता का इस्तेमाल ऐसे किसी भी सर्वर के लिए करें जो OpenAI का `/chat/completions` API लागू करता है लेकिन खुद OpenAI नहीं है, जैसे [vLLM](https://docs.vllm.ai), [LocalAI](https://localai.io), [LM Studio](https://lmstudio.ai) या text-generation-webui। ये आम तौर पर आपके अपने पते पर चलते हैं, अक्सर बिना प्रमाणीकरण के।

1. अपना OpenAI-संगत सर्वर शुरू करें और उसका बेस URL नोट करें (यह आम तौर पर `/v1` पर खत्म होता है)
2. LLM प्रदाता के रूप में **OpenAI Compatible** चुनें
3. **बेस URL** डालें (ज़रूरी), जैसे `http://your-server:8000/v1`। Status200 सर्वर को उस तक पहुंचना चाहिए, इसलिए `localhost` नहीं: देखें [सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना](#सेल्फ-होस्टेड-मॉडल-के-लिए-बेस-url-चुनना)
4. **मॉडल नाम** डालें (ज़रूरी): यह आपके सर्वर पर उपलब्ध किसी मॉडल से मेल खाना चाहिए
5. **API कुंजी** तभी डालें जब आपका सर्वर इसे मांगे; बिना कुंजी वाले सर्वर के लिए इसे खाली छोड़ दें

```text title="A keyless vLLM"
Name: Self-Hosted vLLM
LLM Provider: OpenAI Compatible
Base URL: http://vllm.internal:8000/v1
Model Name: meta-llama/Llama-3.1-8B-Instruct
API Key: (leave blank)
```

> [!TIP]
> सहेजने के बाद, कनेक्शन, मॉडल नाम और बेस URL जांचने के लिए प्रदाता का **परीक्षण** इस्तेमाल करें।

### Kubernetes पर सेल्फ-होस्टेड vLLM (Helm)

अगर आप Helm चार्ट से Status200 को सेल्फ-होस्ट करते हैं, तो आप अपने क्लस्टर के अंदर [vLLM](https://docs.vllm.ai), एक OpenAI-संगत इन्फ़रेंस सर्वर, चला सकते हैं और अपने GPU पर स्थानीय मॉडल दे सकते हैं। कोई डेटा आपके इंफ्रास्ट्रक्चर से बाहर नहीं जाता।

1. इसे अपनी Helm वैल्यू में चालू करें (इसे NVIDIA GPU नोड चाहिए):

   ```yaml
   vllm:
     enabled: true
     model: Qwen/Qwen2.5-1.5B-Instruct
   ```

2. `helm upgrade` चलाएं और vLLM पॉड के Ready होने तक इंतज़ार करें (पहली शुरुआत में मॉडल डाउनलोड होता है)
3. बस इतना ही: शुरू होते समय vLLM अपने आप वैश्विक LLM प्रदाता के रूप में रजिस्टर हो जाता है (`vllm.globalProvider.enabled`, डिफ़ॉल्ट `true`), इसलिए AI सुविधाएं सभी प्रोजेक्ट के लिए काम करती हैं, AI सुधार कार्य सहित। (हर जगह, क्लाउड और सेल्फ-होस्टेड दोनों में, जब प्रोजेक्ट का अपना कोई प्रदाता नहीं होता, तो एजेंट के सुधार कार्य वैश्विक प्रदाता इस्तेमाल करते हैं; क्लाउड पर उस इस्तेमाल का बिल मापे गए AI टोकन के रूप में बनता है। प्रोजेक्ट का अपना प्रदाता हमेशा पहले आता है।)

अगर आपने अपने आप रजिस्ट्रेशन बंद किया है (`vllm.globalProvider.enabled: false`), तो प्रदाता हाथ से बनाएं:

1. LLM प्रदाता के रूप में **OpenAI Compatible** चुनें (vLLM OpenAI API बोलता है)
2. क्लस्टर के अंदर का बेस URL डालें: `http://<release>-vllm.<namespace>.svc.cluster.local:8000/v1` (अगर आपने `global.clusterDomain` बदला है, तो `cluster.local` बदलें)
3. मॉडल नाम डालें: Hugging Face का पूरा मॉडल id (या `vllm.servedModelName`, अगर आपने सेट किया है)
4. API कुंजी तभी डालें जब आपने `vllm.apiKey` सेट किया हो; बिना कुंजी वाले vLLM के लिए इसे खाली छोड़ दें

```text title="The in-cluster vLLM"
Name: In-Cluster vLLM
LLM Provider: OpenAI Compatible
Base URL: http://status200-vllm.default.svc.cluster.local:8000/v1
Model Name: Qwen/Qwen2.5-1.5B-Instruct
API Key: (leave blank unless vllm.apiKey is set)
```

बिलिंग चालू होने पर, या `DATA_SOURCE_BLOCK_PRIVATE_ADDRESSES=true` (Helm वैल्यू में `outboundConnections.blockPrivateNetwork: true`) के साथ, किसी प्रोजेक्ट का अपना प्रदाता क्लस्टर के अंदर के इस पते तक नहीं पहुंच सकता, जो एक निजी क्लस्टर IP में रिज़ॉल्व होता है। इसके बजाय प्रदाता को Admin Dashboard में **सेटिंग्स → वैश्विक LLM प्रदाता** के तहत उन्हीं फ़ील्ड के साथ बनाएं: वैश्विक LLM प्रदाता उस पते तक पहुंच सकता है।

GPU शेड्यूलिंग, प्रतिबंधित मॉडल और ट्यूनिंग विकल्पों के लिए [Helm चार्ट की vLLM गाइड](https://git.wilix.dev/status200/status200/blob/master/HelmChart/Public/status200/docs/ai-vllm.md) देखें।

## अच्छे तरीके

- **प्रदाताओं को साफ़ नाम दें**, जैसे "Production OpenAI" या "Development Ollama", ताकि टीम के साथी जान सकें कि कौन-सा कौन-सा है।
- **कुंजियां API कुंजी फ़ील्ड में रखें।** API कुंजियां स्टोरेज में एन्क्रिप्ट रहती हैं, और सिर्फ़ प्रोजेक्ट के ओनर और एडमिन उन्हें पढ़ते हैं।
- **हर बदलाव के बाद परखें**, प्रदाता के **परीक्षण** से।
- **AI की लागत पर नज़र रखें।** हर कॉल अपने टोकन और लागत के साथ **प्रोजेक्ट सेटिंग्स → एआई → AI लॉग** के तहत दर्ज होती है।

## समस्या निवारण

:::details प्रदाता तक नहीं पहुंचा जा सकता
- **OpenAI या Anthropic**: जांचें कि आपकी API कुंजी मान्य है और उसमें क्रेडिट है
- **Azure OpenAI / Microsoft Foundry**: त्रुटि इस बात से शुरू होती है कि क्या बदलना है। [Microsoft Foundry और Azure OpenAI](/docs/ai/microsoft-foundry) Azure की हर त्रुटि समझाता है
- **Ollama**: जांचें कि Ollama सर्वर चल रहा है, ऐसे पते पर सुन रहा है जिस तक Status200 सर्वर पहुंच सके (नेटिव इंस्टॉलेशन के लिए `OLLAMA_HOST=0.0.0.0:11434`), और बेस URL उसी पते की ओर इंगित करता है
- **OpenAI Compatible**: जांचें कि बेस URL `/v1` पर खत्म होता है (या आपके सर्वर से मेल खाता है), मॉडल नाम आपके सर्वर पर उपलब्ध किसी मॉडल से मेल खाता है, और आपने API कुंजी तभी सेट की है जब आपका सर्वर उसे मांगता हो
- **"…points to an address Status200 is not allowed to connect to"**: बेस URL किसी अस्वीकृत पते में रिज़ॉल्व होता है: `localhost` या कोई और लूपबैक पता, या Status200 Cloud पर कोई निजी नेटवर्क पता। (Status200 Cloud अस्वीकृत होस्ट नाम को इसके बजाय "…could not be reached" के रूप में बताता है।) देखें [सेल्फ-होस्टेड मॉडल के लिए बेस URL चुनना](#सेल्फ-होस्टेड-मॉडल-के-लिए-बेस-url-चुनना)
- **फ़ायरवॉल**: जांचें कि आपका नेटवर्क प्रदाता के API तक बाहर जाने वाले कनेक्शन की अनुमति देता है
:::

:::details मॉडल नहीं मिला
मॉडल नाम की वर्तनी जांचें। Ollama के लिए, पहले `ollama pull <model-name>` से मॉडल डाउनलोड करें। कुछ मॉडल सिर्फ़ कुछ क्षेत्रों में उपलब्ध हैं।
:::

:::details कॉन्टेक्स्ट विंडो बहुत छोटी है
- **"…the request is larger than the model's context window"**: अनुरोध मॉडल की कॉन्टेक्स्ट विंडो में नहीं समाया, आम तौर पर इसलिए कि किसी AI जांच ने बहुत सारे सबूत इकट्ठा कर लिए हैं। प्रदाता के **अतिरिक्त पैरामीटर** में `num_ctx` बढ़ाएं, या Ollama सर्वर पर `OLLAMA_CONTEXT_LENGTH`; देखें [Ollama (सेल्फ-होस्टेड)](#ollama-सेल्फ-होस्टेड)
- **"no user query found in messages"**: वही समस्या, जैसा Qwen बताता है। Status200 प्रश्न हमेशा भेजता है; Ollama ने बाकी अनुरोध को समाने के लिए उसे हटा दिया
:::

अब भी अटके हैं? [Status200 के GitHub issues](https://git.wilix.dev/status200/status200/issues) में अपनी त्रुटि खोजें, या अगर आपके प्लान में सपोर्ट शामिल है, तो सपोर्ट से संपर्क करें।

## अगले कदम

:::cards
- [कोड](/docs/ai/ai-agent): आपके प्रदाता के लिखे पुल रिक्वेस्ट, और वे कहां से शुरू होते हैं।
- [AI SRE](/docs/ai/ai-sre): प्रदाता मिल जाने पर Status200 AI उसके साथ क्या करता है।
- [AI से पूछें](/docs/ai/ask-ai): अपने प्रोजेक्ट से प्रश्न पूछें, और बातचीत का प्रदाता बदलें।
:::
