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, "")
|
||||
|
||||
|
||||
YELLOW_HEX = "#ffdd00"
|
||||
YELLOW_HEX = "#d4b702"
|
||||
|
||||
|
||||
class MultiStepAgent:
|
||||
|
@ -468,11 +468,19 @@ class MultiStepAgent:
|
|||
else:
|
||||
self.logs.append(system_prompt_step)
|
||||
|
||||
console.print(
|
||||
Group(
|
||||
Rule("[bold]New run", characters="═", style=YELLOW_HEX), Text(self.task)
|
||||
)
|
||||
)
|
||||
# console.print(
|
||||
# Group(
|
||||
# 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))
|
||||
|
||||
if single_step:
|
||||
|
@ -870,6 +878,7 @@ class CodeAgent(MultiStepAgent):
|
|||
)
|
||||
log_entry.llm_output = llm_output
|
||||
except Exception as e:
|
||||
console.print_exception()
|
||||
raise AgentGenerationError(f"Error in generating llm_engine output:\n{e}")
|
||||
|
||||
if self.verbose:
|
||||
|
@ -888,6 +897,7 @@ class CodeAgent(MultiStepAgent):
|
|||
try:
|
||||
code_action = parse_code_blob(llm_output)
|
||||
except Exception as e:
|
||||
console.print_exception()
|
||||
error_msg = f"Error in code parsing: {e}. Make sure to provide correct code"
|
||||
raise AgentParsingError(error_msg)
|
||||
|
||||
|
@ -898,10 +908,9 @@ class CodeAgent(MultiStepAgent):
|
|||
)
|
||||
|
||||
# Execute
|
||||
console.print(
|
||||
Panel(
|
||||
Syntax(code_action, lexer="python", theme="github-dark"),
|
||||
title="[bold]Agent is executing the code below:",
|
||||
console.print(Panel(
|
||||
Syntax(code_action, lexer="python", theme="monokai", word_wrap=True, line_numbers=True),
|
||||
title="[bold]Executing this code:",
|
||||
title_align="left",
|
||||
)
|
||||
)
|
||||
|
@ -910,38 +919,38 @@ class CodeAgent(MultiStepAgent):
|
|||
output, execution_logs = self.python_executor(
|
||||
code_action,
|
||||
)
|
||||
execution_outputs_console = []
|
||||
if len(execution_logs) > 0:
|
||||
console.print(
|
||||
Group(Text("Execution logs:", style="bold"), Text(execution_logs))
|
||||
)
|
||||
execution_outputs_console += [Text("Execution logs:", style="bold"), Text(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:
|
||||
console.print_exception()
|
||||
error_msg = f"Code execution failed due to the following error:\n{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."
|
||||
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"):
|
||||
if line[: len("final_answer")] == "final_answer":
|
||||
is_final_answer = True
|
||||
break
|
||||
|
||||
execution_outputs_console+= [
|
||||
Text(
|
||||
f"{('Out - Final answer' if is_final_answer else 'Out')}: {truncated_output}",
|
||||
style=(f"bold {YELLOW_HEX}" if is_final_answer else "")
|
||||
),
|
||||
]
|
||||
console.print(
|
||||
Group(
|
||||
Text("Final answer:", style="bold"),
|
||||
Text(str(output), style="bold green"),
|
||||
)
|
||||
Group(*execution_outputs_console)
|
||||
)
|
||||
log_entry.action_output = output
|
||||
return output
|
||||
return (output if is_final_answer else None)
|
||||
|
||||
|
||||
class ManagedAgent:
|
||||
|
@ -996,5 +1005,6 @@ __all__ = [
|
|||
"ManagedAgent",
|
||||
"MultiStepAgent",
|
||||
"CodeAgent",
|
||||
"ToolCallingAgent",
|
||||
"Toolbox",
|
||||
]
|
||||
|
|
|
@ -285,6 +285,7 @@ class TransformersEngine(HfEngine):
|
|||
logger.warning(
|
||||
f"`model_id`not provided, using this default tokenizer for token counts: '{model_id}'"
|
||||
)
|
||||
self.model_id = model_id
|
||||
try:
|
||||
self.tokenizer = AutoTokenizer.from_pretrained(model_id)
|
||||
self.model = AutoModelForCausalLM.from_pretrained(model_id)
|
||||
|
|
Loading…
Reference in New Issue