الأدلة الأساسية
القرارات
احصل على احتمالات وخيارات ونتائج (scores) محددة النوع من نموذج اتخاذ القرار
POST /v1/systemone يقوم بتقييم state واحد مقابل أسئلة مسماة ويعيد إجابة واحدة محددة النوع لكل سؤال. الاستجابة عبارة عن JSON متزامن: احتمال، أو اسم خيار، أو نتيجة (score) يمكن للكود الخاص بك مقارنتها والتفرع بناءً عليها. لا يعيد هذا الطلب نصاً مولداً.
القرارات أم الدردشة
| استخدم القرارات عندما | استخدم الدردشة عندما |
|---|---|
| يحتاج الكود الخاص بك إلى رقم أو تسمية لاتخاذ إجراء | يقرأ شخص أو نموذج آخر الإجابة |
| تقوم بتوجيه أو تصنيف أو حجب طلب: استرداد أم لا، أي فريق، ما مدى الاستعجال | تحتاج إلى تفسيرات أو ملخصات أو نصوص مسودة |
| تطرح عدة أسئلة ثابتة حول نفس المدخلات في استدعاء واحد | تحتاج إلى أدوات أو بث (streaming) أو صور أو رسائل متعددة الجولات |
لا تقبل نقطة نهاية القرار messages أو tools أو stream أو عناصر تحكم الدردشة الأخرى، وهي غير متاحة في Batch. احتفظ بنموذج الدردشة الرئيسي الخاص بك مهيأً بشكل منفصل.
اختر نموذجاً
curl "https://api.tokenlab.sh/v1/models?recommended_for=decision" \
-H "Authorization: Bearer sk-your-api-key"يمكنك أيضاً التصفية باستخدام category=decision. اقرأ GET /v1/models/{model} للنموذج المحدد قبل إرسال الطلبات، وأرسل معرف النموذج بشكل صريح. تستخدم الأمثلة في هذه الصفحة jev-1.13.
شكل الطلب
| الحقل | النوع | ملاحظات |
|---|---|---|
model | string | معرف نموذج القرار |
state | string, JSON object, or JSON array | المدخلات المراد تقييمها، مثل تذكرة أو نص أو سجل |
questions | object | سؤال واحد على الأقل. كل مفتاح هو اسم سؤالك؛ وكل قيمة تحتوي على type و instructions و criteria |
تقبل instructions وكل معيار أيضاً سلسلة نصية أو كائن JSON أو مصفوفة JSON. يرفض الطلب الحقول غير المعروفة.
type | criteria | الإجابة |
|---|---|---|
noul | اختياري. كائن يحتوي على توجيهات true و false | noul: احتمال من 0 إلى 1 بأن العبارة صحيحة |
choice | مطلوب. كائن يحتوي على 1–255 من أسماء الخيارات، كل منها مرتبط بتوجيه أو null | choice: أحد أسماء خياراتك. يمكن أن يتضمن probabilities و confidence |
score | مطلوب. مصفوفة مرتبة من 2–10 من أوصاف المستويات | score: رقم من 0 إلى فهرس المصفوفة الأخير؛ يمكن أن يكون كسرياً. يمكن أن يتضمن legend و probabilities و confidence |
تقييم تذكرة
curl https://api.tokenlab.sh/v1/systemone \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1.13",
"state": "I was charged twice. Please refund the duplicate payment.",
"questions": {
"refund_requested": {"type": "noul", "instructions": "Is a refund requested?"},
"department": {
"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"refunds": "Charges and refunds", "technical": "Software bugs"}
},
"urgency": {
"type": "score", "instructions": "Rate urgency",
"criteria": ["Routine enquiry", "Money affected", "Safety emergency"]
}
}
}'تحتفظ الاستجابة بأسماء أسئلتك تحت answers. القيم أدناه توضيحية:
{
"model": "jev-1.13",
"answers": {
"refund_requested": {"type": "noul", "noul": 0.97},
"department": {"type": "choice", "choice": "refunds"},
"urgency": {"type": "score", "score": 1}
},
"usage": {"input_tokens": 96, "output_tokens": 12}
}استخدام الإجابات
- يحصل كل سؤال على إجابة من نفس
type، تحت نفس الاسم. - إجابة
noulهي احتمال، وليست قيمة منطقية (Boolean). اختر حدك الخاص لكل إجراء. - إجابة
choiceهي دائماً أحد أسماء الخيارات التي أرسلتها. - إجابة
scoreتقوم بفهرسة مصفوفةcriteriaالخاصة بك:1أعلاه تعني "تأثر الأموال". - اختبر القرارات مقابل حالاتك المصنفة الخاصة قبل أن تؤدي إلى استرداد الأموال أو التصعيد أو إجراءات أخرى.
الاستخدام من MCP
يكشف خادم TokenLab MCP عن evaluate_decisions في ملفات تعريف core و full. استدعِ list_models مع {"category":"decision"} و get_model أولاً، ثم مرر نفس model و state و questions كمعاملات للأداة. اقرأ structuredContent.answers و structuredContent.usage من النتيجة. تعيد الأداة نتيجة متزامنة ولا تستخدم استطلاع المهام غير المتزامنة (async task polling).
الاستخدام من SDKs
توفر مكتبة TokenLab JavaScript SDK 0.1.2+ الدالة evaluateDecisions(body)؛ وتوفر Python SDK 0.1.2+ الدالة evaluate_decisions(body). الجسم (body) هو نفس JSON الخاص بطلب HTTP. كلاهما يحافظ على الإجابات محددة النوع والاستخدام ولا يعيد تشغيل الطلب الفاشل تلقائياً. انظر SDKs.
التكلفة وإعادة المحاولة
- يتم محاسبة القرارات بالرموز (tokens)، من
usage.input_tokensوusage.output_tokensفي الاستجابة، وفقاً لأسعار الرموز الحالية للنموذج. - الأسعار قابلة للتغيير. اقرأ تفاصيل تسعير النموذج أو Pricing API بدلاً من كتابة السعر بشكل ثابت (hard-coding).
- يمكن للنموذج الإبلاغ عن رموز الإخراج حتى عندما يكون سعر الإخراج صفراً.
- تتبع الطلبات خيار التسليم الخاص بك. انظر الفواتير والتسعير.
- مهلة زمنية (timeout) تجعل النتيجة غير مؤكدة. تحقق من الطلب في سجلاتك أو وحدة التحكم (Console) قبل إرسال طلب مدفوع مرة أخرى.
الأخطاء الشائعة
| العرض | السبب المحتمل | الحل |
|---|---|---|
400 في حقل مثل messages أو stream | حقول الدردشة ليست جزءاً من نقطة النهاية هذه | أرسل فقط model و state و questions |
400 في criteria | يحتوي choice على 0 أو أكثر من 255 خياراً، أو يحتوي score على أقل من 2 أو أكثر من 10 مستويات، أو يفتقر كائن noul إلى true أو false | أصلح تعريف السؤال |
| يتم تنفيذ الإجراءات بناءً على إشارات ضعيفة | تم التعامل مع احتمال noul على أنه صحيح أو خاطئ | قارن مقابل حد قمت باختباره |
مرجع API
| الموضوع | المرجع |
|---|---|
| تقييم القرارات | تقييم القرارات |
| قائمة النماذج | سرد النماذج |
| التسعير | Pricing API |
| الفوترة والتسعير | Billing & Pricing |