claude-opus-4-20250514-thinking
يستخدم Claude Opus 4 Thinking وضع التفكير الممتد في Opus 4 الأصلي للتغييرات البرمجية المعقّدة ومسارات الوكلاء الممتدة والبحث. يستطيع الاستدلال بين خطوات الأدوات المدعومة، وربط الأدلة عبر مهمة صعبة قبل إنتاج نتيجة نصية.
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
يطبّق Claude Opus 4 Thinking الاستدلال الممتد على نموذج Claude Opus 4 الأصلي. تضع Anthropic هذا الجيل للعمل البرمجي الصعب والبحث والكتابة والمهام التي تتطلب الحفاظ على اتجاه العمل عبر خطوات كثيرة. تتعلق تسمية Thinking بطريقة مقاربة النموذج للإجابة؛ ولا تحوّل Opus 4 الأصلي إلى إصدار Opus لاحق.
الاستدلال عبر مهمة صعبة
يجمع Claude Opus 4 وضع استجابة عاديًا ووضع تفكير ممتد. في التفكير الممتد، يستطيع تخصيص وقت أطول لفحص المشكلة قبل الإجابة. تصف الشركة العمل المتواصل على المهام المعقّدة كإحدى نقاط قوته الرئيسية، ولا سيما عندما تتطلب المهمة ربط سلسلة من النتائج بدلًا من حل موجّهات معزولة.
لسؤال بحثي، قدّم المواد المراد مقارنتها والقرار الذي ينبغي أن تدعمه والشروط المهمة. اطلب خلاصة مستندة إلى الأدلة تفصل النتائج والافتراضات والأسئلة المفتوحة. ولمهمة كتابة، أرفق الجمهور والمادة المصدرية والبنية المطلوبة والادعاءات التي يجب أن تشرحها النتيجة. هذه تطبيقات عملية لقدرات النموذج الموثّقة في البحث والكتابة، وليست وعودًا بنتيجة معينة.
تغييرات عبر قاعدة شيفرة
تؤكد Anthropic فهم الشيفرة المعقّدة وتحريرها وتصحيح أخطائها والتغييرات الممتدة عبر عدة ملفات. قدّم للنموذج الوحدات ذات الصلة وعقود الواجهات والسلوك المتوقع والاختبارات الحالية أو إخراج الخطأ. عرّف نطاق التغيير المطلوب واطلب شرح التبعيات التي تجعل التعديلات المقترحة ضرورية.
يربط الناتج الهندسي المفيد ثلاثة أمور: سبب المشكلة وتنفيذًا متسقًا وطريقة لفحص السلوك الناتج. ولإعادة الهيكلة، اذكر الواجهات العامة والسلوكيات القابلة للملاحظة التي يجب أن تبقى مستقرة. ولميزة، صِف مسار المستخدم وحالات فشله. يجعل ذلك الاستدلال الممتد للنموذج مفيدًا للمشروع، بدلًا من مجرد إنتاج إجابة أطول.
الأدوات والعمل المتوازي والاستمرارية
يضيف جيل Claude 4 الأصلي الاستدلال بين استدعاءات الأدوات في مسار التفكير الممتد الموثّق لدى Anthropic. يستطيع فحص نتيجة أداة وإعادة النظر في نهجه واختيار إجراء تالٍ. وتصف الشركة أيضًا استخدام أدوات بالتوازي وتحسين الاستمرارية عندما يوفّر التطبيق ملفات محلية يستطيع النموذج قراءتها وتحديثها.
يحتاج الوكيل الذي يستخدم هذه القدرات إلى أن يوفّر تطبيقه الأدوات وينفّذ الإجراءات المطلوبة ويعيد نتائجها. وتنتمي ملفات الذاكرة كذلك إلى بيئة التطبيق؛ وليست مخزنًا غير محدود يُنقَل تلقائيًا بين محادثات غير مترابطة. عند تصميم مسار عمل، أعد الملاحظات المهمة إلى النموذج، وأبقِ هدف المهمة ومعايير قبولها متاحة.
التحليل البصري والإخراج النصي
يدعم Claude Opus 4 أيضًا التحليل البصري. تستطيع لقطات الشاشة والمخططات والرسوم التوضيحية تقديم أدلة إلى جانب النص، بينما تبقى إجابة النموذج نصية. استخدم صورًا مقروءة بوضوح، وحدّد العلاقات التي تريد شرحها. أدرج القيم المصدرية عندما تعتمد المهمة على أعداد أو قياسات دقيقة، لأن التفسير البصري قد يكون تقريبيًا.
لمهمة Ailoot API، حدّد الناتج النهائي الذي تحتاجه: مقترح تغيير متعدد الملفات أو تحقيقًا تقنيًا أو خلاصة بحث أو مستندًا منظّمًا بعناية. أضف الأدلة والقيود التي تتيح للنموذج اختيار نهج. تقدّم ملخصات التفكير الممتد لدى الشركة شرحًا إلى جانب النتيجة، لكن الملخص ليس سجلًا حرفيًا لكل الاستدلال. افحص الشيفرة أو التحليل المقدَّم مقابل متطلبات المهمة، بما يشمل الافتراضات التي لا تزال بحاجة إلى أدلة.
مهمة عملية
مهمة عملية
مثال تقني باللغة الإنجليزية
Plan a coordinated order refactor
Review this proposed refactor. Module A emits {order_id, total_cents}; module B stores those fields; module C displays total_cents / 100. A developer proposes renaming only A to amount_cents. Identify affected contracts and propose a coordinated migration that preserves existing consumers, with checks for old and new records.النتيجة المتوقعة
A dependency map in text, a staged migration proposal and compatibility checks for each consumer.التحقق من النتيجة
Confirm the proposal covers B and C and does not silently reinterpret cents as whole currency units.Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions claude-opus-4-20250514-thinking
claude-opus-4-20250514-thinking
claude-opus-4-20250514-thinkingالبداية
يستخدم Claude Opus 4 Thinking وضع التفكير الممتد في Opus 4 الأصلي للتغييرات البرمجية المعقّدة ومسارات الوكلاء الممتدة والبحث. يستطيع الاستدلال بين خطوات الأدوات المدعومة، وربط الأدلة عبر مهمة صعبة قبل إنتاج نتيجة نصية.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions
- الإدخال
text- الإخراج
text- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-4-20250514-thinking | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود أمثلة: system, user, assistant, tool, function الشروط: تُمثَّل هذه الأدوار صراحةً بأنواع التوافق في الشيفرة المصدرية؛ وتظل مجموعة الأدوار الدقيقة خاصة بكل نموذج. يعتمد على النموذج | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring|content_part[]|null | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].tool_calls | النوعtool_call[] | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].tool_call_id | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: role=tool؛ استخدم المعرّف الفعلي المُرجع | القيمة الافتراضية— |
الحقلmessages[].name | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].reasoning_content | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: أعِد تمرير الاستدلال الفعلي المُرجع حيث يستخدمه هذا النموذج | القيمة الافتراضية— |
الحقلmessages[].reasoning_details | النوعobject|array | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmax_tokens | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 يعتمد على النموذج | القيمة الافتراضية— |
الحقلmax_completion_tokens | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 يعتمد على النموذج | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
الحقلstream_options.include_usage | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtemperature | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtop_p | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلstop | النوعstring|string[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools | النوعfunction_tool[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools[].type | النوعstring | المتطلباختياري | القيم والحدود function يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools[].function.name | النوعstring | المتطلبمطلوب | القيم والحدود ينطبق عندما: أداة دالة مقدّمة | القيمة الافتراضية— |
الحقلtools[].function.description | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtools[].function.parameters | النوعJSON_schema | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtool_choice | النوعstring|object | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلparallel_tool_calls | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلresponse_format | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning_effort | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلservice_tier | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلinstructions | النوعstring | المتطلباختياري | القيم والحدود حقل للتوافق | القيمة الافتراضية— |
الحقلfunctions | النوعfunction[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلfunction_call | النوعstring|object | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلprompt_cache_options | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmodalities | النوعstring[] | المتطلباختياري | القيم والحدود text | القيمة الافتراضية— |
الحقلprovider | النوعobject | المتطلباختياري | القيم والحدود الشروط: يُرفَض provider.options في مسار Ultra النصي هذا | القيمة الافتراضية— |
الحقلcache_control.ttl | النوعstring | المتطلباختياري | القيم والحدود الشروط: تُرفَض 1h في المواضع الفعلية للتخزين المؤقت للموجّه | القيمة الافتراضية— |
تركيبات مواد الإدخال
النص · نص UTF8
messages[].content
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, messages |
المعلمةmaterial_types | المواصفاتtext |
المعلمةmessages | المواصفاتمصفوفة رسائل ببنية role/content |
المعلمةfile_material | المواصفاتمستند UTF-8 الفعلي مُدرج كنص حرفي؛ لا يُستنتَج معرّف ملف |
المعلمةoptional_controls | المواصفاتstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
المعلمةcontrol_scope | المواصفاتخاص بالنموذج؛ أدوات الدوال التي يقدّمها المستخدم تختلف عن الأدوات المستضافة |
المعلمةoutput_modalities | المواصفاتtext |
المعلمةhosted_operations | المواصفاتfalse |
المعلمةmultimodal_input_binding | المواصفاتnull |
دورة الحياة: synchronous_or_streamed
أرسل معرّف النموذج الدقيق مع messages.
طول السياق ليس حدًا أقصى للإخراج.
يمكن لملف نصي تقديم نص حرفي؛ وتحتاج مدخلات الصور/الصوت/كائنات الملفات إلى ربط دقيق.
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- غير محدد عند اختيار الوضع السريع
- الوضع المرن
- غير محدد عند اختيار وضع flex
- أقصى جهد للاستدلال
- غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
تعرفات Ailoot
الأسعار حسب الإعدادات
| الإعدادات | جدول التعرفة | الرسوم |
|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | الرسوم الإدخال · رموز الإدخال $0.03 / 1K من الرموز الإخراج · رموز الإخراج $0.15 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.0006 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0075 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · محادثة OpenAI
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-4-20250514-thinking", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='claude-opus-4-20250514-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
with client.chat.completions.stream(model='claude-opus-4-20250514-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
استلام النتائج وحفظها
Ailoot Ultra · محادثة OpenAI
json أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل اختيار ومحتواه واستدعاءات أدواته واستدلاله. في SSE، جمّع التحديثات بحسب فهرس الاختيار/الأداة، واحتفظ بسبب الإنهاء النهائي والاستخدام.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلchoices[].index | النوعinteger |
الحقلchoices[].message.content | النوعstring|null |
الحقلchoices[].message.tool_calls | النوعtool_call[] |
الحقلchoices[].message.reasoning_content | النوعstring |
الحقلchoices[].message.reasoning_details | النوعobject|array |
الحقلchoices[].finish_reason | النوعstring|null |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra claude-opus-4-20250514-thinking
الأسماء البديلة لمسارات الطرائق
استخدم مسارات الطرائق المعروضة أعلاه.
معرّفات النماذج ذات الصلة IDs
FAQ · claude-opus-4-20250514-thinking
- ما المدخلات والنتائج المتاحة؟
POST /v1/chat/completions·claude-opus-4-20250514-thinking:text→text- ما الحقول التي يستخدمها الطلب؟
POST /v1/chat/completions·claude-opus-4-20250514-thinking:model,messages,stream,modalities,provider- ما الحدود المطبقة؟
POST /v1/chat/completions·claude-opus-4-20250514-thinking:messages.min_items:1