Anthropic: Claude Opus 5
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- Ailoot · رسائل Anthropic
POST /v1/messagesclaude-opus-5 - Ailoot · OpenAI Responses
POST /v1/responsesclaude-opus-5 - Ailoot · محادثة OpenAI
POST /v1/chat/completionsclaude-opus-5 - Ailoot Ultra · محادثة OpenAI
POST /v1/chat/completionsclaude-opus-5 - Ailoot Ultra · رسائل Anthropic
POST /v1/messagesclaude-opus-5 - Ailoot Ultra · محادثة OpenAI
POST /v1/chat/completionsanthropic/claude-opus-5 - Ailoot Ultra · رسائل Anthropic
POST /v1/messagesanthropic/claude-opus-5
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
Claude Opus 5 هو نموذج من Anthropic للعمل المهني المنتظم الذي يتطلب دراسة المعلومات واتخاذ خيار مبرر وتنفيذ المهمة بالتتابع. يبرز المصنّع هندسة البرمجيات والسيناريوهات التجارية متعددة الخطوات والعمل العلمي وتحليل البيانات البصرية. يركز تقديمه على التنفيذ المتأني وفحص نتيجته.
معرفة السبب والفحص والإصلاح
في التطوير يستطيع Opus 5 دراسة السبب الجذري لخطأ واستخدام الفحص لتقييم تعديل مقترح. عندما لا تكفي مواد جاهزة للمقارنة، تشمل السيناريوهات الموصوفة إنشاء فحص خاص، مثلًا لسلوك محلل. يُبنى العمل على البيانات المتاحة: يقرأها النموذج ويختار إجراءً ويرى النتيجة ويصحح المشكلات المكتشفة.
يحتاج التطبيق أدوات مناسبة لتنفيذ الأوامر وتحرير الملفات وتشغيل الفحوص. تتعلق مبادرة النموذج باختيار الإجراءات وتسلسلها في البيئة المقدمة؛ ولا تعني وصولًا ذاتيًا إلى المشروع أو تنفيذ عمليات خارج التطبيق.
الصورة بوصفها بيانات لبرنامج
يقبل Opus 5 النص والصور ويعيد النص. في السيناريوهات البصرية يعرض المصنّع استخراج الشكل الهندسي من صورة وإعادة إنشاء قطعة بالكود المكتوب. تشمل أمثلة أخرى محاكاة تفاعلية للديناميكا الهوائية ورسمًا لخلية، أُنشئا بالبرمجة.
صيغ الإدخال البصري العادي لدى المصنّع هي JPEG/PNG/GIF/WebP، ويُستخدم الإطار الأول من الصور المتحركة. في التحليل الأصلي: طول الجانب الكبير 2576 بكسل و4784 توكنًا بصريًا؛ وتُصغَّر الصور الكبيرة قبل التحليل. يتحدد دعم الملفات والمعلمات وفق طريقة التطبيق.
تعرض هذه المهام العمل المشترك بين التحليل والهندسة: يمكن استخدام الصورة كمادة، والنتيجة النصية ككود أو وصف لحل. يحتاج تشغيل المحاكاة وبناء الرسومات وإخراج الملف النهائي أدوات البيئة؛ ولا توجد لدى النموذج صورة أو فيديو مدمجان منفصلان في المخرجات.
عمق قابل للتحكم
الاستدلال التكيفي مفعّل افتراضيًا، والمستوى القياسي لـeffort هو high. تُدعم low وmedium وhigh وxhigh وmax. يمكن تعطيل الاستدلال عند high وما دونه، لكنه إلزامي عند xhigh وmax. لا يتوفر لهذا الإصدار extended thinking اليدوي بميزانية منفصلة.
يؤثر تغيير الجهد في حجم الاستدلال، لكنه ليس طريقة موثوقة لضبط طول النص الظاهر. إذا لزمت إجابة قصيرة أو بنية محددة، فيجب ذكر ذلك في التعليمات نفسها. السياق 1 مليون توكن، والحد الأقصى للإجابة في الوضع العادي 128 ألف توكن؛ ويجب في التحليل العميق ترك مجال للاستدلال والمحتوى النهائي.
المهام العلمية والحساسة
الحد الموثوق للمعرفة المدمجة هو مايو 2026. تشمل المجالات العلمية التي تصفها Anthropic علم الأحياء البنيوي والكيمياء العضوية والمعلوماتية الحيوية. ومع ذلك يذكر المصنّع حدودًا كبيرة في الأبحاث الحيوية الذاتية المطوّلة؛ فالقدرة على مناقشة المواد العلمية لا تعني إنهاء أي بحث بصورة مستقلة.
تتيح آليات الحماية البحث عن أخطاء الكود، لكنها تقيد بعض المهام الحساسة. تحتاج المعلومات الحديثة إلى مواد مقدمة أو بحث، وتحتاج النتيجة التقنية والعلمية إلى التحقق في بيئتها المتخصصة.
مهمة عملية
مهمة عملية
مثال تقني باللغة الإنجليزية
Diagnose an ambiguous date parser
A parser uses date.split('/').map(Number) and interprets every value as month/day/year. Requirements: the import format is day/month/year, and impossible dates must be rejected. For inputs 13/02/2026, 02/03/2026 and 31/02/2026, propose a corrected parser and a test table. Explain how validation avoids silent date rollover.النتيجة المتوقعة
Corrected code, a three-row expected-outcome table and a brief explanation of calendar validation.التحقق من النتيجة
Verify the invalid February date is rejected and the ambiguous valid date means 2 March.Ailoot · رسائل Anthropic POST /v1/messages claude-opus-5
claude-opus-5البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص · الصور
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot · رسائل Anthropic POST /v1/messages
- الإدخال
text,image- الإخراج
text- السياق
- 1,000,000 tokens
- الحد الأقصى للإخراج
- 131,072 tokens
- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-5 | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود user, assistant | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring|content_block[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلsystem | النوعstring|content_block[] | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmax_tokens | النوعinteger | المتطلبمطلوب | القيم والحدود الحد الأدنى: 1 نطاق تطبيق الحد: الحد الأقصى الدقيق للنموذج/البطاقة المختارة | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
الحقلtemperature | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtop_p | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلstop_sequences | النوعstring[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools | النوعtool[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools[].name | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: أداة مقدّمة | القيمة الافتراضية— |
الحقلtools[].description | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtools[].input_schema | النوعJSON_schema | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtool_choice | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلthinking.type | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلthinking.budget_tokens | النوعinteger | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلoutput_config.effort | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmetadata | النوعobject | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلcache_control | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
تركيبات مواد الإدخال
النص · نص UTF8
messages[].content أو كتلة type=text
نص + صورة
{type:image,source:{type:base64,media_type,data}} أو مصدر من النوع type=url
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةmaterial_types | المواصفاتtext, image |
المعلمةrequired | المواصفاتmodel, messages, max_tokens |
المعلمةoptional_controls | المواصفاتnull |
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةtext_file_material | المواصفاتمحتوى UTF-8 الفعلي مُدرج كنص؛ وتحتاج معرّفات الملفات/URLs إلى دعم دقيق منفصل |
دورة الحياة: exact retained published method
بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.
الباقات
تعرفات طرائق Ailoot
POST /v1/messages- الإدخال
- 0.005 US$ / 1K
- الإخراج
- 0.025 US$ / 1K
- قراءة ذاكرة التخزين المؤقت
- 0.0005 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت
- 0.00625 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق
- 0.00625 US$ / 1K tokens
- الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة
- 0.01 US$ / 1K tokens
- web_search_call
- 0.01 US$ لكل استدعاء
- أقصى عدد للاستدعاءات web_search_call
- 8
- مضاعف fast
- ×2
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
تفاصيل التعرفة المرجعية
لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.
جداول التعرفة المرجعية للنموذج
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
أمثلة للطلبات
Ailoot · رسائل Anthropic
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
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/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";
if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
model: "claude-opus-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";
function saveResult(data, stem = "result") {
writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
console.log(JSON.stringify(data, null, 2));
const saveBlob = (encoded, suffix, label) => {
const raw = Buffer.from(encoded, "base64");
const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
const file = `${stem}-${label}.${ext}`;
writeFileSync(file, raw); console.log("Saved", file);
};
for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
for (const [i, item] of (data.output || []).entries()) {
console.log("Output", i, JSON.stringify(item));
if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
}
for (const [ci, candidate] of (data.candidates || []).entries()) {
for (const [pi, part] of (candidate.content?.parts || []).entries()) {
console.log("Candidate/part", ci, pi, JSON.stringify(part));
const blob = part.inlineData || part.inline_data;
if (blob?.data) {
const mime = blob.mimeType || blob.mime_type;
const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
}
}
}
}
saveResult(msg);
import anthropic,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=anthropic.Anthropic(base_url="https://api.ailoot.ai",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.messages.stream(model='claude-opus-5',max_tokens=1024,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_message()
save_result(final.to_dict(mode="json"),"stream-result")
استلام النتائج وحفظها
Ailoot · رسائل Anthropic
json أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلmodel | النوعstring |
الحقلcontent[] | النوعtext|thinking|tool_use|other content block |
الحقلstop_reason | النوعstring|null |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot · OpenAI Responses POST /v1/responses claude-opus-5
claude-opus-5البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص · الصور
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot · OpenAI Responses POST /v1/responses
- الإدخال
text,image- الإخراج
text- السياق
- 1,000,000 tokens
- الحد الأقصى للإخراج
- 131,072 tokens
- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-5 | القيمة الافتراضية— |
الحقلinput | النوعstring|input_item[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلinstructions | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلinput[].type | النوعstring | المتطلباختياري | القيم والحدود message, reasoning, function_call, function_call_output | القيمة الافتراضية— |
الحقلinput[].content | النوعstring|content_part[] | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلinput[].call_id | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: function_call_output؛ احتفظ بقيمة call_id الفعلية المُرجعة | القيمة الافتراضية— |
الحقلinput[].output | النوعstring|content_part[] | المتطلباختياري | القيم والحدود ينطبق عندما: function_call_output | القيمة الافتراضية— |
الحقلmax_output_tokens | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 يعتمد على النموذج | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
الحقلtemperature | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtop_p | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools | النوعtool[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtool_choice | النوعstring|object | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلparallel_tool_calls | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning.effort | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning.summary | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtext.format | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtext.verbosity | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلinclude | النوعstring[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلstore | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلprevious_response_id | النوعstring | المتطلباختياري | القيم والحدود متطلبات المعرّف ID: معرّف استجابة فعلي فقط من متابعة مدعومة يعتمد على النموذج | القيمة الافتراضية— |
الحقلservice_tier | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلprompt_cache_key | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلprompt_cache_options | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
تركيبات مواد الإدخال
النص · نص UTF8
نص إدخال أو جزء input_text
نص + صورة
{type:input_image,image_url}
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةmaterial_types | المواصفاتtext, image |
المعلمةrequired | المواصفاتmodel, input |
المعلمةoptional_controls | المواصفاتnull |
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةtext_file_material | المواصفاتمحتوى UTF-8 الفعلي مُدرج كنص؛ وتحتاج معرّفات الملفات/URLs إلى دعم دقيق منفصل |
دورة الحياة: exact retained published method
بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.
الباقات
تعرفات طرائق Ailoot
POST /v1/responses- الإدخال
- 0.005 US$ / 1K
- الإخراج
- 0.025 US$ / 1K
- قراءة ذاكرة التخزين المؤقت
- 0.0005 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت
- 0.00625 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق
- 0.00625 US$ / 1K tokens
- الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة
- 0.01 US$ / 1K tokens
- web_search_call
- 0.01 US$ لكل استدعاء
- أقصى عدد للاستدعاءات web_search_call
- 8
- مضاعف fast
- ×2
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
تفاصيل التعرفة المرجعية
لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.
جداول التعرفة المرجعية للنموذج
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
أمثلة للطلبات
Ailoot · OpenAI Responses
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
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/responses \
-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 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(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
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/responses \
-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 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(json.loads(Path("result.json").read_text(encoding="utf-8")))
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)
resp = client.responses.create(model="claude-opus-5", input="Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";
if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "claude-opus-5", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";
function saveResult(data, stem = "result") {
writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
console.log(JSON.stringify(data, null, 2));
const saveBlob = (encoded, suffix, label) => {
const raw = Buffer.from(encoded, "base64");
const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
const file = `${stem}-${label}.${ext}`;
writeFileSync(file, raw); console.log("Saved", file);
};
for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
for (const [i, item] of (data.output || []).entries()) {
console.log("Output", i, JSON.stringify(item));
if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
}
for (const [ci, candidate] of (data.candidates || []).entries()) {
for (const [pi, part] of (candidate.content?.parts || []).entries()) {
console.log("Candidate/part", ci, pi, JSON.stringify(part));
const blob = part.inlineData || part.inline_data;
if (blob?.data) {
const mime = blob.mimeType || blob.mime_type;
const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
}
}
}
}
saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
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))
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)
with client.responses.stream(model="claude-opus-5", input="Explain the difference between an observation and a hypothesis 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_response()
save_result(final.to_dict(mode="json"),"stream-result")
استلام النتائج وحفظها
Ailoot · OpenAI Responses
json أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل عنصر إخراج وجزء محتوى وقيمة call_id الفعلية للدالة والاستدلال المشفّر والاستخدام. وفي البث، احتفظ بهوية الحدث/العنصر كاملة.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلstatus | النوعstring |
الحقلoutput[] | النوعmessage|reasoning|function_call|other item |
الحقلoutput[].content[] | النوعcontent part |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot · محادثة OpenAI POST /v1/chat/completions claude-opus-5
claude-opus-5البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص · الصور
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot · محادثة OpenAI POST /v1/chat/completions
- الإدخال
text,image- الإخراج
text- السياق
- 1,000,000 tokens
- الحد الأقصى للإخراج
- 131,072 tokens
- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-5 | القيمة الافتراضية— |
الحقل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 | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقل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 | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
تركيبات مواد الإدخال
النص · نص UTF8
messages[].content
نص + صورة
{type:image_url,image_url:{url,detail}}
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةmaterial_types | المواصفاتtext, image |
المعلمةrequired | المواصفاتmodel, messages |
المعلمةoptional_controls | المواصفاتnull |
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةtext_file_material | المواصفاتمحتوى UTF-8 الفعلي مُدرج كنص؛ وتحتاج معرّفات الملفات/URLs إلى دعم دقيق منفصل |
دورة الحياة: exact retained published method
بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.
الباقات
تعرفات طرائق Ailoot
POST /v1/chat/completions- الإدخال
- 0.005 US$ / 1K
- الإخراج
- 0.025 US$ / 1K
- قراءة ذاكرة التخزين المؤقت
- 0.0005 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت
- 0.00625 US$ / 1K
- الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق
- 0.00625 US$ / 1K tokens
- الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة
- 0.01 US$ / 1K tokens
- web_search_call
- 0.01 US$ لكل استدعاء
- أقصى عدد للاستدعاءات web_search_call
- 8
- مضاعف fast
- ×2
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
تفاصيل التعرفة المرجعية
لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.
جداول التعرفة المرجعية للنموذج
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
أمثلة للطلبات
Ailoot · محادثة OpenAI
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
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)
resp = client.chat.completions.create(
model="claude-opus-5",
messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";
if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
model: "claude-opus-5",
messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";
function saveResult(data, stem = "result") {
writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
console.log(JSON.stringify(data, null, 2));
const saveBlob = (encoded, suffix, label) => {
const raw = Buffer.from(encoded, "base64");
const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
const file = `${stem}-${label}.${ext}`;
writeFileSync(file, raw); console.log("Saved", file);
};
for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
for (const [i, item] of (data.output || []).entries()) {
console.log("Output", i, JSON.stringify(item));
if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
}
for (const [ci, candidate] of (data.candidates || []).entries()) {
for (const [pi, part] of (candidate.content?.parts || []).entries()) {
console.log("Candidate/part", ci, pi, JSON.stringify(part));
const blob = part.inlineData || part.inline_data;
if (blob?.data) {
const mime = blob.mimeType || blob.mime_type;
const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
}
}
}
}
saveResult(resp);
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-5',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 · محادثة 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 claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions claude-opus-5
claude-opus-5claude-opus-5anthropic/claude-opus-5
البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions
- الإدخال
text- الإخراج
text- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-5 | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: محادثة نصية | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
تركيبات مواد الإدخال
النص · نص UTF8
messages[].content
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, messages |
المعلمةmaterial_types | المواصفاتtext |
المعلمةmessages | المواصفاتمصفوفة رسائل ببنية role/content |
المعلمةfile_material | المواصفاتمستند UTF-8 الفعلي مُدرج كنص حرفي؛ لا يُستنتَج معرّف ملف |
المعلمةoptional_controls | المواصفاتstream |
المعلمةcontrol_scope | المواصفاتمحادثة نصية؛ stream قيمة منطقية، وقيمتها الافتراضية false. |
المعلمةoutput_modalities | المواصفاتtext |
المعلمةhosted_operations | المواصفاتfalse |
المعلمةmultimodal_input_binding | المواصفاتnull |
الأسماء البديلة للطريقة: /chat/completions
دورة الحياة: synchronous_or_streamed
أرسل معرّف النموذج الدقيق مع messages.
طول السياق ليس حدًا أقصى للإخراج.
يمكن لملف نصي تقديم نص حرفي؛ وتحتاج مدخلات الصور/الصوت/كائنات الملفات إلى ربط دقيق.
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- التعرفة القياسية عند اختيار الوضع السريع
- الوضع المرن
- التعرفة القياسية عند اختيار وضع flex
- أقصى جهد للاستدلال
- التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
- جهد الاستدلال · مرتفع
- التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا
- جهد الاستدلال · منخفض
- التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا
- جهد الاستدلال · الحد الأقصى
- التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى
- جهد الاستدلال · متوسط
- التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا
- جهد الاستدلال · xhigh
- التعرفة القياسية عندما يكون جهد الاستدلال xhigh
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 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-5","messages":[{"role":"user","content":"hello"}],"stream":false}')
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-5", messages=[{"role":"user","content":"hello"}], stream=False)
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"))
استلام النتائج وحفظها
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 claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · رسائل Anthropic POST /v1/messages claude-opus-5
claude-opus-5claude-opus-5anthropic/claude-opus-5
البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص
- النتائج
- json · sse
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · رسائل Anthropic POST /v1/messages
- الإدخال
text- الإخراج
json,sse- صيغة الإخراج
- JSON أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود claude-opus-5 | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود user, assistant | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلmax_tokens | النوعinteger | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
تركيبات مواد الإدخال
النص · نص UTF-8
سلسلة نصية messages[].content
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, messages, max_tokens |
المعلمةoptional_controls | المواصفاتstream |
المعلمةmaterial_types | المواصفاتtext |
المعلمةtext_file_material | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |
دورة الحياة: synchronous_or_streamed
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- التعرفة القياسية عند اختيار الوضع السريع
- الوضع المرن
- التعرفة القياسية عند اختيار وضع flex
- أقصى جهد للاستدلال
- التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
- جهد الاستدلال · مرتفع
- التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا
- جهد الاستدلال · منخفض
- التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا
- جهد الاستدلال · الحد الأقصى
- التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى
- جهد الاستدلال · متوسط
- التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا
- جهد الاستدلال · xhigh
- التعرفة القياسية عندما يكون جهد الاستدلال xhigh
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · رسائل Anthropic
{
"model": "claude-opus-5",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'claude-opus-5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'claude-opus-5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
استلام النتائج وحفظها
Ailoot Ultra · رسائل Anthropic
JSON أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلmodel | النوعstring |
الحقلcontent[] | النوعtext|thinking|tool_use|other content block |
الحقلstop_reason | النوعstring|null |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions anthropic/claude-opus-5
anthropic/claude-opus-5claude-opus-5anthropic/claude-opus-5
البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions
- الإدخال
text- الإخراج
text- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود anthropic/claude-opus-5 | القيمة الافتراضية— |
الحقل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 مع أقصى جهد للاستدلال
- جهد الاستدلال · مرتفع
- التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا
- جهد الاستدلال · منخفض
- التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا
- جهد الاستدلال · الحد الأقصى
- التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى
- جهد الاستدلال · متوسط
- التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا
- جهد الاستدلال · xhigh
- التعرفة القياسية عندما يكون جهد الاستدلال xhigh
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 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": "anthropic/claude-opus-5", "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='anthropic/claude-opus-5',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='anthropic/claude-opus-5',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 claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · رسائل Anthropic POST /v1/messages anthropic/claude-opus-5
anthropic/claude-opus-5claude-opus-5anthropic/claude-opus-5
البداية
صُمم Claude Opus 5 للتطوير المتأني وتحليل المعلومات والعمل المهني متعدد الخطوات. يدعم الاستدلال التكيفي والتحقق من النتائج باستخدام أدوات التطبيق.
- المدخلات المقبولة
- النص
- النتائج
- json · sse
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · رسائل Anthropic POST /v1/messages
- الإدخال
text- الإخراج
json,sse- صيغة الإخراج
- JSON أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود anthropic/claude-opus-5 | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود user, assistant | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلmax_tokens | النوعinteger | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
تركيبات مواد الإدخال
النص · نص UTF-8
سلسلة نصية messages[].content
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, messages, max_tokens |
المعلمةoptional_controls | المواصفاتstream |
المعلمةmaterial_types | المواصفاتtext |
المعلمةtext_file_material | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |
دورة الحياة: synchronous_or_streamed
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- التعرفة القياسية عند اختيار الوضع السريع
- الوضع المرن
- التعرفة القياسية عند اختيار وضع flex
- أقصى جهد للاستدلال
- التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
- جهد الاستدلال · مرتفع
- التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا
- جهد الاستدلال · منخفض
- التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا
- جهد الاستدلال · الحد الأقصى
- التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى
- جهد الاستدلال · متوسط
- التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا
- جهد الاستدلال · xhigh
- التعرفة القياسية عندما يكون جهد الاستدلال xhigh
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.01 / 1K من الرموز الإخراج · رموز الإخراج $0.05 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.001 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0.0125 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة $0.02 / 1K من الرموز |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · رسائل Anthropic
{
"model": "anthropic/claude-opus-5",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'anthropic/claude-opus-5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'anthropic/claude-opus-5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
استلام النتائج وحفظها
Ailoot Ultra · رسائل Anthropic
JSON أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلid | النوعstring |
الحقلmodel | النوعstring |
الحقلcontent[] | النوعtext|thinking|tool_use|other content block |
الحقلstop_reason | النوعstring|null |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot claude-opus-5
Ailoot Ultra claude-opus-5, anthropic/claude-opus-5
الأسماء البديلة لمسارات الطرائق
/chat/completions
معرّفات النماذج ذات الصلة IDs
FAQ · Anthropic: Claude Opus 5
- ما المدخلات والنتائج المتاحة؟
POST /v1/messages·claude-opus-5:text,image→textPOST /v1/responses·claude-opus-5:text,image→textPOST /v1/chat/completions·claude-opus-5:text,image→textPOST /v1/chat/completions·claude-opus-5:text→textPOST /v1/messages·claude-opus-5:text→json,ssePOST /v1/chat/completions·anthropic/claude-opus-5:text→textPOST /v1/messages·anthropic/claude-opus-5:text→json,sse- ما الحقول التي يستخدمها الطلب؟
POST /v1/messages·claude-opus-5:model,messages,system,max_tokens,stream,metadataPOST /v1/responses·claude-opus-5:model,input,instructions,streamPOST /v1/chat/completions·claude-opus-5:model,messages,streamPOST /v1/chat/completions·claude-opus-5:model,messages,streamPOST /v1/messages·claude-opus-5:model,messages,max_tokens,streamPOST /v1/chat/completions·anthropic/claude-opus-5:model,messages,stream,modalities,providerPOST /v1/messages·anthropic/claude-opus-5:model,messages,max_tokens,stream- ما الحدود المطبقة؟
POST /v1/messages·claude-opus-5:ctx:1000000;max_out:131072;messages.min_items:1;max_tokens.minimum:1POST /v1/responses·claude-opus-5:ctx:1000000;max_out:131072POST /v1/chat/completions·claude-opus-5:ctx:1000000;max_out:131072;messages.min_items:1POST /v1/chat/completions·claude-opus-5:messages.min_items:1POST /v1/chat/completions·anthropic/claude-opus-5:messages.min_items:1