shT\ddlZddlZddlZddlmZddlmZmZddlZ ddl Z ddl Z ddl mZmZmZmZddlmZmZmZmZ ddlmZddlmZddlmZdd lmZdd lm Z dd l!m"Z"dd l#m$Z$dd l%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddl-m.Z.dZ/n#e0$rZ1 ddl2mZddl3mZddl4mZdd l5mZdd l6m Z dd l7m"Z"dd l8m$Z$dd l9m&Z&ddl:m(Z(ddl;m*Z*ddle?de>dZe@de>dZ>[>wwxYwYdZ1[1ndZ1[1wwxYwdejAd<eejBejCdejDeEZFejGddZHdZI eFJde/de&ZKeZLe ZMe"ZNe$ZOeZPe(ZQeZReZSe*ZTe,ZUe.ZVeLeKeMeNeOePeReQeSeTeUeVg ZWeXeWs e@deeWd ZIeFJd!n,#eY$r$Z1eFZd"e1d#$YdZ1[1ndZ1[1wwxYwGd%d&Z[d'e\d(ee]dzfd)Z^d*e[d+e]d,e\d(e]dzfd-Z_d.e\d/e\d0e\d1ee]d(e`e\e jaff d2ZbeHd3de jcd#4fd/e\d0e\d5e\d6edd7edd(e`e\e jaff d8Zed9ZfeEd:kr=eIse?d;e?d<dSefZgeghd=d>?dSdS)@N) load_dotenv)AnyList) AgentWorkflowToolCallResultToolCall AgentOutput) ChatMessage TextBlock ImageBlock AudioBlock)initialize_image_analyzer_agent)initialize_reasoning_agent)initialize_text_analyzer_agent)initialize_code_agent)initialize_math_agent)initialize_planner_agent)initialize_research_agent)initialize_role_agent)initialize_verifier_agent)$initialize_advanced_validation_agent)&initialize_figure_interpretation_agent)(initialize_long_context_management_agentlocal final_projectzXImport Error: Could not find agent modules. Tried local and final_project paths. Error: z Failed to import agent modules: falseTOKENIZERS_PARALLELISMz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)levelformat GAIA_API_URLz,https://agents-course-unit4-scoring.hf.spacez5Initializing GAIA Multi-Agent Workflow (import path: z)...z(One or more agents failed to initialize. planner_agent)agents root_agentz3GAIA Multi-Agent Workflow initialized successfully.z*FATAL: Error initializing agent workflow: Texc_infoc0eZdZdefdZdeezdefdZdS) BasicAgentworkflowc|)tdtd||_tddS)Nz4AgentWorkflow is None, initialization likely failed.z;AgentWorkflow failed to initialize. Check logs for details.zBasicAgent wrapper initialized.)loggererror RuntimeErroragent_workflowinfo)selfr(s */Users/aedelon/Workspace/GAIA_Agent/app.py__init__zBasicAgent.__init__jsK   LLO P P P\]] ]& 566666questionreturncKt|tr|jrBt|jddr't |jdjddnt |dd}t d|dn&t d|ddd|j |}d}| 23d{V}t|drM|j |krB|j }t dd t dd dt|tr|j rHt|j d r3|j jr't d |j j|jr,t d d |jDt|t rt d|jdt d|jt |j}t d|ddt)|dkrdndt|t*rDt d|jt d|j6|d{V}t|dr!t|j d r |j jnt |}t d|ddt)|dkrdnd|j S)Nrtextdz+Agent received question (first 100 chars): ...)user_msgcurrent_agent_namez2================================================== contentu 📤 Output: u 🛠️ Planning to use tools: cg|] }|j S) tool_name).0calls r0 z'BasicAgent.__call__..s;h;h;htDN;h;h;hr2u🔧 Tool Result (z):z Arguments: z Output: u🔨 Calling Tool: z With arguments: responsezAgent returning final answer: ) isinstancer blockshasattrstrr6r*r.r-run stream_eventsr:r rEr< tool_callsrr? tool_kwargs tool_outputlenr) r/r3 log_questionhandler current_agentevent output_stranswer final_contents r0__call__zBasicAgent.__call__qs h , , [AIRU\]e]lmn]oqwUxUxR3xq1677==BCKLLMQNQMQRL KKWlWWW X X X X KKYhtPStnYYY Z Z Z%))8)<< "0022 F F F F F F F%E#788 F0MAA % 8  xOOO,,, xOOO,,,,E;// F>Jgeni&H&HJU^McJKK H0F H HIII#KKj;h;hW\Wg;h;h;hjjE>22 F DDDDEEE ?E,=??@@@ !233  cDSD)9cC OOVYDYDY55_accddddE8,, F C%/CCDDD D1BDDEEE?3B3:6:3N3NHSZ[a[jluSvSvH//|AG}H}H  u]4C45HuSVWdSeSehkSkSk%%qsuuvvvs.K1N) __name__ __module__ __qualname__rr1rIr rrWr>r2r0r'r'isV77777.s['8.S......r2r' questions_urlr4cKtd| tj|d}||}|stddStdt|d|S#tjj $r*}t d|d Yd}~dSd}~wtjj $rT}t d |d t d |j dd Yd}~dSd}~wt$r*}t d|d Yd}~dSd}~wwxYw)z.Fetches questions from the GAIA benchmark API.zFetching questions from: timeoutz Fetched questions list is empty.NzFetched z questions.zError fetching questions: Tr$z6Error decoding JSON response from questions endpoint: zResponse text: rCz1An unexpected error occurred fetching questions: )r*r.requestsgetraise_for_statusjsonwarningrO exceptionsRequestExceptionr+JSONDecodeErrorr6 Exception)r[rEquestions_dataes r0fetch_questionsrks KK;M;;<<<< r:::!!###!  ^^> ? ? ?D ?s>22???@@@   / 5!55 EEEttttt   . RqRR]a b b b = dsd(;== > > >  LLLW[ \\\ttttts7AB*=,B**F>C##F:A E  FE;;Fagentitembase_fetch_file_urlc K|d}|d}|d}|r|td|dS|r |d|}td|d|d | t j|d }|t j|\}} td |d |d} |rd} |ds'| | r |j d} n#t$rz |j d} td|dn=#t$r0} td|d| d|d} Yd} ~ nd} ~ wwxYwYnwxYwt!d| } n|drt#||j } nd|drt%||j } n8|dkr2td|d t!d!|d"} | r$t!|"| g}t'd#|$}nAtd%|d&|d't'd#t!|"g$}n#tjj$r8}td(|d|d)*||d+|d,|d-cYd}~Sd}~wt$r8}td.|d|d)*||d/|d,|d-cYd}~Sd}~wwxYwt'd#t!|"g$} td0|d1||d{V}t-|d2r|j nt/|}td3|d|dd4t1|d4krd1nd5|||d-S#t$r5}td6|d|d)*||d7|d-cYd}~Sd}~wwxYw)8z1Processes a single question item using the agent.task_idr3 file_nameNz0Skipping item with missing task_id or question: /zFetching file 'z ' for task z from <r^zFile 'z' MIME type guessed as: )'z.txtz.csvz.jsonz.xmlz.yamlz.ymlz.iniz.cfgz.tomlz.logz .propertiesz.htmlz.htmz.xhtmlz.cssz.scssz.sassz.lessz.svgz.mdz.rstz.pyz.jsz.javaz.cz.cppz.hz.hppz.csz.goz.phpz.rbz.swiftz.ktz.shz.batz.ipynbz.Rmdz.texztext/zutf-8zlatin-1z Decoded file z using latin-1 fallback.zCould not decode file z: z*[Error: Could not decode file content for ]r6) block_typer6zimage/)urlimagezaudio/)rvaudiozapplication/pdfzPDF file detected: z. Passing reference URL.z"[Reference PDF file available at: )r6user)rolerGzFile type for 'z ' (MIME: zp) not directly supported for block creation or no block created (e.g., unsupported). Passing text question only.zError fetching file for task Tr$z"AGENT ERROR: Failed to fetch file z - )Task IDQuestionSubmitted AnswerzError processing file for task z$AGENT ERROR: Failed to process file zRunning agent on task r8r<u%👍 Agent submitted answer for task rDzError running agent on task z AGENT ERROR: )rar*rdr.r`rb mimetypes guess_type startswithlowerendswithr<decodeUnicodeDecodeErrorrhr+r r r r rerfrHrIrO)rlrmrnrp question_textrqfetch_file_urlrE mime_type_ file_blocktext_extensions file_content decode_errrGmessagerjsubmitted_answer_responsesubmitted_answers r0process_questionrshhy!!GHHZ((M%%I m+P$PPQQQt;S/;;';; [i[[G[[>[[\\\5 R|NB???H  % % ' ' '$/ ::LIq KKOOOIOO P P PEIJ h# ''00hIOO4E4E4N4N4_4_he'/'7'>'>w'G'G -eeee+3+;+B+B9+M+ML"NN+^9+^+^+^____(eee"LL)[))[)[z)[)[\\\+dXa+d+d+dLLLLLLe e"+f.sa .!33CBT@U>#3#3:ZijjOi#o2F2Fii[ciiiM KK  KK.*..///'*=/3OOO!!###mmoo  M __Z00 M M)oogu== M M55 M M9DHY[^8_8_ M M$ 3IJJ  M M   ,---\'** Z''   ( * * *Pqz7MPPP  B**J S x(Q(QSS SLL"2 B B B A!*/$3$*?AA ALLL B=|== ^$$$\'** z)))))))   &***D ^$$$\'** z))))   /***BqBB ^$$$\'** z))))))) ***c`acc ^d 333\'** z))))))) *sn)C$FM"I#3?G32I#3.H$!I##H$$9I#M#A M0M6K?9M? M 8M M M) track_tqdmapi_urlr max_questionscKts1d}t||tjfS|r|s1d}t||tjfS|d|}|d}|d} t |d{V} | d|d}|tjfS|d kr,| d|} td |d |d n.td t| d |d tt} g} t| } t| | d|dD]3\}}t| || d{V}|r| |4t|||| d{V\}}||fS)zGFetches all questions for a level, runs the agent, and submits answers.z8Agent Workflow is not initialized. Cannot run benchmark.zUsername cannot be empty.z/questions?level=z/submitz /get_fileNz$Failed to fetch questions for level z . Check logs.rzProcessing a maximum of z questions for level rzProcessing all zProcessing Level z Questions)desc)AGENT_WORKFLOWr*r+rrrrkr.rOr' enumeratetqdmrappendr)rrrrrprogress error_msgr[rrn questionsrlrtotal_questionsirmresultrrs r0run_and_submit_allrJs+ )N  Y",..(( )8>>++)/  Y",..((8888M$$$J$///%m44444444IO5OOO ",..((qn}n-  [}[[SX[[[\\\\ Sc)nnSS5SSSTTT ~ & &EG)nnOX]]9;`u;`;`;`]aabb##4't5HIIIIIIII  # NN6 " " " &4J*V]%^%^^^^^^^L*  ##r2c tdtjtj5}tjdtjdtj5tjdd}tjdd }d d d n #1swxYwYtj5tj d gd d }tj dddd }tjdt}d d d n #1swxYwYtj dd}tj dd5tjdd}tjd}d d d n #1swxYwY|t |||||g||gd d d n #1swxYwYtd |S)!z)Creates and returns the Gradio interface.zCreating Gradio interface...)themez# GAIA Benchmark Agent RunnerzcRun the initialized multi-agent system against the GAIA benchmark questions and submit the results.Usernamez2Enter your username (e.g., your_email@example.com))label placeholderz Agent Codez.Enter a short code for your agent (e.g., v1.0)NzBenchmark Level)rr)rchoicesvaluezMax Questions (0 for all)r)rrminimumstepz GAIA API URL)rrzRun Benchmark and Submitprimary)variantResultsF)openzSubmission Status)rlineszDetailed Results)r)fninputsoutputszGradio interface created.)r*r.grBlocksthemesSoftMarkdownRowTextboxDropdownNumberDEFAULT_API_URLButton Accordionrclickr) demorrrrr run_button status_outputresults_dataframes r0create_gradio_interfacer}s KK./// )) * * * d 3444 yzzz VXX v vz @tuuuH,DtuuuJ v v v v v v v v v v v v v v vVXX N NK&7RSTTTEI,GqZ[bcdddMj~_MMMG N N N N N N N N N N N N N N N Y99MMM \)% 0 0 0 G GJ-@JJJM " 3E F F F  G G G G G G G G G G G G G G G !j'5-H"$56    %               . KK+,,, Ks r2r0r(s ````````````[[[[[[[[[[[[%DKKKKKKAAAAAAIIIIII777777777777======??????777777??????UUUUUUYYYYYY]]]]]]DDDDVVVVVVLLLLLLTTTTTTBBBBBBBBBBBBHHHHHHJJJJJJBBBBBBJJJJJJ``````ddddddhhhhhh+ DDD mikmmnnn*.'lBbBBCCC D D.(/ #$ ',/effff  8 $ $")N,Z[[ R KK_HY___```&&((J&&((J&&((J,,..M..00N88::..00N::<<0022O D D F F"H"H"J"J$L$L$N$N! J M>1>?!#>@]J 3z??GlEFFF"]"N KKEFFFFRRR LLAaAADLQQQQQQQQR 66666666tdd1B.Si*SiDSisSiW[^bWbSiSiSiSij8*S8*C8*S8*SWX\S]8*bghkmomyhybz8*8*8*8*|'--- 0$0$0$0$0$ 0$  0$ sBL !0$0$0$0$f< z C TUUU deeeee,,..  iTBBBBBsQA B DA CD D!C??DD  D#CH;;I$II$