First_agent_template / tools /validate_final_answer.py
KebabLover's picture
update validation function
5f973f8
from typing import Any, Optional
from smolagents.tools import Tool
import os
class ValidateFinalAnswer(Tool):
name = "validate_final_answer"
description = "Provides a final answer to the given problem."
inputs = {'answer': {'type': 'any', 'description': 'The final answer to the problem to be validate'}}
output_type = "any"
def forward(self, answer: Any) -> Any:
BAN_FUNC = [ "st.chat_input", "chat_message", "set_page_config", "st.sidebar"]
for func in BAN_FUNC:
if answer.find(func) != -1:
print(f"Invalid answer : {func} is not an allowed function")
return f"Invalid answer : {func} is not an allowed function"
try:
compile(answer, "bogusfile.py", "exec")
# os.remove("bogusfile.py")
return "Answer is valide and can be submitted to final answer."
except Exception as e:
return f"Invalid answer : {e}"
def __init__(self, *args, **kwargs):
self.is_initialized = False