चैट कम्प्लीशन
OpenAI-संगत चैट कम्प्लीशन, जिनमें स्ट्रीमिंग, इमेज, टूल कॉलिंग और रीज़निंग पर नियंत्रण का सपोर्ट है।
POST /v1/chat/completions
curl https://api.unquant.io/v1/chat/completions \
-H "Authorization: Bearer $UNQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash",
"messages":[{"role":"user","content":"Hello!"}]}'रिक्वेस्ट फ़ील्ड
modelस्ट्रिंगज़रूरीglm-5.3-flash या qwen-3.8-flash-next।
messagesऐरेज़रूरीरोल: system, user, assistant और tool। कॉन्टेंट एक स्ट्रिंग या text और image_url हिस्सों का ऐरे होता है।
streamबूलियनजवाब को सर्वर-सेंट इवेंट के रूप में स्ट्रीम करें।
stream_optionsऑब्जेक्ट{"include_usage": true} आखिर में एक चंक जोड़ता है जिसमें टोकन की गिनती होती है।
max_tokensपूर्णांकजवाब की लंबाई की अधिकतम सीमा।
max_completion_tokensपूर्णांकmax_tokens के समान।
temperatureसंख्यासैंपलिंग में रैंडमनेस का स्तर।
top_pसंख्यान्यूक्लियस सैंपलिंग।
top_kपूर्णांकसबसे ज़्यादा संभावना वाले k टोकन में से सैंपल चुनें।
min_pसंख्याकिसी टोकन के लिए न्यूनतम सापेक्ष संभावना।
seedपूर्णांकसैंपलिंग के नतीजे दोहराने के लिए सीड।
stopस्ट्रिंग या ऐरेवे सीक्वेंस जिन पर जवाब बनना बंद हो जाता है।
frequency_penaltyसंख्याटोकन कितनी बार आए हैं, उसके आधार पर उनकी पेनल्टी तय करें।
presence_penaltyसंख्याजो टोकन पहले आ चुके हैं, उन पर पेनल्टी लगाएँ।
repetition_penaltyसंख्यादोहराव की पेनल्टी, जो गुणा करके लागू की जाती है।
toolsऐरेOpenAI फ़ॉर्मैट में वे फ़ंक्शन जिन्हें मॉडल कॉल कर सकता है।
tool_choiceस्ट्रिंग या ऑब्जेक्टauto, none, required या नाम से चुना गया कोई फ़ंक्शन।
parallel_tool_callsबूलियनएक ही टर्न में कई टूल कॉल की अनुमति दें।
response_formatऑब्जेक्टजेएसओएन आउटपुट।
logprobsबूलियनटोकन की लॉग प्रॉबेबिलिटी लौटाएँ।
top_logprobsपूर्णांकहर टोकन के लिए कितने विकल्प लौटाने हैं।
nपूर्णांकवैल्यू 1 ही होनी चाहिए: हर रिक्वेस्ट पर एक कम्प्लीशन।
reasoning_effortस्ट्रिंगदोनों मॉडल में: none, low या high; GLM-5.3-Flash में max भी दे सकते हैं।
chat_template_kwargsऑब्जेक्टटेम्प्लेट के स्विच, जैसे {"enable_thinking": false}।
बाकी फ़ील्ड अनदेखे कर दिए जाते हैं।
रिस्पॉन्स
response.choices[0].message.contentउपयोग की गिनती आपकी अपनी निगरानी के लिए लौटाई जाती है; इसके आधार पर कभी शुल्क नहीं लिया जाता।
स्ट्रीमिंग
"stream": true होने पर जवाब OpenAI के चंक फ़ॉर्मैट में सर्वर-सेंट इवेंट के रूप में आता है और data: [DONE] पर समाप्त होता है। टेक्स्ट को choices[0].delta.content से पढ़ें।
इमेज
दोनों मॉडल इमेज को image_url हिस्सों के रूप में स्वीकार करते हैं, जिनमें बेस64 डेटा यूआरएल होता है (data:image/png;base64,..., जेपीईजी या वेबपी)। यूआरएल से लिंक की गई इमेज डाउनलोड नहीं की जातीं और ऐसा लिंक देने पर 400 एरर मिलता है।
{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}टूल कॉलिंग
tools को उसी तरह भेजें जैसे OpenAI एपीआई में भेजते हैं। जब मॉडल कोई टूल कॉल करता है, तो जवाब में finish_reason: "tool_calls" और message.tool_calls होते हैं; टूल चलाएँ, उसके नतीजे और उससे मेल खाते tool_call_id वाला tool मैसेज जोड़ें, फिर दोबारा कॉल करें।
रीज़निंग
दोनों मॉडल जवाब देने से पहले सोच-विचार करते हैं और दोनों में reasoning_effort दिया जा सकता है: सीधे जवाब के लिए none, थोड़े सोच-विचार के लिए low या मुश्किल समस्याओं के लिए high; GLM-5.3-Flash में max भी उपलब्ध है और इसकी डिफ़ॉल्ट वैल्यू high है। सोचने की प्रक्रिया अलग से reasoning_content में लौटाई जाती है, इसे कभी content में नहीं मिलाया जाता। "thinking": {"type": "disabled"} और "chat_template_kwargs": {"enable_thinking": false} भी रीज़निंग बंद कर देते हैं।
एक साथ चलने वाली रिक्वेस्ट
आपका प्लान तय करता है कि आपकी सभी की से कुल कितनी रिक्वेस्ट एक साथ चल सकती हैं। इस सीमा से ज़्यादा रिक्वेस्ट भेजने पर तुरंत 429 एरर मिलता है और रिक्वेस्ट को कतार में नहीं रखा जाता; पहले से चल रही रिक्वेस्ट पर कोई असर नहीं पड़ता।