from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain.agents import create_agent

from agent_utils import run_agent   # 에이전트 thinking 을 단계별로 출력하는 헬퍼

load_dotenv()


# (1) 정답
@tool
def calculator(expression: str) -> str:
    """수학 식을 계산한다. 예: '53 * 7 + 2'"""
    try:
        return str(eval(expression))
    except Exception as e:
        return f"계산 오류: {e}"


llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)

# (2) 정답
agent = create_agent(
    llm,
    [calculator],
    system_prompt="너는 계산 도우미다. 계산이 필요하면 반드시 calculator 도구를 쓰고 암산하지 마라.",
)

if __name__ == "__main__":
    # (3) 정답
    run_agent(agent, "(53 * 7 + 2) / 5 는 얼마야?")
