from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from langchain_community.agent_toolkits.load_tools import load_tools

from finance_bot import FIN_TOOLS       # (1) 분리한 도구 모듈
from agent_utils import run_agent

load_dotenv()

# (2) human: 정보가 부족하면 에이전트가 사용자에게 되묻는 빌트인 도구
human_tools = load_tools(["human"])

SYSTEM = """당신은 금융 정보 비서입니다.
필요에 따라 적합한 도구를 골라 검색·계산할 수 있습니다.
주가 조회 시 종목은 티커로 씁니다. 예: '005930.KS'=삼성전자, 'AAPL'=애플.
정보가 부족하면 추측하거나 모른다고 하지 말고, human 도구로 사용자에게 되물으세요."""

# (3) 도구들 = 분리한 금융 도구 + human
agent = create_agent(
    ChatOpenAI(model="gpt-4o-mini", temperature=0),
    FIN_TOOLS + human_tools,
    system_prompt=SYSTEM,
)

if __name__ == "__main__":
    # 복합 작업: 주가(USD) → 환율 → 계산 으로 '한화 변환' (도구를 이어서 사용)
    run_agent(agent, "애플(AAPL) 현재 주가를 원화로 환산하면 얼마야?")

    # 대화형으로 쓰려면:
    # while True:
    #     run_agent(agent, input("\n질문> ").strip())
