نظرة عامة
تعمل Agent-First API من LemonData على إثراء استجابات الأخطاء بتلميحات منظمة يمكن لوكلاء الذكاء الاصطناعي تحليلها واتخاذ إجراء بشأنها على الفور — دون الحاجة إلى عمليات بحث في الويب، أو مراجعة المستندات، أو التخمين. تتضمن كل استجابة خطأ حقولاً اختيارية مثلdid_you_mean و suggestions و hint و retryable و retry_after داخل كائن error القياسي. هذه الحقول متوافقة مع الإصدارات السابقة — حيث لا يرى العملاء الذين لا يستخدمونها أي فرق.
حقول تلميحات الأخطاء
جميع حقول التلميحات هي امتدادات اختيارية داخل كائنerror:
| الحقل | النوع | الوصف |
|---|---|---|
did_you_mean | string | اسم النموذج الأقرب مطابقة |
suggestions | array | النماذج الموصى بها مع البيانات الوصفية |
alternatives | array | النماذج البديلة المتاحة حالياً |
hint | string | إرشادات للخطوة التالية قابلة للقراءة من قبل البشر/الوكلاء |
retryable | boolean | ما إذا كانت إعادة محاولة نفس الطلب قد تنجح |
retry_after | number | عدد الثواني التي يجب انتظارها قبل إعادة المحاولة |
balance_usd | number | رصيد الحساب الحالي بالدولار الأمريكي |
estimated_cost_usd | number | التكلفة التقديرية للطلب الفاشل |
أمثلة على أكواد الأخطاء
model_not_found (400)
عندما لا يتطابق اسم النموذج مع أي نموذج نشط:did_you_mean:
- رسم خرائط الأسماء المستعارة الثابتة (من بيانات أخطاء الإنتاج)
- مطابقة السلاسل النصية المعيارية (تجاهل الشرطات وحالة الأحرف)
- مطابقة مسافة التحرير (Edit distance) (عتبة ≤ 3)
insufficient_balance (402)
عندما يكون رصيد الحساب منخفضاً جداً بالنسبة للتكلفة التقديرية:suggestions على نماذج أرخص من التكلفة التقديرية يمكن للوكيل التبديل إليها.
all_channels_failed (503)
عندما تكون جميع القنوات المصدرية للنموذج غير متاحة:تكون قيمة
retryable هي false عندما يكون السبب هو no_channels (لا توجد قنوات مهيأة لهذا النموذج). وتكون true فقط في حالات الفشل العابر مثل توقف قاطع الدائرة (circuit breaker) أو استنفاد الحصة (quota exhaustion).rate_limit_exceeded (429)
retry_after بناءً على وقت إعادة تعيين نافذة حد المعدل الفعلي.
context_length_exceeded (400)
عندما يتجاوز الإدخال نافذة السياق للنموذج (خطأ مصدري، معزز بالتلميحات):رؤوس نقاط النهاية الأصلية (Native Endpoint Headers)
عندما تقوم باستدعاء/v1/chat/completions باستخدام نموذج يحتوي على نقطة نهاية أصلية (Anthropic أو Gemini)، تتضمن استجابة النجاح رؤوس تحسين:
| مزود النموذج | نقطة النهاية المقترحة | الفائدة |
|---|---|---|
| Anthropic (Claude) | /v1/messages | لا يوجد تحويل للتنسيق، تفكير ممتد، تخزين مؤقت للمطالبات |
| Google (Gemini) | /v1beta/gemini | لا يوجد تحويل للتنسيق، ربط بالواقع (grounding)، إعدادات الأمان |
| OpenAI | — | تنسيق Chat completions هو التنسيق الأصلي بالفعل |
تحسينات /v1/models
ثلاثة حقول جديدة في امتدادlemondata لكل كائن نموذج:
| الحقل | القيم | الوصف |
|---|---|---|
category | chat, image, video, audio, tts, stt, 3d, embedding, rerank | نوع النموذج |
pricing_unit | per_token, per_image, per_second, per_request | كيفية فوترة النموذج |
cache_pricing | object أو null | أسعار التخزين المؤقت للمطالبات المصدرية + خصم التخزين المؤقت الدلالي للمنصة |
تصفية الفئات (Category Filtering)
llms.txt
يتوفر نظرة عامة على واجهة برمجة التطبيقات (API) بتنسيق قابل للقراءة آلياً على:- قالب المكالمة الأولى مع مثال عملي
- أسماء النماذج الشائعة (يتم إنشاؤها ديناميكياً من بيانات الاستخدام)
- جميع نقاط نهاية API الـ 12
- معلمات التصفية لاكتشاف النماذج
- إرشادات معالجة الأخطاء
llms.txt قبل أول استدعاء لـ API في المحاولة الأولى.
الاستخدام في كود الوكيل
Python (OpenAI SDK)
JavaScript (OpenAI SDK)
مبادئ التصميم
الفشل السريع، الفشل المعلوماتي
تعود الأخطاء فوراً مع جميع البيانات التي يحتاجها الوكيل للتصحيح الذاتي.
لا يوجد توجيه تلقائي
لا تقوم واجهة برمجة التطبيقات أبداً باستبدال نموذج بآخر بصمت. الوكيل هو من يقرر.
اقتراحات مدفوعة بالبيانات
تأتي جميع التوصيات من بيانات الإنتاج، وليس من قوائم ثابتة.
متوافق مع الإصدارات السابقة
جميع حقول التلميحات اختيارية. لا يرى العملاء الحاليون أي فرق.