Loading...
  • Bangun
  • Admin
  • Model & harga
  • Client SDK
  • Referensi API
Search...
⌘K
Log in
Penolakan streaming
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

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

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

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
Bangun/Kemampuan model

Streaming refusals

Menangani streaming refusals dari Claude API dengan mendeteksi stop_reason refusal dan mereset konteks percakapan

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

Untuk mempelajari lebih lanjut tentang penolakan yang dipicu oleh filter keamanan API untuk Claude Sonnet 4.5, lihat Understanding Sonnet 4.5's API Safety Filters.

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 dan memberikan pesan yang sesuai untuk pengguna.

Atur ulang konteks setelah penolakan

Ketika Anda menerima stop_reason: refusal, Anda harus mengatur ulang konteks percakapan dengan menghapus atau memperbarui giliran yang ditolak sebelum melanjutkan. Mencoba melanjutkan tanpa mengatur ulang akan menghasilkan penolakan berkelanjutan.

Metrik penggunaan masih disediakan dalam respons untuk tujuan penagihan, bahkan ketika respons ditolak.

Anda akan ditagih untuk token output hingga penolakan.

Jika Anda sering mengalami stop reason refusal saat menggunakan Claude Sonnet 4.5 atau Opus 4.1, Anda dapat mencoba memperbarui panggilan API Anda untuk menggunakan Haiku 4.5 (claude-haiku-4-5-20251001), yang memiliki batasan penggunaan yang berbeda. Pelajari lebih lanjut tentang understanding Sonnet 4.5's API safety filters.

Panduan implementasi

Berikut cara mendeteksi dan menangani streaming refusals di 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-sonnet-4-6",
    ) as stream:
        for event in stream:
            # Check for refusal in message delta
            if hasattr(event, "type") and 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
Streaming classifier refusalsstop_reason: refusalSelama streaming ketika konten melanggar kebijakan
Validasi input API dan hak ciptaKode error 400Ketika input gagal pemeriksaan validasi
Penolakan yang dihasilkan modelRespons teks standarKetika model itu sendiri memutuskan untuk menolak

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

Praktik terbaik

  • Pantau penolakan: Sertakan pemeriksaan stop_reason: refusal dalam penanganan kesalahan Anda
  • Atur ulang secara otomatis: Implementasikan pengaturan ulang konteks otomatis ketika penolakan terdeteksi
  • Berikan pesan khusus: Buat pesan yang ramah pengguna untuk pengalaman pengguna yang lebih baik ketika penolakan terjadi
  • Lacak pola penolakan: Pantau frekuensi penolakan untuk mengidentifikasi potensi masalah dengan prompt Anda

Catatan migrasi

  • Model masa depan akan memperluas pola ini ke jenis penolakan lainnya
  • Rencanakan penanganan kesalahan Anda untuk mengakomodasi penyatuan respons penolakan di masa depan

Was this page helpful?

  • Format respons API
  • Atur ulang konteks setelah penolakan
  • Panduan implementasi
  • Jenis penolakan saat ini
  • Praktik terbaik
  • Catatan migrasi