@@ -53,13 +53,6 @@ public function handle(Request $request): Response
5353
5454 $ data = $ response ->json ();
5555
56- $ responseMessage = new AssistantMessage (
57- $ this ->extractText (data_get ($ data , 'choices.0.message ' , [])),
58- $ this ->mapToolCalls (data_get ($ data , 'choices.0.message.tool_calls ' , [])),
59- );
60-
61- $ request ->addMessage ($ responseMessage );
62-
6356 return match ($ this ->mapFinishReason ($ data )) {
6457 FinishReason::ToolCalls => $ this ->handleToolCalls ($ data , $ request , $ response ),
6558 FinishReason::Stop => $ this ->handleStop ($ data , $ request , $ response ),
@@ -72,16 +65,19 @@ public function handle(Request $request): Response
7265 */
7366 protected function handleToolCalls (array $ data , Request $ request , ClientResponse $ clientResponse ): Response
7467 {
75- $ toolResults = $ this ->callTools (
76- $ request ->tools (),
77- $ this ->mapToolCalls (data_get ($ data , 'choices.0.message.tool_calls ' , [])),
78- );
68+ $ toolCalls = $ this ->mapToolCalls (data_get ($ data , 'choices.0.message.tool_calls ' , []));
7969
80- $ request ->addMessage (new ToolResultMessage ($ toolResults ));
81- $ request ->resetToolChoice ();
70+ $ toolResults = $ this ->callTools ($ request ->tools (), $ toolCalls );
8271
8372 $ this ->addStep ($ data , $ request , $ clientResponse , $ toolResults );
8473
74+ $ request ->addMessage (new AssistantMessage (
75+ $ this ->extractText (data_get ($ data , 'choices.0.message ' , [])),
76+ $ toolCalls ,
77+ ));
78+ $ request ->addMessage (new ToolResultMessage ($ toolResults ));
79+ $ request ->resetToolChoice ();
80+
8581 if ($ this ->shouldContinue ($ request )) {
8682 return $ this ->handle ($ request );
8783 }
0 commit comments