diff --git a/veadk/runner.py b/veadk/runner.py index 24324005..609449c8 100644 --- a/veadk/runner.py +++ b/veadk/runner.py @@ -151,14 +151,18 @@ async def wrapper( logger.debug( f"Function response: {function_response} {event_metadata}" ) - elif ( - event.content is not None - and event.content.parts - and event.content.parts[0].text is not None - and len(event.content.parts[0].text.strip()) > 0 - ): - final_output = event.content.parts[0].text - logger.debug(f"Event output: {final_output} {event_metadata}") + elif event.content is not None and event.content.parts: + for part in event.content.parts: + if len(part.text.strip()) > 0: + final_output = part.text + if part.thought: + logger.debug( + f"Thinking output: {final_output} {event_metadata}" + ) + else: + logger.debug( + f"Event output: {final_output} {event_metadata}" + ) post_run_process(self) @@ -502,13 +506,11 @@ async def event_generator(): yield event async for event in event_generator(): - if ( - event.content is not None - and event.content.parts - and event.content.parts[0].text is not None - and len(event.content.parts[0].text.strip()) > 0 - ): - final_output = event.content.parts[0].text + if event.content is not None and event.content.parts: + for part in event.content.parts: + if not part.thought and len(part.text.strip()) > 0: + final_output = part.text + break except LlmCallsLimitExceededError as e: logger.warning(f"Max number of llm calls limit exceeded: {e}") final_output = ""