गड़बड़ी ठीक करना, अनुरोधों की संख्या सीमित करना, और कोटा मैनेज करना

जब प्रोडक्शन ऐप्लिकेशन और एआई एजेंट में Developer Knowledge API या Developer Knowledge MCP सर्वर से क्वेरी की जा रही हो, तो बेहतर परफ़ॉर्मेंस पाने के लिए, गड़बड़ी ठीक करने और कोटा मैनेज करने की सुविधा होनी चाहिए.

इस गाइड में, आपको इनके बारे में जानकारी मिलेगी:

  • एचटीटीपी 429 रिस्पॉन्स के लिए, जिटर के साथ ट्रंकेटेड एक्स्पोनेंशियल बैकऑफ़ लागू करें.
  • कैननिकल gRPC गड़बड़ी कोड (INVALID_ARGUMENT, PERMISSION_DENIED, RESOURCE_EXHAUSTED) को हैंडल करें.
  • एमसीपी कनेक्शन के टाइमआउट और फिर से कोशिश करने के लॉजिक को मैनेज करता है.
  • कोटा मैनेजमेंट और कैश मेमोरी के सबसे सही तरीके लागू करें.

एचटीटीपी 429 अनुरोध संख्या सीमित करना और एक्स्पोनेंशियल बैकऑफ़

अनुरोध की दरें, एपीआई के डिफ़ॉल्ट कोटे से ज़्यादा होने पर, सेवा HTTP 429 Too Many Requests गड़बड़ी का मैसेज दिखाती है. ऐप्लिकेशन को फिर से कोशिश करने का लॉजिक लागू करना होगा. इसके लिए, जिटर के साथ ट्रंकेटेड एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करना होगा, ताकि सेवा पर ज़्यादा लोड न पड़े.

ट्रंकेटेड एक्स्पोनेंशियल बैकऑफ़

फिर से कोशिश करने के बीच के समय का हिसाब लगाने के लिए, इस फ़ॉर्मूले का इस्तेमाल करें:

retry_delay = min(max_delay, initial_delay * (2 ^ attempt) + jitter)

फिर से कोशिश करने में लगने वाले समय का हिसाब लगाने के लिए, इन पैरामीटर का इस्तेमाल करें:

  • initial_delay: फिर से कोशिश करने में लगने वाला शुरुआती समय (उदाहरण के लिए, 1.0 सेकंड).
  • max_delay: बैकऑफ़ की ज़्यादा से ज़्यादा सीमा (उदाहरण के लिए, 32.0 सेकंड).
  • attempt: फिर से कोशिश करने की मौजूदा संख्या (0, 1, 2, ...).
  • jitter: थ्रेड सिंक्रनाइज़ेशन स्पाइक (थंडरिंग हर्ड की समस्या) को रोकने के लिए, 0 से 1.0 सेकंड के बीच की रैंडम वैल्यू.

gRPC में गड़बड़ी ठीक करना

gRPC पर सेवा को ऐक्सेस करने वाले ऐप्लिकेशन को, कैननिकल grpc.StatusCode वैल्यू की जांच करनी होगी.

स्टैंडर्ड gRPC स्टेटस कोड

यहां दी गई टेबल में, सेवा से मिले कैननिकल gRPC स्टेटस कोड और क्लाइंट को हैंडल करने के लिए सुझाव दिए गए हैं:

gRPC स्टेटस कोड एचटीटीपी कोड स्थिति मुख्य वजह सुझाई गई कार्रवाई
INVALID_ARGUMENT 400 Bad Request क्वेरी स्ट्रिंग गलत है, पैरामीटर का फ़ॉर्मैट अमान्य है या फ़ील्ड मास्क अमान्य है. फिर से कोशिश न करें. अनुरोध को फिर से भेजने से पहले, अनुरोध के पैरामीटर ठीक करें.
UNAUTHENTICATED 401 Unauthorized एपीआई पासकोड या OAuth Bearer टोकन मौजूद नहीं है, उसकी समयसीमा खत्म हो गई है या वह गलत फ़ॉर्मैट में है. फिर से कोशिश न करें. क्रेडेंशियल रीफ़्रेश करें या मान्य एपीआई पासकोड जनरेट करें.
PERMISSION_DENIED 403 Forbidden एपीआई पासकोड के पास अनुमति नहीं है या प्रोजेक्ट में Developer Knowledge API बंद है. फिर से कोशिश न करें. पुष्टि करें कि Google Cloud Console में एपीआई चालू हो.
NOT_FOUND 404 Not Found parentदस्तावेज़ का दिया गया पाथ मौजूद नहीं है. अगर अनुरोध किया गया कोई भी दस्तावेज़ नहीं मिलता है, तो BatchGetDocuments ऐटॉमिक तौर पर फ़ेल हो जाता है. फिर से कोशिश न करें. दस्तावेज़ के संसाधन के नाम की पुष्टि करें.
RESOURCE_EXHAUSTED 429 Too Many Requests रेट की सीमा या प्रोजेक्ट के कोटे की सीमा पार हो गई है. जिटर के साथ एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके, फिर से कोशिश करें.
UNAVAILABLE 503 Service Unavailable नेटवर्क के कुछ समय के लिए डिसकनेक्ट होने या सर्वर के रीस्टार्ट होने की वजह से. एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें.
DEADLINE_EXCEEDED 504 Gateway Timeout अनुरोध पूरा होने से पहले, कॉन्फ़िगर की गई आरपीसी की समयसीमा खत्म हो गई. क्लाइंट आरपीसी टाइमआउट को बढ़ाकर, फिर से कोशिश करें.

एमसीपी कनेक्शन का टाइम आउट होना और गड़बड़ी को मैनेज करना

Developer Knowledge MCP सर्वर, रिमोट सेवा है. इसे https://developerknowledge.googleapis.com/mcp पर होस्ट किया जाता है. इसे एचटीटीपीएस पर ऐक्सेस किया जाता है. इसके लिए, एचटीटीपी पोस्ट या सर्वर-सेंट इवेंट का इस्तेमाल किया जाता है. एआई होस्ट और एजेंट को कनेक्शन टाइमआउट और टूल से जुड़ी गड़बड़ियों को ठीक से मैनेज करना चाहिए.

टूल के इस्तेमाल से जुड़ी कार्रवाइयों के समय खत्म होने की समस्या

जब कोई एजेंट search_documents, get_documents या answer_query को चालू करता है, तो नेटवर्क कनेक्शन धीमे होने पर टूल कॉल, टाइम आउट विंडो (उदाहरण के लिए, 30 सेकंड) से ज़्यादा समय ले सकते हैं.

टूल के इस्तेमाल की समयावधि खत्म होने पर डेटा एंट्री मैनेज करने के लिए:

  • क्लाइंट टाइमआउट कॉन्फ़िगर करें: एमसीपी होस्ट क्लाइंट कॉन्फ़िगरेशन में, टूल के एक्ज़ीक्यूशन के टाइमआउट को 30 से 60 सेकंड पर सेट करें.
  • नेटवर्क में रुकावटों को मैनेज करें: नेटवर्क में कुछ समय के लिए रुकावट आने या एचटीटीपी 503 रिस्पॉन्स मिलने पर, एचटीटीपी अनुरोधों को फिर से भेजें. इसके लिए, एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें.
  • गड़बड़ी के मैसेज की जांच करें: स्टैंडर्ड JSON-RPC गड़बड़ी के मैसेज या एचटीटीपी गड़बड़ी के स्टेटस कोड को पार्स करें, ताकि अमान्य तर्कों को कोटा खत्म होने की गड़बड़ी से अलग किया जा सके.

कोटा मैनेज करने के सबसे सही तरीके

एपीआई का सही तरीके से इस्तेमाल करने और दर की सीमा से जुड़ी अनचाही समस्याओं से बचने के लिए, इन सबसे सही तरीकों को अपनाएं:

  1. फ़ेच किए गए दस्तावेज़ के कॉन्टेंट को कैश मेमोरी में सेव करना: ऐसे ऐप्लिकेशन बनाते समय, फ़ेच किए गए मार्कडाउन दस्तावेज़ों को स्थानीय तौर पर या कैश मेमोरी (जैसे, Redis) में सेव करें जो एक ही पेजों को बार-बार ऐक्सेस करते हैं.
  2. एक साथ कई आइटम वापस पाने की सुविधा का इस्तेमाल करें: एक के बाद एक कई documents.get अनुरोधों को पूरा करने के बजाय, documents.batchGet का इस्तेमाल करें.
  3. क्वेरी फ़ील्ड ऑप्टिमाइज़ करें: सिर्फ़ ज़रूरी रिस्पॉन्स फ़ील्ड का अनुरोध करें. इसके लिए, चुनिंदा फ़ील्ड मास्क (fields=results(parent,content)) का इस्तेमाल करें.
  4. कोटा के इस्तेमाल पर नज़र रखना: Google Cloud Console के एपीआई डैशबोर्ड में, एपीआई के अनुरोध की दरों को ट्रैक करें.