DEV Community

Cover image for GLM-5.3-Flash Vision: إرسال الصور إلى نموذج سياقي بمليون رمز
Yusuf Khalidd
Yusuf Khalidd

Posted on Originally published at apidog.com

GLM-5.3-Flash Vision: إرسال الصور إلى نموذج سياقي بمليون رمز

تطلب منك معظم نماذج الرؤية الاختيار بين الصور والسياق النصي الطويل؛ نادرًا ما يجتمع الاثنان بكفاءة في نموذج واحد.

جرّب Apidog اليوم

لا يجبرك GLM-5.3-Flash على ذلك. يقبل الصور ككتل محتوى ضمن نافذة سياق تصل إلى 1,048,576 رمزًا، في الطلب نفسه مع النص. هذا يجعل سير العمل متعدد الوسائط عمليًا: صورة، مواصفات طويلة، وكود في سياق واحد.

إدخال صور أصلي، لا عبر محول

كانت نماذج الرؤية السابقة من Z.ai، مثل GLM-5V-Turbo وGLM-4.6V، نماذج ونقاط نهاية منفصلة. أما GLM-5.3 فيعالج الرؤية عبر محولات.

GLM-5.3-Flash هو أول نموذج في سلسلة GLM-5 يجعل الصور مدخلات أصلية للنموذج نفسه وفي السياق نفسه. عمليًا، تحصل على:

  • معرف نموذج واحد وفاتورة واحدة وحدود معدل واحدة.
  • صورة ونص في نافذة السياق نفسها.
  • تدفق أبسط لتطبيقات تتطلب تحليل واجهات أو مستندات أو رسوم بيانية.

للنماذج السابقة، راجع دليل GLM-5V-Turbo API ودليل GLM-4.6V.

حمولة البيانات

أرسل الصور ككتل محتوى مكتوبة داخل مصفوفة content:

from openai import OpenAI
import os

client = OpenAI(
    [REDACTED CREDENTIAL],
    base_url="https://api.z.ai/api/paas/v4/",
)

response = client.chat.completions.create(
    model="glm-5.3-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What is wrong with this layout on mobile?"},
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/mobile-view.png"},
                },
            ],
        }
    ],
)

print(response.choices[0].message.content)

Enter fullscreen mode Exit fullscreen mode

للصور المحلية أو الخاصة، أرسل عنوان URL للبيانات بتشفير base64:

import base64
from pathlib import Path

def image_block(path: str) -> dict:
    data = base64.b64encode(Path(path).read_bytes()).decode("utf-8")
    suffix = Path(path).suffix.lstrip(".").replace("jpg", "jpeg")
    return {
        "type": "image_url",
        "image_url": {"url": f"data:image/{suffix};base64,{data}"},
    }

Enter fullscreen mode Exit fullscreen mode

لكل صورة كتلة مستقلة؛ لا توجد مصفوفة مختصرة لعناوين URL:

content = [
    {"type": "text", "text": "Image 1 is the design. Image 2 is what we built. List the differences."},
    image_block("design.png"),
    image_block("built.png"),
]

Enter fullscreen mode Exit fullscreen mode

الترتيب مهم: ضع التعليمات قبل الصور، وسمِّ كل صورة بوضوح عند إرسال أكثر من صورة. الإعداد والمصادقة مشروحان في دليل API.

سير عمل يستحق البناء

تصحيح الأخطاء من لقطات الشاشة

هذا هو الاستخدام الواضح الذي تركز عليه Z.ai: تحليل الواجهات، ونتائج العرض، وملاحظات التفاعل ضمن تدفق عمل وكيل برمجي.

أرسل اللقطة المعطلة وكود المصدر في الطلب نفسه:

content = [
    {"type": "text", "text": "This component renders incorrectly below 400px. Here is the screenshot and the source."},
    image_block("bug-mobile.png"),
    {"type": "text", "text": f"```
{% endraw %}
jsx\n{component_source}\n
{% raw %}
```"},
]

Enter fullscreen mode Exit fullscreen mode

بدلًا من وصف المشكلة بصياغة بشرية، يستطيع النموذج الاستدلال من العرض الفعلي ومقارنته بالكود.

مقارنة التصميم

أرسل صورة التصميم وصورة التنفيذ، ثم اطلب الفروقات. يناسب ذلك CI كفحص أولي للانحدارات البصرية:

  • أداة الفروقات تحدد تغير البكسلات.
  • النموذج يشرح ما إذا كان التغير مهمًا.
  • لا تستخدمه وحده لإيقاف النشر؛ اجعله يفرز الحالات التي تتطلب مراجعة بشرية.

التحقق من المستندات مقابل مواصفاتها

نافذة السياق البالغة مليون رمز مفيدة عند وضع مواصفات طويلة كنص، مع مستند أو تقرير معروض كصورة:

content = [
    {"type": "text", "text": f"Specification:\n\n{spec_text}"},
    {"type": "text", "text": "Below is the generated report. Does it satisfy every requirement above? List gaps."},
    image_block("generated-report.png"),
]

Enter fullscreen mode Exit fullscreen mode

يمكنك وضع مواصفات من 40 صفحة وصورة في موجه واحد، وهو ما يصعب على نماذج الرؤية المعتمدة على محولات ونافذة سياق 128 ألف رمز. تذكر ملاحظات إصدار Z.ai أيضًا مستندات المكاتب والبحوث المالية كسير عمل مستهدف.

الرسوم البيانية ولوحات المعلومات

اطلب مخرجات منظمة وتحقق منها بمخطط:

content = [
    {"type": "text", "text": "Extract the series in this chart as JSON: [{label, values: [...]}]. Return only JSON."},
    image_block("quarterly.png"),
]

Enter fullscreen mode Exit fullscreen mode

لا تثق بالنتيجة دون تحقق. قد ينتج النموذج أرقامًا خاطئة بثقة؛ التحقق البنيوي يكتشف أخطاء الشكل، لكنه لا يضمن صحة القيم. لاستخراج المستندات المتخصص، راجع GLM-OCR لفهم المستندات.

الفيديو والملفات

توثق Z.ai إدخال الفيديو والملفات باستخدام آلية كتل المحتوى نفسها، لكن الدعم جديد وموثق ومجرّب علنًا بدرجة أقل من الصور.

اختبر الفيديو مباشرةً على وسائطك ومزودك قبل أن تصمم التطبيق حوله. قدرة النموذج لا تعني تلقائيًا أن كل بوابة أو مزود يدعمها.

أوجه القصور التي يجب التصميم حولها

  • أرقام الرسوم البيانية: قد تكون الإجابة منسقة ومقنعة لكنها خاطئة. إذا كانت الأرقام مهمة، استخرجها من البيانات المصدرية لا من الصورة.
  • النص الصغير: تتدهور الدقة مع لقطات الواجهة الكثيفة والجداول والصور المضغوطة. قص المنطقة المهمة بدل تقليص الصورة كلها.
  • الدقة المكانية: النموذج جيد في وصف المشكلة، مثل تداخل زر مع حقل إدخال، لكنه غير موثوق لقياسات مثل فرق 12 بكسل.
  • الترتيب والإشارة: قد ينسب تفصيلًا إلى الصورة الخاطئة عند إرسال صور كثيرة. استخدم تسميات واضحة وقلل عدد الصور عندما تكون الدقة مهمة.

هذه حدود معتادة لنماذج لغة الرؤية، ودرجة مؤشر الذكاء 57 لا تلغيها. صمم التدفق لاكتشاف الإجابات الخاطئة قبل التصرف بناءً عليها.

التكلفة

تستهلك الصور رموز إدخال ولا توجد رسوم منفصلة للصور.

بسعر القائمة، تبلغ تكلفة الإدخال 0.15 دولارًا لكل مليون رمز، أو 0.075 دولارًا خلال خصم الإطلاق حتى 9 سبتمبر 2026. الصور عالية الدقة تستهلك رموزًا أكثر، لذا قلل الدقة ما لم تكن التفاصيل الدقيقة مطلوبة.

يُضبط reasoning_effort افتراضيًا على max، وتُحاسب رموز الاستدلال كرموز إخراج. للاستخراج المباشر من الصور، يكون low غالبًا أنسب وأقل تكلفة. راجع تحليل التسعير للتفاصيل.

التحكم في تكاليف الصور

اتبع هذا الترتيب:

  • اقصص قبل تغيير الحجم: أرسل المنطقة المهمة بالدقة الكاملة بدل الشاشة كلها بنصف الحجم.
  • طابق الدقة مع السؤال: سؤال عن كسر التخطيط يتحمل تقليل الحجم؛ قراءة رسالة خطأ صغيرة لا تتحمله.
  • لا تعِد إرسال الصور غير المتغيرة: الصورة التي أُرسلت سابقًا موجودة في سياق المحادثة، وإعادة إرفاقها تزيد التكلفة في كل دور.
  • اضبط reasoning_effort عمدًا: الاستخراج المباشر نادرًا ما يحتاج max.
  • راقب usage: هو المصدر الفعلي لاستهلاك الرموز وتكلفة كل استدعاء، لا حجم الملف.

اختبار الطلبات متعددة الوسائط

اختبار عناوين بيانات base64 يدويًا غير عملي: السلاسل طويلة، وتعديل أو إعادة تشغيل أوامر curl يصبح صعبًا، كما أن الردود النصية الحرة قد تخفي الانحدارات.

احتفظ بمجموعة صغيرة وثابتة من الصور المرجعية والإجابات المتوقعة، وتحقق من المخرجات المنظمة بمخطط.

Apidog مناسب لهذا التدفق: احفظ حمولات الصور كطلبات بدل أوامر shell، خزّن مفتاح API كمتغير بيئة، وأضف تأكيدات إلى JSON الناتج. عند تغيير النموذج أو تحديث المزود، أعد تشغيل المجموعة للتحقق من أن مسار الرؤية ما زال يعمل.

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

هل يدعم GLM-5.3 الصور أيضًا؟ ليس بصورة أصلية؛ يمرر GLM-5.3 الرؤية عبر محولات منفصلة. أما Flash فهو النموذج الأصلي متعدد الوسائط. راجع المقارنة.

كم صورة يمكن إرسالها في الطلب؟ صور متعددة، كل واحدة ضمن كتلة image_url مستقلة. الحد العملي هو ميزانية السياق.

عنوان URL أم base64؟ كلاهما يعمل. استخدم عنوان URL عامًا لصورة مستضافة ومتاحة، وbase64 للصور المحلية أو الخاصة.

هل يقبل الفيديو؟ توثق Z.ai ذلك، لكنه جديد ومجرّب بدرجة محدودة. اختبره على وسائطك ومزودك أولًا.

هل تُحاسب الصور بطريقة مختلفة؟ لا. تستهلك رموز الإدخال، لذلك تؤثر الدقة مباشرةً في التكلفة.

Top comments (0)