DeepSeek Harness: دعم الوسائط المتعددة

آخر تحديث: 2026-08-31

النص هو مجرد طريقة واحدة لـ Agent لفهم العالم — الصور والصوت والفيديو هي لغة العالم الحقيقي. دعم DSH للوسائط المتعددة يتيح لـ Agent ليس فقط "قراءة الكود" بل أيضًا "رؤية الواجهات" و"سماع التعليقات" و"مشاهدة الفيديو"، موسعًا بشكل كبير حدود إدراك Agent.

💡 نصيحة: الوسائط المتعددة هي ميزة معاينة مطورين في DSH، مع وظائف تتكرر باستمرار. إدخال الصور هو الأكثر استقرارًا حاليًا؛ دعم الصوت والفيديو لا يزال قيد التحسين.

📋 المتطلبات المسبقة: إكمال 06-tools.md، إلمام بأساسيات نظام الأدوات

1. ما ستتعلمه

خط أنابيب الوسائط المتعددة


2. نظرة عامة على بنية الوسائط المتعددة

(1) تدفق بيانات الوسائط المتعددة

100%
graph TB
    subgraph مصادر الإدخال
        IMG[صور<br/>PNG/JPG/WebP]
        AUD[صوت<br/>MP3/WAV]
        VID[فيديو<br/>MP4/WebM]
        DOC[مستندات<br/>PDF/CSV]
    end
    subgraph معالجة DSH
        PARSE[محلل المرفقات]
        ENCODE[ترميز الوسائط المتعددة]
        LLM[استدلال LLM متعدد الوسائط]
    end
    subgraph المخرجات
        TEXT[رد نصي]
        TOOL[استدعاءات أدوات]
    end
    IMG --> PARSE
    AUD --> PARSE
    VID --> PARSE
    DOC --> PARSE
    PARSE --> ENCODE
    ENCODE --> LLM
    LLM --> TEXT
    LLM --> TOOL

(2) مصفوفة دعم الوسائط المتعددة

نوع الإدخال دعم التنسيق الاستقرار الحجم الأقصى ملاحظات
صور PNG، JPG، WebP، GIF ✅ مستقر 20ميغابايت/صورة قدرة الوسائط المتعددة الأكثر نضجًا
صوت MP3، WAV، OGG ⚠️ تجريبي 50ميغابايت يتطلب نموذجًا يدعم الصوت
فيديو MP4، WebM ⚠️ تجريبي 100ميغابايت تحليل استخراج إطار بإطار
مستندات PDF، CSV، XLSX ✅ مستقر 50ميغابايت استخراج نص + هيكلة

(3) متطلبات النموذج

تعتمد ميزات الوسائط المتعددة على قدرات LLM متعددة الوسائط:

النموذج صور صوت فيديو مستندات
deepseek-chat
gpt-4o
gpt-4-vision
claude-3.5-sonnet

3. معالجة إدخال الصور

(1) إضافة صور في واجهة الويب

في منطقة محادثة واجهة الويب، يمكنك إضافة صور بالسحب أو اللصق:

TEXT 📖 للعرض فقط
┌─ منطقة المحادثة ──────────────────────────────┐
│                                           │
│ 👤 Alice:                                 │
│ 📎 [screenshot.png] [ui-mockup.jpg]      │
│ أي من تصميمي واجهة المستخدم هذين أفضل؟  │
│                                           │
│ [إرسال]                                    │
└───────────────────────────────────────────┘

العمليات المدعومة:

(2) إضافة صور في وضع سطر الأوامر

▶ مثال 1: إرفاق صور في وضع سطر الأوامر

BASH
# تشغيل سطر الأوامر مع صورة مرفقة
dsh cli --attach ./screenshot.png

# استخدام أمر /attach خلال المحادثة
> /attach ./ui-mockup.jpg
> ما الخطأ في واجهة المستخدم هذه؟

# إرفاق صور متعددة
> /attach ./before.png ./after.png
> ما الفرق بين هاتين النسختين؟

(3) إرفاق صور عبر SDK

▶ مثال 2: إرسال صور باستخدام Python SDK

PYTHON
from dsh import DSHClient

client = DSHClient(base_url="http://127.0.0.1:3080")
session = client.create_session(workspace="/home/alice/project")

# إرفاق صورة واحدة
response = session.send(
    "ما الخطأ في لقطة شاشة واجهة المستخدم هذه؟",
    images=["./screenshot.png"]
)

print(response.content)

# إرفاق صور متعددة للمقارنة
response = session.send(
    "قارن بين التصميمين، أيهما أفضل؟",
    images=["./design-a.png", "./design-b.png"]
)

(4) تحليل الصور عمليًا

▶ مثال 3: تحليل خطأ في واجهة المستخدم

TEXT 📖 للعرض فقط
👤 Alice: [يُرفق error-page-screenshot.png]
ما الخطأ في صفحة الخطأ هذه؟ ساعدني في إصلاحها

🤖 Agent:
🔍 تحليل الصورة...

أرى المشاكل التالية:
1. نص رسالة الخطأ يفيض عن حدود الحاوية
2. زر "إعادة المحاولة" مقطوع، يعرض النصف فقط
3. لون الخلفية غير متسق مع مواصفات التصميم (يجب أن يكون #f5f5f5، وليس أبيض)

📝 استخدام أداة: file_edit (تعديل)
  → المسار: src/pages/ErrorPage.tsx
  → إصلاح 1: إضافة text-overflow: ellipsis
  → إصلاح 2: تعديل هامش الزر
  → إصلاح 3: تغيير لون الخلفية

⚠️ الموافقة مطلوبة: تعديل ملف src/pages/ErrorPage.tsx

(5) قيود معالجة الصور

القيد الوصف
الحد الأقصى لكل صورة 20ميغابايت
الحد الأقصى لكل رسالة 5 صور
الدقة يُوصى بألا تتجاوز 4096×4096
GIF المتحركة يُستخدم الإطار الأول فقط
تحويل التنسيق يُحوَّل تلقائيًا للتنسيق المدعوم من النموذج

4. إدخال الصوت/الفيديو

(1) إدخال الصوت (تجريبي)

يتطلب إدخال الصوت نموذجًا يدعم فهم الصوت (مثل GPT-4o):

▶ مثال 4: إرسال صوت عبر SDK

PYTHON
# إرسال ملف صوتي
response = session.send(
    "انقل هذا الصوت ولخّص النقاط الرئيسية",
    audio=["./meeting-recording.mp3"]
)

print(response.content)
# نتائج نقل الصوت والملخص...

(2) إدخال الفيديو (تجريبي)

يستخدم معالجة الفيديو استراتيجية استخراج الإطارات:

100%
graph LR
    VID[ملف فيديو] --> EXTRACT[استخراج إطارات<br/>1 إطار/ثانية] --> SELECT[اختيار إطارات رئيسية<br/>كشف تغيير المشهد] --> ENCODE[ترميز متعدد الإطارات] --> LLM[تحليل LLM]

▶ مثال 5: إرسال فيديو عبر SDK

PYTHON
# إرسال ملف فيديو
response = session.send(
    "حلل فيديو العرض هذا، اذكر الميزات المعروضة",
    video=["./demo.mp4"]
)

print(response.content)
# 1. ميزة تسجيل الدخول (0:00-0:15)
# 2. عرض لوحة المعلومات (0:15-0:45)
# ...

(3) القيود الحالية

ميزات الصوت والفيديو لا تزال في المرحلة التجريبية:

القيد صوت فيديو
المدة القصوى 10 دقائق 5 دقائق
الحجم الأقصى 50ميغابايت 100ميغابايت
متطلب النموذج GPT-4o إلخ GPT-4o إلخ
استخراج الإطارات 1 إطار/ثانية، حد أقصى 300 إطار
الاستقرار ⚠️ قد تنتهي المهلة ⚠️ قد تنتهي المهلة

5. مرفقات المستندات والتحليل

(1) تنسيقات المستندات المدعومة

التنسيق طريقة التحليل المخرجات
PDF استخراج نص + OCR نص منظم
CSV تحليل الصفوف والأعمدة بيانات جدولية
XLSX تحليل أوراق العمل بيانات جدولية
DOCX استخراج نص نص منظم
Markdown قراءة مباشرة نص خام

▶ مثال 6: إرفاق ملف PDF

PYTHON
# تحليل مستند PDF
response = session.send(
    "لخّص النقاط الأساسية لهذا المستند التقني",
    files=["./api-specification.pdf"]
)

print(response.content)

(2) تحليل بيانات CSV

▶ مثال 7: تحليل بيانات CSV

PYTHON
# تحليل بيانات CSV
response = session.send(
    "حلل بيانات المبيعات هذه، ابحث عن الاتجاهات والقيم الشاذة",
    files=["./sales-2026.csv"]
)

print(response.content)
# نتائج تحليل البيانات...

يمكن لـ Agent أيضًا المعالجة الإضافية باستخدام الأدوات:

TEXT 📖 للعرض فقط
🤖 Agent:
📊 تحليل بيانات CSV...
  → الصفوف: 12,450
  → الأعمدة: 8
  → نطاق التاريخ: 2026-01 إلى 2026-08

النتائج الرئيسية:
1. متوسط نمو شهري 12%، لكن مارس انخفض 8% (يشتبه موسمية)
2. أفضل 3 منتجات تشكل 65% من إجمالي الإيرادات
3. معدل الاحتفاظ بالعملاء انخفض من 72% إلى 68%

🔧 استخدام أداة: shell
  → الأمر: python3 -c "import pandas; ..."
  → توليد تصور...

6. تكامل أدوات الوسائط المتعددة

(1) تنسيق الوسائط المتعددة مع الأدوات

يمكن لـ Agent دمج إدخال الوسائط المتعددة مع استدعاءات الأدوات:

100%
graph TB
    INPUT[إدخال وسائط متعددة] --> AGENT[تحليل Agent]
    AGENT -->|صورة → كود| FE[file_edit]
    AGENT -->|فيديو → نص برمجي| SH[shell]
    AGENT -->|مستند → قاعدة بيانات| DB[database.query]

▶ مثال 8: تنسيق صورة + أداة

TEXT 📖 للعرض فقط
👤 Bob: [يُرفق api-response-screenshot.png]
تنسيق استجابة API هذا خاطئ، ساعدني في التحقق من الكود

🤖 Agent:
🔍 تحليل لقطة الشاشة...
  → التنسيق المتوقع: { data: [...], meta: {...} }
  → التنسيق الفعلي: { results: [...] }

🔍 استخدام أداة: search
  → النمط: "results"
  → النوع: محتوى
  → وُجد في: src/api/handlers.ts:45

📝 استخدام أداة: file_edit (قراءة)
  → قراءة src/api/handlers.ts

📝 استخدام أداة: file_edit (تعديل)
  → إصلاح تنسيق الاستجابة في السطر 45-52
  → تغيير "results" إلى "data"، إضافة حقل "meta"

(2) معالجة دفعية للصور

▶ مثال 9: صور دفعية + تعديل ملفات

PYTHON
import glob

screenshots = glob.glob("./screenshots/*.png")

response = session.send(
    "راجع جميع لقطات الشاشة، ابحث عن صفحات بمشاكل واجهة مستخدم، وأصلحها واحدة تلو الأخرى",
    images=screenshots[:5]  # حد أقصى 5 صور
)

(3) استدلال تسلسلي للوسائط المتعددة

TEXT 📖 للعرض فقط
👤 Alice: [يُرفق architecture-diagram.png]
أنشئ إعداد Docker Compose بناءً على مخطط البنية هذا

🤖 Agent:
🔍 تحليل مخطط البنية...
  → حُددت 4 خدمات: API، Worker، Database، Cache
  → الاتصالات: API → Database، API → Cache، Worker → Database

📝 استخدام أداة: file_edit (إنشاء)
  → إنشاء docker-compose.yml
  → 4 خدمات مع شبكة مناسبة

✅ تم توليد إعداد Docker Compose، بما في ذلك:
- api-service (Express.js، منفذ 3000)
- worker-service (Node.js، مهام خلفية)
- postgres (PostgreSQL 16، وحدة تخزين محملة)
- redis (Redis 7، طبقة تخزين مؤقت)

7. الإعداد والتحسين

(1) إعداد الوسائط المتعددة

YAML
# dsh.config.yaml
multimodal:
  # إعدادات الصور
  images:
    max_size_mb: 20
    max_per_message: 5
    resize_large: true          # تغيير حجم الصور الكبيرة تلقائيًا
    max_resolution: [4096, 4096]
  
  # إعدادات الصوت
  audio:
    max_duration_minutes: 10
    max_size_mb: 50
    transcription_model: "whisper-1"
  
  # إعدادات الفيديو
  video:
    max_duration_minutes: 5
    max_size_mb: 100
    frame_rate: 1               # إطارات لكل ثانية للاستخراج
    max_frames: 300
  
  # إعدادات المستندات
  documents:
    max_size_mb: 50
    pdf_ocr_enabled: true
    csv_max_rows: 100000

(2) تحسين الأداء

إدخال الوسائط المتعددة يزيد استهلاك الرموز ووقت الاستجابة:

استراتيجية التحسين الوصف التأثير
ضغط الصور ضغط بدقة مناسبة قبل الرفع تقليل 50-80% من رموز الصور
اختيار الإطارات الرئيسية إرسال الإطارات الرئيسية فقط للفيديو تقليل 90% من إطارات الفيديو
استخراج النص تفضيل استخراج النص على OCR لملفات PDF أسرع وأدق
إرسال دفعي إرسال أعداد كبيرة من الصور على دفعات تجنب انتهاء المهلة

❓ أسئلة شائعة

س هل جميع النماذج تدعم إدخال الصور؟
ج لا. تحتاج لاستخدام نموذج يدعم الرؤية مثل DeepSeek-VL، GPT-4o، Claude 3.5 Sonnet، إلخ. النماذج النصية القياسية لا يمكنها معالجة الصور.
س هل جودة الصورة تؤثر على فهم Agent؟
ج نعم. الصور منخفضة الدقة أو الضبابية أو سيئة الإضاءة قد تسبب Agent في الحكم الخاطئ. نوصي برفع صور واضحة وعالية الدقة.
س متى ستستقر ميزات الصوت؟
ج ميزات الصوت والفيديو لا تزال في معاينة المطورين. الفريق الرسمي لم يُعلن جدولًا زمنيًا للاستقرار. نوصي باستخدامها فقط في سيناريوهات غير حرجة.
س كم رمزًا إضافيًا تستهلك الوسائط المتعددة؟
ج الصور حوالي 85-170 رمز/صورة (حسب الدقة)، الصوت حوالي 150 رمز/دقيقة، الفيديو حوالي 85 رمز/إطار. التفاصيل تعتمد على النموذج وطريقة الترميز.
س هل يمكن لـ Agent التقاط لقطات شاشة بنفسه؟
ج نعم. عبر إضافات أدوات مثل Playwright، يمكن لـ Agent فتح متصفح والتقاط لقطة شاشة ثم تحليلها. هذا يتطلب تثبيت إضافة مجتمعية.
س هل OCR لـ PDF دقيق؟
ج لمستندات PDF بنص واضح، دقة استخراج النص المباشر (غير OCR) قريبة من 100%. المستندات الممسوحة ضوئيًا والمحتوى المكتوب يدويًا يعتمد على OCR بدقة أقل.

📖 ملخص


📝 تمارين

1. ⭐ أساسي: ارفع لقطة شاشة لواجهة مستخدم في واجهة الويب واجعل Agent يصف محتوى لقطة الشاشة. سجّل نتائج تحليل Agent والأدوات المستخدمة.

2. ⭐⭐ متوسط: ارفع ملف بيانات CSV واجعل Agent يحلل البيانات ويقترح تصورات. استخدم SDK لكتابة نص لهذه العملية.

3. ⭐⭐⭐ تحدٍ: صمم سير عمل وسائط متعددة — ارفع صورة تصميم واجهة مستخدم، اجعل Agent يُولد كود واجهة أمامية مقابل بناءً على التصميم، ثم التقط لقطة شاشة لمقارنة النتيجة المُولدة مع التصميم الأصلي. سجّل سلسلة استدعاءات الأدوات الكاملة.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%