إنتقل إلى المحتوى الرئيسي

أول استدعاء إنتاجي لواجهتك البرمجية (واعٍ بالتكلفة)

متوسط

استدعاء واجهة برمجية بسيط هو سطر واحد. أما الاستدعاء الإنتاجي فيعالج الأخطاء، ويتدفّق بالمخرجات، ويراقب التكلفة، ويحافظ على أمان الأسرار. لنبنِ ذلك خطوة بخطوة.

الخطوة 1 — الأسرار والنموذج من الإعدادات

export ANTHROPIC_API_KEY="sk-ant-..." # never in source control

احتفظ بـ معرّف النموذج في الإعدادات، لا حروفاً مبعثرة، حتى تكون الترقية سهلة (لماذا). اخترْه بعناية — اختيار نموذج.

الخطوة 2 — استدعاء مرن ومُتدفّق

import os, time, random, anthropic
client = anthropic.Anthropic()
MODEL = os.environ.get("CLAUDE_MODEL", "claude-sonnet-4-6")

def ask_stream(prompt, system=None, max_tokens=1024):
for attempt in range(5):
try:
with client.messages.stream(
model=MODEL, max_tokens=max_tokens,
system=system or anthropic.NOT_GIVEN,
messages=[{"role": "user", "content": prompt}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print()
usage = final.usage
print(f"\n[tokens in/out: {usage.input_tokens}/{usage.output_tokens}]")
return final
except (anthropic.RateLimitError, anthropic.APIStatusError):
if attempt == 4: raise
time.sleep(min(2 ** attempt + random.random(), 30))

الخطوة 3 — انتبه للتكلفة

الخطوة 4 — تعامل مع المسارات غير السعيدة

  • أعِد المحاولة للأخطاء العابرة (429/5xx) بتراجع تصاعدي (أعلاه)؛ لا تُعِد المحاولة لأخطاء 400.
  • تعامل مع الرفض بلطف.
  • اضبط مهلة زمنية وميزانية للتكلفة/التكرار لأي شيء وكيلي.

تحقّق

شغّله: يُفترض أن ترى مخرجات متدفّقة، وسطراً يبيّن استخدام الرموز، وسلوكاً سلساً إذا أجبرت حدوث خطأ (مثلاً مفتاح خاطئ ← رسالة نظيفة، لا انهيار).

التالي