Menangani alasan berhenti
Ketika Anda membuat permintaan ke Messages API, respons Claude menyertakan bidang stop_reason
yang menunjukkan mengapa model berhenti menghasilkan responsnya. Memahami nilai-nilai ini sangat penting untuk membangun aplikasi yang kuat yang menangani berbagai jenis respons dengan tepat.
Untuk detail tentang stop_reason
dalam respons API, lihat referensi Messages API.
Apa itu stop_reason?
Bidang stop_reason
adalah bagian dari setiap respons Messages API yang berhasil. Tidak seperti error, yang menunjukkan kegagalan dalam memproses permintaan Anda, stop_reason
memberi tahu Anda mengapa Claude berhasil menyelesaikan pembuatan responsnya.
Nilai-nilai stop reason
end_turn
Alasan berhenti yang paling umum. Menunjukkan Claude telah menyelesaikan responsnya secara alami.
max_tokens
Claude berhenti karena telah mencapai batas max_tokens
yang ditentukan dalam permintaan Anda.
stop_sequence
Claude menemukan salah satu urutan berhenti kustom Anda.
tool_use
Claude memanggil alat dan mengharapkan Anda untuk mengeksekusinya.
pause_turn
Digunakan dengan alat server seperti pencarian web ketika Claude perlu menjeda operasi yang berjalan lama.
Praktik terbaik untuk menangani stop reasons
1. Selalu periksa stop_reason
Biasakan untuk memeriksa stop_reason
dalam logika penanganan respons Anda:
2. Tangani max_tokens dengan baik
Ketika respons terpotong karena batas token:
3. Implementasikan logika percobaan ulang untuk pause_turn
Untuk alat server yang mungkin dijeda:
Stop reasons vs. errors
Penting untuk membedakan antara nilai stop_reason
dan error sebenarnya:
Stop reasons (respons berhasil)
- Bagian dari body respons
- Menunjukkan mengapa pembuatan berhenti secara normal
- Respons berisi konten yang valid
Errors (permintaan gagal)
- Kode status HTTP 4xx atau 5xx
- Menunjukkan kegagalan pemrosesan permintaan
- Respons berisi detail error
Pertimbangan streaming
Ketika menggunakan streaming, stop_reason
adalah:
null
dalam eventmessage_start
awal- Disediakan dalam event
message_delta
- Non-null dalam semua event lainnya
Pola umum
Menangani alur kerja penggunaan alat
Memastikan respons lengkap
Dengan menangani nilai stop_reason
dengan benar, Anda dapat membangun aplikasi yang lebih kuat yang menangani berbagai skenario respons dengan baik dan memberikan pengalaman pengguna yang lebih baik.