Skip to main content
इस पेज का उपयोग यह समझने के लिए करें कि Phaseo की त्रुटि का क्या अर्थ है और आगे क्या करना है। हर त्रुटि प्रतिक्रिया एक ही JSON प्रारूप का उपयोग करती है, ताकि आपका ऐप मॉडल और प्रदाता के बीच होने वाली विफलताओं को एकसमान ढंग से संभाल सके।

त्रुटि प्रतिक्रिया का उदाहरण

वे फ़ील्ड जो हमेशा मिलेंगे

  • generation_id: स्थिर request ID जिसे आप support के साथ साझा कर सकते हैं।
  • 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 response में Phaseo ये दे सकता है:
  • 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)
Debug mode केवल development या कड़ाई से नियंत्रित environments में उपयोग करें।

पुनः प्रयास की रणनीति

  • 429 को छोड़कर 400-श्रेणी की त्रुटियाँ: पुनः प्रयास से पहले अनुरोध, क्रेडेंशियल या पहुँच नीति ठीक करें।
  • 429: Exponential backoff लागू करें और Retry-After header का पालन करें।
  • 500-श्रेणी की त्रुटियाँ: सीमित पुनः प्रयास केवल तभी करें जब ऑपरेशन दोहराना सुरक्षित हो। अनिश्चित परिणाम वाले सबमिशन से जॉब बन चुका हो सकता है या शुल्क लग चुका हो सकता है; स्वीकार किए गए जॉब को दोबारा भेजने के बजाय उसकी जानकारी प्राप्त करें।
प्रयासों की सीमा और कुल समय सीमा तय करें तथा बैकऑफ़ विलंब में यादृच्छिक बदलाव जोड़ें। प्रतिक्रिया हेडर और पुनः प्रयास संभालने के लिए अनुरोध सीमाएँ देखें।

स्ट्रीमिंग के लिए खास बातें

  • Streaming शुरू होने से पहले request विफल हो, तो standard JSON error payload मिलता है।
  • Stream के बीच में विफलता हो, तो partial stream को अधूरा मानें और retry का विकल्प दें।
  • हमेशा generation_id और endpoint/model metadata रिकॉर्ड करें।

समस्या हल करने के सुझाव

  • चल रही घटनाओं के लिए Gateway status page देखें।
  • Request payload को endpoint docs से मिलाकर देखें।
  • Support से संपर्क करते समय generation_id साझा करें।

संबंधित संसाधन

प्रमाणीकरण

Bearer API keys से authenticate करें।

सीमाएँ

Provider की throttling और retries संभालें।

स्ट्रीमिंग

Production flows में SSE को सुरक्षित रूप से उपयोग करें।
अंतिम संशोधन 2 अक्टूबर 2026