كيفية استخدام كلود فابل 5 API

استدعِ واجهة برمجة تطبيقات Claude Fable 5 باستخدام كود Python و TypeScript و curl فعال: التدفق، استخدام الأدوات، الأخطاء، حساب التكلفة، بالإضافة إلى كيفية اختباره في Apidog.

INEZA Felin-Michel

INEZA Felin-Michel

10 يونيو 2026

كيفية استخدام كلود فابل 5 API

Apidog للمؤسسات

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

SSO و RBAC

متوافق مع SOC 2

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

أصدرت Anthropic نموذج Claude Fable 5 في 9 يونيو 2026، وإذا كنت تكتب التعليمات البرمجية لكسب العيش، فإن واجهة برمجة تطبيقات Claude Fable 5 هي الجزء الذي يهمك. تعمل على نفس واجهة برمجة تطبيقات الرسائل التي تعرفها بالفعل، لذا فإن سلسلة اسم النموذج هي الشيء الوحيد الذي يتغير حقًا: claude-fable-5. يرشدك هذا الدليل خلال كل استدعاء تحتاجه للحصول على رمز عملي لإنتاج استجابة حقيقية، بدءًا من طلب curl بسيط وصولاً إلى التدفق، واستخدام الأدوات، ومعالجة الأخطاء، وحساب التكلفة. إذا كنت قد تعاملت مع Claude من قبل، فسيبدو الشكل مألوفًا. وإذا قمت بالترحيل من نموذج أقدم، فإن الانتقال هو في الغالب تبديل لسلسلة نصية، بنفس الطريقة التي كان عليها الحال بالنسبة لـ واجهة برمجة تطبيقات Claude Opus 4.8.

ملخص

احصل على مفتاح API من وحدة تحكم Anthropic، وعيّنه كـ ANTHROPIC_API_KEY، ثم أرسل طلب POST إلى واجهة برمجة تطبيقات الرسائل باستخدام model: "claude-fable-5"، وقيمة max_tokens، ومصفوفة messages. استخدم حزمة تطوير البرامج (SDK) الرسمية لـ Anthropic لـ Python أو TypeScript، أو HTTP الخام. قم بتدفق المخرجات الطويلة حتى لا تواجه مهلات للطلب. سعر مليون رمز إدخال هو 10 دولارات، و 50 دولارًا لكل مليون رمز إخراج.

قبل أن تبدأ

تحتاج إلى أربعة أشياء جاهزة قبل طلبك الأول:

  1. حساب Anthropic. سجل في console.anthropic.com. وحدة التحكم هي المكان الذي تدير فيه المفاتيح والاستخدام والفوترة.
  2. مفتاح API. أنشئ مفتاحًا في وحدة التحكم ضمن "مفاتيح API". انسخه مرة واحدة؛ لن تراه مرة أخرى. تعامل معه ككلمة مرور.
  3. فوترة أو خطة مؤسسية. يتوفر Fable 5 على واجهة برمجة تطبيقات Claude القياسية وهو متاح بالكامل ضمن الخطط المؤسسية القائمة على الاستهلاك. أضف طريقة دفع أو تأكد من أن خطتك تغطي ذلك قبل إرسال حركة البيانات. إذا كنت لا تزال تقرر ما إذا كان Fable 5 يناسب حالة استخدامك، فإن نظرة عامة حول ما هو Claude Fable 5 تغطي نقاط قوة النموذج بعبارات واضحة.
  4. حزمة SDK (اختيارية ولكن موصى بها). قم بتثبيت حزمة Anthropic SDK الرسمية للغتك. يمكنك أيضًا استدعاء نقطة نهاية HTTP الخام باستخدام curl أو أي عميل HTTP إذا كنت تفضل ذلك.

عيّن المفتاح كمتغير بيئة حتى لا يصل أبدًا إلى شفرة المصدر الخاصة بك:

export ANTHROPIC_API_KEY="sk-ant-..."

تقوم كلتا حزمتي SDK بقراءة ANTHROPIC_API_KEY من البيئة تلقائيًا، لذلك نادرًا ما تمررها في الكود. احتفظ بالمفاتيح خارج Git. إذا تسرب مفتاح، فقم بتدويره في وحدة التحكم فورًا.

سلوك واحد يجب معرفته مقدمًا: يأتي Fable 5 مزودًا بضمانات توجه جزءًا صغيرًا من الاستعلامات الحساسة (الأمن السيبراني، علم الأحياء والكيمياء، ومحاولات استخلاص النموذج) إلى Claude Opus 4.8 بدلاً من الإجابة مباشرة. يحدث هذا في أقل من 5% من الجلسات. لا تقوم بتكوين أي شيء لذلك، ولكنه يفسر الاستجابة العرضية التي تعود مُصنّفة كنموذج مختلف. المزيد حول ذلك في قسم معالجة الأخطاء.

أول استدعاء لواجهة برمجة تطبيقات Claude Fable 5

ابدأ بـ curl حتى تتمكن من رؤية الطلب والاستجابة الخام دون عوائق. نقطة النهاية هي POST https://api.anthropic.com/v1/messages، والموثقة في مرجع Anthropic Messages API، وتحتاج إلى ثلاث رؤوس بالإضافة إلى جسم JSON.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-fable-5","max_tokens":1024,"messages":[{"role":"user","content":"Summarize what makes a good REST API in 3 bullet points."}]}'

هنا تهم ثلاثة رؤوس. x-api-key يحمل مفتاحك. anthropic-version يثبت إصدار واجهة برمجة التطبيقات (2023-06-01 هي القيمة المستقرة الحالية). content-type يخبر الخادم أنك ترسل JSON. يحتوي الجسم على ثلاثة حقول مطلوبة: model، max_tokens، و messages. هذا هو العقد بأكمله.

تعود الاستجابة ككائن JSON. الجزء الذي يهمك هو content، وهو قائمة من الكتل:

{
  "id": "msg_01ABC...",
  "type": "message",
  "role": "assistant",
  "model": "claude-fable-5",
  "content": [
    { "type": "text", "text": "- Predictable, resource-oriented URLs..." }
  ],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 18, "output_tokens": 96 }
}

إن content عبارة عن قائمة، وليست سلسلة نصية، لأن الاستجابة الواحدة يمكن أن تمزج بين النص، وكتل استخدام الأدوات، وكتل التفكير. قم دائمًا بتكرار القائمة وتحقق من type الخاص بكل كتلة قبل قراءة text. يخبرك stop_reason سبب توقف النموذج (end_turn هي نهاية نظيفة)، ويمنحك usage عدد الرموز التي ستستخدمها لحساب التكلفة لاحقًا.

استدعاء Fable 5 من Python

تزيل حزمة Anthropic Python SDK الرسمية الرؤوس وقوالب JSON. قم بتثبيتها أولاً:

pip install anthropic

هنا الاستدعاء الأساسي. يقرأ العميل مفتاحك من البيئة، لذلك لا تمرره في الكود:

import anthropic

client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from env

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Summarize what makes a good REST API."}],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

النمط يعكس استدعاء curl. تمرر model، max_tokens، و messages، وتحصل على استجابة يكون content الخاص بها عبارة عن قائمة من الكتل. يحمي التكرار على block.type == "text" حتى لا تتعثر أبدًا في كتلة غير نصية.

إضافة موجه نظام

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

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=2048,
    system="You are a senior backend engineer. Be concise and use code examples.",
    messages=[{"role": "user", "content": "Write a Flask route that validates a JSON body."}],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

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

تدفق المخرجات الطويلة

لأي شيء ينتج إجابة طويلة، قم بتدفقه. يرسل التدفق الرموز المميزة فور إنشائها، لذلك تُظهر التقدم فورًا وتتجنب مهلات الطلب التي تحدث مع الاستجابات الكبيرة غير المتدفقة. يجعل عمل Fable 5 طويل الأمد هذا الخيار الافتراضي لأعباء العمل الحقيقية:

with client.messages.stream(
    model="claude-fable-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Explain idempotency keys for payment APIs."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
    final = stream.get_final_message()

print(f"\n\nTokens: {final.usage.output_tokens}")

يعطي stream.text_stream أجزاء نصية فور وصولها. flush=True مهم حتى تُطبع كل قطعة فورًا بدلاً من التخزين المؤقت. عند انتهاء التدفق، يسلمك stream.get_final_message() الرسالة الكاملة المجمعة، بما في ذلك أرقام usage النهائية، لتحصل على تجربة المستخدم المتدفقة والكائن الكامل دون طلب ثانٍ.

استدعاء Fable 5 من TypeScript / Node

تتبع حزمة Node SDK نفس الشكل. قم بتثبيتها:

npm install @anthropic-ai/sdk

ثم قم بالاستدعاء. يقرأ العميل ANTHROPIC_API_KEY من البيئة، تمامًا كما في Python:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic(); // reads ANTHROPIC_API_KEY

const msg = await client.messages.create({
  model: "claude-fable-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "List 3 common API security mistakes." }],
});

console.log(msg.content);

msg.content هي نفس قائمة الكتل التي رأيتها في Python و curl. لاستخراج النص فقط، قم بالتصفية بناءً على نوع الكتلة:

const text = msg.content
  .filter((block) => block.type === "text")
  .map((block) => block.text)
  .join("");

console.log(text);

يعمل التدفق بنفس طريقة Python. استخدم client.messages.stream({...}) وكرر الأحداث، أو انتظر finalMessage() للحصول على النتيجة المجمعة. إذا كنت تقوم بتوصيل هذا بدردشة الواجهة الأمامية، قم بالتدفق من مسار الخادم وأرسل الأجزاء إلى المتصفح. تنطبق نفس عادات الاختبار سواء كنت تقوم بالبناء في Node أو Python، وأداة مثل Apidog تجعل العقد سهلاً للتحقق منه قبل كتابة أي رمز للعميل، وهو نفس سير العمل الموضح في اختبار واجهة برمجة تطبيقات ChatGPT باستخدام Apidog.

استخدام الأدوات (استدعاء الوظائف) مع Fable 5

يسمح استخدام الأدوات لـ Fable 5 باستدعاء الوظائف التي تحددها. تصف أداة بمخطط JSON، ويقرر النموذج متى يستدعيها، وتقوم أنت بتشغيل الوظيفة الفعلية وتغذية النتيجة مرة أخرى. يتميز Fable 5 بقوته في استخدام الأدوات، وهذا هو السبب في أنه يناسب حلقات الوكلاء بشكل جيد.

حدد أداة باسم ووصف وinput_schema:

tools = [
    {
        "name": "get_order_status",
        "description": "Look up the status of a customer order by ID.",
        "input_schema": {
            "type": "object",
            "properties": {"order_id": {"type": "string"}},
            "required": ["order_id"],
        },
    }
]

مرر tools إلى الطلب بنفس طريقة تمرير messages:

messages = [{"role": "user", "content": "What's the status of order A1855?"}]

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    tools=tools,
    messages=messages,
)

عندما يرغب النموذج في استخدام أداة، تعود الاستجابة بـ stop_reason == "tool_use" وكتلة tool_use تحمل اسم الأداة والمدخلات التي اختارها. الحلقة مباشرة: أضف استجابة المساعد، قم بتشغيل الأداة، ثم أرسل النتيجة مرة أخرى ككتلة tool_result في دور مستخدم جديد:

if response.stop_reason == "tool_use":
    tool_use = next(b for b in response.content if b.type == "tool_use")

    # Run your real function with the model's chosen input
    result = lookup_order(tool_use.input["order_id"])  # your code

    messages.append({"role": "assistant", "content": response.content})
    messages.append({
        "role": "user",
        "content": [{
            "type": "tool_result",
            "tool_use_id": tool_use.id,
            "content": result,
        }],
    })

    # Send the result back; the model now answers using it
    followup = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        tools=tools,
        messages=messages,
    )

التفصيل الأساسي هو tool_use_id: يجب أن تشير كتلة tool_result إلى id الدقيق من كتلة tool_use حتى يعرف النموذج أي استدعاء تجيب عليه نتيجتك. بالنسبة للوكلاء متعددي الخطوات، تقوم بلف هذا في حلقة تستمر حتى يصبح stop_reason هو end_turn. توفر حزمة Python SDK أيضًا مشغل أدوات يتعامل مع الحلقة نيابة عنك، ولكن الإصدار اليدوي أعلاه يوضح ما يحدث تحت الغطاء ويمنحك مكانًا لإضافة بوابات الموافقة أو التسجيل.

التفكير والجهد التكيفي

يدعم Fable 5 التفكير التكيفي، حيث يقرر النموذج بنفسه متى وكيف بعمق يفكر قبل الإجابة. إنه اختياري. قم بتشغيله بتمرير thinking، واضبط العمق العام واستهلاك الرموز باستخدام output_config:

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=4096,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},  # low | medium | high
    messages=[{"role": "user", "content": "Design a retry strategy for a flaky webhook receiver."}],
)

يتحكم effort في مدى تفكير وعمل النموذج: الجهد المنخفض يعني استجابات أكثر إيجازًا وسرعة، والجهد الأعلى يعني تفكيرًا أكثر شمولاً بتكلفة رموز أعلى. اترك كليهما معطلين للبحث البسيط والإجابات القصيرة، حيث لا تستحق المبررات الإضافية الرموز. استخدمهما في المشكلات الصعبة متعددة الخطوات، نوع التخطيط طويل الأمد الذي صمم Fable 5 من أجله. ابدأ ببساطة؛ يمكنك إضافة thinking لاحقًا بمجرد أن تعرف أن المسار يحتاجه.

معالجة الأخطاء والعودة الاحتياطية للسلامة

يجب أن تتعامل عمليات التكامل الحقيقية مع حالات الفشل بشكل نظيف. تثير حزمة SDK استثناءات مطبوعة، لذا قم بالتقاط الفئة المحددة بدلاً من مطابقة سلاسل الأخطاء. الثلاثة التي ستراها غالبًا تتوافق مع HTTP 401، 429، و 400:

import anthropic

client = anthropic.Anthropic()

try:
    response = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Explain CORS preflight requests."}],
    )
except anthropic.AuthenticationError:
    # 401: bad or missing API key. Check ANTHROPIC_API_KEY.
    print("Invalid API key. Rotate it in the Console and re-export.")
except anthropic.RateLimitError as e:
    # 429: too many requests. Back off and retry.
    retry_after = e.response.headers.get("retry-after", "60")
    print(f"Rate limited. Retry after {retry_after}s.")
except anthropic.BadRequestError as e:
    # 400: malformed request (bad params, empty messages, wrong shape).
    print(f"Bad request: {e.message}")

إليك ما يعنيه كل منها وكيفية إصلاحه:

الآن، العودة الاحتياطية للسلامة. يقوم Fable 5 بتوجيه مجموعة صغيرة من الاستعلامات الحساسة (الأمن السيبراني، علم الأحياء والكيمياء، ومحاولات الاستخلاص) إلى Claude Opus 4.8 بدلاً من الإجابة مباشرة. يحدث هذا في أقل من 5% من الجلسات. إنه ليس خطأ، ولا يزال طلبك ينجح، ولكن قد تعود الاستجابة موسومة بنموذج مختلف. إذا كنت تسجل أو تؤكد على response.model، فلا تفشل بشكل قاطع عندما لا يكون claude-fable-5؛ فقد تم التعامل مع الطلب، ولكن بواسطة نموذج مختلف ضمنيًا. إذا كان تطبيقك يحتاج بدقة إلى معرفة النموذج الذي أجاب، فاقرأ response.model من الكائن المرتجع بدلاً من افتراض أنه يطابق ما أرسلته.

تقدير التكلفة لكل طلب

التسعير هو 10 دولارات لكل مليون رمز إدخال و 50 دولارًا لكل مليون رمز إخراج. تحمل كل استجابة الأعداد الدقيقة في usage، لذا يمكنك حساب التكلفة لكل طلب بدقة بدلاً من التخمين:

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Write a SQL query to find duplicate emails."}],
)

input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens

input_cost = input_tokens / 1_000_000 * 10
output_cost = output_tokens / 1_000_000 * 50
total = input_cost + output_cost

print(f"Input:  {input_tokens} tokens  = ${input_cost:.6f}")
print(f"Output: {output_tokens} tokens = ${output_cost:.6f}")
print(f"Total:  ${total:.6f}")

تكلفة رموز الإخراج خمسة أضعاف تكلفة رموز الإدخال، لذا فإن أرخص وسيلة لديك هي إبقاء الاستجابات موجزة. يكلف الطلب الذي يحتوي على 2,000 رمز إدخال و 500 رمز إخراج 2000 / 1M * $10 + 500 / 1M * $50، وهو ما يعادل $0.02 + $0.025 = $0.045. اضرب ذلك بحجم طلباتك لتحديد الميزانية. إذا كانت تكلفة الإخراج تهيمن على فاتورتك، فحدد سقفًا لـ max_tokens واطلب إجابات موجزة في موجه النظام. تسعير الإخراج هو نفس الحساب الذي ستجريه لنموذج تسعير Claude Opus 4.8، فقط بأرقام Fable 5.

اختبار وتصحيح أخطاء واجهة برمجة تطبيقات Claude Fable 5 باستخدام Apidog

قبل أن تكتب رمز العميل، من المفيد إرسال بعض الطلبات يدويًا ومشاهدة ما يعود بالضبط. Apidog هو عميل API مصمم لهذا الغرض: ترسل طلبات حقيقية إلى https://api.anthropic.com/v1/messages، وتفحص الاستجابة المتدفقة، وتحفظ الطلب بحيث يعمل فريقك بأكمله من نفس التعريف. إليك مسار واضح من الصفر إلى طلب محفوظ وعامل.

  1. إنشاء الطلب. في Apidog، قم بإنشاء طلب HTTP جديد، اضبط الطريقة على POST، والصق عنوان URL https://api.anthropic.com/v1/messages. هذه هي نفس نقطة النهاية التي يستخدمها كل مثال في هذا الدليل.
  2. تخزين مفتاحك كمتغير بيئة. أنشئ متغير بيئة في Apidog، سمِّه شيئًا مثل anthropic_api_key، والصق مفتاحك كقيمة سرية. الاحتفاظ بالمفتاح في البيئة يعني أنه يبقى خارج الطلب المحفوظ وخارج أي تصدير تشاركه.
  3. تعيين الرؤوس. أضف x-api-key بالقيمة {{anthropic_api_key}}، ثم anthropic-version: 2023-06-01 و content-type: application/json. إذا كنت تفضل متغير سري بنمط Bearer، فقم بتخزين الرمز بنفس الطريقة وارجع إليه باستخدام صيغة {{...}} حتى لا تظهر القيمة الخام أبدًا في الطلب.
  4. إضافة جسم JSON. ضع الحمولة الدنيا: {"model": "claude-fable-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Explain idempotency keys for payment APIs."}]}. أرسلها واقرأ الاستجابة. يجب أن ترى كتل content، stop_reason، و usage مباشرة في لوحة الاستجابة.
  5. عرض الاستجابات المتدفقة. اضبط "stream": true في الجسم وأرسل مرة أخرى. يعرض Apidog الأحداث المرسلة من الخادم فور وصولها، حتى تتمكن من مشاهدة تدفق الرموز وتأكيد أن منطق التدفق الخاص بك يطابق ما ترسله واجهة برمجة التطبيقات فعليًا قبل بنائه في تطبيق.
  6. حفظ وإنشاء الكود. احفظ الطلب في مجموعة بحيث يمكن لزملاء الفريق إعادة استخدامه، ثم استخدم وظيفة Apidog لإنشاء الكود لتصدير مقتطف عامل في Python، JavaScript، curl، أو لغة أخرى. يمنحك هذا نقطة بداية مختبرة بدلاً من ملف فارغ.

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

button

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

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