Sborole-Final-Assignment / tools /PythonCalcTool.py
Sborole's picture
Update tools/PythonCalcTool.py
0e80199 verified
from smolagents import Tool
class PythonCalcTool(Tool):
name = "python_calc"
description = (
"Can use a normal calculator for probability questions. If needed Execute Python code to compute numeric answers for calculation problems. Use tool to solve math, physics, or distance/time problems. This tool is used for **all mathematical calculations, complex logic processing, and numerical comparisons (e.g., comparing probabilities or finding maximum values)."
)
inputs = {
"code": {"type": "string", "description": "Python code that sets a variable 'result' with the answer."}
}
output_type = "string"
def forward(self, code: str) -> str:
"""
Executes the code safely and returns the result as a string.
Code must set a variable 'result' which is returned.
"""
try:
local_vars = {}
exec(code, {}, local_vars)
# The agent should always set 'result'
answer = local_vars.get("result", None)
if answer is None:
return "NA"
return str(answer)
except Exception as e:
return "NA"