Claude Platform Docs
  • Messages
  • Managed Agents
  • Admin

Search...
⌘K
Langkah pertama
Pengenalan ClaudeMulai cepat
Membangun dengan Claude
Ikhtisar fiturMenggunakan Messages APIAlasan berhenti dan fallbackPenolakan dan fallbackKredit fallback
Kemampuan model
Pemikiran diperpanjangPemikiran adaptifUpayaAnggaran tugas (beta)Mode cepat (pratinjau riset)Output terstrukturSitasiStreaming MessagesPemrosesan batchHasil pencarianStreaming penolakanDukungan multibahasaEmbeddings
Alat
IkhtisarCara kerja penggunaan alatTutorial: Membangun agen pengguna alatMendefinisikan alatMenangani panggilan alatPenggunaan alat paralelTool Runner (SDK)Penggunaan alat ketatAlat serverAlat pencarian webAlat pengambilan webAlat eksekusi kodeAlat penasihatAlat pencarian alatAlat memoriAlat BashAlat editor teksAlat penggunaan komputerPemecahan masalah
Infrastruktur alat
Referensi alatMengelola konteks alatKombinasi alatPenggunaan alat dengan caching promptPemanggilan alat terprogramStreaming alat terperinci
Manajemen konteks
Jendela konteksPemadatanPengeditan konteksCaching promptPesan sistem di tengah percakapanMembangun mode orkestrasiDiagnostik cache (beta)Penghitungan token
Bekerja dengan file
Files APIDukungan PDF
Skills
IkhtisarMulai cepatPraktik terbaikSkills untuk enterpriseSkills di API
MCP
Server MCP jarak jauhKonektor MCP
Claude di platform cloud
Amazon BedrockAmazon Bedrock (lama)Claude Platform di AWSGoogle CloudMicrosoft Foundry

Log in
Streaming penolakan
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/Kemampuan model

Penolakan streaming

Deteksi dan tangani stop reason penolakan dalam respons streaming, dan coba ulang permintaan yang ditolak pada model cadangan.

Mulai dari model Claude 4, respons streaming dari API Claude mengembalikan stop_reason: "refusal" ketika pengklasifikasi streaming melakukan intervensi untuk menangani potensi pelanggaran kebijakan. Fitur keamanan ini membantu menjaga kepatuhan konten selama streaming real-time.



Halaman ini membahas bagaimana penolakan muncul dalam respons streaming. Untuk setiap nilai stop_reason dan cara menanganinya, lihat Stop reason dan fallback. Untuk mencoba ulang permintaan yang ditolak pada model Claude lain, lihat Penolakan dan fallback.

Format respons API

Ketika pengklasifikasi streaming mendeteksi konten yang melanggar kebijakan Anthropic, API mengembalikan respons ini:

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


Tidak ada pesan penolakan tambahan yang disertakan. Anda harus menangani respons tersebut dan menyediakan pesan yang sesuai untuk ditampilkan kepada pengguna.

Reset konteks setelah penolakan

Ketika Anda menerima stop_reason: refusal, Anda harus mereset konteks percakapan sebelum melanjutkan. Anda dapat menghapus atau menyusun ulang giliran yang memicu penolakan, atau menghapus seluruh riwayat percakapan. Mencoba melanjutkan tanpa mereset akan menghasilkan penolakan yang berkelanjutan.



Metrik penggunaan tetap disediakan dalam respons, bahkan ketika respons ditolak.

Ketika penolakan tiba sebelum Claude menghasilkan output apa pun, Anda tidak ditagih untuk permintaan tersebut pada API Claude, dan jumlah penggunaan dalam respons tersebut hanya bersifat informasional. Ketika Claude menghasilkan output sebelum penolakan, Anda ditagih untuk permintaan tersebut.



Mereset konteks bukan satu-satunya cara untuk memulihkan. Anda juga dapat mencoba ulang permintaan yang ditolak pada model Claude yang berbeda, dan halaman Penolakan dan fallback menunjukkan cara menyiapkannya dengan fallback sisi server, middleware SDK, atau percobaan ulang manual.

Panduan implementasi

Berikut cara mendeteksi dan menangani penolakan streaming dalam aplikasi Anda:

client = anthropic.Anthropic()
messages = []


def reset_conversation():
    """Reset conversation context after refusal"""
    global messages
    messages = []
    print("Conversation reset due to refusal")


try:
    with client.messages.stream(
        max_tokens=1024,
        messages=messages + [{"role": "user", "content": "Hello"}],
        model="claude-opus-4-8",
    ) as stream:
        for event in stream:
            # Periksa penolakan dalam delta pesan
            if event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")

Jenis penolakan saat ini

API saat ini menangani penolakan dengan tiga cara berbeda:

Jenis PenolakanFormat ResponsKapan Terjadi
Penolakan pengklasifikasi streamingstop_reason: refusalSelama streaming ketika konten melanggar kebijakan
Validasi input API dan hak ciptaKode error 400Ketika input gagal dalam pemeriksaan validasi
Penolakan yang dihasilkan modelRespons teks standarKetika model itu sendiri memutuskan untuk menolak


Versi API mendatang akan memperluas pola stop_reason: refusal untuk menyatukan penanganan penolakan di semua jenis.

Praktik terbaik

  • Pantau penolakan: Sertakan pemeriksaan stop_reason: refusal dalam penanganan error Anda
  • Reset secara otomatis: Implementasikan reset konteks otomatis ketika penolakan terdeteksi
  • Beralih ke model lain: Konfigurasikan fallback sisi server atau middleware SDK sehingga permintaan yang ditolak dicoba ulang pada model Claude lain alih-alih menampilkan penolakan kepada pengguna
  • Tukarkan kredit fallback pada percobaan ulang manual: Jika Anda membangun percobaan ulang sendiri, teruskan token kredit fallback dari penolakan tersebut sehingga percobaan ulang tidak membayar biaya cache prompt dua kali
  • Sediakan pesan kustom: Buat pesan yang ramah pengguna untuk UX yang lebih baik ketika penolakan terjadi
  • Lacak pola penolakan: Pantau frekuensi penolakan untuk mengidentifikasi potensi masalah dengan prompt Anda

Catatan migrasi

Jika Anda membangun penanganan penolakan ketika fitur ini pertama kali dirilis, atau Anda menambahkannya ke integrasi yang sudah ada, periksa hal-hal berikut:

  • Penolakan adalah respons, bukan error. Penolakan tiba sebagai respons HTTP 200 yang berhasil dengan stop_reason: "refusal", sehingga pemantauan yang hanya dibangun berdasarkan tingkat error tidak akan menampilkannya. Lacak penolakan sebagai sinyal tersendiri.
  • Model yang lebih baru mengembalikan lebih banyak detail. Pada Claude Fable 5, penolakan juga menyertakan objek stop_details yang mengidentifikasi kategori kebijakan di balik penolakan tersebut. Lihat Penolakan dan fallback untuk bentuk respons lengkapnya.
  • Coba ulang pada model yang berbeda. Mengirim ulang permintaan yang ditolak ke model yang sama biasanya menghasilkan penolakan lagi. Alih-alih hanya mereset konteks, coba ulang pada model cadangan dengan fallback sisi server, middleware SDK, atau percobaan ulang manual, dan tukarkan kredit fallback ketika Anda membangun percobaan ulang sendiri.
  • Periksa hasil batch untuk penolakan. Permintaan yang ditolak dalam Message Batch dikembalikan sebagai hasil yang berhasil dengan stop_reason: "refusal", bukan sebagai hasil yang error.
  • Pusatkan penanganan pada stop_reason. API terus mengonsolidasikan penanganan penolakan di sekitar stop_reason: "refusal", jadi lakukan percabangan berdasarkan stop reason daripada berdasarkan perilaku spesifik model.

Langkah selanjutnya

Penolakan dan fallback

Coba ulang permintaan yang ditolak pada model Claude lain, di sisi server atau di klien Anda.


Stop reason dan fallback

Setiap nilai stop_reason dan cara menanganinya.


Pesan streaming

Stream respons dan baca stop_reason dari event message_delta saat tiba.


Dukungan multibahasa

Layani pengguna di berbagai bahasa dengan kemampuan lintas bahasa Claude.

Was this page helpful?

  • Format respons API
  • Reset konteks setelah penolakan
  • Panduan implementasi
  • Jenis penolakan saat ini
  • Praktik terbaik
  • Catatan migrasi
  • Langkah selanjutnya