Esc to close · ⌘K / Ctrl-K opens search anywhere
Sangam (संगम — confluence) एक प्रॉम्प्ट मॉडेल्सच्या एका पॅनेलकडे पाठवतो जे समांतरपणे उत्तर देतात, मग एक synthesizer मॉडेल त्यांची उत्तरे एकाच उत्तरात संगठित करतो. तुम्ही याला इतर कोणत्याही मॉडेलप्रमाणेच कॉल करता — एक रिक्वेस्ट, एक रिस्पॉन्स मानक OpenAI chat.completion आकारात — आणि तुम्हाला एका ऐवजी अनेक मॉडेल्सचा निर्णय मिळतो. हीरो व्हेरिएंट,bharatrouter/open-sangam, एक पूर्णपणे ओपन-वेटपॅनेल चालवतो: एक दुसरे मत जे तुम्ही सुरुवातीपासून शेवटपर्यंत वाचू शकता, एखाद्या बंद मॉडेलऐवजी पारदर्शक, पुनरुत्पादनयोग्य मॉडेल्सवर आधारित. हे तुमच्या स्वतःच्या provider keys (BYOK) वर चालते (पहा BYOK), आणि तुम्हाला हवे तेव्हा भारत रेसिडेन्सी एक फीचर म्हणून उपलब्ध आहे (data_policy: india_only).
BYOK बीटा दरम्यान Sangam मोफत आहे — जोपर्यंत प्लॅटफॉर्म बीटामध्ये आहे तोपर्यंत BharatRouter त्याच्यावर काहीही शुल्क आकारत नाही. हा एक शोकेस/प्रीमियम मार्ग आहे, कमी-latency वाला नाही (पहाखर्च आणि latency).
सहमती तुम्हाला टोकन आणि latency च्या खर्चावर मजबूती देते. तो व्यवहार कठीण समस्यांवर सार्थक असतो आणि सोप्या समस्यांवर चुकीचा.
प्रत्येक Sangam रिक्वेस्ट अंतर्गतपणे तेच तीन टप्पे चालवते — कॉलरला फक्त टप्पा 3 दिसतो.
chat.completion परत मिळते: choices[0].message.content हे संश्लेषित उत्तर असते. usage हे प्रत्येक पॅनेल कम्प्लीशन आणि synth कम्प्लीशनची बेरीज असते. एक br_sangam ब्लॉक संपूर्ण पॅनेल पारदर्शक बनवतो.पारदर्शकता ब्लॉक तुम्हाला सांगतो की प्रत्यक्षात कोणते मॉडेल्स चालले, कुठे, आणि त्यांची कशी कामगिरी राहिली — एकट्या उत्तरामागे काहीही लपलेले नाही:
"br_sangam": {
"panel": [
{ "model": "gpt-oss-20b", "provider": "krutrim", "ok": true, "ms": 1840 },
{ "model": "qwen3-32b", "provider": "groq", "ok": true, "ms": 1210 },
{ "model": "llama-3.1-8b-instruct", "provider": "groq", "ok": false, "ms": 0 }
],
"synthesizer": { "model": "gpt-oss-120b", "provider": "krutrim", "ms": 2960 }
}प्रत्येक पॅनेल एंट्री तिचे model, ज्या provider रूटवर ती चालली, तिने उत्तर दिले का (ok), आणि ms मध्ये तिची latency रिपोर्ट करते. एक पॅनेल सदस्य जो अयशस्वी होतो (ok: false) त्याला संश्लेषणातून सरळ काढून टाकले जाते — उत्तर तरीही येते जोपर्यंत पॅनेलचा पुरेसा भाग यशस्वी असतो.
दोन Sangam मॉडेल ids कॅटलॉगमध्ये शिप होतात. open-sangam वापरा जोपर्यंत तुम्हाला विशेषतः पॅनेलमध्ये फ्रंटियर मॉडेल्स नको असतात.
| Model id | पॅनेल → synthesizer | पॅनेल | कशासाठी सर्वोत्तम |
|---|---|---|---|
bharatrouter/open-sangam hero | gpt-oss-20b (Krutrim), qwen3-32b(ओपन-वेट, BYOK), llama-3.1-8b-instruct (ओपन-वेट, BYOK)→ synth gpt-oss-120b | पूर्णपणे ओपन-वेट — पारदर्शक, पुनरुत्पादनयोग्य मॉडेल्स; भारत रेसिडेन्सीसाठी data_policy: india_only जोडा | ओपन-वेट सहमती जी तुम्ही सुरुवातीपासून शेवटपर्यंत ऑडिट करू शकता; तुमच्या keys (BYOK) वर चालते |
bharatrouter/sangam | gpt-5, gemini-2.5-flash, claude-haiku-4.5 → synth gpt-5-mini | फ्रंटियर मॉडेल्स | कमाल क्वालिटी — जेव्हा खर्च कोणतीही अडचण नसते तेव्हा एक पूर्ण फ्रंटियर पॅनेल; प्रीमियम |
Krutrim-first: ओपन पॅनेल Krutrim Cloud वर gpt-oss-20b पासून सुरू होतो आणि gpt-oss-120b वर संश्लेषण करतो, तेही Krutrim वर.
Sangam मानक एंडपॉइंटवर एक साधी मॉडेल id आहे — प्रकाशित व्हेरिएंटसाठी कोणत्याही विशेष पॅरामीटरची गरज नाही. OpenAI SDK ला BharatRouter कडे निर्देशित करा आणिbharatrouter/open-sangam कॉल करा.
curl https://api.bharatrouter.com/v1/chat/completions \
-H "Authorization: Bearer br-..." -H "Content-Type: application/json" \
-d '{
"model": "bharatrouter/open-sangam",
"messages": [
{"role": "user", "content": "Our supplier missed an SLA. Walk through whether we can terminate, and the risks."}
]
}'from openai import OpenAI
client = OpenAI(base_url="https://api.bharatrouter.com/v1", api_key="br-...")
r = client.chat.completions.create(
model="bharatrouter/open-sangam",
messages=[
{"role": "user",
"content": "Our supplier missed an SLA. Walk through whether we can terminate, and the risks."},
],
)
print(r.choices[0].message.content) # the synthesized answer
print(r.usage.total_tokens) # panel + synth, summed
print(r.model_extra["br_sangam"]["panel"]) # who ran, where, how fastदोन प्रकाशित व्हेरिएंट्सच्या पलीकडे तुम्ही एक sangam ऑब्जेक्ट पाठवून एकाच रिक्वेस्टवर तुमचे स्वतःचे पॅनेल जोडू शकता — निवडा की कोणते मॉडेल्स वाद घालतील आणि कोणते एक संगठित करेल. हा एक BharatRouter एक्स्टेंशन आहे: गेटवे त्याचा वापर करतो आणि त्याला कधीही अपस्ट्रीम फॉरवर्ड करत नाही.
panel — 2 ते 6 कॅटलॉग मॉडेल ids चे एक array. 2 पेक्षा कमी सहमती नाही; 6 पेक्षा जास्त फक्त टोकन जाळते.synth — एक कॅटलॉग मॉडेल id जी पॅनेलची उत्तरे संगठित करते.ऑब्जेक्ट सर्व्हर-साइडवर सत्यापित होतो. एक पॅनेल जे खूप लहान किंवा खूप मोठे आहे, किंवा कोणतीही id जीकॅटलॉगमध्ये नाही, ती कोणत्याही मॉडेलला डायल करण्यापूर्वी संपूर्ण रिक्वेस्ट400 bad_sangam सोबत अयशस्वी करते — तुम्ही खराब पॅनेलसाठी कधीही पैसे देत नाही. जेव्हा एक sangam ऑब्जेक्ट उपस्थित असतो तेव्हा तो पॅनेल परिभाषित करतो; आधारभूत modelफील्ड कोणतीही Sangam id असू शकते आणि ऑब्जेक्टद्वारे ओव्हरराइड केली जाते.
curl https://api.bharatrouter.com/v1/chat/completions \
-H "Authorization: Bearer br-..." -H "Content-Type: application/json" \
-d '{
"model": "bharatrouter/open-sangam",
"sangam": {
"panel": ["gpt-oss-20b", "qwen3-32b", "gemma-4-e4b-it", "llama-3.1-8b-instruct"],
"synth": "gpt-oss-120b"
},
"messages": [{"role": "user", "content": "Is this clause enforceable under Indian contract law?"}]
}'r = client.chat.completions.create(
model="bharatrouter/open-sangam",
messages=[{"role": "user", "content": "Is this clause enforceable under Indian contract law?"}],
extra_body={
"sangam": {
"panel": ["gpt-oss-20b", "qwen3-32b", "gemma-4-e4b-it", "llama-3.1-8b-instruct"],
"synth": "gpt-oss-120b",
}
},
)अगदी तोच sangam ऑब्जेक्टप्लेग्राउंडमध्ये काम करतो — एक पॅनेल दृश्यरीत्या बनवा, मग रिक्वेस्ट कॉपी करा.
प्रत्येक Sangam व्हेरिएंट BYOK सोबत काम करतो. प्रत्येक पॅनेल आणि synth सब-कॉल तुमच्या स्वतःच्या provider keys चा अगदी तसाच आदर करते जसे एक सामान्य रिक्वेस्ट: हे BYOK आहे, म्हणून प्रत्येक पॅनेल मॉडेलसाठी तुम्ही एक key आणता. जर तुमच्या org कडे एखाद्या पॅनेल सदस्याच्या provider साठी एक सेव्ह केलेली key असेल, तर तो सब-कॉल तीच वापरतो. Sangam बद्दल काहीही key resolution बदलत नाही — हा गेटवेवर कोणत्याही इतर कॉलसारखाच path आहे. Open-Sangam पॅनेल पूर्णपणे ओपन-वेट आणि Groq-routable आहे, म्हणून एकच provider key (जसे Groq) संपूर्ण पॅनेल कव्हर करू शकते.
upstream_key. त्या कॉलसाठी override करण्यासाठी रिक्वेस्टवर एक upstream_key पाठवा; ती सब-कॉल्सवर तशीच लागू होते जशी एकल-मॉडेल रिक्वेस्टवर.कारण resolution प्रति सब-कॉल आहे, एक Sangam रिक्वेस्ट संपूर्ण पॅनेलमध्ये providers मिसळू शकते — उदाहरणार्थ Krutrim-सर्व्ड leg साठी तुमची स्वतःची Krutrim key, आणि ओपन-वेट सदस्यांसाठी एक Groq key. keys कशा स्टोअर आणि resolve होतात, यासाठी BYOK पहा.
एक Sangam उत्तर एक साधे chat.completion आहे. तीन भाग महत्त्वाचे आहेत:
choices[0].message.content — एकल संश्लेषित उत्तर. हे synthesizer चे आउटपुट आहे, कोणत्याही एका पॅनेल सदस्याचे नाही.usage — सर्व पॅनेल कम्प्लीशन आणि synth कम्प्लीशनची बेरीज (prompt_tokens, completion_tokens,total_tokens). यावरच तुम्हाला मीटर केले जाते, म्हणून हे डिझाइननुसार एका एकल मॉडेल कॉलपेक्षा अधिक आहे.br_sangam — पारदर्शकता ब्लॉक (वर): एक{ model, provider, ok, ms } चा panel array आणि एक{ model, provider, ms } चा synthesizer. हे वाचा जेणेकरून नेमके पाहता येईल की कोणी योगदान दिले आणि एखादा सदस्य बाहेर पडला का.| फील्ड | यात काय असते |
|---|---|
choices[0].message.content | संगठित उत्तर. |
usage.total_tokens | पॅनेल + synth टोकन, बेरीज केलेली. |
br_sangam.panel[] | प्रति पॅनेल सदस्य model, provider, ok, ms. |
br_sangam.synthesizer | synth टप्प्यासाठी model, provider, ms. |
Sangam पूर्ण human + agent parity सोबत शिप होतो. प्रकाशित Sangam मॉडेल्सGET /v1/models मध्ये इतर प्रत्येक कॅटलॉग मॉडेलसोबत शोधता येतात, म्हणून एक एजंट त्यांना कॅटलॉग सूचीबद्ध करून शोधतो — कोणतेही विशेष-केसिंग नाही. एजंट्स Sangam लाMCP chat टूलद्वारे कॉल करतात, आणि कस्टम पॅनेल तोचएकसारखा sangam: { panel, synth } config ऑब्जेक्ट वापरतात जो तुम्ही REST वर पाठवता. एक config आकार, दोन पृष्ठभाग — human UI आणि agent API सोबत सोबत चालतात.
विचारपूर्वक वापरा: एक सहमती कॉल एका एकल मॉडेल कॉलच्या टोकनचा अंदाजे (panel + 1)×खर्च करते — प्रत्येक पॅनेल सदस्य आणि synthesizer — आणि तिची latencyसर्वात संथ पॅनेल मॉडेल (पॅनेल समांतरपणे चालते) आणि synth टप्प्याने मर्यादित आहे. हे Sangam ला एक शोकेस/प्रीमियम मार्ग बनवते, कमी-latency वाला नाही. open-sangamतुमच्या स्वतःच्या keys (BYOK) वर चालते — त्याचे पॅनेल पूर्णपणे ओपन-वेट आहे, म्हणून खर्च तुमची स्वतःची ओपन-वेट provider दर आहे; sangam चे फ्रंटियर पॅनेल प्रीमियम आहे. BYOK बीटा दरम्यान, Sangam स्वतः मोफत आहे — BharatRouter त्याच्यावर काहीही शुल्क आकारत नाही.