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

مقتطفات API للإنتاج

متوسط

أشكال مُجرَّبة في الميدان للبناء على API. كيّفها وقوِّها لتناسب بنيتك التقنية.

غلاف استدعاء مرن (إعادة المحاولة + التراجع التدريجي)

import time, random, anthropic
client = anthropic.Anthropic()

def ask(messages, model="claude-sonnet-4-6", max_tokens=1024, system=None):
for attempt in range(5):
try:
return client.messages.create(
model=model, max_tokens=max_tokens,
system=system or anthropic.NOT_GIVEN, messages=messages,
)
except (anthropic.RateLimitError, anthropic.APIStatusError) as e:
if attempt == 4:
raise
time.sleep(min(2 ** attempt + random.random(), 30))

(تُعيد SDK أيضاً محاولة الأخطاء العابرة افتراضياً — اعرف سلوك عميلك قبل أن تكدّس سلوكك الخاص فوقه. راجع الأخطاء وحدود المعدل.)

محادثة بالبث

with client.messages.stream(model="claude-sonnet-4-6", max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}]) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

حلقة استخدام الأدوات (هيكل أولي)

messages = [{"role": "user", "content": "What's the weather in Rome?"}]
while True:
resp = client.messages.create(model="claude-sonnet-4-6", max_tokens=1024,
tools=TOOLS, messages=messages)
if resp.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": resp.content})
results = [run_tool(b) for b in resp.content if b.type == "tool_use"]
messages.append({"role": "user", "content": results}) # tool_result blocks

:::warning التقوية حُدّ من عدد التكرارات والتكلفة، وتحقّق من صحة مدخلات الأدوات، واحتفظ بالأسرار في متغيرات البيئة. للاستخدام المستقل، اقرأ تأمين الوكلاء. :::

التالي