API Timeout: कनेक्शन ड्रॉप्स का निदान और लंबी LLM जनरेशन के लिए सुरक्षित पुनः प्रयास
LLM API टाइमआउट को हल करने की गाइड: connect/read/pool टाइमआउट को अलग करना, SSE स्ट्रीमिंग को स्थिर बनाना और सुरक्षित पुनः प्रयास रणनीतियां।
आधुनिक रीजनिंग मॉडल (जैसे OpenAI o3-mini या Claude 3.7 Sonnet) के साथ काम करते समय API Timeout (कनेक्शन या रीड टाइमआउट) एक सामान्य समस्या है। जटिल रीजनिंग प्रक्रियाओं में, पहले टोकन (TTFT) तक का समय या पूरी प्रतिक्रिया जनरेशन 30 से 90 सेकंड तक का समय ले सकती है, जो मानक HTTP क्लाइंट्स की डिफ़ॉल्ट सीमा से अधिक हो जाती है।
लंबी जनरेशन को स्थिर रूप से प्राप्त करने के लिए, डेवलपर्स BetterToken का उपयोग करते हैं, जो बिना किसी मध्यस्थ बफरिंग के अनुकूलित Server-Sent Events (SSE) रूटिंग प्रदान करता है। विस्तृत कनेक्शन विनिर्देश BetterToken API Reference में प्रलेखित हैं।
ड्रॉप्स कहाँ होते हैं: HTTP अनुरोध चक्र के 4 चरण
एक LLM API अनुरोध चार स्वतंत्र तकनीकी चरणों से मिलकर बनता है:
- Connect Timeout: TCP और TLS हैंडशेक स्थापित करने का समय (5–10 सेकंड अनुशंसित)।
- Write Timeout: 100k+ टोकन के बड़े प्रॉम्प्ट पेलोड को अपलोड करने का समय।
- Read Timeout: पहले टोकन (TTFT) और SSE स्ट्रीम के प्रत्येक हिस्से के आने की प्रतीक्षा अवधि।
- Pool Timeout: अत्यधिक समवर्ती अनुरोधों के दौरान कनेक्शन पूल से सॉकेट प्राप्त करने का समय।
टाइमआउट निदान मैट्रिक्स
Python (HTTPX) में टाइमआउट कॉन्फ़िगरेशन
मानक 10 सेकंड का डिफ़ॉल्ट टाइमआउट रीजनिंग मॉडल के लिए अपर्याप्त होता है। नीचे एक स्थिर क्लाइंट कॉन्फ़िगरेशन दिया गया है:
SSE स्ट्रीम को स्थिर करना और सुरक्षित पुनः प्रयास
कनेक्शन टूटने पर दोहरे खर्च से बचने के लिए पुनः प्रयास इन तीन नियमों पर आधारित होने चाहिए:
- स्ट्रीम शुरू होने के बाद दोबारा न भेजें: यदि आंशिक टोकन प्राप्त हो चुके हैं, तो पूरे अनुरोध को दोहराने से दोहरा बिलिंग होगा।
- फुल जिटर के साथ एक्सपोनेंशियल बैकऑफ: पुनः प्रयास को बढ़ती हुई यादृच्छिक देरी के साथ शेड्यूल करें।
- आइडम्पोटेंसी कुंजियों का उपयोग: बैच प्रोसेसिंग में दोहराव रोकने के लिए अद्वितीय टास्क आईडी का उपयोग करें।
सत्यापन चेकलिस्ट
- HTTP स्थिति कोड
200 OK। - बिना किसी त्रुटि के संपूर्ण SSE स्ट्रीम का सफल रिसेप्शन।
- स्ट्रीम समाप्त होने के बाद सॉकेट का सही तरीके से रिलीज होना।
विस्तृत जानकारी के लिए BetterToken API Reference देखें।