@@ -380,7 +380,7 @@ async def _run(
380
380
self .step_number += 1
381
381
382
382
if final_answer is None and self .step_number == max_steps + 1 :
383
- final_answer = self ._handle_max_steps_reached (task , images , step_start_time )
383
+ final_answer = await self ._handle_max_steps_reached (task , images , step_start_time )
384
384
yield action_step
385
385
yield FinalAnswerStep (final_answer )
386
386
@@ -407,8 +407,8 @@ def _finalize_step(self, memory_step: ActionStep, step_start_time: float):
407
407
memory_step , agent = self
408
408
)
409
409
410
- def _handle_max_steps_reached (self , task : str , images : list ["PIL.Image.Image" ], step_start_time : float ) -> Any :
411
- final_answer = self .provide_final_answer (task , images )
410
+ async def _handle_max_steps_reached (self , task : str , images : list ["PIL.Image.Image" ], step_start_time : float ) -> Any :
411
+ final_answer = await self .provide_final_answer (task , images )
412
412
final_memory_step = ActionStep (
413
413
step_number = self .step_number , error = AgentMaxStepsError ("Reached max steps." , self .logger )
414
414
)
@@ -577,7 +577,10 @@ async def provide_final_answer(self, task: str, images: list["PIL.Image.Image"]
577
577
]
578
578
if images :
579
579
messages [0 ]["content" ].append ({"type" : "image" })
580
- messages += await self .write_memory_to_messages ()[1 :]
580
+ messages = await self .write_memory_to_messages ()
581
+ messages += messages [1 :]
582
+
583
+
581
584
messages += [
582
585
{
583
586
"role" : MessageRole .USER ,
@@ -592,7 +595,7 @@ async def provide_final_answer(self, task: str, images: list["PIL.Image.Image"]
592
595
}
593
596
]
594
597
try :
595
- chat_message : ChatMessage = self .model (messages )
598
+ chat_message : ChatMessage = await self .model (messages )
596
599
return chat_message .content
597
600
except Exception as e :
598
601
return f"Error in generating final LLM output:\n { e } "
0 commit comments