الرؤية

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

إرسال صورة#

الصيغة هي الصيغة القياسية : مصفوفة كتل تمزج بين النص و image_url.

import base64
from openai import OpenAI

client = OpenAI(api_key="zir_ai_...", base_url="https://api.cloudzir.com/v1")

with open("facture.png", "rb") as fichier:
    image = base64.b64encode(fichier.read()).decode()

reponse = client.chat.completions.create(
    model="mina-low",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Quel est le montant total de cette facture ?"},
            {"type": "image_url",
             "image_url": {"url": f"data:image/png;base64,{image}"}},
        ],
    }],
    max_tokens=300,
)

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

طريقتان لتوفير الصورة#

الشكلمثالملاحظة
Data URI بصيغة base64 (موصى به) data:image/png;base64,iVBORw0… تنطلق الصورة مع الطلب : لا شيء لاستضافته، لا شيء لتعريضه علنًا.
رابط http(s) https://example.invalid/photo.jpg يجب أن تكون الصورة متاحة علنًا (بلا مصادقة، بلا شبكة خاصة).

القيود#

القيدالقيمة
الصيغ المقبولةPNG وJPEG وWebP وGIF
الحجم لكل صورة8 ميغابايت بعد فك الترميز
الصور لكل طلب8
النماذجالثلاثة كلها: mina-flash، mina-low، mina-full

صورة سيئة الترميز، بصيغة غير مُدرجة أو ثقيلة جدًا تُعيد 400 تقول رسالته بدقة أين المشكلة.

ماذا يكلّف ذلك#

تُحوَّل الصورة إلى رموز إدخال، تُفوتَر بالسعر العادي للنموذج. تعتمد الكمية على حجم الصورة : احسبوا نحو 200 إلى 1700 رمز لكل صورة. العدّ الدقيق موجود دائمًا في حقل usage من الاستجابة وفي Usage.

تقليل الفاتورة

غيّروا حجم الصورة قبل الإرسال : لقطة شاشة بدقة 4K مكلفة ولا تضيف شيئًا مقارنة بنسخة بعرض 1024 بكسل لقراءة نص. اقتصوا على المنطقة المفيدة حين أمكن.

صيغة Anthropic#

على /anthropic، استخدموا كتل image من مواصفات Anthropic؛ هذا ما ترسله حزم SDK والوكلاء المتوافقون.

import anthropic, base64

client = anthropic.Anthropic(
    api_key="zir_ai_...",
    base_url="https://api.cloudzir.com/anthropic",
)

with open("capture.png", "rb") as fichier:
    image = base64.b64encode(fichier.read()).decode()

message = client.messages.create(
    model="mina-low",
    max_tokens=500,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Décris cette capture d'écran."},
            {"type": "image", "source": {
                "type": "base64", "media_type": "image/png", "data": image,
            }},
        ],
    }],
)

print(message.content[0].text)

الصيغة {"type": "url", "url": "https://…"} مقبولة أيضًا.

حالات استخدام شائعة#

  • قراءة المستندات : فواتير، أوامر شراء، استمارات مكتوبة يدويًا؛ اطلبوا إخراج JSON (الدليل) لاسترجاع حقول قابلة للاستغلال مباشرة.
  • لقطات الشاشة : تشخيص خطأ، وصف واجهة، مساعدة مستخدم لا يعرف كيف يصف مشكلته.
  • مراقبة الجودة : مقارنة صورة منتج بوصف متوقَع.
  • إمكانية الوصول : توليد نصوص بديلة لكتالوج صور.

ما هو غير مدعوم بعد#

  • مستندات PDF مُرسَلة كما هي (كتل document من جهة Anthropic). حوّلوا الصفحات إلى صور، أو استخرجوا النص؛ انظروا API الملفات.
  • توليد الصور. تنتج واجهة API نصًا انطلاقًا من صور، لا العكس.
  • الفيديو والصوت.

الإعدادات

استجابة API