더북(TheBook)
MY_TOOLS = [get_word_count]
# ── 1단계: 메타데이터 확인 ──
print("=== 1단계: 메타데이터 ===")
for t in MY_TOOLS:
    print(f"  name : {t.name}")
    print(f"  args : {list(t.args.keys())}")
    print(f"  desc : {t.description[:60]}...")
# ── 2단계: 직접 호출 테스트 ──
print("\n=== 2단계: 직접 호출 ===")
print(get_word_count.invoke("LangChain으로 에이전트를 만들 수 있습니다.")) 
# ── 3단계: ToolException 처리 확인 ──
print("\n=== 3단계: ToolException ===")
try:
    get_word_count.invoke("")
except Exception as e:
    print(f"예외 타입: {type(e).__name__}")
    print(f"메시지   : {e}")
# ── 4단계: Tool 바인딩 확인 ──
print("\n=== 4단계: bind_tools ===")
llm_with_tools = ChatOpenAI(model="gpt-4o-mini").bind_tools(MY_TOOLS)
response = llm_with_tools.invoke(
    [HumanMessage(content="이 문장의 단어 수가 몇 개인지 알려줘.")]
)
print("  tool_calls:", response.tool_calls)