Extended Thinking gibt Claude die Fähigkeit, komplexe Probleme Schritt für Schritt zu durchdenken, bevor eine Antwort gegeben wird. Wenn aktiviert, erstellt Claude internes Reasoning (Thinking-Blöcke), das die Qualität der Antworten für Mathematik, Codierung, Analyse und andere komplexe Aufgaben verbessert.
Sendet eine Nachricht mit aktiviertem erweitertem Thinking unter Verwendung der Komfortmethode. Die Temperatur wird automatisch auf 1.0 gesetzt (von der API erforderlich, wenn Thinking aktiviert ist).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';
WriteLn(Anthropic._CreateMessageWithThinking('claude-sonnet-4-20250514',
'How many r''s are in the word strawberry?', 10000));
Verwenden Sie die typisierten Request-/Response-Klassen für volle Kontrolle. Setzen Sie ThinkingType auf 'enabled' und ThinkingBudgetTokens auf das gewünschte Token-Budget (Minimum 1024). Die Antwort enthält thinking- und text-Inhaltsblöcke.
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'API_KEY';
oRequest := TsgcAnthropicClass_Request_Messages.Create;
Try
oRequest.Model := 'claude-sonnet-4-20250514';
oRequest.MaxTokens := 16384;
oRequest.ThinkingType := 'enabled';
oRequest.ThinkingBudgetTokens := 10000;
oMessage := TsgcAnthropicClass_Request_Message.Create;
oMessage.Role := 'user';
oMessage.Content := 'Explain the proof that there are infinitely many primes.';
oMessages := oRequest.Messages;
SetLength(oMessages, 1);
oMessages[0] := oMessage;
oRequest.Messages := oMessages;
oResponse := Anthropic.CreateMessage(oRequest);
Try
for i := 0 to Length(oResponse.Content) - 1 do
begin
if oResponse.Content[i].ContentType = 'thinking' then
WriteLn('Thinking: ' + oResponse.Content[i].Thinking)
else if oResponse.Content[i].ContentType = 'text' then
WriteLn('Response: ' + oResponse.Content[i].Text);
end;
Finally
oResponse.Free;
End;
Finally
oMessage.Free;
oRequest.Free;
End;
Bei der Verwendung von Extended Thinking in Multi-Turn-Konversationen müssen thinking- und redacted_thinking-Blöcke aus vorherigen Antworten in der Konversation zurückgegeben werden. Verwenden Sie das ContentBlocks-Array, um diese Blöcke einzuschließen.
// Pass back thinking blocks from a previous response
oBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oBlock.ContentType := 'thinking';
oBlock.Text := oPrevThinkingBlock.Thinking; // thinking text
oBlock.Signature := oPrevThinkingBlock.Signature; // signature string
// Pass back redacted thinking blocks
oBlock := TsgcAnthropicClass_Request_Content_Block.Create;
oBlock.ContentType := 'redacted_thinking';
oBlock.Data := oPrevRedactedBlock.Data;