التوثيق
API

Jev — نموذج لاتخاذ القرارات

Markdown

يجيب نموذج القرارات Jev من TypeSafe عن أسئلة ذات أنواع محددة حول نص أو JSON: اختيار بديل، أو تقييم على مقياس، أو «نعم/لا» مع احتمالات. لا يقدم دردشة ولا يولّد نصوصاً.

الدليل الكامل
POSThttps://api.ailoot.ai/v1/systemone
Jev — نموذج لاتخاذ القرارات
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "النجدة! تفشل عمليات الصرف لدي منذ 3 أيام.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "هل يدل هذا على وجود حاجة ملحّة؟"
      }
    }
  }' 
200 OK
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}

Jev نموذج لاتخاذ القرارات من فئة System One، من TypeSafe. لا يكتب نصوصاً ولا يجري محادثات: ترسل إليه الحالة (state) — كنص أو JSON — ومجموعة من الأسئلة، وتتلقى قيماً ذات أنواع محددة مع احتمالات. يستند الكود إليها مباشرةً للتفرّع والفرز والتوجيه، دون الحاجة إلى تحليل نص حر.

تُقيّم جميع أسئلة الطلب الواحد بالتوازي وباستقلال عن بعضها، بالاستناد إلى stateنفسه. بحسب TypeSafe، لا تؤثر إضافة الأسئلة تقريباً في زمن الرد، ولا تتداخل الأسئلة مع بعضها.

العنصرباختصار
النموذجjev-latest — اسم بديل لأحدث إصدار مستقر من Jev؛ بطاقة النموذج في الكتالوج
الطريقةPOST /v1/systemone. ليست هذه دردشة: صيغ OpenAI وAnthropic وGemini لا تصلح لـJev. يصل الرد كاملاً في كائن JSON واحد
المدخلات المقبولةالنص فقط: سلسلة نصية أو كائن JSON أو مصفوفة نصوص. حوّل الصور والصوت والفيديو إلى نص أولاً
السياق64K توكن لكل طلب — state وجميع الأسئلة معاً؛ وstate مع أطول سؤال حتى 32K
اللغةبحسب TypeSafe، يعمل النموذج بأعلى دقة باللغة الإنجليزية؛ ويقبل لغات أخرى بدقة أقل — اختبره على بياناتك
السعرالإدخال $0.084 لكل مليون توكن، والمخرجات مجانية

طلب

المصادقة

  • Authorizationheaderمطلوب

    مفتاح Ailoot بصيغة Bearer sk-….

جسم الطلب

  • modelstringمطلوب

    jev-latest.

  • statestring | object | arrayمطلوب

    المحتوى المراد تقييمه: سلسلة نصية أو JSON، مثل طلب العميل أو سجل من قاعدة بيانات أو مراسلات أو الحالة الحالية لتطبيقك. يكون الكائن ذو أسماء الحقول الواضحة عادةً أنسب من سلسلة واحدة.

  • questionsobjectمطلوب

    الأسئلة. تختار المفاتيح بنفسك وتأتي الإجابات تحت المفاتيح نفسها؛ ولا يؤثر المفتاح في الإجابة، فالسؤال نفسه يُحدَّد في instructions.

  • questions.*.typestringمطلوب

    noul, choice أو score — انظر أدناه.

  • questions.*.instructionsstring | object | arrayمطلوب

    السؤال نفسه. يمكن إرسال السؤال الطويل مع بياناته ككائن: السؤال في حقل والبيانات في حقول أخرى؛ أشر إلى أسماء الحقول باستخدام علامات الاقتباس الخلفية.

  • questions.*.criteriaobject | array

    خيارات الإجابة تختلف بحسب النوع: وصفا «نعم» و«لا» في noul (اختياريان)، وقاموس خيارات في choice، وقائمة مرتبة من المستويات في score.

أنواع الأسئلة

النوعما الذي يسأل عنهما الذي يعيده
noulهل العبارة صحيحة: نعم أم لاnoul — احتمال «نعم» من 0 إلى 1
choiceأي خيار من الخيارات المحددة مناسبchoice, probabilities, confidence
scoreموضع state على مقياس مستوياتكscore, legend, probabilities, confidence

يمكن الجمع بين الأنواع في طلب واحد.

noul — نعم أم لا

الحقل criteria اختياري: يمكن فيه توضيح معنى «نعم» (true) و«لا» (false). قيمة الرد noul — عدد من 0 (لا) إلى 1 (نعم).

"is_urgent": {
  "type": "noul",
  "instructions": "هل يدل هذا على وجود حاجة ملحّة؟",
  "criteria": {
    "true": "الإلحاح الزمني مذكور صراحةً",
    "false": "لم يُعبَّر عن استعجال"
  }
}

choice — اختيار بديل

criteria — قاموس «الخيار ← الوصف»؛ إذا لم تكن بحاجة إلى وصف، استخدم null. حتى 255 خياراً. في الرد، choice — الخيار الأكثر احتمالاً، و probabilities — احتمال كل خيار (مجموعها 1)، و confidence — درجة الثقة من 0 إلى 1.

"department": {
  "type": "choice",
  "instructions": "أي فريق ينبغي أن يتولى هذا؟",
  "criteria": {
    "billing": "المدفوعات وإصدار الفواتير وردّ المبالغ",
    "technical": "الأخطاء وانقطاعات الخدمة والتكاملات",
    "sales": "الأسعار والترقيات والعملاء الجدد"
  }
}

score — تقييم على مقياس

criteria — مستويات مرتبة من الأدنى إلى الأعلى، بحد أقصى 10 (توصي TypeSafe بمستويين على الأقل). في الرد، score — قيمة مرجّحة باحتمالات المستويات (قد تقع بين مستويين)، و legend — رقم المستوى ووصفه، و probabilities و confidence. بحسب TypeSafe، score مناسب للمقارنة مع عتبة، لكنه غير مناسب لتحديد رقم دقيق بين المستويات.

"frustration": {
  "type": "score",
  "instructions": "ما مدى استياء العميل؟",
  "criteria": ["هادئ", "مستاء", "غاضب جدًا"]
}

الرد

  • modelstring

    إصدار النموذج الذي أجاب. ينتقل الاسم البديل jev-latest مع الوقت إلى إصدارات جديدة: إذا ضبطت عتبات confidence لإصدار محدد، فراقب هذا الحقل.

  • answersobject

    إجابة واحدة لكل سؤال، تحت المفاتيح نفسها. تحتوي كل إجابة على type، وفي choice وscore تحتوي أيضاً على confidence.

  • usageobject

    input_tokens و output_tokens. تُحسب تكلفة توكنات الإدخال فقط.

عدة أسئلة في طلب واحد

اجمع كل الأسئلة المتعلقة بـstate واحد في طلب واحد: تُقيّم بالتوازي ويُرسل state مرة واحدة. بحسب TypeSafe، كان الطلب الموحّد في مثالهم ذي 13 سؤالاً أرخص بـ12,2 مرة وأسرع بـ10 مرات من إرسال 13 طلباً منفصلاً بالتتابع، مع الإجابات نفسها.

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

{
  "model": "jev-latest",
  "state": "النجدة! تفشل عمليات الصرف لدي منذ 3 أيام.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "أي فريق ينبغي أن يتولى هذا؟",
      "criteria": {
        "billing": "المدفوعات وإصدار الفواتير وردّ المبالغ",
        "technical": "الأخطاء وانقطاعات الخدمة والتكاملات",
        "sales": "الأسعار والترقيات والعملاء الجدد"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "ما مدى استياء العميل؟",
      "criteria": ["هادئ", "مستاء", "غاضب جدًا"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "هل يدل هذا على وجود حاجة ملحّة؟"
    }
  }
}

حالات الاستخدام المناسبة

  • التوجيه. إرسال طلب العميل إلى القسم المناسب، وإرسال الطلب إلى المعالج المناسب: كود بسيط أو نموذج كبير أو شخص.
  • الفرز وتحديد الأولويات. درجة الاستعجال والنبرة والمخاطر — على مقياس، مع عتبات في الكود.
  • الإشراف والفحص. التحقق مما إذا كانت الرسالة تخالف القواعد، أو المصدر يؤيد الاقتباس، أو المستند يتضمن إجابة السؤال، قبل تمرير النص إلى المرحلة التالية.
  • التقييم والترتيب. تقييم المستندات أو المرشحين أو المقاطع المسترجعة وفق معاييرك، ثم تحديد ما ينتقل إلى المرحلة التالية في الكود.
  • بديل للتعليمة غير الموثوقة «أعد JSON». استدعاء يعيد قيماً ذات أنواع محددة بحكم تصميمه، بدلاً من نص يحتاج إلى تحليل.

حالات الاستخدام غير المناسبة

  • الدردشة والردود للمستخدم وتوليد النصوص أو الكود. لا يكتب Jev نصوصاً؛ ولهذا تتوفر النماذج النصية.
  • نموذج لـClaude Code وCursor وغيرهما من الوكلاء. لا يمكنك وضع jev-latest بدلاً من نموذج الوكيل: يحتاج الوكيل إلى نموذج يكتب نصوصاً ويستدعي أدوات. يمكن استدعاء Jev من الكود الذي يكتبه الوكيل لك.
  • الحساب والعدّ ومقارنة التواريخ. بحسب TypeSafe، من الأوثق تنفيذ ذلك في الكود، وسؤال النموذج عن الجانب الدلالي فقط؛ مثلاً استخراج أجزاء التاريخ عبر choice.
  • الصور والصوت والفيديو. يقبل النموذج النص فقط؛ حوّل هذه البيانات إلى نص مسبقاً.

السعر

تُحسب تكلفة توكنات الإدخال فقط — الحقل usage.input_tokens في الرد: $0.084 لكل مليون. توكنات المخرجات مجانية.

تكلفة الطلب في مثال هذه الصفحة (296 توكن إدخال) أقل من $0.0001.

يحجز Ailoot مبلغاً من الرصيد قبل الطلب، وبعد الرد يخصم مرة واحدة بحسب الاستخدام الفعلي — آلية العمل.

الحدود

العنصرالحد
الطلب بأكمله: state وجميع الأسئلة64K توكن
state مع أطول سؤال32K توكن
خيارات choice الواحدحتى 255
مستويات score الواحدمن 2 إلى 10
الإدخالنص فقط: سلسلة نصية أو كائن JSON أو مصفوفة نصوص

حدود النموذج بحسب TypeSafe. تسري قيود مفتاحك ورصيدك كما في أي نموذج Ailoot: الأخطاء والحدود.

الأخطاء

تأتي الأخطاء بالصيغة العامة لـAiloot API: رمز ونص مفهوم وRequest ID. أكثر الأخطاء شيوعاً في هذه الطريقة:

الرمزمتى يحدثالإجراء المطلوب
400 invalid_requestفشل التحقق من جسم الطلب: state أوmodel أوquestions مفقود، أوtype غير معروف، أو أكثر من 255 خياراً في choice، أو أكثر من 10 مستويات في scoreصحح الطلب وفق نص الخطأ: سيفشل مرة أخرى دون تصحيح
400 context_length_exceededيتجاوز state والأسئلة معاً حد النموذجصفِّ state في الكود وأبقِ ما تحتاجه الأسئلة
401 invalid_api_keyالمفتاح مفقود أو غير صحيحأرسل المفتاح في ترويسة Authorization
402 insufficient_balanceالرصيد المتاح غير كافٍ للحجزاشحن الرصيد
404 model_not_found, unsupported_endpointمعرّف ID غير صحيح أو استُدعي النموذج بطريقة غير مناسبة، مثل /v1/chat/completionsاستدعِ jev-latest عبر POST /v1/systemone فقط
429 rate_limit_exceededعدد الطلبات كبير جداًانتظر عدد الثواني المحدد في ترويسة Retry-After ثم أعد المحاولة
503 model_overloaded, model_unavailableالنموذج مثقل مؤقتاً أو غير متاحإذا كانت X-Should-Retry: true، فأعد المحاولة بعد عدد الثواني في Retry-After؛ وإذا كانت false، فتحقق أولاً من Request ID في السجل
504 model_timeoutلم يرد النموذج في الوقت المحددلا تُعد إرسال الطلب حتى تتحقق من Request ID في السجل

القائمة الكاملة للرموز متاحة في صفحة الأخطاء والحدود.

هل لديك أسئلة أخرى؟ أرسل Request ID ووصفاً للمشكلة وسنساعدك على فهمها.مراسلة الدعم