1. स्ट्रक्चर्ड रिस्पॉन्स कॉन्ट्रैक्ट से शुरू करें
रिस्पॉन्स सुधार तभी उपयोगी है जब अनुरोध पहले से ही स्ट्रक्चर्ड आउटपुट माँगता हो। उपयुक्त स्थितियाँ:response_format.type = "json_object"- JSON Schema शैली का आउटपुट
- कई कॉलर द्वारा इस्तेमाल की जाने वाली एक स्थिर object संरचना
2. सही स्तर पर प्लगइन चालू करें
आपresponse-healing को तीन जगह चालू कर सकते हैं:
- workspace की डिफ़ॉल्ट प्लगइन नीति
- प्रीसेट प्लगइन कॉन्फ़िगरेशन
- अनुरोध में
plugins
- workspace
- प्रीसेट
- अनुरोध
3. मॉडल के आउटपुट को सीमित रखें
माँगा गया आउटपुट आकार जितना स्पष्ट होगा, सुधार उतना बेहतर काम करेगा। सुझाव:- कई असंबंधित ब्लॉब के बजाय एक object
- अनिवार्य keys स्पष्ट रूप से तय करें
- संभव हो तो temperature को नियत रखें
- JSON payload के बाहर अतिरिक्त व्याख्या न माँगें
4. जानें कि रिस्पॉन्स सुधार क्या कर सकता है और क्या नहीं
मौजूदा सुधार प्रक्रिया नियतात्मक है और केवल बिना streaming वाली स्थिति में चलती है। Streaming अनुरोध इसे पूरी तरह छोड़ देते हैं। यह सुधार सकता है:- JSON के आसपास लगे Markdown code fences
- अंत में लगी अतिरिक्त कॉमा
- सुरक्षित रूप से जोड़े जा सकने वाले बंद करने के चिह्न
- ऐसे object में बिना quotes वाली keys जिसे बाकी हिस्सों से सुधारा जा सकता है
strict mode इस्तेमाल करें। यह केवल code fences या आसपास के टेक्स्ट में से पहले से वैध JSON निकालता है और बाकी व्यापक syntax सुधार नहीं करता।
अगर अनुरोध JSON Schema शैली का आउटपुट माँगता है, तो सुधार प्रक्रिया दोबारा लिखने से पहले रिकवर किए गए payload की जाँच भी करती है। मौजूदा validator आम नियमों को कवर करता है, जैसे:
- अनिवार्य keys
- बुनियादी scalar और container प्रकार
- enums और const वैल्यू
- array सीमा और
uniqueItems - string लंबाई, regex और
email,uri,uuid,date-timeजैसे आम प्रारूप - संख्या सीमा और
multipleOf - object property सीमा और
additionalProperties: false
- अर्थ की दृष्टि से ज़रूरी लेकिन गायब फ़ील्ड गढ़ना
- व्यावसायिक वैल्यू का अनुमान लगाना
- मनमाने prose को वैध डेटा में बदलना
5. पुष्टि करें कि प्लगइन सचमुच चला
सुधार चलने पर अनुरोध विवरण में प्लगइन रन की जानकारी दिखनी चाहिए। जाँचें:- प्लगइन ID
- क्या उसने बदलाव करने की कोशिश की
- क्या payload बदला
- रिस्पॉन्स रिकवर न हो पाने पर विफलता का कारण
- सुधार की अपेक्षा होने पर क्या अनुरोध बिना streaming के था
6. parser की समस्या और सामग्री की समस्या अलग करें
अगर सुधार मदद न करे, तो पता करें कि विफलता किस प्रकार की है:- गलत JSON जो संरचना में अपेक्षित रूप के करीब हो
- स्कीमा के अनुसार वैध JSON जिसमें गलत फ़ील्ड हों
- JSON के बजाय prose
- बहुत कम token सीमा के कारण अधूरा आउटपुट
7. धीरे-धीरे लागू करें
- स्थिर स्ट्रक्चर्ड आउटपुट वाले एक प्रीसेट में सुधार चालू करें
- लॉग में प्लगइन रन मेटाडेटा देखें
- पुष्टि करें कि रिकवर किए गए payload अपेक्षित स्कीमा से मेल खाते हैं
- लॉग साफ़ होने पर ही मिलते-जुलते प्रीसेट तक सेटिंग फैलाएँ
8. सही mode चुनें
- अगर workflow को सीमित syntax सफ़ाई से लाभ हो, जैसे अतिरिक्त कॉमा हटाना या बिना quotes वाली keys को quote करना, तो
safeइस्तेमाल करें। - अगर wrappers हटाने के बाद केवल पहले से वैध JSON स्वीकार करना हो, तो
strictइस्तेमाल करें। - अनुरोध विवरण में जाँचें कि कौन-सा mode चला।