API Hop

الوثائق

وثائق API Hop

واجهة Claude Messages

واجهة API أصلية متوافقة مع Claude Messages. تستخدم نقطة النهاية هذه تنسيقات طلبات Anthropic Messages واستجاباتها، بما فيها استدعاءات الأدوات وأحداث Anthropic SSE.

POSThttps://api.apihop.ai/anthropic/v1/messages

واجهة API أصلية متوافقة مع Claude Messages. تستخدم نقطة النهاية هذه تنسيقات طلبات Anthropic Messages واستجاباتها، بما فيها استدعاءات الأدوات وأحداث Anthropic SSE.

يدعم المزود Claude Sonnet 4.6 (claude-sonnet-4-6)، لكنه غير منشور حاليا على API Hop. وليس خيار تكامل افتراضيا نشطا. قبل استدعاء أي نموذج، أكد الوصول من خلال استجابة GET https://api.apihop.ai/v1/models الخاصة بك.

text
POST https://api.apihop.ai/anthropic/v1/messages

المصادقة

تتطلب جميع الطلبات مفتاح API من API Hop. تستخدم حزم Anthropic SDK وClaude Code والعملاء المتوافقون عادةً x-api-key؛ ويمكن لعملاء HTTP العاديين استخدام المصادقة برمز Bearer أيضًا.

http
x-api-key: YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01
http
Authorization: Bearer YOUR_APIHOP_API_KEY
anthropic-version: 2023-06-01

نص الطلب

modelstringمطلوبالقيمة الافتراضية: claude-sonnet-5-5

معرّفات نماذج Claude المدعومة.

  • claude-fable-5
  • claude-fable-5-1
  • claude-opus-4-6
  • claude-opus-4-7
  • claude-opus-4-8
  • claude-opus-5
  • claude-opus-5-5
  • claude-sonnet-5
  • claude-sonnet-5-5

استخدم GET https://api.apihop.ai/v1/models لمعرفة النماذج المتاحة حاليًا لمفتاح API الخاص بك.

max_tokensintegerمطلوب

الحد الأقصى لرموز الإخراج، كعدد صحيح موجب ضمن النطاق الآمن. تشمل هذه الميزانية رموز التفكير والنص النهائي معًا. تؤدي القيم المفقودة أو الصفرية أو السالبة أو الكسرية أو النصية أو الأعداد الصحيحة خارج النطاق الآمن إلى HTTP 400 مع invalid_request_error قبل التوليد أو الفوترة. وقد يفرض النموذج حدًا أقصى أقل.

في النماذج التي تنتج محتوى تفكير، قد تسفر ميزانية صغيرة مثل 128 عن كتل تفكير فقط قبل الانتهاء بحالة stop_reason: "max_tokens"، دون إخراج نصي. حدد ميزانية صريحة تناسب المهمة والنموذج المختار، مع إتاحة مساحة للتفكير والإجابة النهائية. القيم في الأمثلة مخصصات قابلة للتعديل، وليست القيم الافتراضية لدى المزوّد أو حدود النموذج؛ وقد تزيد المخصصات الأكبر استخدام الإخراج وتكلفته.

messagesobject[]مطلوب

رسائل المحادثة. تحتوي كل رسالة على role وcontent.

يدعم role القيمتين user وassistant. ويمكن أن يكون content سلسلة نصية أو مصفوفة من كتل المحتوى.

systemstring | object[]

تعليمة النظام. تستخدم Anthropic Messages حقل system على المستوى الأعلى بدلًا من دور system داخل messages.

streambooleanالقيمة الافتراضية: false

ما إذا كانت الاستجابة تعيد أحداث Anthropic SSE.

temperaturenumber

درجة حرارة أخذ العينات. تختلف القيم المقبولة وتأثيراتها باختلاف النموذج المختار.

top_pnumber

معامل أخذ العينات النووية. قبول المعامل لا يضمن تغييره لسلوك التوليد.

top_kinteger

معامل أخذ العينات Top-k. يعتمد دعمه على النموذج المختار.

stop_sequencesstring[]

تسلسلات الإيقاف.

تتجنب الطلبات ذات تسلسلات الإيقاف غير الفارغة خدمات النماذج المعروف أنها لا تدعمها؛ وإذا لم تتوفر خدمة متوافقة، يعيد الطلب 400 قبل التوليد أو الفوترة.

toolsobject[]

تعريفات أدوات Anthropic. تتضمن أدوات الدوال عادةً name وdescription وinput_schema.

tool_choiceobject

سياسة اختيار الأدوات، مثل { "type": "auto" } أو { "type": "tool", "name": "..." }.

thinkingobject

إعداد التفكير الأصلي في Anthropic، وفقًا لدعم النموذج والمزوّد المختارين. يستخدم Claude 4.5 الإعداد { "type": "enabled", "budget_tokens": 1024 }؛ ويدعم Claude Sonnet/Opus 4.6 التفكير التكيفي أيضًا. لا تطبق ميزانية يدوية على كل إصدار من النماذج. عند متابعة استدعاءات الأدوات، أعد محتوى المساعد كاملًا بترتيبه دون تغيير، بما فيه thinking وsignature وredacted_thinking وtool_use. حافظ على اتساق إعداد التفكير وترويسات anthropic-beta المطلوبة طوال دورة الأداة. في SSE، صِل أجزاء signature_delta.signature الخاصة بكتلة المحتوى نفسها؛ فملخص التفكير الفارغ لا يعني جواز حذف توقيعه. رفض الوصول لحساب المزوّد إخفاق لدى المزوّد، وليس دليلًا على توقيع غير صالح. تعيد حالات رفض الوصول المعروفة لحسابات Bedrock الرمز HTTP 502 مع api_error؛ بينما تحتفظ أخطاء التحقق العادية من طلب العميل بالرمز HTTP 400. ويظل القبول مشروطًا بوجود حساب مفعّل لدى المزوّد.

metadataobject

البيانات الوصفية للطلب.

التخزين المؤقت للتعليمات

أضف cache_control: { "type": "ephemeral" } إلى كتلة محتوى system أو رسالة. قد يشمل استخدام التخزين المؤقت cache_creation_input_tokens وcache_read_input_tokens وفئات الإنشاء المدعومة لمدة 5 دقائق أو 1 ساعة. وتتطلب مدة صلاحية قدرها 1 ساعة ترويسة anthropic-beta المقابلة أيضًا.

أمثلة الطلبات

دون تدفق

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself in one sentence."
    }
  ],
  "stream": false
}

التدفق

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Reply exactly OK."
    }
  ],
  "stream": true
}

الاستجابة

تحتفظ الاستجابات غير المتدفقة بتنسيق Anthropic Message.

idstring

معرّف الاستجابة، مثل msg_....

typestring

نوع الكائن، ويكون عادةً message.

rolestring

عادةً assistant.

modelstring

نموذج Claude المستخدم فعليًا.

contentobject[]

كتل محتوى الإخراج الأصلية، ومنها text وtool_use وthinking عند استخدامها.

stop_reasonstring

سبب الإيقاف، مثل end_turn أو max_tokens أو stop_sequence أو tool_use.

usageobject

استخدام الرموز، بما فيه input_tokens وoutput_tokens. تُدرج حقول رموز التخزين المؤقت عند وجودها.

مثال على النجاح

json
{
  "id": "msg_01...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-5-5",
  "content": [
    {
      "type": "text",
      "text": "Hello, I am Claude and can help with writing, coding, and analysis tasks."
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 18,
    "output_tokens": 24
  }
}

الاستجابة المتدفقة

عند ضبط stream: true، تعيد نقطة النهاية أحداث Anthropic SSE. تشمل الأحداث الشائعة:

  • message_start
  • content_block_start
  • content_block_delta
  • content_block_stop
  • ping
  • message_delta
  • message_stop

استجابة الخطأ

راجع رموز الأخطاء واستكشاف المشكلات للاطلاع على مرجع الرموز الكامل والفروق بين البروتوكولات وخطوات التشخيص.

تستخدم استجابات الأخطاء تنسيق Anthropic:

json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid credentials or API key has expired."
  }
}