अगर आपका code model के answer को parse करता है, तो आपको ऐसा JSON चाहिए जो हर call पर parse हो। GetVibe API पर इसे पाने के तीन तरीके हैं: json_object mode, strict json_schema mode और forced tool calls। Models इस बात में अलग-अलग होते हैं कि वे इनमें से किसे support करते हैं। यह article हमारे catalog की matrix बताता है और दिखाता है कि किस जगह कौन-सा approach इस्तेमाल करना चाहिए।
तीन approaches
response_format: {"type": "json_object"}: model valid JSON लौटाता है। आप prompt में fields का विवरण देते हैं।response_format: {"type": "json_schema", ...}withstrict: true: model आपके दिए गए schema को बिल्कुल उसी रूप में भरता है। GPT-5.x और compatible models इसे support करते हैं।- Forced tool call (
toolsऔरtool_choiceमें किसी एक function का नाम): model function के arguments को JSON के रूप में लौटाता है, जो function के parameter schema से match करता है। हमारे catalog का हर text model tool calling support करता है, इसलिए यह सबसे portable option है।
Matrix
JSON mode column caps.jsonMode है, जो https://getvibeapi.com/api/catalog से 25 सितंबर 2026 को पढ़ा गया था।
| Model | JSON mode | Tool calling | Price |
|---|---|---|---|
| GPT-6 Luna | हाँ | हाँ | $0.0055 इनपुट · $0.0274 आउटपुट प्रति 10 लाख टोकन |
| GPT-6 Sol | हाँ | हाँ | $0.1096 इनपुट · $0.548 आउटपुट प्रति 10 लाख टोकन |
| GPT-6 Astra | नहीं | हाँ | $0.548 इनपुट · $2.7398 आउटपुट प्रति 10 लाख टोकन |
| GPT-5.6 Sol (साथ ही Luna, Terra) | हाँ | हाँ | $0.0667 इनपुट · $0.40 आउटपुट प्रति 10 लाख टोकन |
| Claude Opus 5.5 | हाँ | हाँ | $0.1067 इनपुट · $0.5334 आउटपुट प्रति 10 लाख टोकन |
| Claude Sonnet 5 | हाँ | हाँ | $0.3334 इनपुट · $1.6667 आउटपुट प्रति 10 लाख टोकन |
| Gemini 3.1 Pro | हाँ | हाँ | $0.2515 इनपुट · $1.5086 आउटपुट प्रति 10 लाख टोकन |
| Gemini 3.8 Flash (साथ ही 3.7 Flash) | नहीं | हाँ | $0.0097 इनपुट · $0.0483 आउटपुट प्रति 10 लाख टोकन |
| DeepSeek V4.1 Flash | हाँ | हाँ | $0.0112 इनपुट · $0.0445 आउटपुट प्रति 10 लाख टोकन |
| Qwen3.8 Max (साथ ही 3.8 Flash) | हाँ | हाँ | $0.1543 इनपुट · $0.4629 आउटपुट प्रति 10 लाख टोकन |
| Kimi K3 | हाँ | हाँ | $0.1715 इनपुट · $0.8572 आउटपुट प्रति 10 लाख टोकन |
| MiniMax M3 | हाँ | हाँ | $0.0148 इनपुट · $0.0591 आउटपुट प्रति 10 लाख टोकन |
| Tencent Hy4 Preview | हाँ | हाँ | $0.0334 इनपुट · $0.1001 आउटपुट प्रति 10 लाख टोकन |
| GLM-5.3 (साथ ही 5.3 Flash, 5.2) | नहीं | हाँ | $0.10 इनपुट · $0.3143 आउटपुट प्रति 10 लाख टोकन |
जिन models के लिए "नहीं" दिया गया है, उनमें forced tool call का इस्तेमाल करें, या prompt में JSON का विवरण दें और उसे अपनी तरफ से validate करें।
हमारी तरफ strict mode कैसे काम करता है
json_schema request में strict: true के साथ gateway केवल उन्हीं model variants पर route करता है जो वास्तव में schema का पालन करते हैं। यह हर attempt पर लागू होता है, जिसमें backup पर switch करना भी शामिल है। अगर कोई उपयुक्त variant उपलब्ध नहीं है, तो आपको plain text मिलने के बजाय स्पष्ट structured_output_unsupported error मिलता है, जबकि JSON अपेक्षित था। यह guard हमारे measurements पर आधारित है और केवल उन्हीं variants को cover करता है जिन्हें हमने measure किया है।
एक ज्ञात case: DeepSeek के अपने API में json_schema mode नहीं है। DeepSeek models के लिए json_object का इस्तेमाल करें, या जब आपको बिल्कुल एक ही shape चाहिए तो forced tool call इस्तेमाल करें।
Examples
Strict schema:
from openai import OpenAI
import json
client = OpenAI(base_url="https://getvibeapi.com/v1", api_key="sk-pv-...")
schema = {
"type": "object",
"properties": {"name": {"type": "string"}, "score": {"type": "number"}},
"required": ["name", "score"],
"additionalProperties": False,
}
resp = client.chat.completions.create(
model="gpt-6-luna",
response_format={"type": "json_schema",
"json_schema": {"name": "review", "strict": True, "schema": schema}},
messages=[{"role": "user", "content": "इस product को rate करें: तेज़ delivery, सावधानी से की गई packaging"}],
)
print(json.loads(resp.choices[0].message.content))
Forced tool call, जो JSON mode के बिना models पर भी काम करता है:
resp = client.chat.completions.create(
model="gemini-3.8-flash",
tools=[{"type": "function", "function": {"name": "save_review", "parameters": schema}}],
tool_choice={"type": "function", "function": {"name": "save_review"}},
messages=[{"role": "user", "content": "इस product को rate करें: तेज़ delivery, सावधानी से की गई packaging"}],
)
args = json.loads(resp.choices[0].message.tool_calls[0].function.arguments)
हमेशा validate करें
JSON mode चालू होने पर भी parsed object को इस्तेमाल करने से पहले अपने schema के अनुसार check करें और failure होने पर retry करें। लंबे outputs में यह सबसे ज़्यादा महत्वपूर्ण है, क्योंकि max_tokens पर cut off हुआ response truncated JSON हो सकता है। finish_reason check करें: length का मतलब है कि answer बीच में ही रुक गया।
अगले कदम
structured outputs documentation और tool calling guide पढ़ें, या हमारी cheapest LLM APIs list में कम लागत वाला JSON-capable model खोजें।
