पाठ 15 / 29

Feedback के साथ Retry

मॉडल को बताकर कि क्या ग़लत था, बुरे उत्तर से उबरें।

विफल, समझाएँ, दोबारा

Validation विफल हो तो वही prompt दोबारा न भेजें। छोटा, विशिष्ट error संदेश जोड़ें ("आपका पिछला उत्तर वैध JSON नहीं था: मान अपेक्षित था; सिर्फ़ JSON में उत्तर दें") और प्रयासों की छोटी अधिकतम संख्या (2 या 3) के साथ दोबारा बुलाएँ। हर विफलता और अंतिम fallback (सुरक्षित डिफ़ॉल्ट, मानव queue, या user को error) log करें। गिनें कि retries कितनी बार होते हैं: ऊँची दर का मतलब मूल prompt ठीक करना है, और retries नहीं। Retries tokens और latency ख़र्च करते हैं, इसलिए timeouts भी रखें।

Retry लूप, चलाकर

मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। मॉडल की जगह छोटा function है ताकि नतीजा दोहराया जा सके। नक़ली मॉडल पहली call पर टूटा JSON और दूसरी पर वैध JSON लौटाता है। Prompt में error संदेश जोड़ने के बाद लूप प्रयास 2 पर सफल होता है।

import json

calls = {"n": 0}
def fake_model(prompt):
    calls["n"] += 1
    if calls["n"] == 1:
        return "Here you go: {category: billing}"
    return '{"category": "billing"}'

def ask_with_retry(prompt, max_tries=3):
    for attempt in range(1, max_tries + 1):
        raw = fake_model(prompt)
        try:
            return attempt, json.loads(raw)
        except json.JSONDecodeError as e:
            prompt += f"\nYour last reply was invalid JSON ({e.msg}). Reply with JSON only."
    return max_tries, None

print(ask_with_retry("Classify: I was charged twice."))

Output:

(2, {'category': 'billing'})

Retry दर ट्रैक करें

20% calls को retry चाहिए तो हमेशा retries का भुगतान करने की जगह prompt सुधारें या schema-constrained output उपयोग करें।

त्वरित जाँच: Retry prompt में क्या जोड़ना चाहिए?

  • पिछले उत्तर में क्या ग़लत था उसका विशिष्ट वर्णन
  • कुछ नहीं
  • लंबी persona
  • सिर्फ़ random seed
Answer

पिछले उत्तर में क्या ग़लत था उसका विशिष्ट वर्णन — ठोस error feedback मॉडल को ख़ुद को सुधारने में मदद करता है।