Unquant

Opening your workspace…

Unquant

إكمال المحادثات

استكمالات محادثة متوافقة مع 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عدد صحيح

أخذ العينات من التوكنات الأعلى احتمالًا، بعدد يحدده هذا المعامل.

min_pعدد

الحد الأدنى للاحتمال النسبي للتوكن.

seedعدد صحيح

قيمة ابتدائية لأخذ عينات قابلة لإعادة الإنتاج.

stopسلسلة نصية أو مصفوفة

تسلسلات التوقف.

التكرار
frequency_penaltyعدد

خفض احتمال اختيار التوكنات بحسب عدد مرات ظهورها.

presence_penaltyعدد

خفض احتمال اختيار التوكنات التي سبق ظهورها، بصرف النظر عن عدد مرات ظهورها.

repetition_penaltyعدد

عقوبة تكرار تُطبّق بمعامل ضرب.

الأدوات
toolsمصفوفة

الدوال التي يمكن للنموذج استدعاؤها، بتنسيق OpenAI.

tool_choiceسلسلة نصية أو كائن

auto أو none أو required أو دالة محددة بالاسم.

parallel_tool_callsقيمة منطقية

السماح باستدعاء عدة أدوات في دور واحد من المحادثة.

المخرجات
response_formatكائن

مخرجات بتنسيق JSON.

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 تحتوي على عنوان URL للبيانات المرمّزة بترميز base64، مثل data:image/png;base64,...، أو بتنسيق JPEG أو WebP. لا تُجلب الصور من روابط URL خارجية، وتُرجع هذه الطلبات الرمز 400.

{"role": "user", "content": [
  {"type": "text", "text": "Describe this image."},
  {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}

استدعاء الأدوات

مرّروا tools كما في واجهة OpenAI API. عندما يستدعي النموذج أداة، يتضمن الرد finish_reason: "tool_calls" وmessage.tool_calls؛ نفّذوا الأداة، وأضيفوا رسالة بدور tool تتضمن نتيجتها وقيمة tool_call_id المطابقة، ثم أرسلوا طلبًا آخر.

الاستدلال

يُجري كلا النموذجين استدلالًا قبل الإجابة، ويدعمان reasoning_effort: القيمة none للإجابات المباشرة، أو low للاستدلال الخفيف، أو high للمسائل الأصعب؛ ويدعم GLM-5.3-Flash أيضًا max، ويستخدم high افتراضيًا. تُرجع خطوات التفكير منفصلة في reasoning_content، ولا تُدمج مطلقًا في content. ويمكن أيضًا تعطيل التفكير باستخدام "thinking": {"type": "disabled"} أو "chat_template_kwargs": {"enable_thinking": false}.

التزامن

تحدد خطتكم عدد الطلبات التي يمكن تنفيذها في الوقت نفسه عبر جميع مفاتيحكم. أي طلب يتجاوز هذا الحد يُرجع الرمز 429 فورًا ولا يُضاف إلى قائمة انتظار؛ ولا تتأثر الطلبات قيد التنفيذ.

دليل المطورين