·3 मिनट का पठन

JSON mode और structured outputs: कौन से models किसे support करते हैं

GetVibe API पर JSON mode की model-by-model matrix, json_object और json_schema के बीच अंतर, और हर model पर काम करने वाला fallback: forced tool calls।

JSON mode और structured outputs: कौन से models किसे support करते हैं

अगर आपका 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", ...} with strict: 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 को पढ़ा गया था।

ModelJSON modeTool callingPrice
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 खोजें।

JSON modestructured outputsresponse_format json_schemaLLM JSON outputjson_object बनाम json_schemafunction calling JSON

GetVibe API को मुफ़्त में आज़माएँ

एक OpenAI-संगत API के ज़रिए GPT, Claude, Gemini और अन्य मॉडल। कार्ड या क्रिप्टो से USD में भुगतान करें।

संबंधित लेख

JSON mode और structured outputs: कौन से models किसे support करते हैं | GetVibe API