Esc to close · ⌘K / Ctrl-K opens search anywhere
BharatRouter OpenAI wire format बोलतो, त्यामुळे तुम्हाला कोणत्याही खास SDK ची गरज नाही — जो OpenAI-compatible client तुम्ही आधीपासून वापरता त्याला gateway वर लावा आणि बाकी काही बदलू नका. हे पेज सामान्य stacks साठी drop-in दाखवते, आणि सांगते की चार BharatRouterrouting extensions प्रत्येकामध्ये कुठे जातात.
| Base URL | https://api.bharatrouter.com/v1 |
|---|---|
| Auth | Authorization: Bearer br-… — sign in करा आणि एक key तयार करा |
| Extensions | optimize, provider, data_policy, upstream_key — request body मध्ये पाठवले जातात, router कडून consume होतात, आणि gateway सोडण्यापूर्वी काढून टाकले जातात |
per-SDK फक्त एक प्रश्न आहे — extensions कुठे जातात. प्रत्येक OpenAI client कडे non-standard फील्डसाठी एक escape hatch आहे. या पेजच्या शेवटची table प्रत्येकाची यादी करते.
extensions extra_body मध्ये जातात.
from openai import OpenAI
client = OpenAI(base_url="https://api.bharatrouter.com/v1", api_key="br-...")
r = client.chat.completions.create(
model="gemma-4-e4b-it",
messages=[{"role": "user", "content": "namaste"}],
extra_body={"data_policy": "india_only", "optimize": "price"},
)
print(r.choices[0].message.content)
# किस route ने serve किया? .with_raw_response से x-br-provider header पढ़ें:
raw = client.chat.completions.with_raw_response.create(
model="gemma-4-e4b-it", messages=[{"role": "user", "content": "namaste"}],
)
print("served by:", raw.headers.get("x-br-provider"))JS SDK अनोळखी फील्ड forward करतो, त्यामुळे extensions standard फील्डसोबत राहू शकतात.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.bharatrouter.com/v1",
apiKey: "br-...",
});
const r = await client.chat.completions.create({
model: "gemma-4-e4b-it",
messages: [{ role: "user", content: "namaste" }],
// BharatRouter extensions सीधे pass होते हैं:
data_policy: "india_only",
optimize: "latency",
} as any);
console.log(r.choices[0].message.content);custom baseURL सोबत OpenAI-compatible provider वापरा; extensionsproviderOptions (किंवा extraBody) मधून पाठवा.
import { createOpenAI } from "@ai-sdk/openai";
import { streamText } from "ai";
const bharat = createOpenAI({
baseURL: "https://api.bharatrouter.com/v1",
apiKey: process.env.BHARATROUTER_API_KEY,
});
const result = await streamText({
model: bharat("gemma-4-e4b-it"),
prompt: "Explain UPI in two lines",
providerOptions: { openai: { data_policy: "india_only", optimize: "price" } },
});
for await (const delta of result.textStream) process.stdout.write(delta);ChatOpenAI ला gateway वर लावा. extensions model_kwargs(Python) / modelKwargs (JS) मध्ये जातात.
# Python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
base_url="https://api.bharatrouter.com/v1",
api_key="br-...",
model="gemma-4-e4b-it",
model_kwargs={"extra_body": {"data_policy": "india_only", "optimize": "price"}},
)
print(llm.invoke("namaste").content)// JavaScript
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "gemma-4-e4b-it",
apiKey: "br-...",
configuration: { baseURL: "https://api.bharatrouter.com/v1" },
modelKwargs: { data_policy: "india_only", optimize: "price" },
});
console.log((await llm.invoke("namaste")).content);gateway base URL सोबत OpenAI-like LLM वापरा.
from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike(
model="gemma-4-e4b-it",
api_base="https://api.bharatrouter.com/v1",
api_key="br-...",
is_chat_model=True,
additional_kwargs={"data_policy": "india_only", "optimize": "price"},
)
print(llm.complete("namaste"))तोच swap embeddings साठीही चालतो — कोणत्याही OpenAI embeddings client ला gateway वर लावा.
from openai import OpenAI
client = OpenAI(base_url="https://api.bharatrouter.com/v1", api_key="br-...")
e = client.embeddings.create(model="bge-m3", input=["namaste", "vanakkam"])
print(len(e.data[0].embedding))| SDK / framework | optimize / data_policy / … कसे पाठवायचे |
|---|---|
| OpenAI SDK (Python) | extra_body={...} |
| OpenAI SDK (Node) | request object वर top-level फील्ड (गरज असल्यास cast करा) |
| Vercel AI SDK | providerOptions.openai (किंवा extraBody) |
| LangChain (Py) | model_kwargs={"extra_body": {...}} |
| LangChain (JS) | modelKwargs: {...} |
| LlamaIndex | additional_kwargs={...} |
| Raw HTTP / curl | request body मध्ये top-level JSON फील्ड |
एजंट तयार करत आहात? tool-calling आणि MCP साठीएजंट पाहा. कोणत्याही दुसऱ्या platform वरून येत आहात? माइग्रेशन गाइड पाहा. रेसिपी कुकबुक मध्ये आहेत.