Source: https://ailoot.ai/models/ar/farui-plus/
Canonical: https://ailoot.ai/models/ar/farui-plus/
Language: ar

# farui-plus

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

## [farui-plus](https://ailoot.ai/models/ar/farui-plus/)

Tongyi FaRui Plus من Alibaba نموذج نصي متخصص في الأسئلة القانونية وتحليل القضايا وصياغة المستندات القانونية ومراجعة العقود. أعدّ الوقائع والبنود ذات الصلة في صورة نص، ثم استخدم سؤالًا مركّزًا أو حوارًا للحصول على تحليل مكتوب أو مسودة.

- [**Ailoot Ultra · محادثة OpenAI** `POST /v1/chat/completions` `farui-plus`](https://ailoot.ai/models/ar/farui-plus/#method-0)
- [**Ailoot Ultra · رسائل Anthropic** `POST /v1/messages` `farui-plus`](https://ailoot.ai/models/ar/farui-plus/#method-1)

عن النموذج

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

#### نموذج نصي للقطاع القانوني

Tongyi FaRui Plus، الذي يعرّفه المطوّر باسم farui-plus، مبني على أساس Qwen ومتخصص باستخدام بيانات ومعارف قانونية. ويصف المطوّر تطويره باستخدام الضبط الدقيق للنموذج والتعلّم المعزّز والتعزيز بالاسترجاع وتقنية الوكلاء القانونيين. ويشمل نطاق مهامه الأسئلة القانونية وتحديد الأحكام القانونية المنطبقة وتحليل القضايا وتوليد المستندات القانونية ومراجعة بنود العقود.

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

#### أعدّ طلبًا واحدًا أو حوارًا مستمرًا

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

للسؤال المتعلق بقضية، قدّم أدوار الأطراف وتسلسل الأحداث والمسألة محل النزاع والأدلة ذات الصلة بالسؤال. حدّد الاختصاص القضائي والتاريخ المهمَّين للمهمة، وأرفق النص القانوني المطلوب فحصه عندما يجب أن تستند الإجابة إلى حكم معيّن. افصل الواقعة المقرّرة عن الادعاء المتنازع عليه أو الافتراض.

للمتابعة، حدّد بدقة ما تغيّر. فعلى سبيل المثال، قدّم تاريخًا مصحّحًا أو بندًا إضافيًا واسأل عن الجزء الذي يحتاج إلى تنقيح من المسودة السابقة. ويجعل الاحتفاظ بالإجابة السابقة الفعلية التغيير المطلوب محددًا، بدلًا من الدعوة إلى تحليل جديد لقضية غير مكتملة.

#### اطلب تحليلًا أو مسودة مستند

للسؤال القانوني، حدّد المسألة وشكل الإجابة. اطلب الاستنتاج والحكم الداعم والوقائع التي من شأنها تغيير التحليل. وعندما لا يثبت المصدر تفصيلًا مهمًا، اطلب أن تحدّد النتيجة تلك المعلومة المفقودة.

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

لمراجعة العقد، قدّم البند الدقيق والمسألة المطلوب فحصها. اطلب مقارنة للصياغة والمسألة التي تثيرها وتنقيحًا مقترحًا يحافظ على المعنى التجاري المقصود. واحتفظ بالبند الأصلي إلى جانب النص المقترح، حتى يمكن فحص التغيير.

#### التزم بحدود الاستجابة الموثّقة

تذكر النظرة العامة المنشورة للنموذج حدًا أقصى للمدخل يبلغ 12,000 توكن وحدًا أقصى للمخرج يبلغ 2,000 توكن. اختر المقتطفات ذات الصلة وطول إجابة يناسب المهمة، مع ترك مساحة للاستجابة المطلوبة ضمن إعدادات المحادثة السارية. ويمكن تقسيم مراجعة عقد طويل إلى مسائل أو أقسام واضحة التسميات، مع الاحتفاظ بأي بند يلزم لفهم العلاقة بينها.

يمكن لإعداد طول الاستجابة لدى المطوّر تقليل الحد المسموح به للمخرج للحصول على شرح مختصر أو مسودة قسم محدد. وقيمته الافتراضية الموثّقة 2,000 توكن. تحقّق من اكتمال الإجابة المُعادة قبل التعامل معها بوصفها مستندًا منجزًا.

#### اختر إعدادات التوليد والتسليم

يوثّق مرجع المطوّر top\_p في المجال المفتوح بين 0 و1، مع قيمة افتراضية تبلغ 0.8. ويقيّد إعداد top\_k مجموعة العناصر المرشحة؛ ويعطّل تركه دون تعيين أو ضبطه فوق 100 هذه الاستراتيجية. أبقِ المهمة والمواد المصدرية ثابتة عند مقارنة أثر إعداد توليد مدعوم.

سير العمل الافتراضي غير متدفق. ويُسلّم التدفق النص بينما يستمر التوليد. وتحتوي مقاطع التدفق الافتراضية الموثّقة على محتوى متراكم؛ أما تفعيل المخرج التزايدي فيعيد الأجزاء الجديدة فقط. جمّع الصيغة المختارة بصورة صحيحة حتى لا يُضاف النص المتراكم المتكرر مرتين، واحتفظ بالإجابة المكتملة للمراجعة.

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

#### اجعل التحليل قابلًا للفحص

احتفظ بالنص المصدري والوقائع المقدّمة وشكل المستند المطلوب والاستجابة النهائية معًا. تحقّق من الصياغة الفعلية للمراجع ومن الاختصاص القضائي أو التاريخ الذي يعتمد عليه التفسير. وتكون مقارنة البنود أو شرح القضية أكثر فائدة عندما تظل افتراضاتها والمقاطع الداعمة لها قابلة للتحديد.

استخدم Farui Plus لسير عمله القانوني النصي المسمّى. وينبغي أن يربط المخرج النهائي السؤال القانوني أو المسودة المطلوبة بالمواد المقدّمة فعلًا.

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

[`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

أخرى /`farui-plus`

### البداية

Tongyi FaRui Plus من Alibaba نموذج نصي متخصص في الأسئلة القانونية وتحليل القضايا وصياغة المستندات القانونية ومراجعة العقود. أعدّ الوقائع والبنود ذات الصلة في صورة نص، ثم استخدم سؤالًا مركّزًا أو حوارًا للحصول على تحليل مكتوب أو مسودة.

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

النص

النتائج

النص

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

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

الإدخال

`text`

الإخراج

`text`

صيغة الإخراج

json أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود farui-plus | القيمة الافتراضية— |
| الحقل`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 مع أقصى جهد للاستدلال

#### تعرفات Ailoot

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

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

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0058** / 1K من الرموز الإخراج · رموز الإخراج **$0.0058** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0058** / 1K من الرموز الإخراج · رموز الإخراج **$0.0058** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **—** / 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":"farui-plus","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="farui-plus", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### استلام النتائج وحفظها

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

json أو SSE

##### الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل اختيار ومحتواه واستدعاءات أدواته واستدلاله. في SSE، جمّع التحديثات بحسب فهرس الاختيار/الأداة، واحتفظ بسبب الإنهاء النهائي والاستخدام.

##### عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.

حقول الاستجابة

| الحقل | النوع |
| --- | --- |
| الحقل`choices[].index` | النوعinteger |
| الحقل`choices[].message.content` | النوعstring\|null |
| الحقل`choices[].message.tool_calls` | النوعtool\_call\[\] |
| الحقل`choices[].message.reasoning_content` | النوعstring |
| الحقل`choices[].message.reasoning_details` | النوعobject\|array |
| الحقل`choices[].finish_reason` | النوعstring\|null |
| الحقل`usage` | النوعobject |

الأخطاء والخطوات التالية

| الاستجابة | الشرط | الخطوة التالية |
| --- | --- | --- |
| الاستجابة⁦400⁩ · `invalid_request_error` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

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

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

**Ailoot Ultra** [`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

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

`/chat/completions`

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

[`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

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

[`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

أخرى /`farui-plus`

### البداية

Tongyi FaRui Plus من Alibaba نموذج نصي متخصص في الأسئلة القانونية وتحليل القضايا وصياغة المستندات القانونية ومراجعة العقود. أعدّ الوقائع والبنود ذات الصلة في صورة نص، ثم استخدم سؤالًا مركّزًا أو حوارًا للحصول على تحليل مكتوب أو مسودة.

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

النص

النتائج

json · sse

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

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

الإدخال

`text`

الإخراج

`json`, `sse`

صيغة الإخراج

JSON أو SSE

| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
| --- | --- | --- | --- | --- |
| الحقل`model` | النوع`string` | المتطلبمطلوب | القيم والحدود farui-plus | القيمة الافتراضية— |
| الحقل`messages` | النوع`message[]` | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
| الحقل`messages[].role` | النوع`string` | المتطلبمطلوب | القيم والحدود user, assistant | القيمة الافتراضية— |
| الحقل`messages[].content` | النوع`string` | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
| الحقل`max_tokens` | النوع`integer` | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
| الحقل`stream` | النوع`boolean` | المتطلباختياري | القيم والحدود | القيمة الافتراضيةfalse |

تركيبات مواد الإدخال

**النص** · نص UTF-8

`سلسلة نصية messages[].content`

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

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

دورة الحياة: `synchronous_or_streamed`

### الباقات

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

الوضع السريع

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

الوضع المرن

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

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

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

#### تعرفات Ailoot

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

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

| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
| --- | --- | --- | --- | --- |
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0058** / 1K من الرموز الإخراج · رموز الإخراج **$0.0058** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من⁦0⁩ | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال **$0.0058** / 1K من الرموز الإخراج · رموز الإخراج **$0.0058** / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت **—** / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة **—** / 1K من الرموز |

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

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

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

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

```json
{
  "model": "farui-plus",
  "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': 'farui-plus', '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': 'farui-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### استلام النتائج وحفظها

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

JSON أو SSE

##### الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.

##### عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.

حقول الاستجابة

| الحقل | النوع |
| --- | --- |
| الحقل`id` | النوعstring |
| الحقل`model` | النوعstring |
| الحقل`content[]` | النوعtext\|thinking\|tool\_use\|other content block |
| الحقل`stop_reason` | النوعstring\|null |
| الحقل`usage` | النوعobject |

الأخطاء والخطوات التالية

| الاستجابة | الشرط | الخطوة التالية |
| --- | --- | --- |
| الاستجابة⁦400⁩ · `invalid_request_error` | الشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة | الخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد. |

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

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

**Ailoot Ultra** [`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

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

`/chat/completions`

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

[`farui-plus`](https://ailoot.ai/models/ar/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

FAQ · farui-plus

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

`POST /v1/chat/completions` · `farui-plus`: `text` → `text` `POST /v1/messages` · `farui-plus`: `text` → `json`, `sse`

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

`POST /v1/chat/completions` · `farui-plus`: `model`, `messages`, `stream` `POST /v1/messages` · `farui-plus`: `model`, `messages`, `max_tokens`, `stream`

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

`POST /v1/chat/completions` · `farui-plus`: `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 إلى قدرات الذكاء الاصطناعي في منتجات العملاء ووكلائهم وتطبيقاتهم وعمليات الأتمتة.
