0(hISSKJr SSKJrJrJrJrJrJr SSK J r J r J r SSK Jr SSKJr SSKJrJrJrJr SSKJr SSKJrJrJrJr SS KJr SS KJ r SS K!J"r" SS K#J$r$ SS K%J&r& SSK%J'r' SSK(J)r) SSK*J+r+J,r, SSK-J.r. \"5 \"S\/S\/4Sj5r0\"S\/S\/4Sj5r1\"S\/S\/4Sj5r2\"\.S9r3\1\0\2/r4Sr5\6S:Xa@Sr7\5"5r8\"\7S9/r9\8RuS\905r9\9SHr;\;Ry5 M gg)) load_dotenv) TypedDictListDictAnyOptional Annotated)ChatHuggingFaceHuggingFaceEndpointHuggingFaceEmbeddings)ChatGoogleGenerativeAI)ChatGroq) StateGraph MessagesStateSTARTEND) add_messages) SystemMessage HumanMessage AnyMessage AIMessage)subtract_usage)Tool)tool)TavilySearchResults)WikipediaLoader) ArxivLoader) BM25Retriever)ToolNodetools_condition) system_promptqueryreturnc [USS9R5nSRUVs/sH@nSURSSURR SS5S UR S 3PMB sn5nS U0$s snf) z^Search Wikipedia for a query and return maximum 2 results. Args: query: The search query.r" load_max_docs ---  wiki_results)rloadjoinmetadataget page_contentr" search_docsdocformatted_search_docss T/Users/eric/Documents/study/hf-agents-course/hfagentscourse-finalassignment/agent.py search_wikir;s "Q?DDFK)..# "!h!7 8AQAQRXZ\A]@^^cdgdtdtcuvC D"   1 22  sAA:c [SU35 [SS9RU5n[S[U5SUS35 SR UVs/sHMnSUR R S S 5S UR R S S 5SURS3PMO sn5nU(d [S5 SU0$s snf![a(n[SU35 SS[U530sSnA$SnAff=f)z[Search Tavily for a query and return maximum 3 results. Args: query: The search query.z" executing search_web with query: ) max_resultszFound z documents for query ''r(r)r*unknownr+r,N/Ar.r/zEmpty search results web_resultszError in search_web: zSearch error: N) printrrunlenr2r3r4r5 Exceptionstr)r"r7r8r9es r: search_webrI.s,  .ug 67:)a8<ugQGH - 2 2' &C%S\\%5%5h %J$K8TWT`T`TdTdekmrTsSttyz}{K{KzLLYZ& ! % ) *455   : %aS)*Ax899:s1ACAC&CC C:C5/C:5C:c [USS9R5nSRUVs/sHCnSURSSURR SS5S UR S S S 3PME sn5nS U0$s snf)zYSearch Arxiv for a query and return maximum 3 result. Args: query: The search query.r=r&r(r)r*r+r,rAr.Nir/ arxiv_results)rr1r2r3r4r5r6s r: search_arxivrLHs E;@@BK)..# "!h!7 8AQAQRXZ_A`@aafgjgwgwx}y}g~f@M N"   2 33  sA A=)contentc^[SSS9n[SU35 UR[5m[ST35 "SS[5nSU4U4S jjn[ U5nUR S U5 UR S [[55 UR[S 5 URS [S S [[05 URS S 5 UR5$) Nzgemini-2.5-flash-preview-04-17r)model temperaturezDEBUG: llm object = zDEBUG: llm_with_tools object = c0\rSrSr%\\\\4\S'Sr g)build_graph..AgentStatexmessagesN) __name__ __module__ __qualname____firstlineno__r listrr__annotations____static_attributes__rUr: AgentStaterRxsD,l:;;r]r^statec>TRUS5n[SU35 [U[5(aURc SSSS.UlSU/0$)NrTzDEBUG: LLM result = r) input_tokens output_tokens total_tokens)invokerC isinstancerusage_metadata)r_resultllm_with_toolss r: assistantbuild_graph..assistant{se&&uZ'89 $VH-. fi ( (V-B-B-J56\]$^F !   r]ritools)r rC bind_toolsrkrradd_noderadd_edgeradd_conditional_edgesr rcompile)llmr^ribuilderrhs @r: build_graphrsgs . C  &'^^E*N +N+; <=rs)BB]]9#AA0VV5 %G@<88!  3s 3s 3 3:c:c::2 4 4 4 4&  . 7t z~H MEX./H||Z23H j ! " r]