Skip to main content
استخدم هذه الصفحة لفهم معنى خطأ Phaseo وما ينبغي فعله بعد ذلك. تتبع جميع استجابات الأخطاء تنسيق JSON واحدًا، ما يتيح لتطبيقك معالجة الإخفاقات باتساق عبر النماذج والمزوّدين.

مثال على استجابة خطأ

الحقول التي ستتلقاها دائمًا

  • generation_id: معرّف طلب ثابت يمكنك مشاركته مع فريق الدعم.
  • status_code: يطابق رمز حالة HTTP.
  • error: رمز خطأ قابل للقراءة آليًا، مثل validation_error.
  • error_type: فئة عامة، تكون عادةً user أو system.
  • error_origin: يوضح ما إذا كان السبب الأساسي هو المتصل أو Phaseo أو مزوّد أساسي.
  • description: شرح مبسط لما حدث.
  • details (اختياري): تفاصيل تحقق منظمة عندما يكون الخطأ متعلقًا بالتحقق من صحة الطلب.

حقول إضافية قد تظهر

تتضمن بعض الأخطاء تفاصيل أكثر لمساعدتك على حل المشكلة بسرعة:
  • reason: سبب فرعي أدق، مثل all_candidates_failed أو pricing_not_configured.
  • provider_candidate_diagnostics وprovider_enablement: يوضحان سبب تعذر استخدام النموذج مع نقطة النهاية المطلوبة.
  • routing_diagnostics: تفاصيل إضافية عن كيفية تضييق خيارات الطلب عبر فحوصات التوجيه أو التوفر.
  • provider_failure_diagnostics: تلميحات بشأن بيانات الاعتماد المفقودة أو غياب الوصول أو القيود الإقليمية أو حدود المعدل وإخفاقات المزوّد المماثلة.
  • upstream_error وfailure_sample: ملخص بأفضل جهد لإخفاق المزوّد الأول إذا وصل الطلب إلى مزوّد.
  • failed_providers وfailed_statuses وattempt_count: سياق إضافي حول إعادة المحاولة والتحويل الاحتياطي.

إرشادات فئات الحالة

رموز الأخطاء الشائعة

عند إخفاق مزوّد

إذا وصلت Phaseo إلى مزوّد لكن الطلب أخفق رغم ذلك، فقد ترى:
  • provider_failure_diagnostics.category
  • provider_failure_diagnostics.hint
  • provider_failure_diagnostics.provider
تشمل الفئات الحالية:
  • credentials_not_configured
  • credentials_invalid_or_forbidden
  • provider_access_missing
  • region_or_project_restriction
  • model_unavailable_for_endpoint
  • rate_limited
  • server_error
تهدف هذه الحقول إلى مساعدتك في حل المشكلة دون تشغيل وضع التصحيح الكامل.

عند عدم توفر نموذج أو نقطة نهاية

قد تتضمن استجابات unsupported_model_or_endpoint ما يلي:
  • provider_candidate_diagnostics
  • provider_enablement
  • missing_pricing_providers
  • routing_diagnostics
يساعدك ذلك على التمييز بين:
  • نموذج معروف لم يُفعّل بعد
  • نموذج لا يدعم نقطة النهاية المطلوبة
  • بيانات أسعار مفقودة
  • قيود الطرح أو التوفر الداخلي
حقول شائعة:
  • provider_candidate_diagnostics.totalProviders: عدد المزوّدين المعروفين للنموذج قبل التصفية حسب نقطة النهاية.
  • provider_candidate_diagnostics.supportsEndpointCount: عدد المزوّدين الذين يدعمون نقطة النهاية المطلوبة.
  • provider_candidate_diagnostics.candidateCount: عدد المزوّدين المتبقين بعد فحوصات المحوّل.
  • provider_candidate_diagnostics.droppedUnsupportedEndpoint: المزوّدون المستبعدون لعدم دعم نقطة النهاية.
  • provider_candidate_diagnostics.droppedMissingAdapter: أزواج المزوّد ونقطة النهاية المستبعدة لعدم وجود محوّل Gateway لهذه النقطة بعد.
  • provider_enablement.capability: بوابة الإمكانية قيد التنفيذ، مثل video_generation.
  • provider_enablement.providersBefore / provider_enablement.providersAfter: المزوّدون قبل التصفية حسب الإمكانية أو التفعيل وبعدها.
  • provider_enablement.dropped[].reason: أسباب قابلة للقراءة آليًا، مثل pricing_missing.
  • routing_diagnostics.filterStages[].stage: مرحلة التوجيه، مثل التصفية حسب الإمكانية أو الطرح أو حالة التوجيه.
  • routing_diagnostics.filterStages[].beforeCount / routing_diagnostics.filterStages[].afterCount: عدد المزوّدين قبل كل مرحلة وبعدها.
  • routing_diagnostics.filterStages[].droppedProviders[].reason: أسباب قابلة للقراءة آليًا، مثل قيود الطرح أو التوجيه.

مثال

وضع تصحيح اختياري

تدعم معظم مخططات الطلبات كائن debug لتصحيح المشكلات ضمن ضوابط محددة:
الحقول المتاحة:
  • enabled
  • return_upstream_request
  • return_upstream_response
  • trace
  • trace_level (summary أو full)
استخدم وضع التصحيح في التطوير أو البيئات الخاضعة لرقابة صارمة فقط.

استراتيجية إعادة المحاولة

  • أخطاء الفئة 400 باستثناء 429: صحّح الطلب أو بيانات الاعتماد أو سياسة الوصول قبل إعادة المحاولة.
  • 429: طبّق تراجعًا أسيًا والتزم بترويسة Retry-After.
  • أخطاء الفئة 500: استخدم إعادة المحاولة ضمن حدود فقط عندما يكون تكرار العملية آمنًا. قد يكون الإرسال ذو النتيجة غير المؤكدة قد أنشأ مهمة أو تسبب في رسوم بالفعل؛ استرجع المهمة المقبولة بدلًا من إرسالها مجددًا.
حدّد سقفًا لعدد المحاولات ومهلة إجمالية، وأضف تباينًا عشوائيًا إلى فترات الانتظار. راجع حدود الطلبات لترويسات الاستجابة وآلية التعامل مع إعادة المحاولة.

ملاحظات خاصة بالبث

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

نصائح لاستكشاف المشكلات

  • تحقّق من صفحة حالة Gateway للاطلاع على الحوادث الجارية.
  • راجع حمولة الطلب مقابل توثيق نقطة النهاية.
  • شارك generation_id عند التواصل مع الدعم.

موارد ذات صلة

المصادقة

صادِق باستخدام مفاتيح API من نوع Bearer.

الحدود

تعامل مع تقييد المعدل وإعادة المحاولة اللذين يفرضهما المزوّد.

البث

استخدم SSE بأمان في تدفقات الإنتاج.
آخر تعديل في ٢ أكتوبر ٢٠٢٦