Source: https://ailoot.ai/models/ar/gpt-6-luna/
Canonical: https://ailoot.ai/models/ar/gpt-6-luna/
Language: ar

# OpenAI: GPT-6 Luna

[Markdown](https://ailoot.ai/models/ar/gpt-6-luna/index.md) · [JSON](https://ailoot.ai/models/ar/gpt-6-luna/facts.json)

## [OpenAI: GPT-6 Luna](https://ailoot.ai/models/ar/gpt-6-luna/)

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

- [**Ailoot · رسائل Anthropic** `POST /v1/messages` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-0)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-1)
- [**Ailoot · محادثة OpenAI** `POST /v1/chat/completions` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-2)
- [**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-3)
- [**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-4)
- [**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-5)
- [**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `openai/gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-6)
- [**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `openai/gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-7)
- [**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `openai/gpt-6-luna`](https://ailoot.ai/models/ar/gpt-6-luna/#method-8)
- [**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/gpt-6-luna/#method-9)
- [**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/gpt-6-luna/#method-10)
- [**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/gpt-6-luna/#method-11)

عن النموذج

يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.

#### تدفق كبير من المهام ذات الهدف الواضح

GPT-6 Luna نموذج من OpenAI لمهام محددة التركيز تُنفذ بأعداد كبيرة. ويقدمه المصنّع بوصفه خيارًا من العائلة لمعالجة هذا التدفق بكفاءة. يستقبل النموذج النص والصور وينتج النص ويدعم ضبط عمق الاستدلال.

قد تشمل المدخلات تعليمات ومواد العمل، وتكون النتيجة إجابة عادية أو كائنًا ببنية محددة. ويتيح الإخراج التدريجي تلقي النص تباعًا. ويفيد مخطط النتيجة عندما تتوقع الخطوة التالية حقولًا وأنواع بيانات معينة.

#### اختيار الجهد ونمط العمل

يدعم `none` و`low` و`medium` و`high` و`xhigh` و`max`؛ والقيمة الافتراضية هي `medium`. وتُخصص القيمة `none` للمعالجة دون استدلال. يمكن تغيير الجهد حسب المهمة وتحديد طول النص النهائي بصورة مستقلة.

يُختار نمطا التنفيذ العادي والموسع لدى المصنّع بصورة مستقلة عن عمق الاستدلال. ويُستخدم العادي افتراضيًا. أما الموسع فمخصص للمهام المعقدة التي يمكن تخصيص وقت إضافي وتوكنات أكثر لها. يحدد النمط طريقة المعالجة، بينما يضبط مستوى الجهد الاستدلال داخله. ويُوصف هذا الاختيار لـ`Responses` ويتطلب دعم التطبيق؛ ولا يُعد مفعّلًا في كل طريقة من طرق Ailoot.

يُستخدم `Responses` للعمل بالأدوات والاستدلال. وفي صيغة `Chat Completions` يُسمح باستدعاء الدوال فقط عند المستوى `none`. لذا لا تعني أسماء الدوال المتطابقة طريقة استخدام متطابقة في جميع الصيغ.

#### السياق والمخرجات

تذكر OpenAI نافذة سياق قدرها 1 050 000 توكن، وحدًا للمدخلات قدره 922 000 وللمخرجات قدره 128 000 توكن. وتاريخ آخر المعارف هو 18 مايو 2026. يستوعب السياق الكبير المواد والسجل، بينما يحد حد المخرجات تكوين النتيجة بصورة مستقلة.

الصور جزء من المدخلات: يحلل النموذج المادة المرئية ويجيب نصيًا. ويشمل حساب ميزانية المخرجات الاستدلال الداخلي؛ ولا يضمن الحد الأقصى المسموح للمخرجات إجابة ظاهرة بالطول نفسه. وللحصول على معلومات جديدة يمكن تقديمها في الطلب أو توصيل الأداة المتاحة لذلك.

#### المعلومات والإجراءات عبر الأدوات المتصلة

تشمل بطاقة المصنّع استدعاء الدوال والبحث في الإنترنت والملفات وتنفيذ الشيفرة والأوامر وتعديل الملفات والعمل بواجهة الحاسوب والبحث عن الأدوات. يختار النموذج إجراءً من المجموعة المقدمة ويستخدم المعلومات المُعادة لمتابعة الإجابة.

عند توافر الاتصال المناسب، يوفر المصنّع أيضًا أداة مستقلة لتوليد الصور والعمل بالمهارات ووسائل خارجية عبر MCP. وتبقى الإجابة المباشرة للنموذج نصية؛ إذ تُنشئ أداة مستقلة نتيجة توليد الصورة. ولا يعني وجودها لدى المصنّع اتصال هذه الإمكانات بكل طريقة من طرق Ailoot.

تُحدد المجموعة المتاحة حسب الطريقة والتطبيق. وينفذ التطبيق الدالة التي يحددها المستخدم: يصوغ النموذج الوسائط ثم يتلقى النتيجة. وتحدد الإجابة المنظمة شكل البيانات، بينما تبقى صحة المعلومات مسألة مستقلة.

تدعم بادئة المدخلات المتكررة التخزين المؤقت. ويمكن إعادة استخدام التعليمات والمواد الثابتة في بداية الطلب؛ أما إضافة شروط جديدة فتتطلب تمريرها في الطلب الحالي.

مهمة عملية

### مهمة عملية

مثال تقني باللغة الإنجليزية

```
Normalize a simple order note

Convert this order note into a compact record: "PO-84: 3 packs of filters at 7 units per pack; delivery requested for Friday, not confirmed." Return order ID, pack count, units per pack, total units and delivery status as labelled lines. Retain the distinction between requested and confirmed delivery.
```

#### النتيجة المتوقعة

```
Five labelled fields with total units calculated from the supplied counts and delivery marked requested, unconfirmed.
```

#### التحقق من النتيجة

```
Check the total equals packs times units per pack and Friday is not described as confirmed.
```

**Ailoot · رسائل Anthropic** `POST /v1/messages` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages)

OpenAI /`gpt-6-luna`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص · الصور

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot · رسائل Anthropic** `POST /v1/messages`

الإدخال

`text`, `image`

الإخراج

`text`

السياق

⁦1,050,000⁩ tokens

الحد الأقصى للإخراج

⁦128,000⁩ tokens

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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

الإدخال

⁦‏0.0001 US$⁩ */ 1K*

الإخراج

⁦‏0.0005 US$⁩ */ 1K*

قراءة ذاكرة التخزين المؤقت

⁦‏0.00001 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت

⁦‏0.000125 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق

⁦‏0.000125 US$⁩ */ 1K tokens*

مضاعف fast

×2

مضاعف flex

×0.5

#### الأسعار بحسب طول الطلب · رسائل Anthropic

| حجم الطلب بالرموز | الإدخال | الإخراج | قراءة ذاكرة التخزين المؤقت | الكتابة إلى ذاكرة التخزين المؤقت | ذاكرة التخزين المؤقت 5 دقائق | ذاكرة التخزين المؤقت 1 ساعة |
| --- | --- | --- | --- | --- | --- | --- |
| حجم الطلب بالرموز(⁦0⁩; ⁦272,000⁩\] | الإدخال⁦‏0.0001 US$⁩ | الإخراج⁦‏0.0005 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00001 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |
| حجم الطلب بالرموز(⁦272,000⁩; ∞) | الإدخال⁦‏0.0002 US$⁩ | الإخراج⁦‏0.00075 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00002 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |

الأسعار بوحدة USD لكل 1K من الرموز. عند عدم تحديد تعرفة، تُستخدم التعرفة الأساسية لهذه الطريقة؛ وتشير «—» إلى عدم تحديد تعرفة أساسية.

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

#### تفاصيل التعرفة المرجعية

لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.

جداول التعرفة المرجعية للنموذج

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

### أمثلة للطلبات

#### Ailoot · رسائل Anthropic

مثال للنصالإدخال، صورةPython SDKNode.js SDKالبث باستخدام Python

```bash
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": "gpt-6-luna", "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
```

```bash
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": "gpt-6-luna", "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
```

```python
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="gpt-6-luna",
    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"))
```

```js
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: "gpt-6-luna",
  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);
```

```python
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='gpt-6-luna',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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses)

OpenAI /`gpt-6-luna`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص · الصور

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot · OpenAI Responses** `POST /v1/responses`

الإدخال

`text`, `image`

الإخراج

`text`

السياق

⁦1,050,000⁩ tokens

الحد الأقصى للإخراج

⁦128,000⁩ tokens

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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

الإدخال

⁦‏0.0001 US$⁩ */ 1K*

الإخراج

⁦‏0.0005 US$⁩ */ 1K*

قراءة ذاكرة التخزين المؤقت

⁦‏0.00001 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت

⁦‏0.000125 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق

⁦‏0.000125 US$⁩ */ 1K tokens*

مضاعف fast

×2

مضاعف flex

×0.5

#### الأسعار بحسب طول الطلب · OpenAI Responses

| حجم الطلب بالرموز | الإدخال | الإخراج | قراءة ذاكرة التخزين المؤقت | الكتابة إلى ذاكرة التخزين المؤقت | ذاكرة التخزين المؤقت 5 دقائق | ذاكرة التخزين المؤقت 1 ساعة |
| --- | --- | --- | --- | --- | --- | --- |
| حجم الطلب بالرموز(⁦0⁩; ⁦272,000⁩\] | الإدخال⁦‏0.0001 US$⁩ | الإخراج⁦‏0.0005 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00001 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |
| حجم الطلب بالرموز(⁦272,000⁩; ∞) | الإدخال⁦‏0.0002 US$⁩ | الإخراج⁦‏0.00075 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00002 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |

الأسعار بوحدة USD لكل 1K من الرموز. عند عدم تحديد تعرفة، تُستخدم التعرفة الأساسية لهذه الطريقة؛ وتشير «—» إلى عدم تحديد تعرفة أساسية.

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

#### تفاصيل التعرفة المرجعية

لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.

جداول التعرفة المرجعية للنموذج

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

### أمثلة للطلبات

#### Ailoot · OpenAI Responses

مثال للنصالإدخال، صورةPython SDKNode.js SDKالبث باستخدام Python

```bash
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": "gpt-6-luna", "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
```

```bash
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": "gpt-6-luna", "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
```

```python
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="gpt-6-luna", 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"))
```

```js
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: "gpt-6-luna", 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);
```

```python
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="gpt-6-luna", 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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses)

**Ailoot · محادثة OpenAI** `POST /v1/chat/completions` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat)

OpenAI /`gpt-6-luna`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص · الصور

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot · محادثة OpenAI** `POST /v1/chat/completions`

الإدخال

`text`, `image`

الإخراج

`text`

السياق

⁦1,050,000⁩ tokens

الحد الأقصى للإخراج

⁦128,000⁩ tokens

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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

الإدخال

⁦‏0.0001 US$⁩ */ 1K*

الإخراج

⁦‏0.0005 US$⁩ */ 1K*

قراءة ذاكرة التخزين المؤقت

⁦‏0.00001 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت

⁦‏0.000125 US$⁩ */ 1K*

الكتابة إلى ذاكرة التخزين المؤقت، 5 دقائق

⁦‏0.000125 US$⁩ */ 1K tokens*

مضاعف fast

×2

مضاعف flex

×0.5

#### الأسعار بحسب طول الطلب · محادثة OpenAI

| حجم الطلب بالرموز | الإدخال | الإخراج | قراءة ذاكرة التخزين المؤقت | الكتابة إلى ذاكرة التخزين المؤقت | ذاكرة التخزين المؤقت 5 دقائق | ذاكرة التخزين المؤقت 1 ساعة |
| --- | --- | --- | --- | --- | --- | --- |
| حجم الطلب بالرموز(⁦0⁩; ⁦272,000⁩\] | الإدخال⁦‏0.0001 US$⁩ | الإخراج⁦‏0.0005 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00001 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.000125 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |
| حجم الطلب بالرموز(⁦272,000⁩; ∞) | الإدخال⁦‏0.0002 US$⁩ | الإخراج⁦‏0.00075 US$⁩ | قراءة ذاكرة التخزين المؤقت⁦‏0.00002 US$⁩ | الكتابة إلى ذاكرة التخزين المؤقت⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 5 دقائق⁦‏0.00025 US$⁩ | ذاكرة التخزين المؤقت 1 ساعةالأساسية: — |

الأسعار بوحدة USD لكل 1K من الرموز. عند عدم تحديد تعرفة، تُستخدم التعرفة الأساسية لهذه الطريقة؛ وتشير «—» إلى عدم تحديد تعرفة أساسية.

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

#### تفاصيل التعرفة المرجعية

لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.

جداول التعرفة المرجعية للنموذج

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتOpenAI Chat · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Chat · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتAnthropic Messages · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الأسعار الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 1 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتOpenAI Responses · الشريحة 2 حسب طول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

### أمثلة للطلبات

#### Ailoot · محادثة OpenAI

مثال للنصالإدخال، صورةPython SDKNode.js SDKالبث باستخدام Python

```bash
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": "gpt-6-luna", "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
```

```bash
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": "gpt-6-luna", "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
```

```python
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="gpt-6-luna",
    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"))
```

```js
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: "gpt-6-luna",
  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);
```

```python
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='gpt-6-luna',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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat)

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat)

OpenAI /`gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · محادثة OpenAI

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gpt-6-luna","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
```

```python
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="gpt-6-luna", 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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat)

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages)

OpenAI /`gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

json · sse

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages`

الإدخال

`text`

الإخراج

`json`, `sse`

صيغة الإخراج

JSON أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · رسائل Anthropic

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "gpt-6-luna",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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': 'gpt-6-luna', '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
```

```python
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': 'gpt-6-luna', '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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages)

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `gpt-6-luna`

[`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses)

OpenAI /`gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json or SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود gpt-6-luna | القيمة الافتراضية— |
| الحقل`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 or input_text part`

**نص + صورة**

`{type:input_image,image_url}`

معلمات الطريقة ودورة حياتها

| المعلمة | المواصفات |
| --- | --- |
| المعلمة`material_types` | المواصفاتtext |
| المعلمة`required` | المواصفاتmodel, input |
| المعلمة`optional_controls` | المواصفاتnull |
| المعلمة`content_type` | المواصفاتapplication/json |
| المعلمة`text_file_material` | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |

دورة الحياة: `exact retained published method`

أرسل معرّف النموذج الدقيق والحقول المطلوبة.

احتفظ بكل عنصر مُعاد وبمعرّفاته الأصلية.

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

جهد الاستدلال · مرتفع

التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا

جهد الاستدلال · منخفض

التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا

جهد الاستدلال · الحد الأقصى

التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى

جهد الاستدلال · متوسط

التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا

جهد الاستدلال · معدوم

التعرفة القياسية عندما لا يُستخدم جهد للاستدلال

جهد الاستدلال · xhigh

التعرفة القياسية عندما يكون جهد الاستدلال xhigh

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · OpenAI Responses

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "gpt-6-luna",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
```

```bash
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': 'gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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/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 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
```

```python
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': 'gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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 = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', 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 · OpenAI Responses

json or 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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses)

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `openai/gpt-6-luna`

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat)

OpenAI /`openai/gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود openai/gpt-6-luna | القيمة الافتراضية— |
| الحقل`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.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · محادثة OpenAI

curlPython SDKالبث باستخدام Python

```bash
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-6-luna", "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
```

```python
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-6-luna',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"))
```

```python
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-6-luna',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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat)

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `openai/gpt-6-luna`

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages)

OpenAI /`openai/gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود openai/gpt-6-luna | القيمة الافتراضية— |
| الحقل`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 |
| المعلمة`required` | المواصفاتmodel, messages, max\_tokens |
| المعلمة`optional_controls` | المواصفاتnull |
| المعلمة`content_type` | المواصفاتapplication/json |
| المعلمة`text_file_material` | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |

دورة الحياة: `exact retained published method`

أرسل معرّف النموذج الدقيق والحقول المطلوبة.

احتفظ بكل عنصر مُعاد وبمعرّفاته الأصلية.

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

جهد الاستدلال · مرتفع

التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا

جهد الاستدلال · منخفض

التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا

جهد الاستدلال · الحد الأقصى

التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى

جهد الاستدلال · متوسط

التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا

جهد الاستدلال · معدوم

التعرفة القياسية عندما لا يُستخدم جهد للاستدلال

جهد الاستدلال · xhigh

التعرفة القياسية عندما يكون جهد الاستدلال xhigh

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · رسائل Anthropic

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "openai/gpt-6-luna",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ]
}
```

```bash
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-6-luna', 'max_tokens': 4096, '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
```

```python
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-6-luna', 'max_tokens': 4096, '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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages)

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `openai/gpt-6-luna`

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses)

OpenAI /`openai/gpt-6-luna`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود openai/gpt-6-luna | القيمة الافتراضية— |
| الحقل`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 |
| المعلمة`required` | المواصفاتmodel, input |
| المعلمة`optional_controls` | المواصفاتnull |
| المعلمة`content_type` | المواصفاتapplication/json |
| المعلمة`text_file_material` | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |

دورة الحياة: `exact retained published method`

أرسل معرّف النموذج الدقيق والحقول المطلوبة.

احتفظ بكل عنصر مُعاد وبمعرّفاته الأصلية.

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

جهد الاستدلال · مرتفع

التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا

جهد الاستدلال · منخفض

التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا

جهد الاستدلال · الحد الأقصى

التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى

جهد الاستدلال · متوسط

التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا

جهد الاستدلال · معدوم

التعرفة القياسية عندما لا يُستخدم جهد للاستدلال

جهد الاستدلال · xhigh

التعرفة القياسية عندما يكون جهد الاستدلال xhigh

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · OpenAI Responses

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "openai/gpt-6-luna",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
```

```bash
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-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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/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 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
```

```python
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-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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 = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', 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 · 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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses)

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `~openai/gpt-luna-latest`

[`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat)

OpenAI /`~openai/gpt-luna-latest`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود ~openai/gpt-luna-latest | القيمة الافتراضية— |
| الحقل`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.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · محادثة OpenAI

curlPython SDKالبث باستخدام Python

```bash
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-luna-latest", "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
```

```python
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-luna-latest',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"))
```

```python
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-luna-latest',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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=chat), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=chat), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=chat)

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `~openai/gpt-luna-latest`

[`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages)

OpenAI /`~openai/gpt-luna-latest`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

json · sse

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages`

الإدخال

`text`

الإخراج

`json`, `sse`

صيغة الإخراج

JSON أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود ~openai/gpt-luna-latest | القيمة الافتراضية— |
| الحقل`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.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · رسائل Anthropic

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "~openai/gpt-luna-latest",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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-luna-latest', '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
```

```python
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-luna-latest', '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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=messages), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=messages), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=messages)

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `~openai/gpt-luna-latest`

[`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses)

OpenAI /`~openai/gpt-luna-latest`

معرّف النموذج ID

- `gpt-6-luna`
- `openai/gpt-6-luna`
- `~openai/gpt-luna-latest`

### البداية

GPT-6 Luna مخصصة للمهام المعتادة ذات الحجم الكبير من الطلبات. تستقبل النص والصور، وتدعم نمطًا دون استدلال وعدة مستويات لعمقه.

المدخلات المقبولة

النص

النتائج

النص

### متاح في Ailoot · المدخلات والطرائق

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses`

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json or SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود ~openai/gpt-luna-latest | القيمة الافتراضية— |
| الحقل`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 or input_text part`

**نص + صورة**

`{type:input_image,image_url}`

معلمات الطريقة ودورة حياتها

| المعلمة | المواصفات |
| --- | --- |
| المعلمة`material_types` | المواصفاتtext |
| المعلمة`required` | المواصفاتmodel, input |
| المعلمة`optional_controls` | المواصفاتnull |
| المعلمة`content_type` | المواصفاتapplication/json |
| المعلمة`text_file_material` | المواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة. |

دورة الحياة: `exact retained published method`

أرسل معرّف النموذج الدقيق والحقول المطلوبة.

احتفظ بكل عنصر مُعاد وبمعرّفاته الأصلية.

### الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع

التعرفة القياسية عند اختيار الوضع السريع

الوضع المرن

التعرفة القياسية عند اختيار وضع flex

أقصى جهد للاستدلال

التعرفة القياسية عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

جهد الاستدلال · مرتفع

التعرفة القياسية عندما يكون جهد الاستدلال مرتفعًا

جهد الاستدلال · منخفض

التعرفة القياسية عندما يكون جهد الاستدلال منخفضًا

جهد الاستدلال · الحد الأقصى

التعرفة القياسية عندما يكون جهد الاستدلال عند الحد الأقصى

جهد الاستدلال · متوسط

التعرفة القياسية عندما يكون جهد الاستدلال متوسطًا

جهد الاستدلال · معدوم

التعرفة القياسية عندما لا يُستخدم جهد للاستدلال

جهد الاستدلال · xhigh

التعرفة القياسية عندما يكون جهد الاستدلال xhigh

#### تعرفات Ailoot

#### الأسعار حسب الإعدادات

طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةً⁦272,000⁩ | الرسوم الإدخال · رموز الإدخال **$0.0002** / 1K من الرموز الإخراج · رموز الإخراج **$0.001** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00002** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.00025** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 2 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦272,000⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0004** / 1K من الرموز الإخراج · رموز الإخراج **$0.0015** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **$0.00004** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **$0.0005** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. [كيفية عمل حجز المبلغ وتسوية الرسوم →](https://ailoot.ai/docs/ar/billing/reserve/)

### أمثلة للطلبات

#### Ailoot Ultra · OpenAI Responses

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة

```json
{
  "model": "~openai/gpt-luna-latest",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
```

```bash
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-luna-latest', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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/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 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
```

```python
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-luna-latest', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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 = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', 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 · OpenAI Responses

json or 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` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

### الأسماء البديلة

#### الأسماء البديلة للنموذج

<strong>Ailoot</strong> [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses)
**Ailoot Ultra** [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses), [`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses)

#### الأسماء البديلة لمسارات الطرائق

`/chat/completions`

#### معرّفات النماذج ذات الصلة IDs

[`openai/gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=openai%2Fgpt-6-luna&fmt=responses), [`~openai/gpt-luna-latest`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=~openai%2Fgpt-luna-latest&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Core&caller=gpt-6-luna&fmt=responses), [`gpt-6-luna`](https://ailoot.ai/models/ar/#m=openai%2Fgpt-6-luna&route=Ultra&caller=gpt-6-luna&fmt=responses)

FAQ · OpenAI: GPT-6 Luna

ما المدخلات والنتائج المتاحة؟

`POST /v1/messages` · `gpt-6-luna`: `text`, `image` → `text` `POST /v1/responses` · `gpt-6-luna`: `text`, `image` → `text` `POST /v1/chat/completions` · `gpt-6-luna`: `text`, `image` → `text` `POST /v1/chat/completions` · `gpt-6-luna`: `text` → `text` `POST /v1/messages` · `gpt-6-luna`: `text` → `json`, `sse` `POST /v1/responses` · `gpt-6-luna`: `text` → `text` `POST /v1/chat/completions` · `openai/gpt-6-luna`: `text` → `text` `POST /v1/messages` · `openai/gpt-6-luna`: `text` → `text` `POST /v1/responses` · `openai/gpt-6-luna`: `text` → `text` `POST /v1/chat/completions` · `~openai/gpt-luna-latest`: `text` → `text` `POST /v1/messages` · `~openai/gpt-luna-latest`: `text` → `json`, `sse` `POST /v1/responses` · `~openai/gpt-luna-latest`: `text` → `text`

ما الحقول التي يستخدمها الطلب؟

`POST /v1/messages` · `gpt-6-luna`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `gpt-6-luna`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `gpt-6-luna`: `model`, `messages`, `stream` `POST /v1/chat/completions` · `gpt-6-luna`: `model`, `messages`, `stream` `POST /v1/messages` · `gpt-6-luna`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/responses` · `gpt-6-luna`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `openai/gpt-6-luna`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `openai/gpt-6-luna`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `openai/gpt-6-luna`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `~openai/gpt-luna-latest`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `~openai/gpt-luna-latest`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/responses` · `~openai/gpt-luna-latest`: `model`, `input`, `instructions`, `stream`

ما الحدود المطبقة؟

`POST /v1/messages` · `gpt-6-luna`: `ctx`: `1050000`; `max_out`: `128000`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `gpt-6-luna`: `ctx`: `1050000`; `max_out`: `128000` `POST /v1/chat/completions` · `gpt-6-luna`: `ctx`: `1050000`; `max_out`: `128000`; `messages.min_items`: `1` `POST /v1/chat/completions` · `gpt-6-luna`: `messages.min_items`: `1` `POST /v1/chat/completions` · `openai/gpt-6-luna`: `messages.min_items`: `1` `POST /v1/messages` · `openai/gpt-6-luna`: `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/chat/completions` · `~openai/gpt-luna-latest`: `messages.min_items`: `1`

اربط Ailoot بخدمة Claude Code أوOpenCode أوHermes أوتطبيقك.

## الشركة ومحفظة مشاريعها

الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.

## اشتر الرموز بخصم.

خصم اشتراك للعمل المنتظم. الرموز الترويجية حتى 50% على شراء الرموز.

الاشتراك

اختر خطة بخصم لطلباتك المنتظمة.

رمز خصم حتى 50%

أدخل الرمز عند الشراء. يعاد حساب السعر وفق العرض الساري.

المصروفات في السجل

يحفظ النموذج والرموز والمبلغ لكل طلب.

[اختر اشتراكا](https://ailoot.ai/docs/ar/billing/subscriptions/) · [اعرض أسعار النماذج](https://ailoot.ai/models/ar/)

## اربط API بالمنتج الذي تبيعه.

SaaS والتطبيقات والبوتات وفق العرض واتفاقية ترخيص Ailoot. لإعادة البيع، اطلب ترخيص موزع.

تطبيق تجاري

أضف توليد النص والصور والفيديو والصوت إلى ميزات خدمتك المدفوعة.

ترخيص إعادة البيع

أرسل وصف المشروع وطريقة توفير الوصول. اطلب شروط استخدام وإعادة بيع مكتوبة.

المستندات على الموقع

العرض واتفاقية الترخيص وسياسة معالجة البيانات متاحة قبل الربط.

[اطلب ترخيص إعادة بيع](mailto:support@ailoot.ai) · [العرض واتفاقية الترخيص](https://ailoot.ai/legal/offer?lang=ar)

## Ailoot · الشركة ومحفظة مشاريعها





تستند Ailoot إلى خبرة تشغيلية متراكمة وقاعدة عملاء واسعة وخدمة مستقرة ومراقبة مستمرة لمؤشرات الأداء KPI.





الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.





توظف Ailoot هذه الخبرة التشغيلية لإتاحة الوصول عبر API إلى قدرات الذكاء الاصطناعي في منتجات العملاء ووكلائهم وتطبيقاتهم وعمليات الأتمتة.
