OpenAI: GPT-5 Image Mini
يجمع GPT-5 Image Mini قدرات GPT-5 Mini اللغوية من OpenAI مع GPT Image 1 Mini للتوليد البصري والتعديلات الموجّهة بالمراجع. يقبل النصوص والصور والمستندات ويعيد النصوص والصور، داعمًا مسارات عمل تحتاج إلى إجابة مكتوبة وأصل بصري معًا.
- Ailoot Ultra · محادثة OpenAI
POST /v1/chat/completionsopenai/gpt-5-image-mini - Ailoot Ultra · الصور
POST /v1/images/generationsopenai/gpt-5-image-mini - Ailoot Ultra · رسائل Anthropic
POST /v1/messagesopenai/gpt-5-image-mini
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
GPT-5 Image Mini مواصفات تشغيل تجمع اللغة والصور، مبنية حول GPT-5 Mini وGPT Image 1 Mini من OpenAI. يفسّر مكوّنه اللغوي مهمة مكتوبة ومواد مصدرية، بينما ينشئ مكوّن الصور محتوى بصريًا أو يعدّله. تشدد المواصفات المنشورة على اتباع التعليمات وإظهار النصوص والتحرير التفصيلي للصور. يفيد في موجز بصري مركّز يحتاج أيضًا إلى تفسير نصي أو شرح أو نص داعم.
اجمع المهمة المكتوبة والنتيجة البصرية
أعدّ موجزًا يحدّد الأصل المطلوب والموضوع والتكوين والنص اللازم. صِف استخدام الصورة، مثل مفهوم منتج أو رسم يرافق شرحًا قصيرًا أو مسودة بصرية لصفحة. اطلب المخرجات المكتوبة والبصرية صراحةً ليسهل التمييز بين شرح المفهوم والصورة نفسها.
مثلًا، قدّم وصفًا لزجاجة ماء قابلة لإعادة الاستخدام، واطلب مفهوم مشهد منتج بسيطًا مع تعليق قصير. حدّد الشكل الظاهر للزجاجة والخلفية واتجاه الإضاءة والكلمات الدقيقة التي ينبغي أن تظهر في العمل البصري. أبقِ الحقائق المستخدمة في التعليق منفصلة عن تفاصيل الزينة في المشهد. راجع الصورة المعادة والنص المكتوب مقابل هذين الجزأين من الموجز.
تقبل مواصفات التشغيل المجمّعة الموثّقة النصوص والصور والملفات مثل PDF. يمكن لمستند أن يوفّر متطلبات أو حقائق لتفسيرها قبل إنشاء الصورة. ويمكن لصورة أن توفّر المظهر أو التخطيط أو مصدرًا للتحرير. بيّن دور كل مصدر بدل افتراض أن كل مرفق ينبغي أن يؤثر في كل جزء من النتيجة. أبقِ أسماء المصادر وترتيبها واضحين عند تقديم عدة مدخلات.
ولّد وعدّل باستخدام المراجع
لصورة جديدة، حدّد ما ينبغي أن يظهر وكيف ترتبط الأجزاء بعضها ببعض. لتحرير موجّه بالمراجع، حدّد التغيير والتفاصيل المطلوب الحفاظ عليها. قد يطلب مشهد منتج مكانًا جديدًا مع الحفاظ على الشكل المميّز للعنصر وتسميته الظاهرة. وقد يطلب مخطط تصحيح علاقة مع تسمية النصوص والعناصر التي ينبغي أن تبقى.
تسمح البطاقة المنشورة لهذه المواصفات باستخدام ما يصل إلى ست عشرة صورة مرجعية للتحرير. اختر مراجع تسهم في المهمة، واشرح الغرض منها: المنتج أو الشخصية أو الخلفية أو المعالجة البصرية. قد تحتوي عدة مراجع على إضاءة أو تكوينات متعارضة، لذا سمِّ النتيجة المقصودة بوضوح. افحص تفاصيل الموضوع والكتابة وحدود التغيير المطلوب في الصورة الفعلية المعادة.
إظهار النصوص قدرة موثّقة، لكن المسودة البصرية تظل تحتاج إلى فحص كلمة بكلمة. قدّم الصياغة الدقيقة وعلامات الترقيم والموضع، ثم قارن التسميات والأرقام المهمة بالموجز عند حجم العرض المقصود. لسلسلة متكررة، احتفظ بالمراجع والمتطلبات البصرية مع كل نتيجة، وقارن الصور المكتملة معًا.
سياق العمل والضوابط
تعلن المواصفات المجمّعة نافذة سياق قدرها 400,000 رمز وما يصل إلى 128,000 رمز لإكمال الإجابة. هذه حدود لسياق العمل وإكمال الإجابة، منفصلة عن أبعاد الصورة بالبكسل أو عدد الصور الناتجة المعادة. نظّم المواد المصدرية الطويلة حول التفسير المطلوب واترك مساحة للإجابة. موجز مركّز مع مراجع ذات صلة أنفع من مستندات غير مرتبطة لم يُشرح دورها.
يدعم عقد الإخراج النصي المنشور نتائج منظمة وفق مخطط JSON. حدّد الحقول وأنواعها عندما يحتاج التطبيق إلى استهلاك نتيجة مكتوبة، وتحقق من القيم مقابل الأدلة المقدمة. لا تتيح المواصفات المجمّعة استدعاء دوال التطبيق. استخدام مكوّن لغوي مع توليد الصور قدرة مسمّاة ضمن هذه المواصفات؛ ولا يجعل كل ميزة في واجهة GPT-5 Mini المستقلة جزءًا من سير العمل هذا.
ينبغي أخذ إعدادات الصور من المواصفات والواجهة المحددتين المستخدمتين فعلًا. احتفظ بالتهيئة المختارة مع الموجّه عند مقارنة التعديلات. للمكوّن GPT Image 1 Mini المباشر ولإعداد المحادثة المجمّع ترتيبات طلب مختلفة، لذا تحتاج ضوابط الحجم أو الأقنعة أو الإخراج الخاصة بالمكوّن إلى ربط صريح قبل التعامل معها كإعدادات لهذه المواصفات المجمّعة.
احتفظ بالنصوص والصور الناتجة
يمكن لمخطط طلب المحادثة الموثّق اختيار text وimage كنمطي إخراج. عالج النص المعاد وكل صورة فعلية ترافق إكمال الإجابة. احفظ الصور بالتنسيق الذي تحدّده النتيجة، واحتفظ بالإجابة المكتوبة مع الموجّه والمراجع المصدرية والإعدادات. إكمال يتضمن نصًا توضيحيًا فقط يختلف عن ناتج بصري مكتمل، لذا افحص ما تتضمنه النتيجة فعلًا قبل استخدامها في تخطيط.
يتميز GPT-5 Image Mini عن مواصفات GPT-5 Image الكاملة التي تجمع GPT-5 مع GPT Image 1. استخدم مواصفات Mini للمهام اللغوية والبصرية المحددة التي يكون موجزها ومعايير مراجعتها واضحين. افحص التكوين وهوية الأجسام ونص الصورة والنص الداعم، ثم اطلب التصحيح المحدد اللازم. احتفظ بالعناصر الناجحة والمراجع ذات الصلة في الموجز التالي ليكون للتعديل هدف ملموس.
مهمة عملية
مهمة عملية
مثال تقني باللغة الإنجليزية
Create a labelled refill-bottle scene
Create a product-scene image of a plain cylindrical blue reusable water bottle with a silver screw cap, standing upright on pale stone. Soft daylight enters from the left. Place the exact word REFILL clearly on the bottle, with no other text, logos, accessories or unsupported product claims. Keep the full bottle visible.النتيجة المتوقعة
One image artifact showing the full specified bottle, left-side daylight and the exact single-word label.التحقق من النتيجة
Inspect the actual image for bottle shape, cap, complete framing and letter-by-letter spelling of REFILL.Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions openai/gpt-5-image-mini
openai/gpt-5-image-miniالبداية
يجمع GPT-5 Image Mini قدرات GPT-5 Mini اللغوية من OpenAI مع GPT Image 1 Mini للتوليد البصري والتعديلات الموجّهة بالمراجع. يقبل النصوص والصور والمستندات ويعيد النصوص والصور، داعمًا مسارات عمل تحتاج إلى إجابة مكتوبة وأصل بصري معًا.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions
- الإدخال
text- الإخراج
text- صيغة الإخراج
- json أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود openai/gpt-5-image-mini | القيمة الافتراضية— |
الحقلmessages | النوعmessage[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلmessages[].role | النوعstring | المتطلبمطلوب | القيم والحدود أمثلة: system, user, assistant, tool, function الشروط: تُمثَّل هذه الأدوار صراحةً بأنواع التوافق في الشيفرة المصدرية؛ وتظل مجموعة الأدوار الدقيقة خاصة بكل نموذج. يعتمد على النموذج | القيمة الافتراضية— |
الحقلmessages[].content | النوعstring|content_part[]|null | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].tool_calls | النوعtool_call[] | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].tool_call_id | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: role=tool؛ استخدم المعرّف الفعلي المُرجع | القيمة الافتراضية— |
الحقلmessages[].name | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلmessages[].reasoning_content | النوعstring | المتطلباختياري | القيم والحدود ينطبق عندما: أعِد تمرير الاستدلال الفعلي المُرجع حيث يستخدمه هذا النموذج | القيمة الافتراضية— |
الحقلmessages[].reasoning_details | النوعobject|array | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmax_tokens | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 يعتمد على النموذج | القيمة الافتراضية— |
الحقلmax_completion_tokens | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 يعتمد على النموذج | القيمة الافتراضية— |
الحقلstream | النوعboolean | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |
الحقلstream_options.include_usage | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtemperature | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtop_p | النوعnumber | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلstop | النوعstring|string[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools | النوعfunction_tool[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools[].type | النوعstring | المتطلباختياري | القيم والحدود function يعتمد على النموذج | القيمة الافتراضية— |
الحقلtools[].function.name | النوعstring | المتطلبمطلوب | القيم والحدود ينطبق عندما: أداة دالة مقدّمة | القيمة الافتراضية— |
الحقلtools[].function.description | النوعstring | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtools[].function.parameters | النوعJSON_schema | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلtool_choice | النوعstring|object | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلparallel_tool_calls | النوعboolean | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلresponse_format | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning_effort | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلreasoning | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلservice_tier | النوعstring | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلinstructions | النوعstring | المتطلباختياري | القيم والحدود حقل للتوافق | القيمة الافتراضية— |
الحقلfunctions | النوعfunction[] | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلfunction_call | النوعstring|object | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلprompt_cache_options | النوعobject | المتطلباختياري | القيم والحدود يعتمد على النموذج | القيمة الافتراضية— |
الحقلmodalities | النوعstring[] | المتطلباختياري | القيم والحدود text | القيمة الافتراضية— |
الحقلprovider | النوعobject | المتطلباختياري | القيم والحدود الشروط: يُرفَض provider.options في مسار Ultra النصي هذا | القيمة الافتراضية— |
الحقلcache_control.ttl | النوعstring | المتطلباختياري | القيم والحدود الشروط: تُرفَض 1h في المواضع الفعلية للتخزين المؤقت للموجّه | القيمة الافتراضية— |
تركيبات مواد الإدخال
النص · نص UTF8
messages[].content
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, messages |
المعلمةmaterial_types | المواصفاتtext |
المعلمةmessages | المواصفاتمصفوفة رسائل ببنية role/content |
المعلمةfile_material | المواصفاتمستند UTF-8 الفعلي مُدرج كنص حرفي؛ لا يُستنتَج معرّف ملف |
المعلمةoptional_controls | المواصفاتstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
المعلمةcontrol_scope | المواصفاتخاص بالنموذج؛ أدوات الدوال التي يقدّمها المستخدم تختلف عن الأدوات المستضافة |
المعلمةoutput_modalities | المواصفاتtext |
المعلمةhosted_operations | المواصفاتfalse |
المعلمةmultimodal_input_binding | المواصفاتnull |
دورة الحياة: synchronous_or_streamed
أرسل معرّف النموذج الدقيق مع messages.
طول السياق ليس حدًا أقصى للإخراج.
يمكن لملف نصي تقديم نص حرفي؛ وتحتاج مدخلات الصور/الصوت/كائنات الملفات إلى ربط دقيق.
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- التعرفة القياسية عند اختيار الوضع السريع
- الوضع المرن
- التعرفة القياسية عند اختيار وضع flex
- أقصى جهد للاستدلال
- التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.005 / 1K من الرموز الإخراج · رموز الإخراج $0.004 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.0005 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز الإخراج · رموز إخراج الصور $0.016 / 1K من رموز الصور |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.005 / 1K من الرموز الإخراج · رموز الإخراج $0.004 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.0005 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
تفاصيل التعرفة المرجعية
لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.
OpenAI: GPT-5 Image Mini
الأسعار حسب الإعدادات
| الإعدادات | شروط الفوترة | الرسوم |
|---|---|---|
| الإعداداتOpenAI: GPT-5 Image Mini · الإعداد الافتراضي | شروط الفوترةالإعداد الافتراضي | الرسوم الإدخال · رموز الإدخال 0.005 US$ / 1K من الرموز الإخراج · رموز الإخراج 0.004 US$ / 1K من الرموز الإخراج · صورة المخرجات 0.016 US$ / 1K من الرموز الإخراج · البحث في الويب 0.02 US$ لكل عملية بحث الإدخال · قراءة ذاكرة التخزين المؤقت 0.0005 US$ / 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": "openai/gpt-5-image-mini", "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='openai/gpt-5-image-mini',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='openai/gpt-5-image-mini',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
استلام النتائج وحفظها
Ailoot Ultra · محادثة OpenAI
json أو SSE
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بكل اختيار ومحتواه واستدعاءات أدواته واستدلاله. في SSE، جمّع التحديثات بحسب فهرس الاختيار/الأداة، واحتفظ بسبب الإنهاء النهائي والاستخدام.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلchoices[].index | النوعinteger |
الحقلchoices[].message.content | النوعstring|null |
الحقلchoices[].message.tool_calls | النوعtool_call[] |
الحقلchoices[].message.reasoning_content | النوعstring |
الحقلchoices[].message.reasoning_details | النوعobject|array |
الحقلchoices[].finish_reason | النوعstring|null |
الحقلusage | النوعobject |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra openai/gpt-5-image-mini
الأسماء البديلة لمسارات الطرائق
/v1/images
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · الصور POST /v1/images/generations openai/gpt-5-image-mini
openai/gpt-5-image-miniالبداية
يجمع GPT-5 Image Mini قدرات GPT-5 Mini اللغوية من OpenAI مع GPT Image 1 Mini للتوليد البصري والتعديلات الموجّهة بالمراجع. يقبل النصوص والصور والمستندات ويعيد النصوص والصور، داعمًا مسارات عمل تحتاج إلى إجابة مكتوبة وأصل بصري معًا.
- المدخلات المقبولة
- النص · الصور
- النتائج
- الصور
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · الصور POST /v1/images/generations
- الإدخال
text,image- الإخراج
image
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود openai/gpt-5-image-mini | القيمة الافتراضية— |
الحقلprompt | النوعstring | المتطلبمطلوب | القيم والحدود الحد الأدنى للطول: 1 | القيمة الافتراضية— |
الحقلaspect_ratio | النوعstring | المتطلباختياري | القيم والحدود 1:1, 3:2, 2:3, auto | القيمة الافتراضية— |
الحقلquality | النوعstring | المتطلباختياري | القيم والحدود auto, low, medium, high | القيمة الافتراضية— |
الحقلbackground | النوعstring | المتطلباختياري | القيم والحدود auto, transparent, opaque | القيمة الافتراضية— |
الحقلn | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 1 الحد الأقصى: 10 | القيمة الافتراضية— |
الحقلinput_references | النوعarray | المتطلباختياري | القيم والحدود الحد الأدنى للعناصر: 0 الحد الأقصى للعناصر: 16 | القيمة الافتراضية— |
الحقلoutput_compression | النوعinteger | المتطلباختياري | القيم والحدود الحد الأدنى: 0 الحد الأقصى: 100 | القيمة الافتراضية— |
الحقلprovider | النوعobject | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتmodel, prompt |
المعلمةmaterial_types | المواصفاتtext, image |
دورة الحياة: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
الباقات
كيفية احتساب الرسوم النهائية
تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- غير محدد عند اختيار الوضع السريع
- الوضع المرن
- غير محدد عند اختيار وضع flex
- أقصى جهد للاستدلال
- غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
تعرفات تقديرية للمقارنة
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | الكمية المتوقعة | الرسوم |
|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | الكمية المتوقعة— | الرسوم الإدخال · رموز الإدخال · تقدير للمقارنة فقط — / 1K من الرموز الإخراج · رموز الإخراج · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط — / 1K من الرموز |
| الإعداداتتكلفة التوليد التقديرية | جدول التعرفة— | الكمية المتوقعةتقدير لتوليد واحد | الرسوم الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط $0.065536 تقدير قبل الإنشاء هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة. |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · الصور
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'openai/gpt-5-image-mini', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
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/images/generations \
-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, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
استلام النتائج وحفظها
Ailoot Ultra · الصور
نزّل كل صورة مُرجعة أو احفظ محتواها بصيغة Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
عمليات أخرى لقراءة المحتوى
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
الاحتفاظ بكل النتائج المكتملة
احفظ كل صورة مكتملة؛ نزّلها من كل URL مُرجع، أو فك ترميز محتواها بصيغة Base64.
احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلcreated | النوع |
الحقلdata[].url | النوع |
الحقلdata[].b64_json | النوع |
الحقلusage | النوع |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra openai/gpt-5-image-mini
الأسماء البديلة لمسارات الطرائق
/v1/images
معرّفات النماذج ذات الصلة IDs
Ailoot Ultra · رسائل Anthropic POST /v1/messages openai/gpt-5-image-mini
openai/gpt-5-image-miniالبداية
يجمع GPT-5 Image Mini قدرات GPT-5 Mini اللغوية من OpenAI مع GPT Image 1 Mini للتوليد البصري والتعديلات الموجّهة بالمراجع. يقبل النصوص والصور والمستندات ويعيد النصوص والصور، داعمًا مسارات عمل تحتاج إلى إجابة مكتوبة وأصل بصري معًا.
- المدخلات المقبولة
- النص
- النتائج
- json · sse
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · رسائل Anthropic POST /v1/messages
- الإدخال
text- الإخراج
json,sse- صيغة الإخراج
- JSON أو SSE
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود openai/gpt-5-image-mini | القيمة الافتراضية— |
الحقل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 مع أقصى جهد للاستدلال
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.005 / 1K من الرموز الإخراج · رموز الإخراج $0.004 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.0005 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز الإخراج · رموز إخراج الصور $0.016 / 1K من رموز الصور |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.005 / 1K من الرموز الإخراج · رموز الإخراج $0.004 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.0005 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · رسائل Anthropic
{
"model": "openai/gpt-5-image-mini",
"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': 'openai/gpt-5-image-mini', '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': 'openai/gpt-5-image-mini', '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 Ultra openai/gpt-5-image-mini
الأسماء البديلة لمسارات الطرائق
/v1/images
معرّفات النماذج ذات الصلة IDs
FAQ · OpenAI: GPT-5 Image Mini
- ما المدخلات والنتائج المتاحة؟
POST /v1/chat/completions·openai/gpt-5-image-mini:text→textPOST /v1/images/generations·openai/gpt-5-image-mini:text,image→imagePOST /v1/messages·openai/gpt-5-image-mini:text→json,sse- ما الحقول التي يستخدمها الطلب؟
POST /v1/chat/completions·openai/gpt-5-image-mini:model,messages,stream,modalities,providerPOST /v1/images/generations·openai/gpt-5-image-mini:model,prompt,aspect_ratio,quality,background,n,input_references,output_compression,providerPOST /v1/messages·openai/gpt-5-image-mini:model,messages,max_tokens,stream- ما الحدود المطبقة؟
POST /v1/chat/completions·openai/gpt-5-image-mini:messages.min_items:1POST /v1/images/generations·openai/gpt-5-image-mini:n.minimum:1;n.maximum:10;output_compression.minimum:0;output_compression.maximum:100