الرؤية
تقبل نماذج 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)import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CLOUDZIR_API_KEY,
baseURL: "https://api.cloudzir.com/v1",
});
const image = fs.readFileSync("facture.png").toString("base64");
const reponse = await 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: `data:image/png;base64,${image}` } },
],
}],
max_tokens: 300,
});
console.log(reponse.choices[0].message.content);# l'image doit être encodée en base64 dans une data URI
IMAGE=$(base64 -w 0 facture.png)
curl https://api.cloudzir.com/v1/chat/completions \
-H "Authorization: Bearer $CLOUDZIR_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"mina-low\",
\"messages\": [{
\"role\": \"user\",
\"content\": [
{\"type\": \"text\", \"text\": \"Que montre cette image ?\"},
{\"type\": \"image_url\", \"image_url\": {\"url\": \"data:image/png;base64,$IMAGE\"}}
]
}],
\"max_tokens\": 300
}"طريقتان لتوفير الصورة#
| الشكل | مثال | ملاحظة |
|---|---|---|
| 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){
"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": "iVBORw0KGgoAAAANSUhEUg..."
}}
]
}]
}الصيغة {"type": "url", "url": "https://…"} مقبولة أيضًا.
حالات استخدام شائعة#
- قراءة المستندات : فواتير، أوامر شراء، استمارات مكتوبة يدويًا؛ اطلبوا إخراج JSON (الدليل) لاسترجاع حقول قابلة للاستغلال مباشرة.
- لقطات الشاشة : تشخيص خطأ، وصف واجهة، مساعدة مستخدم لا يعرف كيف يصف مشكلته.
- مراقبة الجودة : مقارنة صورة منتج بوصف متوقَع.
- إمكانية الوصول : توليد نصوص بديلة لكتالوج صور.
ما هو غير مدعوم بعد#
- مستندات PDF مُرسَلة كما هي (كتل
documentمن جهة Anthropic). حوّلوا الصفحات إلى صور، أو استخرجوا النص؛ انظروا API الملفات. - توليد الصور. تنتج واجهة API نصًا انطلاقًا من صور، لا العكس.
- الفيديو والصوت.