मुख्य कंटेंट तक स्किप करें

सुरक्षा, इनकार और फ़ॉलबैक

मध्यम

प्रोडक्शन में, आपके कोड को उस स्थिति को संभालना चाहिए जहाँ Claude अपेक्षा के अनुसार जवाब नहीं देगा (या नहीं दे सकता)। अच्छी तरह किया जाए तो यह उपयोगकर्ताओं के लिए अदृश्य होता है; बुरी तरह किया जाए तो यह एक क्रैश या एक भ्रमित करने वाला उत्तर होता है।

दो अलग चीज़ें

  • एक मॉडल इनकार — Claude किसी अनुरोध को अस्वीकार करता है (उदा. यह इसे हानिकारक मानता है)। प्रतिक्रिया इसका संकेत देती है (आमतौर पर एक इनकार stop_reason/content के माध्यम से)। इसे एक त्रुटि के बजाय एक सामान्य परिणाम के रूप में मानें।
  • एक क्लासिफ़ायर/सुरक्षा ब्लॉक — एक अलग सुरक्षा परत सामग्री को ब्लॉक कर सकती है। यह एक मॉडल इनकार से अलग दिख सकता है।

यह जानना कि आपको कौन-सा मिला, आपको अंधाधुंध रीट्राई करने के बजाय उचित प्रतिक्रिया देने देता है।

इसे सहजता से संभालें

resp = client.messages.create(...)
if getattr(resp, "stop_reason", None) == "refusal":
# Don't show a raw/empty result. Offer a safe fallback or a clarifying ask.
show_user("I can't help with that as asked. Here's what I can do instead…")
else:
render(resp)

अवांछित इनकार घटाएँ

  • वैध संदर्भ जोड़ें। जब इरादा सौम्य हो, तब भी एक अनुरोध किसी संवेदनशील चीज़ से पैटर्न-मैच कर सकता है; वास्तविक, वैध उद्देश्य बताने से मदद मिलती है।
  • विशिष्ट रहें। अस्पष्ट या तीखी शब्दावली सावधानी को आमंत्रित करती है।
  • इससे लड़ें नहीं। यदि कोई अनुरोध वास्तव में अनुमत नहीं है, तो इनकार सही है — एक सहज रास्ता डिज़ाइन करें, जेलब्रेक करने की कोशिश न करें।

फ़ॉलबैक पैटर्न

  • मृत-अंत के बजाय एक स्पष्टीकरण प्रश्न
  • एक सुरक्षित विकल्प ("मैं इसके बजाय सार्वजनिक जानकारी का सारांश दे सकता हूँ")।
  • पाइपलाइनों के लिए, जब विश्वास/पात्रता कम हो तब किसी मानव को रूट करें

आगे