diff --git a/src/Providers/DeepSeek/Handlers/Text.php b/src/Providers/DeepSeek/Handlers/Text.php index c8a15d253..d9cf14324 100644 --- a/src/Providers/DeepSeek/Handlers/Text.php +++ b/src/Providers/DeepSeek/Handlers/Text.php @@ -63,10 +63,13 @@ protected function handleToolCalls(array $data, Request $request): TextResponse $this->addStep($data, $request, $toolResults); + $reasoningContent = data_get($data, 'choices.0.message.reasoning_content'); + $additionalContent = $reasoningContent ? ['reasoning_content' => $reasoningContent] : []; + $request = $request->addMessage(new AssistantMessage( data_get($data, 'choices.0.message.content') ?? '', $toolCalls, - [] + $additionalContent )); $request = $request->addMessage(new ToolResultMessage($toolResults)); $request->resetToolChoice(); @@ -122,6 +125,8 @@ protected function sendRequest(Request $request): array */ protected function addStep(array $data, Request $request, array $toolResults = []): void { + $reasoningContent = data_get($data, 'choices.0.message.reasoning_content'); + $this->responseBuilder->addStep(new Step( text: data_get($data, 'choices.0.message.content') ?? '', finishReason: $this->mapFinishReason($data), @@ -138,7 +143,7 @@ protected function addStep(array $data, Request $request, array $toolResults = [ ), messages: $request->messages(), systemPrompts: $request->systemPrompts(), - additionalContent: [], + additionalContent: $reasoningContent ? ['reasoning_content' => $reasoningContent] : [], raw: $data, )); } diff --git a/src/Providers/DeepSeek/Maps/MessageMap.php b/src/Providers/DeepSeek/Maps/MessageMap.php index c75352761..f414e498a 100644 --- a/src/Providers/DeepSeek/Maps/MessageMap.php +++ b/src/Providers/DeepSeek/Maps/MessageMap.php @@ -99,10 +99,10 @@ protected function mapAssistantMessage(AssistantMessage $message): void ], ], $message->toolCalls); - $this->mappedMessages[] = array_filter([ + $this->mappedMessages[] = array_filter(array_merge([ 'role' => 'assistant', 'content' => $message->content, 'tool_calls' => $toolCalls, - ]); + ], $message->additionalContent)); } }