Improve log formatting
This commit is contained in:
		
							parent
							
								
									3a70e17cae
								
							
						
					
					
						commit
						bfbe704793
					
				|  | @ -148,7 +148,7 @@ def format_prompt_with_managed_agents_descriptions( | ||||||
|         return prompt_template.replace(agent_descriptions_placeholder, "") |         return prompt_template.replace(agent_descriptions_placeholder, "") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| YELLOW_HEX = "#ffdd00" | YELLOW_HEX = "#d4b702" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class MultiStepAgent: | class MultiStepAgent: | ||||||
|  | @ -468,11 +468,19 @@ class MultiStepAgent: | ||||||
|             else: |             else: | ||||||
|                 self.logs.append(system_prompt_step) |                 self.logs.append(system_prompt_step) | ||||||
| 
 | 
 | ||||||
|         console.print( |         # console.print( | ||||||
|             Group( |         #     Group( | ||||||
|                 Rule("[bold]New run", characters="═", style=YELLOW_HEX), Text(self.task) |         #         Rule("[bold]New run", characters="═", style=YELLOW_HEX), Text(self.task) | ||||||
|             ) |         #     ) | ||||||
|         ) |         # ) | ||||||
|  |         console.print(Panel( | ||||||
|  |             f"\n[bold]{task.strip()}\n", | ||||||
|  |             title="[bold]New run", | ||||||
|  |             subtitle=f"{type(self.llm_engine).__name__} - {(self.llm_engine.model_id if hasattr(self.llm_engine, "model_id") else "")}", | ||||||
|  |             border_style=YELLOW_HEX, | ||||||
|  |             subtitle_align="left", | ||||||
|  |         )) | ||||||
|  | 
 | ||||||
|         self.logs.append(TaskStep(task=self.task)) |         self.logs.append(TaskStep(task=self.task)) | ||||||
| 
 | 
 | ||||||
|         if single_step: |         if single_step: | ||||||
|  | @ -870,6 +878,7 @@ class CodeAgent(MultiStepAgent): | ||||||
|             ) |             ) | ||||||
|             log_entry.llm_output = llm_output |             log_entry.llm_output = llm_output | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|  |             console.print_exception() | ||||||
|             raise AgentGenerationError(f"Error in generating llm_engine output:\n{e}") |             raise AgentGenerationError(f"Error in generating llm_engine output:\n{e}") | ||||||
| 
 | 
 | ||||||
|         if self.verbose: |         if self.verbose: | ||||||
|  | @ -888,6 +897,7 @@ class CodeAgent(MultiStepAgent): | ||||||
|         try: |         try: | ||||||
|             code_action = parse_code_blob(llm_output) |             code_action = parse_code_blob(llm_output) | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|  |             console.print_exception() | ||||||
|             error_msg = f"Error in code parsing: {e}. Make sure to provide correct code" |             error_msg = f"Error in code parsing: {e}. Make sure to provide correct code" | ||||||
|             raise AgentParsingError(error_msg) |             raise AgentParsingError(error_msg) | ||||||
| 
 | 
 | ||||||
|  | @ -898,10 +908,9 @@ class CodeAgent(MultiStepAgent): | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         # Execute |         # Execute | ||||||
|         console.print( |         console.print(Panel( | ||||||
|             Panel( |                 Syntax(code_action, lexer="python", theme="monokai", word_wrap=True, line_numbers=True), | ||||||
|                 Syntax(code_action, lexer="python", theme="github-dark"), |                 title="[bold]Executing this code:", | ||||||
|                 title="[bold]Agent is executing the code below:", |  | ||||||
|                 title_align="left", |                 title_align="left", | ||||||
|             ) |             ) | ||||||
|         ) |         ) | ||||||
|  | @ -910,38 +919,38 @@ class CodeAgent(MultiStepAgent): | ||||||
|             output, execution_logs = self.python_executor( |             output, execution_logs = self.python_executor( | ||||||
|                 code_action, |                 code_action, | ||||||
|             ) |             ) | ||||||
|  |             execution_outputs_console = [] | ||||||
|             if len(execution_logs) > 0: |             if len(execution_logs) > 0: | ||||||
|                 console.print( |                 execution_outputs_console += [Text("Execution logs:", style="bold"), Text(execution_logs)] | ||||||
|                     Group(Text("Execution logs:", style="bold"), Text(execution_logs)) |  | ||||||
|                 ) |  | ||||||
|             observation = "Execution logs:\n" + execution_logs |             observation = "Execution logs:\n" + execution_logs | ||||||
|             if output is not None: |  | ||||||
|                 truncated_output = truncate_content(str(output)) |  | ||||||
|                 console.print( |  | ||||||
|                     Group( |  | ||||||
|                         Text("Last output from code snippet:", style="bold"), |  | ||||||
|                         Text(truncated_output), |  | ||||||
|                     ) |  | ||||||
|                 ) |  | ||||||
|                 observation += "Last output from code snippet:\n" + truncate_content( |  | ||||||
|                     str(output) |  | ||||||
|                 ) |  | ||||||
|             log_entry.observations = observation |  | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|  |             console.print_exception() | ||||||
|             error_msg = f"Code execution failed due to the following error:\n{str(e)}" |             error_msg = f"Code execution failed due to the following error:\n{str(e)}" | ||||||
|             if "'dict' object has no attribute 'read'" in str(e): |             if "'dict' object has no attribute 'read'" in str(e): | ||||||
|                 error_msg += "\nYou get this error because you passed a dict as input for one of the arguments instead of a string." |                 error_msg += "\nYou get this error because you passed a dict as input for one of the arguments instead of a string." | ||||||
|             raise AgentExecutionError(error_msg) |             raise AgentExecutionError(error_msg) | ||||||
|  |          | ||||||
|  |         truncated_output = truncate_content(str(output)) | ||||||
|  |         observation += "Last output from code snippet:\n" + truncated_output | ||||||
|  |         log_entry.observations = observation | ||||||
|  | 
 | ||||||
|  |         is_final_answer = False | ||||||
|         for line in code_action.split("\n"): |         for line in code_action.split("\n"): | ||||||
|             if line[: len("final_answer")] == "final_answer": |             if line[: len("final_answer")] == "final_answer": | ||||||
|                 console.print( |                 is_final_answer = True | ||||||
|                     Group( |                 break | ||||||
|                         Text("Final answer:", style="bold"), | 
 | ||||||
|                         Text(str(output), style="bold green"), |         execution_outputs_console+= [ | ||||||
|                     ) |             Text( | ||||||
|                 ) |                 f"{('Out - Final answer' if is_final_answer else 'Out')}: {truncated_output}", | ||||||
|                 log_entry.action_output = output |                 style=(f"bold {YELLOW_HEX}" if is_final_answer else "") | ||||||
|                 return output |             ), | ||||||
|  |         ] | ||||||
|  |         console.print( | ||||||
|  |             Group(*execution_outputs_console) | ||||||
|  |         ) | ||||||
|  |         log_entry.action_output = output | ||||||
|  |         return (output if is_final_answer else None) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ManagedAgent: | class ManagedAgent: | ||||||
|  | @ -996,5 +1005,6 @@ __all__ = [ | ||||||
|     "ManagedAgent", |     "ManagedAgent", | ||||||
|     "MultiStepAgent", |     "MultiStepAgent", | ||||||
|     "CodeAgent", |     "CodeAgent", | ||||||
|  |     "ToolCallingAgent", | ||||||
|     "Toolbox", |     "Toolbox", | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -285,6 +285,7 @@ class TransformersEngine(HfEngine): | ||||||
|             logger.warning( |             logger.warning( | ||||||
|                 f"`model_id`not provided, using this default tokenizer for token counts: '{model_id}'" |                 f"`model_id`not provided, using this default tokenizer for token counts: '{model_id}'" | ||||||
|             ) |             ) | ||||||
|  |         self.model_id = model_id | ||||||
|         try: |         try: | ||||||
|             self.tokenizer = AutoTokenizer.from_pretrained(model_id) |             self.tokenizer = AutoTokenizer.from_pretrained(model_id) | ||||||
|             self.model = AutoModelForCausalLM.from_pretrained(model_id) |             self.model = AutoModelForCausalLM.from_pretrained(model_id) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue