La réflexion étendue donne à Claude la capacité de réfléchir étape par étape à des problèmes complexes avant de fournir une réponse. Lorsqu'elle est activée, Claude crée un raisonnement interne (blocs de réflexion) qui améliore la qualité des réponses pour les mathématiques, la programmation, l'analyse et d'autres tâches complexes.
Envoyez un message avec la réflexion étendue activée à l'aide de la méthode pratique. La température est automatiquement définie sur 1.0 (requis par l'API lorsque la réflexion est activée).
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));
Utilisez les classes de requête/réponse typées pour un contrôle total. Définissez ThinkingType sur 'enabled' et ThinkingBudgetTokens sur le budget de tokens souhaité (minimum 1024). La réponse contiendra des blocs de contenu de réflexion et de texte.
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;
Lors de l'utilisation de la pensée étendue dans des conversations multi-tours, les blocs de pensée et de pensée_rédigée des réponses précédentes doivent être transmis dans la conversation. Utilisez le tableau ContentBlocks pour inclure ces blocs.
// 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;