Reasoning Content Access
Overview¶
Deepseek API allows to access reasoning content, which is a detailed explanation of how the response was generated. This feature is useful for debugging and understanding the reasoning behind the response.
Example¶
<?php
require 'examples/boot.php';
use Cognesy\Messages\Messages;
use Cognesy\Polyglot\Inference\Inference;
// EXAMPLE 1: regular API, allows to customize inference options
$response = Inference::using('deepseek-r')
->withMessages(Messages::fromString('What is the capital of France? Answer with just the city name, nothing else.'))
->withMaxTokens(1024)
->response();
echo "\nCASE #1: Sync response\n";
echo "USER: What is capital of France\n";
echo "ASSISTANT: {$response->content()}\n";
echo "REASONING: {$response->reasoningContent()}\n";
assert($response->content() !== '');
assert($response->reasoningContent() !== '');
// EXAMPLE 2: streaming response
$stream = Inference::using('deepseek-r')
->with(
messages: Messages::fromString('What is the capital of Brasil? Answer with just the city name, nothing else.'),
options: ['max_tokens' => 1024]
)
->withStreaming()
->stream();
echo "\nCASE #2: Streamed response\n";
echo "USER: What is capital of Brasil\n";
echo 'ASSISTANT: ';
foreach ($stream->deltas() as $delta) {
echo $delta->contentDelta;
}
echo "\n";
echo "REASONING: {$stream->final()->reasoningContent()}\n";
assert($stream->final()->reasoningContent() !== '');
assert($stream->final()->content() !== '');
?>