توقف دعم الرؤية في DeepSeek عن كونه مشروعًا جانبيًا في 10 سبتمبر 2026. مع الإصدار العام لـ DeepSeek-V4.1-Flash، أصبح إدخال الصور موجودًا في النموذج الرئيسي تحت معرّف واحد، وهو `deepseek-flash`. لا يوجد بناء منفصل للرؤية ولا لاحقة "Exp" (اختصار لـ Experimental). تشير مذكرة الإصدار إلى إحالة كل من `deepseek-v4-flash` و `deepseek-v4-flash-vision-exp` للتقاعد؛ الطلبات التي تستخدم أيًا من الاسمين الآن يتم توجيهها إلى V4.1-Flash. هذا يهم إذا كنت قد بنيت على نقطة النهاية التجريبية قبل ثلاثة أسابيع. لا يزال تنسيق الطلب الذي كتبته مقابل V4-Flash-Vision-Exp يعمل، ولكن النموذج الذي يقرأ صورك جديد: 763 مليار معلمة، مع مشفّر رؤية تم تدريبه من الصفر جنبًا إلى جنب مع العمود الفقري للنص. يغطي هذا الدليل ما يعنيه "تعدد الوسائط الأصلي" عمليًا، الطرق الثلاث لتسليم الصورة، معلمة `detail`، تكلفة الصور، وكيفية بناء اختبار رؤية قابل للتكرار في Apidog يثبت أن الاسم القديم والجديد يتصرفان بنفس الطريقة.
ملخص سريع
- معرّف النموذج:
deepseek-flash. الاسم القديمdeepseek-v4-flash-vision-expلا يزال يُحل ولكنه يُخدم بواسطة V4.1-Flash. - الصور توضع في مصفوفة
contentلرسالة المستخدم: عنوان URL لبيانات base64 (حتى 32 ميغابايت)، أو عنوان URL خارجي (حتى 8,192 حرفًا)، أو معرّف ملف. - حقل
detailاختياري:low،high(aliasoriginal)، أوauto. - معايير الرؤية، كما أوردتها DeepSeek: MMMU-Pro 56.5، CVBench 77.9، DocVQA 95.6، RefCOCO 86.0.
- التسعير هو سعر Flash القياسي: 0.15 دولار لكل مليون رمز إدخال غير مخزن خارج أوقات الذروة، و0.30 دولار في أوقات الذروة.
- سياق النص هو مليون رمز، الحد الأقصى للمخرجات 384 ألف رمز، وهو نفس مكالمات النص فقط.
ماذا تعني "متعدد الوسائط الأصلي" هنا
كان Vision-Exp يرفق مشفّر صور بنموذج نصي مكتمل. أما V4.1-Flash فيفعل العكس. وفقًا لـ بطاقة النموذج، كانت الصور جزءًا من مجموعة بيانات التدريب المسبق البالغة 45 تريليون رمز منذ البداية، والمشفّر هو DeepSeek-ViT جديد تم تدريبه من الصفر بدلاً من استعارته من نموذج رؤية موجود. العمود الفقري هو مزيج من الخبراء بسعة 552 مليار معلمة؛ ومع إرفاق المشفّر، يصل الإجمالي إلى 763 مليار. فقط 8 مليارات معلمة تكون نشطة أثناء التعبئة الأولية و16 مليار أثناء فك التشفير، وهذا هو السبب في أن نموذجًا بهذا الحجم لا يزال يعمل بسرعة Flash وأسعار Flash. V4-Flash، النموذج النصي فقط في دليل API الخاص بـ V4-Flash، كان الأساس الذي توسع إليه Vision-Exp.
أبلغت DeepSeek عن هذه الدرجات الأربعة للرؤية في بطاقة النموذج. هذه هي قياسات البائع الخاصة، لذا تعامل معها كادعاءات حتى تقوم باختبار مستنداتك الخاصة عبر واجهة برمجة التطبيقات.
| المعيار | ما يقيسه | V4.1-Flash |
|---|---|---|
| MMMU-Pro | أسئلة على مستوى الكلية تحتاج إلى الصورة والنص للإجابة عليها | 56.5 |
| CVBench | العد، ترتيب العمق، والعلاقات المكانية في الصور الطبيعية | 77.9 |
| DocVQA | الإجابة على الأسئلة حول المستندات والنماذج الممسوحة ضوئيًا | 95.6 |
| RefCOCO | تحديد الكائن الذي تشير إليه عبارة ما داخل الصورة | 86.0 |
بالنسبة لمستخدمي API، DocVQA و RefCOCO هما الصفان اللذان يجب مراقبتهما. استخراج المستندات هو الدرجة وراء استخراج الفواتير والنماذج. RefCOCO هو تحديد الموقع: إذا أعطيت "زر الإرسال أسفل حقل البريد الإلكتروني"، هل يمكن للنموذج العثور عليه؟ هذه المهارة تحول لقطات الشاشة إلى إجراءات عامل. نظرة عامة على البنية تغطي الجانب النصي والتقرير التقني بتعمق أكبر.
تنسيق الطلب: ثلاث طرق لتسليم صورة
لم يتغير شيء بخصوص تنسيق الأسلاك. اتصل بنقطة نهاية Chat Completions على https://api.deepseek.com باستخدام OpenAI SDK، ضع أجزاء النص والصورة في نفس مصفوفة content، واضبط النموذج على deepseek-flash. إليك مكالمة كاملة تحول فاتورة إلى JSON:
import base64, json
from openai import OpenAI
client = OpenAI(api_key="YOUR_DEEPSEEK_KEY", base_url="https://api.deepseek.com")
with open("invoice-2026-0912.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
schema_hint = (
"Return only JSON with keys: invoice_number (string), issue_date (YYYY-MM-DD), "
"vendor (string), currency (string), line_items (array of {description, quantity, "
"unit_price, amount}), subtotal, tax, total (numbers)."
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": schema_hint},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{image_b64}",
"detail": "high",
},
},
],
}],
temperature=1.0,
max_tokens=2048,
)
invoice = json.loads(response.choices[0].message.content)
print(invoice["invoice_number"], invoice["total"])
print(response.usage.prompt_tokens, "prompt tokens")
هذا هو الخيار الأول، base64 مضمن: مكتفٍ ذاتيًا، بحد أقصى 32 ميغابايت لكل صورة، ومناسب للمكالمات لمرة واحدة أو الملفات التي لا تغادر شبكتك أبدًا.
الخيار الثاني هو عنوان URL خارجي. إذا كانت الصورة تحتوي بالفعل على رابط عام على شبكة CDN أو في تخزين الكائنات، فتخطى التشفير ومرر الرابط (حتى 8,192 حرفًا). يقرأ طلب curl هذا مخطط تسعير مستضاف:
curl https://api.deepseek.com/chat/completions \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-flash",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "List every plan name and its monthly price from this chart as a JSON array."},
{"type": "image_url", "image_url": {"url": "https://assets.example-saas.com/pricing/plans-q3.png", "detail": "auto"}}
]
}]
}'
الخيار الثالث هو معرّف ملف. قم بتحميل الصورة مرة واحدة عبر DeepSeek's Files API، ثم قم بالإشارة إليها بجزء file بدلاً من إعادة إرسال البايتات:
{"type": "file", "file": {"file_id": "file-api-xxxxxxxxxxxxxxxx"}}
اختر معرفات الملفات كلما ظهرت نفس الصورة في أكثر من طلب واحد، مثل لقطة شاشة مرجعية تقارن بها كل اختبار في مجموعة الاختبارات. الشرح الكامل للمعلمات موجود في دليل API الخاص بـ V4.1-Flash.
معلمة detail وحدود الطلب
معلمة detail اختيارية وتوجد داخل الكائن image_url. القيم الثلاث التي تم نقلها من Vision-Exp هي:
"low"تخفض دقة الصورة إلى 512x512. هي الأقل تكلفة والأسرع؛ جيدة لأسئلة مثل "هل هذه لوحة تحكم أم فاتورة"."high"(alias"original") تحافظ على الدقة الأصلية. استخدمها للمستندات الكثيفة، الطباعة الصغيرة، ولقطات شاشة واجهة المستخدم حيث يهم وجود تسمية بحجم 12 بكسل."auto"تترك API يختار.
الحدود القصوى التي ستصادفها أولاً:
| التقييد | القيمة |
|---|---|
| صورة Base64 مضمنة | حتى 32 ميجابايت |
| طول عنوان URL الخارجي | حتى 8,192 حرفًا |
| مرجع معرف الملف | مدعوم من خلال Files API |
| نافذة السياق | مليون رمز |
| الحد الأقصى للمخرجات | 384 ألف رمز |
قيم detail |
low, high/original, auto |
دليل Vision-Exp أدرج سقوفًا إضافية على عدد الصور وحجم الجسم وأبعاد البكسل. تم نشر تلك لتناسب النموذج التجريبي؛ تحقق من سجل التغييرات في API قبل الاعتماد عليها لـ V4.1-Flash. لم تتغير إحدى القواعد: الصور تنتمي إلى رسائل المستخدم. ضع واحدة في رسالة نظام أو مساعد وستحصل على خطأ 400.
ما تكلفة الصور على deepseek-flash
لا يوجد سعر منفصل للرؤية. تتم محاسبة الصور كرموز إدخال بسعر Flash من صفحة التسعير، اعتبارًا من 10 سبتمبر 2026 الساعة 04:00 بالتوقيت العالمي المنسق:
| deepseek-flash، لكل مليون رمز | خارج أوقات الذروة | الذروة |
|---|---|---|
| الإدخال، نجاح التخزين المؤقت | 0.003 دولار | 0.006 دولار |
| الإدخال، فشل التخزين المؤقت | 0.15 دولار | 0.30 دولار |
| المخرجات | 0.60 دولار | 1.20 دولار |
ساعات الذروة هي من الاثنين إلى الجمعة، من 01:00 إلى 04:00 ومن 06:00 إلى 10:00 بالتوقيت العالمي المنسق (UTC)؛ تكون خارج أوقات الذروة بنصف السعر. في Vision-Exp، كانت كل صورة تُحاسب بما لا يزيد عن 384 رمز إدخال. [يجب التحقق] مما إذا كان هذا الحد الأقصى ينتقل دون تغيير إلى V4.1-Flash مقابل الوثائق. يبلغ usage.prompt_tokens في كل استجابة عن العدد الحقيقي، وهذا هو السبب في أن مثال بايثون يطبعه.
إذا بقي حد 384 رمزًا ساريًا، فإن الصورة الواحدة تكلف حوالي 0.000115 دولار في ذروة معدلات عدم وجود تخزين مؤقت ونصف ذلك خارج أوقات الذروة، لذا فإن ألف فاتورة تكلف حوالي 0.12 دولار من مدخلات الصورة. تهيمن المخرجات على أي عملية حقيقية: 400 رمز JSON لكل فاتورة يكلف حوالي أربعة أضعاف تكلفة الصورة نفسها في أوقات الذروة. الرافعة هي مخطط استجابة محكم، وليس تقليص حجم الصورة. يتم حساب أوقات الذروة، وخارج أوقات الذروة، ونجاح التخزين المؤقت في شرح تسعير DeepSeek-V4.1-Flash؛ النسخة المختصرة هي أن مدخلات الفشل في التخزين المؤقت أرخص بنسبة 32% مما كانت عليه أسعار Vision-Exp في أغسطس.
ثلاث حالات استخدام تستحق التجربة الأولية
استخراج المستندات. فواتير، إيصالات، مذكرات تسليم، نماذج تأمين. اطلب مخطط JSON ثابت، أرسل بصيغة detail: "high"، وتحقق من أن عناصر الفاتورة تتوافق مع الإجمالي الفرعي قبل أن تثق بسجل.
لقطات شاشة واجهة المستخدم لاختبار التأكيدات. التقط صفحة بعد النشر، اسأل عما إذا كانت العناصر المتوقعة موجودة وأين، وحوّل الإجابة إلى نجاح/فشل. RefCOCO هو المعيار ذو الصلة: المهمة هي العثور على العناصر المسماة.
قراءة الرسوم البيانية. استخرج أسماء السلاسل، وتسميات المحاور، والقيم المرسومة من صورة رسم بياني إلى جدول. تتطلب الخطوط المتداخلة أو المحاور غير المسماة فحصًا بشريًا.
اختبار نقطة نهاية الرؤية في Apidog
تعتبر طلبات الرؤية صعبة التكرار يدويًا: تجعل كتلة base64 نص JSON غير قابل للقراءة، ومقارنة إعدادات `detail` تعني التوفيق بين حمولات متطابقة تقريبًا. إليك حلقة تبقى قابلة للقراءة وتُعاد تشغيلها بنقرة واحدة.

- إعداد بيئة. أنشئ متغيرات لـ
base_url،api_key،model(deepseek-flash)، وdetail(high). تغيير مستوى التفاصيل لاحقًا يكون بتغيير من قائمة منسدلة، وليس تعديلًا في الحمولة. - تشفير الصورة في نص برمجي قبل الطلب. بدلاً من لصق base64 في الجسم، اسمح لبرنامج نصي قبل الطلب بتشفير ملف العينة وكتابة النتيجة إلى متغير
image_b64. يبقى الجسم المرئي بضعة أسطر، ويستلزم تبديل صورة الاختبار تغيير مسار واحد. - حفظ نص الطلب مع المتغيرات. استخدم
"model": "{{model}}"، و"detail": "{{detail}}"، و"url": "data:image/png;base64,{{image_b64}}". احفظها كحالة اختبار لتكون قابلة لإعادة الاستخدام. - التأكيد على شكل JSON. تأكد من أن الاستجابة يتم تحليلها كـ JSON، وأن
invoice_numberعبارة عن سلسلة غير فارغة، وأنline_itemsعبارة عن مصفوفة غير فارغة، وأنtotalعبارة عن رقم، وأنusage.prompt_tokensيقع تحت عتبة تختارها. هذا يحول "يبدو جيدًا" إلى نجاح/فشل. - تأكيد توجيه الاسم القديم إلى نفس النموذج. كرر الطلب المحفوظ، اضبط
modelعلىdeepseek-v4-flash-vision-exp، وقم بتشغيل كليهما في سيناريو اختبار واحد مقابل نفس الصورة. قارن الحقول المستخرجة وعددusage.prompt_tokens. تؤكد النتائج المتطابقة ما ذكرته مذكرة الإصدار: كلا الاسمين يوجهان إلى V4.1-Flash، لذا يمكنك إعادة التسمية في إعداداتك بثقة. - تشغيله في CI. قم بتشغيل السيناريو باستخدام
apidog-cliعند كل تغيير في الموجه، بحيث تظهر مشكلات تراجع المخطط قبل الإنتاج.
قم بتنزيل Apidog وسيستغرق إعداد النظام حوالي خمس عشرة دقيقة. يختبر Apidog طبقة API، وليس مضيف النموذج، لذا يعمل السيناريو نفسه مع أي نقطة نهاية متوافقة مع OpenAI تقوم بتوجيهها لاحقًا.
أين يضعك هذا
أثبتت نقطة النهاية التجريبية تنسيق الطلب ونقطة السعر. يحتفظ V4.1-Flash بكلاهما ويستبدلهما بنموذج رأى الصور من أول رمز تدريبي له. وجه عميلك إلى `deepseek-flash`، احتفظ بـ `detail` في متغير، تأكد من صحة JSON الذي تحصل عليه، وشغّل الاسم القديم عبر نفس سيناريو Apidog مرة واحدة لتأكيد إعادة التوجيه. بعد ذلك، السؤال الوحيد المتبقي هو الدقة على مستنداتك الخاصة، ولديك الآن اختبار يجيب على ذلك.
