نقاط النهاية
الرؤية والملفات
أرسل الصور وملفات PDF والصوت والفيديو إلى النماذج متعددة الوسائط كأجزاء محتوى في الرسالة، مع الحدود المسموحة وإضافة file-parser.
جرّبه في ساحة التجربةتقبل النماذج متعددة الوسائط الصور وملفات PDF والصوت والفيديو في رسالة المستخدم. مرّر content على شكل مصفوفة أجزاء بدل سلسلة نصية. لمعرفة ما يقبله النموذج، افحص architecture.input_modalities في النماذج (image وfile وaudio وvideo).
أجزاء المحتوى
| الجزء | الشكل | ملاحظات |
|---|---|---|
| نص | { "type": "text", "text": "..." } | |
| صورة | { "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } } | PNG وJPEG وWebP وGIF. عنوان URL أو data URL بصيغة base64. |
| PDF / ملف | { "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } } | يعمل مع أي نموذج. النماذج التي لا تدعم الملفات أصلًا تتلقى نصًا محلَّلًا. |
| صوت | { "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } } | base64 فقط. wav وmp3 وغيرهما بحسب النموذج. |
| فيديو | { "type": "video_url", "video_url": { "url": "https://..." } } | تدعمه بعض النماذج، مثل Gemini. |
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
}
}
]
}
]
});
console.log(result.choices[0].message.content);
مثال على صورة
{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What is in this picture?" },
{ "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
]
}
]
}
مثال على PDF
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Summarize this contract in five bullets." },
{ "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
]
}
],
"plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}
تختار إضافة file-parser الاختيارية طريقة قراءة ملف PDF: pdf-text (استخراج نص مجاني) أو mistral-ocr (التعرف الضوئي على الحروف للمستندات الممسوحة، ويُحاسَب لكل صفحة) أو native (يقرأ النموذج الملف بنفسه). تكلفة التحليل جزء من usage.cost.
الاستجابة
الاستجابة chat completion عادية. تُحتسب مدخلات الصور والملفات والصوت رموز إدخال، وتكلفتها في usage.cost:
{
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
"usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}
الحدود والأخطاء
- أقصى حجم لجسم الطلب 25 ميغابايت. يجعل base64 الملفات أكبر بنحو 33%. الطلبات الأكبر تُعيد
413 payload_too_large. للصور الكبيرة استخدم عناوين URL عامة. - النموذج الذي لا يقبل نوع إدخال معينًا يُعيد
400أو404من المزوّد. - بقية الأخطاء هي نفسها في Chat completions. راجع الأخطاء.