مقارنة بين ChatCompletions و Anthropic Messages و Responses API: اختبار تنسيقات واجهة برمجة التطبيقات الثلاثة لـ DeepSeek V4 Pro

DeepSeek V4 Pro يدعم ثلاثة تنسيقات API: OpenAI ChatCompletions، وAnthropic Messages، وواجهة برمجة تطبيقات الاستجابات (Responses API) الخاصة به. قارن هياكل الطلبات بأمثلة حقيقية واختبر الثلاثة جنبًا إلى جنب في Apidog.

INEZA Felin-Michel

INEZA Felin-Michel

13 أغسطس 2026

مقارنة بين ChatCompletions و Anthropic Messages و Responses API: اختبار تنسيقات واجهة برمجة التطبيقات الثلاثة لـ DeepSeek V4 Pro

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات

أصبح DeepSeek-V4-Pro-0813 متاحًا بشكل عام في 12 أغسطس 2026، ويتم تقديمه تحت معرف النموذج الدائم deepseek-v4-pro على https://api.deepseek.com، إلى جانب النموذج الأقل تكلفة deepseek-v4-flash (قامت Unite.AI بتغطية إعلان الإتاحة العامة). المواصفات الرئيسية قوية: نافذة سياق بحجم 1 مليون رمز، وإخراج بحد أقصى 384 ألف رمز، واستدعاء الأدوات، ومخرجات منظمة، وثلاثة أوضاع تفكير تُظهر مسار استدلال النموذج في حقل reasoning_content.

الجزء غير المعتاد ليس في المواصفات. بل هو أن نموذجًا واحدًا يستجيب بثلاث لهجات واجهة برمجة تطبيقات. يقبل V4 Pro طلبات OpenAI ChatCompletions، وطلبات Anthropic Messages، وطلبات واجهة برمجة تطبيقات DeepSeek الخاصة بالاستجابات (Responses API). وجّه كود OpenAI SDK الحالي الخاص بك إليه، أو وجّه وكيلًا مبنيًا على Claude إليه، أو اربطه بحلقة وكيل بنمط Codex، بنفس الأوزان، بثلاث صيغ نقل بيانات.

لم يقم أحد بعرض تنسيقات واجهة برمجة التطبيقات الثلاثة لـ DeepSeek V4 Pro جنبًا إلى جنب بعد، لذلك يقدم هذا الدليل ذلك. سترى طلبًا واحدًا عاملًا لكل تنسيق، حيث تختلف الأشكال بصدق، وجدول مقارنة، وكيفية اختبار الثلاثة جميعها من مشروع Apidog واحد باستخدام متغيرات بيئة مشتركة. إذا كنت تريد إعداد الحساب وخطوات المكالمة الأولى، ابدأ بـ كيفية استخدام DeepSeek V4 API ثم عد إلى هنا.

button

باختصار

لماذا يتحدث نموذج واحد ثلاث لهجات

هذا يتعلق بالتوافق مع النظام البيئي: كل تنسيق واجهة برمجة تطبيقات يمثل قاعدة مثبتة من الأدوات التي تحصل عليها DeepSeek مجانًا. ChatCompletions هي اللغة المشتركة، يمكن لآلاف حزم SDK والأطر استدعاء V4 Pro بتغيير base_url في سطر واحد. يستهدف تنسيق Anthropic Messages الفرق التي بُنيت على Claude: يمكن للوكلاء وأدوات التقييم والأدوات مثل Claude Code الإشارة إلى V4 Pro دون إعادة كتابة. وResponses API هي رهان DeepSeek على الوكلاء: اكتسبها deepseek-v4-flash في يوليو للتوافق بنمط Codex، ويأتي V4 Pro بها في إصداره العام لسير العمل متعدد الخطوات والتي تحافظ على الحالة.

يتم إدراج V4 Pro أيضًا في المجمّعات (راجع صفحة OpenRouter لـ deepseek-v4-pro-0813)، ولكن قصة التنسيقات الثلاثة تنطبق على واجهة برمجة تطبيقات DeepSeek الأصلية، وهو ما يختبره هذا المقال. لإلقاء نظرة أوسع على عائلة V4، راجع كيفية استخدام DeepSeek V4.

التنسيق 1: OpenAI ChatCompletions

هذا هو الشكل الذي تعرفه بالفعل: مصفوفة messages حيث يركب موجه النظام كرسالة أولى مع role: "system"، وحد أقصى اختياري للرموز. الإعداد هو نفسه لجميع التنسيقات الثلاثة، لذا إليك مرة واحدة: مفتاح DeepSeek API الخاص بك، وعنوان URL الأساسي لـ DeepSeek، وmodel مضبوطًا على deepseek-v4-pro (أو deepseek-v4-flash). يتغير فقط نقطة النهاية وشكل الهيكل.

بايثون، من خلال OpenAI SDK القياسي:

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_DEEPSEEK_API_KEY",
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "You are a precise technical writer."},
        {"role": "user", "content": "Explain idempotency keys in two sentences."}
    ],
)

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

لا يوجد SDK جديد، ولا مخطط مصادقة جديد. يستخدم استدعاء الأدوات شكل function المتداخل المألوف، ويصل البث كـ chat.completion.chunk دلتا تنتهي بـ data: [DONE]، متطابقًا مع مواصفات OpenAI. سلوك خاص بـ V4 يجب التخطيط له: مع تفعيل وضع التفكير، يصل مسار الاستدلال في حقل منفصل reasoning_content بجانب content، لذا يجب أن تتسامح المحللات مع الحقل الإضافي.

متى تستخدمه: لديك أدوات OpenAI موجودة، أو أطر عمل بنمط LangChain، أو مكتبات داخلية تتحدث ChatCompletions بالفعل. إنه المسار الأقل احتكاكًا والأسهل للتحقق، هيكل الطلب متطابق مع ما تم تغطيته في اختبار ChatGPT API باستخدام Apidog، مع تبديل المضيف والنموذج فقط.

التنسيق 2: Anthropic Messages

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

  1. يتحرك موجه النظام خارج المصفوفة. إنه معلمة system على المستوى الأعلى؛ وتحتوي مصفوفة messages فقط على أدوار user وassistant المتناوبة.
  2. max_tokens مطلوب، وليس اختياريًا. يعلن كل طلب عن ميزانية إخراج صريحة. مع إخراج V4 Pro الأقصى البالغ 384 ألفًا، فإن هذا السقف سخي، ولكن يجب عليك تحديده.
  3. تعريفات الأدوات مسطحة. تحمل كل أداة name وdescription وinput_schema على المستوى الأعلى، لا يوجد غلاف function متداخل. تعود استدعاءات الأدوات ككتل محتوى tool_use، وتعيد النتائج ككتل tool_result داخل رسالة مستخدم.

بايثون، طلب الرسائل من خلال Anthropic SDK:

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/anthropic", # Anthropic-compatible base; confirm current path in DeepSeek's docs
)

message = client.messages.create(
    model="deepseek-v4-pro",
    max_tokens=8192,
    system="You are a precise technical writer.",
    messages=[
        {"role": "user", "content": "Explain idempotency keys in two sentences."}
    ],
)

print(message.content[0].text)

تأتي الاستجابات كقائمة من كتل المحتوى بدلاً من سلسلة نصية واحدة، ويستخدم البث أحداث SSE مُصنفة message_start، content_block_delta، message_stop بدلاً من القطع الموحدة. تتبع المصادقة اصطلاحات العنوان في مواصفات Anthropic بدلاً من رمز حامل (bearer token). تحتوي وثائق DeepSeek API على التفاصيل الحالية للواجهة المتوافقة.

المكافأة العملية هي الوكلاء. نظرًا لأن أدوات مثل Claude Code تقرأ نقطة النهاية الخاصة بها من متغيرات البيئة، يمكنك توجيه وكيل مبني على Claude إلى DeepSeek دون لمس الكود الخاص به:

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=$DEEPSEEK_API_KEY
export ANTHROPIC_MODEL=deepseek-v4-pro

متى تستخدمه: تم بناء أدواتك لـ Claude. إذا كان فريقك يرسل بالفعل طلبات ذات شكل رسائل إلى نماذج Anthropic (نفس الهيكل الذي تم تغطيته في دليل Claude Opus 5 API الخاص بنا)، يتيح لك هذا التنسيق مقارنة DeepSeek بـ Claude داخل نفس الأداة، بنفس هياكل الطلبات ونفس معالجات البث.

التنسيق 3: DeepSeek’s Responses API

Responses API هي أحدث واجهة لـ DeepSeek، والسبب في وجودها هو الوكلاء. التقط V4 Flash هذه الواجهة في يوليو حتى تتمكن الوكلاء بنمط Codex من تشغيل نماذج DeepSeek؛ وتم إطلاق V4 Pro بها في اليوم الأول. يتبع شكل الطلب مواصفات OpenAI Responses: ترسل input (سلسلة نصية أو قائمة من العناصر المُصنفة) بالإضافة إلى instructions على المستوى الأعلى، بدلاً من مصفوفة رسائل واحدة.

curl، طلب Responses API:

curl https://api.deepseek.com/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -d '{
    "model": "deepseek-v4-pro",
    "instructions": "You are an API review agent. Be terse.",
    "input": "Review this OpenAPI diff and list any breaking changes: [diff here]",
    "stream": false
  }'

ثلاثة أشياء تفصل هذا التنسيق عن الاثنين الآخرين، جميعها تتبع مواصفات Responses:

يتوفر استدعاء الأدوات هنا أيضًا، مع تعريفات الأدوات وعناصر function_call/function_call_output المشكلة وفقًا لمواصفات Responses بدلاً من أي من التنسيقين الأقدمين. حيث تتجاوز تفاصيل تنفيذ DeepSeek المواصفات، تعامل مع api-docs.deepseek.com كمصدر للحقيقة.

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

التنسيقات الثلاثة جنبًا إلى جنب

OpenAI ChatCompletions Anthropic Messages DeepSeek Responses API
نقطة النهاية POST /chat/completions على api.deepseek.com POST /v1/messages على القاعدة المتوافقة مع Anthropic (/anthropic) POST /responses على api.deepseek.com
شكل الطلب مصفوفة messages واحدة، موجه النظام كرسالة أولى system على المستوى الأعلى + رسائل user/assistant متناوبة instructions على المستوى الأعلى + سلسلة input أو قائمة عناصر
حد الإخراج حد أقصى اختياري للرموز max_tokens مطلوب حد اختياري وفقًا لمواصفات Responses
تعريفات الأدوات متداخلة: كائن function مع parameters مسطحة: input_schema لكل أداة مدخلات مسطحة وفقًا لمواصفات Responses
نتائج الأدوات رسائل role: "tool" كتل محتوى tool_result عناصر function_call_output
البث دلتا chat.completion.chunk موحدة، تنتهي بـ [DONE] أحداث مُصنفة: message_startcontent_block_deltamessage_stop أحداث دورة حياة دلالية (response.output_text.delta، …)
حالة المحادثة تُدار من قبل العميل (إعادة إرسال السجل) تُدار من قبل العميل (إعادة إرسال السجل) خيار على جانب الخادم عبر مرجع الاستجابة السابقة
الأفضل لـ أدوات وأطر عمل OpenAI الموجودة أدوات ووكلاء Claude الأصلية (Claude Code) حلقات الوكلاء، سير العمل بنمط Codex والتي تحافظ على الحالة

نفس النموذج، نفس التسعير، ثلاث عقود. تكمن الاختلافات بالكامل على مستوى نقل البيانات، وهو بالضبط نوع الاختلاف الذي يسهل التحقق منه تجريبيًا بدلاً من الاعتماد على الذاكرة.

اختبر الثلاثة جميعًا في مشروع Apidog واحد

مشاهدة نفس الموجه ينتج ثلاث استجابات مختلفة الشكل ي捕捉 التفاصيل التنفيذية التي لا يمكن لأي جدول مقارنة أن يظهرها. الإعداد القابل للتكرار:

  1. أنشئ مشروعًا واحدًا، وثلاثة مجلدات: chat-completions، anthropic-messages، responses، يحتوي كل منها على طلب واحد محفوظ لكل سيناريو (إكمال بسيط، استدعاء أداة، بث).
  2. شارك بيانات الاعتماد من خلال متغيرات البيئة. حدد {{DEEPSEEK_API_KEY}}، {{BASE_URL}}، و{{ANTHROPIC_BASE}} مرة واحدة؛ يصبح تدوير المفتاح أو التبديل إلى deepseek-v4-flash تغييرًا في حقل واحد.
  3. أطلق نفس الموجه عبر كل تنسيق وقارن الهياكل الأولية: choices[0].message.content مقابل قائمة كتل content مقابل عناصر الإخراج المُصنفة.
  4. افحص البث باستخدام stream: true. يجعل عرض SSE المدمج الاختلافات واضحة: أجزاء مجهولة تنتهي بـ [DONE]، أحداث Messages مُسماة، أحداث دورة حياة Responses. إذا كان تصحيح أخطاء SSE جديدًا عليك، فإن كيفية بث استجابات API باستخدام SSE يغطي الآليات.
  5. أضف تأكيدات على الحقول التي يقرأها تكاملك بالفعل (مسار المحتوى، موقع معرف استدعاء الأداة، سبب الانتهاء) وأعد تشغيل المجموعة كلما أصدر DeepSeek تحديثًا للنسخة.

يعمل مشروع المجلدات الثلاثة كوثائق حية: يصبح سؤال "كيف يبدو مخطط أداة Messages مرة أخرى؟" طلبًا محفوظًا مع استجابة حقيقية تم التقاطها.

ملاحظات الترحيل

نقل الكود الحالي إلى V4 Pro أمر ممل عمدًا، وهذا هو الهدف.

من OpenAI: قم بتغيير ثلاث قيم base_url إلى https://api.deepseek.com، ومفتاح API، والنموذج إلى deepseek-v4-pro. يظل بناء الرسائل، وتعريفات الأدوات، ومعالجات البث الخاصة بك كما هي. تحققان قبل الإطلاق: تأكد من أن أي معلمات تتجاوز المواصفات الأساسية تتصرف بالطريقة التي تتوقعها (قم بتشغيلها من خلال مجموعة الاختبار الخاصة بك بدلاً من الافتراض)، وتأكد من أن تحليل استجابتك يتسامح مع ظهور reasoning_content بجانب content.

من Anthropic: استبدل عنوان URL الأساسي بالمسار المتوافق مع Anthropic، واستبدل المفتاح، واضبط النموذج. نظرًا لأن شكل الرسائل ينتقل، فإن max_tokens المطلوب، وكتل المحتوى، وأحداث البث المُصنفة، لا يحتاج العميل المتوافق مع المواصفات إلى تغييرات في المنطق. بالنسبة للوكلاء الذين يقرأون متغيرات البيئة، يكون الترحيل هو أسطر export الثلاثة الموضحة سابقًا.

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

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

الأسئلة الشائعة

أي تنسيق يجب أن يختاره مشروع جديد؟ افتراضيًا ChatCompletions للحصول على أوسع دعم للأدوات. اختر Messages إذا كانت حزمتك أصلية لـ Claude. اختر Responses API إذا كنت تبني وكيلًا متعدد الخطوات وتريد حالة مدارة من قبل الخادم.

هل يمكنني توجيه Claude Code إلى DeepSeek V4 Pro؟ نعم. اضبط ANTHROPIC_BASE_URL على نقطة نهاية DeepSeek المتوافقة مع Anthropic، استخدم مفتاح DeepSeek الخاص بك كرمز المصادقة، واضبط النموذج على deepseek-v4-pro. هذه هي المكافأة العملية لدعم تنسيق الرسائل.

هل يعمل استدعاء الأدوات والمخرجات المنظمة في كل تنسيق؟ يدعم النموذج كلاهما، وتكشف كل لهجة عن استدعاء الأدوات في شكل مواصفاتها الخاصة، كائنات الوظائف المتداخلة، أدوات input_schema، أو عناصر بنمط Responses. تحقق من مخططاتك المحددة مقابل كل واجهة في مجموعة اختبار قبل الإطلاق؛ تعد حالات الحافة في شكل المخطط هي بالضبط المكان الذي تتباعد فيه التطبيقات المتوافقة.

button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات