पाठ 2 / 25

stop_reason पढ़ना

आम stop reasons सही ढंग से सँभालें: बारी का अंत, tool उपयोग, token सीमा और stop sequence।

Model क्यों रुका

हर response बताता है कि generation क्यों रुका। Claude Messages API में आम मान हैं end_turn (उसने उत्तर पूरा किया), tool_use (उसे tool चलवाना है), max_tokens (उत्तर के बीच आपकी output सीमा पूरी हो गई) और stop_sequence (उसने वह sequence बनाई जहाँ आपने रुकने को कहा था)। आपका loop हर एक को जानबूझकर सँभाले, संयोग से नहीं।

हर कारण को सँभालना

max_tokens वाला मामला अहम है: उत्तर या tool call कट सकता है, इसलिए reply को पूरा मान लेना सुरक्षित नहीं।

match reply.stop_reason:
    case "end_turn":
        return final_text(reply)
    case "tool_use":
        messages.append(run_tools(reply))
    case "max_tokens":
        raise OutputTruncated("reply cut off; raise max_tokens or ask for less")
    case _:
        raise UnexpectedStop(reply.stop_reason)

end_turn मानकर न चलें

जो loop हर non-tool reply को पूरा उत्तर मानता है, वह max_tokens आने पर आधा वाक्य ख़ुशी से लौटा देगा। कारण स्पष्ट रूप से जाँचें।

त्वरित जाँच: stop_reason "max_tokens" आपको क्या बताता है?

  • Reply सामान्य रूप से पूरी हुई
  • Reply आपकी output सीमा पर कट सकती है
  • Model ने काम से मना किया
  • API key expire हो गई
Answer

Reply आपकी output सीमा पर कट सकती है — इसका मतलब है कि generation output सीमा पर पहुँचा, इसलिए सामग्री अधूरी हो सकती है।