Text
مرجع API لنموذج GLM-5.3
حقول طلبات GLM-5.3 والاستدلال والأدوات والبث والاستخدام وأمثلة كاملة لـ Chat وResponses وMessages.
يقبل GLM-5.3 النص ويعيد نصاً أو استدعاءات أدوات. يستدل دائماً ويدعم مستويات low وhigh وmax، ويتيح حتى 131,072 توكن إخراج. استخدم glm-5.3 لفئة Default. مجموعته الافتراضية glm؛ ويظل glm-5.3:glm اختياراً صريحاً للمجموعة نفسها. تستخدم المجموعات الإضافية لاحقة النموذج الخاصة بها.
عنوان URL الأساسي: https://api.seedrouter.ai. المصادقة عبر Authorization: Bearer $SEEDROUTER_API_KEY. احتفظ ببيانات الاعتماد على خادمك. يقبل Messages أيضاً ترويسة x-api-key المتوافقة.
يتبع هذا المرجع عقد Chat من Z.ai ومخطط Responses من الشركة المصنّعة ودليل توافق Messages. تأتي حدود النموذج من دليل GLM-5.3. التوافق مع الوثائق لا يثبت كل سلوك فعلي. أكملت اختبارات 29 أكتوبر 2026 طلبات النص والبث بالصيغ الثلاث واستدعاء دوال Chat وإخراج كائن JSON ومتابعة استجابة محفوظة. لم تُثبت إصابات الذاكرة المؤقتة أو مددها الصريحة أو كل إعداد توافق. نميز أدناه حقول مرجع Messages عن حقول GLM الموثقة من الشركة المصنّعة.
مواصفات OpenAPI · مرجع Markdown · النموذج وساحة اللعب · دليل الأسعار
البدء السريع
يرسل كل مثال طلب Chat Completions واحداً. max_tokens: 2048 ميزانية توضيحية وليست الافتراضية. يتشارك الاستدلال والإجابة الظاهرة هذه الميزانية؛ افحص finish_reason قبل اعتبار الإجابة كاملة.
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}'import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["SEEDROUTER_API_KEY"], base_url="https://api.seedrouter.ai/v1")
response = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "Explain an idempotency key with one concrete example."}],
max_tokens=2048,
extra_body={"reasoning_effort": "low"},
)
print(response.choices[0].message.content)
print(response.usage)import OpenAI from 'openai';
const client = new OpenAI({apiKey: process.env.SEEDROUTER_API_KEY, baseURL: 'https://api.seedrouter.ai/v1'});
const response = await client.chat.completions.create({
model: 'glm-5.3',
messages: [{role: 'user', content: 'Explain an idempotency key with one concrete example.'}],
reasoning_effort: 'low',
max_tokens: 2048,
});
console.log(response.choices[0].message.content);
console.log(response.usage);package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
body := []byte(`{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}`)
req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/chat/completions", bytes.NewReader(body))
if err != nil { panic(err) }
req.Header.Set("Authorization", "Bearer " + os.Getenv("SEEDROUTER_API_KEY"))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 3 * time.Minute}
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode != http.StatusOK { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
fmt.Println(string(data))
}Chat Completions
يقبل POST /v1/chat/completions عدد 16 حقلاً على المستوى الأعلى. لا تقبل الحقول null إلا إذا نُص على ذلك صراحة. يمكن حذف الحقول الاختيارية؛ لا ترسل null بدلاً من حذفها.
| الحقل | النوع | مطلوب | الافتراضي والقيود |
|---|---|---|---|
model | سلسلة | نعم | glm-5.3 (Default) |
messages | مصفوفة | نعم | رسالة واحدة على الأقل؛ يجب أن تحتوي رسالة user أو tool |
do_sample | منطقي | لا | true؛ يجعل false المعاملين temperature وtop_p دون تأثير |
stream | منطقي | لا | false |
thinking | كائن | لا | type: enabled؛ clear_thinking: true |
reasoning_effort | سلسلة | لا | low وhigh وmax؛ الافتراضي max |
temperature | عدد | لا | 0–1 شاملة؛ الافتراضي 1 |
top_p | عدد | لا | 0.01–1 شاملة؛ الافتراضي 0.95 |
max_tokens | عدد صحيح | لا | 1–131072؛ لا قيمة افتراضية منشورة لـ Chat |
tool_stream | منطقي | لا | false؛ يتطلب true القيمة stream: true |
tools | مصفوفة | لا | Function أو retrieval أو web_search؛ حتى 128 عنصراً |
tool_choice | سلسلة | لا | auto فقط |
stop | مصفوفة سلاسل | لا | حتى أربع سلاسل في المخطط الرسمي؛ قُبلت أربع في طلب فعلي، لكن مطابقة الإيقاف لم تُختبر |
response_format | كائن | لا | type مطلوب: text أو json_object؛ الافتراضي text |
request_id | سلسلة | لا | 6–64 محرفاً؛ معرّف فريد لطلب المتصل |
user_id | سلسلة | لا | 6–128 محرفاً؛ تجنب المعلومات الشخصية |
تتطلب رسائل system وuser سلسلة content. يمكن أن تحمل رسالة assistant سلسلة content وreasoning_content وtool_calls. تتطلب رسالة tool الحقلين content وtool_call_id. احتفظ بالاستدلال السابق كما هو عند استخدام thinking.clear_thinking: false، بما فيه ترتيب استدعاءات المساعد ونتائج الأدوات. لا يمكن تعطيل التفكير.
تستخدم أداة الدالة {type:"function", function:{name, description, parameters}}. يتضمن الاسم 1–64 حرف ASCII أو رقماً أو شرطة سفلية أو واصلة. يتطلب المخطط الآلي description وparameters؛ بينما يذكر النص إمكانية الحذف للدوال بلا معاملات. استخدم البنية الكاملة حتى يُحل هذا التعارض. parameters هو JSON Schema لدالتك؛ ولا يُفسّر كمحتوى رسالة.
تستخدم أداة الاسترجاع {type:"retrieval", retrieval:{knowledge_id, prompt_template?}}. ينتمي معرّف المعرفة إلى الحساب الذي يخدم الطلب؛ ولا ينشئ تعريف الأداة قاعدة معرفة.
تستخدم أداة بحث الويب {type:"web_search", web_search:{search_engine:"search_pro_jina"}}. تشمل الحقول الاختيارية enable وsearch_query وcount (1–50) وsearch_domain_filter وsearch_recency_filter (oneDay وoneWeek وoneMonth وoneYear وnoLimit) وcontent_size (medium وhigh) وresult_sequence (before وafter) وsearch_result وrequire_search وsearch_prompt. راجع OpenAPI للأنواع الدقيقة. تحتاج إتاحة البحث والاسترجاع الخاصة بالحساب إلى تحقق فعلي.
ينتج وضع كائن JSON بيانات JSON، ولا يفرض مخطط JSON Schema مقدماً. أدرج الحقول المطلوبة في الموجّه وتحقق من النتيجة في تطبيقك.
Responses
يقبل POST /v1/responses عدد 15 حقل إنشاء على المستوى الأعلى. يتبع مخطط Responses من الشركة المصنّعة مع تخصيصه لـ GLM-5.3؛ ويظل السلوك الدقيق عبر الخدمات خاضعاً للتحقق.
curl https://api.seedrouter.ai/v1/responses \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.3","input":[{"type":"message","role":"user","content":"Give a concise example of a safe retry."}],"reasoning":{"effort":"low"},"max_output_tokens":2048,"store":false}'| الحقل | النوع | مطلوب | الافتراضي والقيود |
|---|---|---|---|
model | سلسلة | نعم | glm-5.3 |
input | سلسلة أو مصفوفة | نعم | عناصر الإدخال الأصلية المذكورة أدناه |
instructions | سلسلة | لا | تعليمات النظام |
stream | منطقي | لا | false |
temperature | عدد | لا | 0–1، منزلتان عشريتان كحد أقصى؛ الافتراضي 1 |
top_p | عدد | لا | 0.01–1، منزلتان عشريتان كحد أقصى؛ الافتراضي 0.95 |
max_output_tokens | عدد صحيح | لا | 1–131072؛ الافتراضي 65536، بما فيه الاستدلال |
stop | مصفوفة سلاسل | لا | لا يعلن هذا البروتوكول حداً للعدد |
tools | مصفوفة | لا | Function أو namespace أو custom أو web_search |
tool_choice | سلسلة | لا | none أو auto |
reasoning | كائن | لا | effort: low وhigh وmax؛ الافتراضي max |
text | كائن | لا | format.type: text أو json_object |
prompt_cache_key | سلسلة | لا | مفتاح اختيار الذاكرة المؤقتة؛ لا حد طول موثق |
previous_response_id | سلسلة | لا | يشير إلى استجابة محفوظة سابقاً |
store | منطقي | لا | false؛ هل تُحفظ هذه الاستجابة |
تتطلب عناصر الرسائل type: "message" ودوراً (user أو system أو assistant أو developer) ومحتوى. يمكن أن يكون المحتوى سلسلة أو كتلة نصية واحدة أو مصفوفة كتل نصية. استخدم input_text أو output_text للمساعد مع سلسلة text. لا تمنح مخططات الصور/الملفات العامة قدرة رؤية لهذا النموذج النصي.
تتطلب عناصر إدخال استدعاء الدالة type: "function_call" وname وcall_id وسلسلة JSON في arguments؛ وnamespace اختياري. تتطلب النتائج type: "function_call_output" وcall_id وسلسلة output. تستخدم عناصر الاستدلال type: "reasoning" وكائن content: {type:"reasoning_text", text:"..."} واحداً. احتفظ به دون تحويله إلى مصفوفة.
تتطلب أدوات الدوال type: "function" وname، مع description وparameters اختياريين. تتطلب أدوات مساحة الأسماء type: "namespace" وname، ويمكنها احتواء دوال tools. تتطلب الأدوات المخصصة type: "custom" وname. تتطلب أدوات بحث الويب type: "web_search". لا تنسخ حقول الدوال المطلوبة في Chat إلى هذه الصيغة.
يجب أن تكون الاستجابة السابقة المشار إليها محفوظة. حفظ الاستجابة الحالية خيار مستقل؛ لا يفرض previous_response_id القيمة الحالية store: true. مدة الاحتفاظ لدى الشركة المصنّعة سبعة أيام. نجح اختبار فعلي في حفظ استجابة ومتابعتها بمعرّفها مع store: false للطلب الحالي؛ ولا يثبت ذلك كل عمليات الاستجابات المحفوظة.
عمليات الاستجابات المحفوظة
عند نجاح store: true، احتفظ بمعرّف الاستجابة المُعاد دون تغيير. تستخدم هذه العمليات المصادَق عليها الحساب نفسه الذي أنشأها:
- يجلب
GET /v1/responses/{response_id}الاستجابة المحفوظة. - يسرد
GET /v1/responses/{response_id}/input_itemsعناصر الإدخال. حقول الاستعلام الاختيارية:order(ascأوdesc، الافتراضيdesc) وlimit(عدد صحيح 1–100، الافتراضي 20) وafter(last_id لآخر عنصر في الصفحة السابقة). - يحذف
DELETE /v1/responses/{response_id}الاستجابة المحفوظة.
يمكن لطلب إنشاء لاحق استخدام المعرّف المحفوظ في previous_response_id. يتطلب الوصول استمرار صلاحية المستخدم الأصلي للنموذج. الاحتفاظ لا يتجاوز سبعة أيام؛ ولا يمكن متابعة الاستجابات المنتهية أو المحذوفة. يظل الجلب والحذف والمتابعة مرتبطاً بالحساب الأصلي. لا توجد نقطة إلغاء موثقة. تغطي اختبارات العقد المحلية هذه العمليات. أكد اختبار 29 أكتوبر الفعلي الحفظ والمتابعة؛ أعاد الجلب وسرد عناصر الإدخال 404، ولم يُختبر الحذف. لا تعتمد على الجلب أو السرد أو الحذف حتى تتأكد إتاحتها.
توافق Messages
يستخدم POST /v1/messages غلافاً متوافقاً مع Anthropic. أدرج anthropic-version: 2023-06-01. تعرض الشركة المصنّعة مباشرة model وmessages وmax_tokens وstream. لا تنشر مخطط GLM Messages كاملاً وتحذر من اختلافات عن Claude. بقية الإعدادات حقول مرجع توافق، وليست قدرات GLM متحققاً منها كل على حدة.
curl https://api.seedrouter.ai/v1/messages \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain a safe retry in two sentences."}],"max_tokens":2048}'| الحقل | البنية والتحقق | الدليل |
|---|---|---|
model | سلسلة مطلوبة glm-5.3 | مثال GLM |
messages | مصفوفة user/assistant مطلوبة غير فارغة؛ سلسلة أو كتل نص/أدوات أصلية | مثال GLM النصي؛ أشكال الكتل من مرجع التوافق |
max_tokens | عدد صحيح مطلوب 1–131072 | مثال GLM وحد إخراج النموذج |
stream | منطقي؛ الافتراضي false | مثال GLM |
system | سلسلة أو مصفوفة كتل نصية | مرجع التوافق |
temperature | عدد 0–1 | مرجع التوافق؛ المطابقة غير متحقق منها |
top_p | عدد 0.01–1 | مرجع التوافق؛ المطابقة غير متحقق منها |
top_k | عدد صحيح غير سالب | مرجع التوافق؛ المطابقة غير متحقق منها |
stop_sequences | مصفوفة سلاسل | مرجع التوافق |
tools | أدوات العميل: name وinput_schema وdescription اختياري | مرجع التوافق |
tool_choice | كائن type بقيمة auto أو none أو any أو tool؛ الأداة المسماة تتطلب name | مرجع التوافق |
thinking | enabled مع budget_tokens أو adaptive؛ لا يمكن تعطيل التفكير | مرجع التوافق وقاعدة GLM للتفكير الدائم |
output_config | كائن effort بقيمة low أو high أو max | تهجئة الحقل المتوافقة؛ المطابقة غير متحقق منها |
metadata | كائن مع user_id اختياري | مرجع التوافق |
cache_control | علامة ephemeral مع ttl اختياري 5m أو 1h | مرجع البروتوكول فقط؛ سلوك TTL الصريح لـ GLM غير متحقق منه |
ميزانية enabled thinking المتوافقة لا تقل عن 1024 وتقل عن max_tokens. تتطلب كتل النص text؛ ويتطلب سجل التفكير thinking وsignature؛ ويتطلب التفكير المحجوب data. تتطلب كتل استخدام الأدوات id وname وinput؛ وتتطلب كتل النتائج tool_use_id. لا تُقبل كتل الصور أو الصوت أو الفيديو. لا تثبت علامات الذاكرة المؤقتة الصريحة إصابة أو مدة احتفاظ أو سعراً منفصلاً. ذاكرة السياق المؤقتة الموثقة للنموذج تلقائية.
الإخراج والبث والاستخدام
يعيد Chat الحقول id وcreated وmodel وchoices وusage، مع request_id وweb_search اختياريين. اقرأ choices[].message.content وreasoning_content وtool_calls. قد لا تحتوي استجابة استدعاء الأداة نص إجابة. يرسل SSE أجزاء الاستدلال والنص ومعاملات الأدوات، ثم [DONE]. اجمع أجزاء المعاملات بحسب فهرس الاستدعاء. لا يتضمن طلب GLM Chat الرسمي حقل stream_options.
يعيد Responses اتحاد output الأصلي: رسائل واستدلال واستدعاءات أدوات. يتضمن SSE أحداث response.created وresponse.in_progress وأحداث عناصر الإخراج وأجزاء المحتوى وأجزاء النص/الاستدلال/معاملات الدوال وتقدم البحث، ثم response.completed أو response.incomplete أو response.failed. لا يتطلب علامة [DONE]. حافظ على الفهارس وأرقام التسلسل.
يعيد Messages غلاف رسالة أصلياً يتضمن كتل المحتوى وstop_reason وusage. تشمل أسماء الأحداث message_start وcontent_block_start/delta/stop وmessage_delta وmessage_stop. احتفظ بتواقيع التفكير ومعرّفات الأدوات كسجل لا يُعدّل أو يُفسّر.
| الصيغة | إجمالي الإدخال | الإدخال المخزّن مؤقتاً | الإخراج |
|---|---|---|---|
| Chat | prompt_tokens | prompt_tokens_details.cached_tokens | completion_tokens |
| Responses | input_tokens | input_tokens_details.cached_tokens | output_tokens |
| Messages | input_tokens مع cache_read_input_tokens وأي cache_creation_input_tokens | cache_read_input_tokens | output_tokens |
الاستدلال جزء من الإخراج وليس رسماً إضافياً. الإدخال المخزّن مؤقتاً في Chat/Responses جزء من إجمالي الإدخال. اطرح الأجزاء المخزّنة المُبلّغ عنها منفصلة قبل تطبيق سعر الإدخال العادي. تكشف الاستجابات العامة استخدام التوكنات لا الرسوم النقدية. تأتي الأسعار الحالية من إعدادات الفوترة الحالية؛ ولا تُحتسب رسوم الطلبات الفاشلة.
التحقق والأخطاء
تفشل الأنواع غير الصحيحة وتعطيل التفكير والمستويات غير المدعومة وميزانيات الإخراج المفرطة وإدخال الوسائط في التحقق. يتطلب tool_stream في Chat تفعيل stream. تُحذف حقول المستوى الأعلى غير المدعومة بدلاً من تمريرها. بيانات الاعتماد مطلوبة؛ ويمنع الرصيد غير الكافي الطلب المدفوع. تستخدم الأخطاء الغلاف العام للأخطاء (يستخدم Messages شكله الأصلي). لا تعتبر البث المتوقف إجابة كاملة، ولا تعِد تلقائياً إرسال طلب نتيجته غير مؤكدة.
تعرض ساحة اللعب الحقول المقبولة نفسها للصيغة المحددة. تُحذف القيم الاختيارية الفارغة؛ وتُحفظ false والصفر الصريحان. تغيير الصيغة يبدأ محادثة جديدة. يحتاج تقدير الاستخدام إلى بيانات الاستخدام المُبلّغ عنها والأسعار الحالية معاً.
