गाइड
चैनल और प्रदाता राउटिंग
X-Felo-Channel से मॉडल को किसी खास प्रदाता पर पिन करें और डिफ़ॉल्ट रूटिंग, कीमत और fallback नियम समझें।
कोई मॉडल कई upstream प्रदाताओं के ज़रिए उपलब्ध हो सकता है। डिफ़ॉल्ट रूप से Felo आपके लिए प्रदाता चुनता है। जब आपको कोई विशेष आपूर्तिकर्ता चाहिए, तो एक या अधिक सार्वजनिक चैनल कोड के साथ X-Felo-Channel अनुरोध हेडर भेजें।
समर्थित endpoint
X-Felo-Channel हर Model API जनरेशन endpoint पर स्वीकार किया जाता है:
| Endpoint | प्रोटोकॉल |
|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions |
POST /api/v1/responses | OpenAI Responses |
POST /api/v1/messages | Anthropic Messages |
POST /api/v1/images/generations | इमेज जनरेशन |
POST /api/v1/videos/generations | वीडियो जनरेशन |
POST /api/v1/decisions | Decisions |
यह Data API (/v1/beta) या Felo APIs (/v2) पर लागू नहीं होता।
हेडर मान
मान सार्वजनिक चैनल कोड की क्रमबद्ध, कॉमा से अलग की गई सूची है:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultसार्वजनिक Model API विनिर्देश के नियम:
- डिफ़ॉल्ट रूट का उपयोग करने के लिए हेडर छोड़ दें।
defaultकेवल अकेले उपयोग किए जाने पर मान्य मान है। इसे चैनल कोड के साथ न मिलाएं।- सार्वजनिक चैनल कोड कैटलॉग में मॉडल के
channels[].codeफ़ील्ड से आते हैं। कोड का उपयोग करें, आपूर्तिकर्ता के डिस्प्ले नाम का नहीं। - केवल runnable, प्रकाशित चैनल रूट करने योग्य हैं।
डिफ़ॉल्ट रूटिंग
जब आप हेडर छोड़ देते हैं, या default अकेले भेजते हैं, तो प्लेटफ़ॉर्म प्रदाता चुनता है। wallet मोड में यह मॉडल के प्रभावी सार्वजनिक चैनल क्रम को उल्टा स्कैन करता है, अप्रकाशित या अनुपलब्ध चैनल छोड़ता है और पहले उपलब्ध चैनल का प्रदाता चुनता है। इसमें उस प्रदाता के उपलब्ध endpoint शामिल हो सकते हैं जिनका upstream मॉडल ID और सेवा tier समान हो।
आपको X-Felo-Channel: default भेजने की ज़रूरत नहीं है; हेडर छोड़ना डिफ़ॉल्ट रूट उपयोग करने का सामान्य तरीका है।
स्पष्ट रूटिंग
जब आप चैनल कोड भेजते हैं, तो उन्हें उसी क्रम में सत्यापित किया जाता है जिस क्रम में आपने सूचीबद्ध किया है। केवल पहले चैनल का प्रदाता समूह सबमिट होता है। किसी अन्य प्रदाता पर स्वचालित fallback नहीं है।
इसका अर्थ है कि चैनल सूची एक चयन है, पुनः प्रयास नीति नहीं। अगर आपको failover चाहिए, तो इसे अपने एप्लिकेशन में लागू करें: पहला चैनल विफल होने के बाद अलग चैनल के साथ नया अनुरोध भेजें।
पुराने प्रदाता हेडर X-Felo-Channel को ओवरराइड नहीं कर सकते। अगर आपके क्लाइंट में कोई अन्य हेडर भी प्रदाता मांगता है, तो X-Felo-Channel को प्राथमिकता मिलती है।
मूल्य
हर सार्वजनिक चैनल अपनी मानक दरें और छूट गुणक प्रकाशित करता है। मॉडल विवरण पेज पर किसी आपूर्तिकर्ता के लिए दिखाया गया मूल्य उस चैनल का ग्राहक मूल्य है। आप जिस चैनल को पिन करते हैं वही तय करता है कि किस प्रदाता की दर लागू होगी।
उच्च-मात्रा वाले काम के लिए चैनल पिन करने से पहले, मॉडल पेज पर आपूर्तिकर्ता पंक्तियों की तुलना करें और Models and Pricing पढ़ें।
चैनल कोड खोजें
- मॉडल विवरण पेज खोलें और आपूर्तिकर्ता तालिका खोजें।
- आपूर्तिकर्ता को उसके सार्वजनिक चैनल कोड से मिलाएं। कोड वह स्थिर पहचानकर्ता है जिसे API उपयोग करती है।
- अगर आप सीधे कैटलॉग पढ़ रहे हैं, तो
channels[].codeका उपयोग करें औरrunnableजांचें।
उदाहरण के लिए, claude-haiku-5-5 कई चैनल प्रकाशित करता है, जिनमें anthropic (डिफ़ॉल्ट), azure, google-vertex-global और claude-cc शामिल हैं। claude-cc पंक्ति अपनी छूट दिखाती है, इसलिए इसे पिन करने से प्रदाता और दर दोनों बदल जाते हैं।
उदाहरण
Chat Completions एक चैनल पर पिन किया गया:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'उसी चैनल के साथ Anthropic Messages:
curl https://openapi.felo.ai/api/v1/messages \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'डिफ़ॉल्ट रूटिंग, बिना किसी रूटिंग हेडर के:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'