Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschlüsselung zum Nachdenken
Der vollständige Inhalt von Thinking wird verschlüsselt und im Signaturfeld zurückgegeben. Dieses Feld wird verwendet, um zu überprüfen, ob Denkblöcke generiert wurdenClaude, als sie an die API zurückgegeben wurden. Beim Streamen von Antworten wird die Signatur direkt vor dem content_block_delta
Ereignis über ein signature_delta
internes content_block_stop
Ereignis hinzugefügt.
Anmerkung
Es ist nur absolut notwendig, Denkblockaden zurückzuschicken, wenn Tools mit erweitertem Denken verwendet werden. Andernfalls kannst du Denkblöcke aus früheren Runden weglassen oder sie von der API entfernen lassen, wenn du sie zurückgibst.
Wenn du Denkblöcke zurücksendest, empfehlen wir, alles so zurückzugeben, wie du es erhalten hast, um Konsistenz zu gewährleisten und mögliche Probleme zu vermeiden.
Denken Sie an redaktionelle Bearbeitung in Claude 3.7 Sonnet
Anmerkung
Die folgenden Informationen gelten speziell für. Claude 3.7 Sonnet Claude4 Modelle gehen unterschiedlich mit dem Denken um und erzeugen keine redigierten Denkblockaden.
Claude 3.7 SonnetIn gilt Folgendes:
-
Gelegentlich Claude werden interne Überlegungen durch unsere Sicherheitssysteme aufgedeckt. In diesem Fall verschlüsseln wir einen Teil oder den gesamten Denkblock und geben ihn als redacted_thinking-Block an Sie zurück. redacted_thinking-Blöcke werden entschlüsselt, wenn sie an die API zurückgegeben werden, sodass die Antwort fortgesetzt werden kann, ohne den Kontext zu verlieren. Claude
-
thinking
undredacted_thinking
Blöcke werden vor den Textblöcken in der Antwort zurückgegeben.
Bei der Entwicklung kundenorientierter Anwendungen, die erweitertes Denken mit nutzenClaude 3.7 Sonnet, sollten Sie Folgendes berücksichtigen:
-
Beachten Sie, dass redigierte Denkblöcke verschlüsselte Inhalte enthalten, die für Menschen nicht lesbar sind.
-
Erwägen Sie eine einfache Erklärung wie: „Ein Teil Claude der internen Argumentation wurde aus Sicherheitsgründen automatisch verschlüsselt. Dies hat keinen Einfluss auf die Qualität der Antworten.“
-
Wenn Sie Benutzern Denkblöcke anzeigen, können Sie redigierte Blöcke herausfiltern und dabei normale Denkblockaden beibehalten.
-
Seien Sie sich darüber im Klaren, dass die Verwendung von Funktionen für erweitertes Denken gelegentlich dazu führen kann, dass einige Argumentationen verschlüsselt werden.
-
Implementieren Sie eine angemessene Fehlerbehandlung, um redigiertes Denken elegant zu verwalten, ohne Ihre Benutzeroberfläche zu beschädigen.
Hier ist ein Beispiel, das sowohl normale als auch redigierte Denkblöcke zeigt:
{ "content": [ { "type": "thinking", "thinking": "Let me analyze this step by step...", "signature":"WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...." }, { "type": "redacted_thinking", "data":"EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpP..." }, { "type": "text", "text": "Based on my analysis..." } ] }
Tipp
Es ist erwartetes Verhalten, redigierte Denkblöcke in Ihrer Ausgabe zu sehen. Das Modell kann diese geschwärzte Argumentation dennoch als Grundlage für seine Antworten verwenden und gleichzeitig die Sicherheitsvorkehrungen einhalten.
Wenn Sie den Umgang mit geschwärztem Denken in Ihrer Anwendung testen möchten, können Sie diese spezielle Testzeichenfolge als Aufforderung verwenden: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
Wenn Sie in einer Multi-Turn-Konversation an die API weiterleiten thinking
und redacted_thinking
diese wieder an sie zurücksenden, müssen Sie den kompletten, unveränderten Block für die letzte Runde des Assistenten wieder in die API aufnehmen. Dies ist wichtig, um den Argumentationsfluss des Modells aufrechtzuerhalten. Wir empfehlen, immer alle Denkblöcke an die API zurückzugeben. Weitere Informationen hierzu finden Sie unter Erweitertes Denken beim Einsatz von Tools.
Das folgende Beispiel verwendet die InvokeModelWithResponseStreamAPI, um die Anfrage- und Antwortstruktur zu demonstrieren, wenn Denk-Tokens mit Schwärzungen verwendet werden.
Wenn Streaming aktiviert ist, erhältst du Denkinhalte aus den thinking_delta-Events. So gehst du beim Streamen mit Denken um:
Anforderung
{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 24000, "thinking": { "type": "enabled", "budget_tokens": 16000 }, "messages": [ { "role": "user", "content": "What is 27 * 453?" } ] }
Antwort
event: message_start data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-3-7-sonnet-20250219", "stop_reason": null, "stop_sequence": null}} event: content_block_start data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}} event: content_block_delta data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}} event: content_block_delta data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}} // Additional thinking deltas... event: content_block_delta data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}} event: content_block_stop data: {"type": "content_block_stop", "index": 0} event: content_block_start data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}} event: content_block_delta data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}} // Additional text deltas... event: content_block_stop data: {"type": "content_block_stop", "index": 1} event: message_delta data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}} event: message_stop data: {"type": "message_stop"}