DEV Community

Cover image for كيف تستخدم API GLM-5.2؟
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيف تستخدم API GLM-5.2؟

يمنحك GLM-5.2 API وصولًا برمجيًا إلى أحدث نموذج رئيسي مفتوح الأوزان من Z.ai: نموذج MoE بحوالي 753 مليار معلمة، مع نتائج قوية في البرمجة طويلة الأفق. في هذا الدليل ستنفّذ التكامل عمليًا: إنشاء مفتاح API، إرسال أول طلب عبر curl، استخدام Python، تفعيل/تعطيل التفكير، البث، استدعاء الأدوات، وقراءة usage لحساب التكلفة.

جرّب Apidog اليوم

إذا كنت قادمًا من الإصدار السابق، فابدأ بتبديل معرف النموذج إلى glm-5.2 ثم راجع الفروقات التالية.

ما الذي تغير منذ GLM-5.1

يحل GLM-5.2 محل جيل 5.1. إذا كان لديك تكامل سابق مع GLM-5.1 API، فتنسيق الطلبات نفسه تقريبًا. غالبًا ستحتاج إلى تغيير معرف النموذج فقط.

أهم الفروقات العملية:

  • مخطط اهتمام متفرق جديد: يقدم GLM-5.2 تقنية IndexShare لإعادة استخدام مفهرس واحد عبر كل أربع طبقات اهتمام متفرقة. لا تحتاج إلى ضبطه من جهة API، لكنه يساعد في جعل سياق 1M token أكثر كفاءة.
  • تحسن واضح في مهام البرمجة الوكيلية: تضع نتائج Z.ai المنشورة معيار Terminal-Bench 2.1 عند 81.0 مقارنة بـ 62.0 في GLM-5.1.
  • مستويان لجهد التفكير: يدعم GLM-5.2 وضعي High و Max، وتوصي Z.ai باستخدام Max لمهام البرمجة الصعبة.

إذا كان كود GLM-5.1 لديك يعمل بتنسيق OpenAI Chat Completions، فابدأ بتغيير model إلى glm-5.2.

GLM-5.2

الخطوة 1: الحصول على مفتاح API لـ GLM-5.2

سجّل الدخول إلى z.ai، وافتح قسم مفاتيح API في لوحة التحكم، ثم أنشئ مفتاحًا جديدًا.

احفظ المفتاح في متغير بيئة بدلًا من وضعه داخل الكود:

export ZAI_API_KEY="your-glm-5.2-api-key"
Enter fullscreen mode Exit fullscreen mode

لا تحفظ المفتاح في Git. أي تسريب قد يؤدي إلى استهلاك غير مقصود وتكاليف فعلية، خصوصًا أن التسعير يعتمد على عدد الرموز المدخلة والمخرجة.

الخطوة 2: ضبط نقطة النهاية و base_url

GLM-5.2 متوافق مع تنسيق OpenAI Chat Completions. هذا يعني أن معظم العملاء والأدوات التي تدعم OpenAI يمكنها العمل معه بمجرد تغيير base_url.

الإعداد القيمة
نقطة نهاية Chat Completions https://api.z.ai/api/paas/v4/chat/completions
base_url لاستخدام SDK https://api.z.ai/api/paas/v4/
معرف النموذج glm-5.2
المصادقة Authorization: Bearer $ZAI_API_KEY

إذا كنت تستخدم OpenRouter، فاسم النموذج هو:

z-ai/glm-5.2
Enter fullscreen mode Exit fullscreen mode

رابط OpenRouter: OpenRouter

وللتشغيل المحلي، تنشر Ollama الأوزان باسم glm-5.2 عبر مكتبة Ollama. الأوزان المفتوحة متاحة أيضًا على Hugging Face بموجب ترخيص MIT.

ملاحظات مهمة قبل البناء:

  • نافذة السياق: 1M token، أي 1,048,576.
  • الحد الأقصى للإخراج: تسرد وثائق z.ai ما يصل إلى 128K. تعامل معه كحد موثق من z.ai وتحقق من الوثائق مباشرة عند النشر الإنتاجي.

الخطوة 3: إرسال أول طلب باستخدام curl

ابدأ بطلب بسيط للتأكد من أن المفتاح، نقطة النهاية، ومعرف النموذج تعمل بشكل صحيح:

curl https://api.z.ai/api/paas/v4/chat/completions \
  -H "Authorization: Bearer $ZAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5.2",
    "messages": [
      {"role": "system", "content": "You are a concise backend engineer."},
      {"role": "user", "content": "Write a SQL query that returns the 5 newest orders per customer."}
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

ستحصل على استجابة JSON بتنسيق قريب من OpenAI:

  • id
  • choices
  • choices[0].message.content
  • usage

استخدم usage لاحقًا لحساب تكلفة الطلب بدقة.

الخطوة 4: استخدام GLM-5.2 من Python عبر OpenAI SDK

ثبّت الحزمة الرسمية:

pip install openai
Enter fullscreen mode Exit fullscreen mode

ثم أنشئ عميلًا مع base_url الخاص بـ Z.ai:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ZAI_API_KEY"],
    base_url="https://api.z.ai/api/paas/v4/",
)

resp = client.chat.completions.create(
    model="glm-5.2",
    messages=[
        {"role": "system", "content": "You are a concise backend engineer."},
        {"role": "user", "content": "Explain idempotency keys in 3 sentences."},
    ],
)

print(resp.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

هذا هو التكامل الأساسي. إذا كان لديك كود حالي مبني حول OpenAI SDK، يمكنك غالبًا إعادة استخدام:

  • طبقة إعادة المحاولة.
  • التسجيل logging.
  • معالجة الأخطاء.
  • تنسيق الرسائل.
  • استدعاء الأدوات.

لجولة أوسع حول عائلة GLM، راجع نظرة عامة على واجهة برمجة تطبيقات GLM-5.

الخطوة 5: التحكم في التفكير باستخدام thinking و reasoning_effort

GLM-5.2 نموذج استدلال. يمكنك تعطيل التفكير للمهام السريعة، أو تفعيله مع جهد أعلى للمهام المعقدة.

تعطيل التفكير للمهام السريعة

استخدم هذا النمط للتصنيف، إعادة الصياغة القصيرة، التوجيه، أو المهام التي لا تحتاج استدلالًا عميقًا:

resp = client.chat.completions.create(
    model="glm-5.2",
    messages=[
        {"role": "user", "content": "Classify: 'my card was charged twice'"}
    ],
    extra_body={
        "thinking": {"type": "disabled"}
    },
)

print(resp.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

تفعيل التفكير مع Max لمهام البرمجة

استخدم reasoning_effort: "max" عندما تحتاج جودة أعلى في البرمجة أو التحليل الرياضي:

resp = client.chat.completions.create(
    model="glm-5.2",
    messages=[
        {
            "role": "user",
            "content": "Refactor this function to remove the N+1 query and explain the fix."
        },
    ],
    extra_body={
        "thinking": {"type": "enabled"},
        "reasoning_effort": "max",
    },
)

print(resp.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

في OpenAI Python SDK، يُستخدم extra_body لتمرير الحقول غير القياسية إلى Z.ai.

إذا كنت تستخدم curl مباشرة، ضع الحقول في المستوى الأعلى من جسم الطلب:

{
  "model": "glm-5.2",
  "thinking": {"type": "enabled"},
  "reasoning_effort": "max",
  "messages": [
    {"role": "user", "content": "Optimize this PostgreSQL query."}
  ]
}
Enter fullscreen mode Exit fullscreen mode

ملاحظة تكلفة: رموز الاستدلال تُحسب ضمن الإخراج. استخدم Max عندما تستحق المهمة تكلفة إضافية.

الخطوة 6: بث الاستجابة Streaming

لواجهات الدردشة أو التوليد الطويل، لا تنتظر الاستجابة الكاملة. فعّل البث:

stream = client.chat.completions.create(
    model="glm-5.2",
    messages=[
        {
            "role": "user",
            "content": "Write a 200-word changelog entry for a rate-limit fix."
        }
    ],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)
Enter fullscreen mode Exit fullscreen mode

في curl، أضف:

"stream": true
Enter fullscreen mode Exit fullscreen mode

سيُرجع الخادم أحداث Server-Sent Events بالشكل التالي:

data: {...}
data: {...}
data: [DONE]
Enter fullscreen mode Exit fullscreen mode

البث لا يغير التسعير؛ أنت فقط تعرض الرموز فور وصولها.

الخطوة 7: استدعاء الدوال والأدوات

يدعم GLM-5.2 نمط استدعاء الأدوات المتوافق مع OpenAI:

  1. تعرّف الأدوات المتاحة.
  2. يقرر النموذج استدعاء أداة ويعيد tool_calls.
  3. تنفّذ أنت الدالة فعليًا.
  4. ترسل نتيجة الأداة للنموذج.
  5. يعيد النموذج إجابة نهائية مفهومة للمستخدم.

وفقًا لنتائج Z.ai المنشورة، يسجل GLM-5.2 نتيجة 77.0 على MCP-Atlas، وهي نتيجة مهمة لبناء الوكلاء.

مثال عملي بسيط لأداة طقس:

import json

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current temperature for a city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "City name, e.g. Berlin"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["c", "f"]
                    },
                },
                "required": ["city"],
            },
        },
    }
]

messages = [
    {
        "role": "user",
        "content": "What's the weather in Berlin in celsius?"
    }
]

first = client.chat.completions.create(
    model="glm-5.2",
    messages=messages,
    tools=tools,
)

call = first.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)

# في التطبيق الحقيقي، استدعِ API الطقس هنا.
def get_weather(city, unit="c"):
    return {"city": city, "temp": 12, "unit": unit}

result = get_weather(**args)

messages.append(first.choices[0].message)
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps(result),
})

final = client.chat.completions.create(
    model="glm-5.2",
    messages=messages,
    tools=tools,
)

print(final.choices[0].message.content)
Enter fullscreen mode Exit fullscreen mode

النقطة المهمة: النموذج لا ينفذ الأداة بنفسه. هو يطلب استدعاءها فقط، وأنت مسؤول عن تنفيذ الدالة، التحقق من المدخلات، التعامل مع الأخطاء، ثم إعادة النتيجة.

لاختبار هذه الحلقة يدويًا، يمكنك استخدام Apidog: عرّف نقطة نهاية GLM-5.2 مرة واحدة، احفظ أجسام الطلبات لكل وضع تفكير، وأعد تشغيل سيناريوهات استدعاء الأدوات بدون إعادة كتابة أوامر curl.

الخطوة 8: قراءة usage لحساب التكلفة

كل استجابة غير متدفقة تحتوي على كائن usage. استخدمه كمصدر أساسي لحساب التكلفة:

resp = client.chat.completions.create(
    model="glm-5.2",
    messages=[
        {
            "role": "user",
            "content": "Summarize REST vs gRPC in 4 bullets."
        }
    ],
)

u = resp.usage

print("prompt_tokens:", u.prompt_tokens)
print("completion_tokens:", u.completion_tokens)
print("total_tokens:", u.total_tokens)
Enter fullscreen mode Exit fullscreen mode

تسعيرة GLM-5.2 هي:

  • 1.40 دولار لكل مليون رمز إدخال.
  • 4.40 دولار لكل مليون رمز إخراج.
  • الإدخال المخزن مؤقتًا حوالي 0.26 دولار لكل مليون وفقًا لـ VentureBeat.

مثال حساب تقريبي لطلب يحتوي على 8,000 رمز إدخال و 1,500 رمز إخراج:

(8000 / 1_000_000 * 1.40) + (1500 / 1_000_000 * 4.40)
= 0.0112 + 0.0066
= حوالي 0.0178 دولار
Enter fullscreen mode Exit fullscreen mode

تذكّر أن رموز الاستدلال في وضع Max تُحسب ضمن رموز الإخراج، لذلك قد تكون طلبات البرمجة المعقدة أعلى تكلفة من الطلبات التي يتم فيها تعطيل التفكير.

أفادت VentureBeat أن GLM-5.2 يتفوق على GPT-5.5 في البرمجة طويلة الأمد بحوالي 1/6 التكلفة، وهذا الادعاء منسوب إلى VentureBeat.

إذا كنت تريد تفاصيل أعمق حول التسعير، راجع تفصيل تسعير GLM-5.2. وإذا كنت تريد تجربة المسار المحلي أو المجاني، راجع كيفية استخدام GLM-5.2 مجانًا.

استخدام GLM-5.2 داخل Claude Code

يوفر GLM-5.2 أيضًا مسارًا متوافقًا مع Anthropic، بحيث يمكنك تشغيله من Claude Code.

اضبط عنوان URL الأساسي:

export ANTHROPIC_BASE_URL="https://api.z.ai/api/coding/paas/v4"
export ANTHROPIC_API_KEY="your-glm-coding-plan-key"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.2[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.2[1m]"
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000
export API_TIMEOUT_MS=3000000
Enter fullscreen mode Exit fullscreen mode

ملاحظات تنفيذية:

  • اللاحقة [1m] تحدد متغير سياق 1M.
  • API_TIMEOUT_MS الطويل مهم للطلبات ذات السياق الكبير.
  • بعض المصادر تذكر open.z.ai/api/paas/v4، لذلك تحقق مباشرة من وثائق Z.ai قبل الاعتماد على الإعداد في الإنتاج.

للتفاصيل، راجع دليل تشغيل GLM مع Claude Code. وإذا كنت تقارن أدوات البرمجة، فراجع Claude Code vs Codex vs Cursor vs GLM Plan.

مرجع سريع لـ GLM-5.2

الخاصية GLM-5.2
معرف النموذج في API glm-5.2
الهندسة حوالي 753B MoE، BF16، واهتمام متفرق IndexShare
نافذة السياق 1M token، أي 1,048,576
الحد الأقصى للإخراج يصل إلى 128K وفقًا لوثائق z.ai، تحقق مباشرة
أوضاع التفكير High / Max أو معطل
سعر الإدخال 1.40 دولار / مليون token
سعر الإخراج 4.40 دولار / مليون token
الترخيص MIT، أوزان مفتوحة

للمعايير، تتضمن نتائج Z.ai المنشورة:

  • SWE-bench Pro: 62.1
  • GPT-5.5 في نفس المقارنة: 58.6
  • Humanity’s Last Exam مع الأدوات: 54.7
  • AIME 2026: 99.2

للمزيد، راجع ملخص معايير GLM-5.2 وGLM-5.2 مقابل GPT-5.5، Claude Opus، و Gemini.

الأسئلة الشائعة

هل GLM-5.2 API متوافق فعلًا مع OpenAI؟

نعم. استخدم OpenAI SDK وغيّر base_url إلى:

https://api.z.ai/api/paas/v4/
Enter fullscreen mode Exit fullscreen mode

ثم استخدم:

glm-5.2
Enter fullscreen mode Exit fullscreen mode

كتعريف للنموذج. تعمل الدردشة، البث، واستدعاء الأدوات بتنسيق قريب من OpenAI.

ما معرف النموذج الذي يجب استخدامه؟

حسب المنصة:

  • Z.ai API: glm-5.2
  • OpenRouter: z-ai/glm-5.2
  • Ollama: glm-5.2
  • Claude Code: glm-5.2[1m]

كيف أوقف التفكير لتقليل زمن الاستجابة؟

في Python SDK:

extra_body={
    "thinking": {"type": "disabled"}
}
Enter fullscreen mode Exit fullscreen mode

للمهام البرمجية الصعبة، فعّل التفكير واستخدم:

extra_body={
    "thinking": {"type": "enabled"},
    "reasoning_effort": "max"
}
Enter fullscreen mode Exit fullscreen mode

كم تكلفة الطلب الواحد؟

احسبها من usage:

u = resp.usage
input_cost = u.prompt_tokens / 1_000_000 * 1.40
output_cost = u.completion_tokens / 1_000_000 * 4.40
total = input_cost + output_cost
Enter fullscreen mode Exit fullscreen mode

رموز الاستدلال في وضع Max تُحسب ضمن الإخراج.

هل يحتوي GLM-5.2 على نموذج رؤية؟

لا يوجد إصدار رؤية مؤكد اعتبارًا من يونيو 2026. واجهة API هنا نص إلى نص. لا تعتمد على مدخلات الصور حتى توثق Z.ai ذلك رسميًا.

خاتمة

تكامل GLM-5.2 قصير إذا كنت تستخدم تنسيق OpenAI: غيّر base_url، أرسل model: "glm-5.2"، ثم أضف التفكير، البث، واستدعاء الأدوات حسب الحاجة.

ابدأ بهذا التسلسل العملي:

  1. اختبر المفتاح عبر curl.
  2. انقل الطلب إلى Python باستخدام OpenAI SDK.
  3. عطّل التفكير للمهام السريعة.
  4. استخدم reasoning_effort: "max" لمهام البرمجة الصعبة.
  5. فعّل streaming لواجهات الدردشة.
  6. اقرأ usage في كل طلب لحساب التكلفة.

عندما تحتاج إلى اختبار نقاط النهاية، حفظ متغيرات الطلبات، وفحص جولات استدعاء الأدوات بدون كتابة curl يدويًا كل مرة، قم بتنزيل Apidog ووصل نقطة نهاية GLM-5.2 مرة واحدة.

لصورة أكبر عن النموذج، راجع ما هو GLM-5.2 ومقارنة GLM-5.2 مقابل GLM-5.1.

Top comments (0)