From d8982f452c2ebf92d84b726058a54df78d0845ea Mon Sep 17 00:00:00 2001 From: vbeohar Date: Wed, 2 Sep 2026 00:57:12 -0400 Subject: [PATCH 1/6] First ipman agentic forecasting commit with data --- data/fred/IPMAN.parquet | Bin 0 -> 20621 bytes .../README.md | 67 +++++++++++ .../__init__.py | 16 +++ .../manufacturing_stress_forecasting/data.py | 98 ++++++++++++++++ .../features.py | 84 ++++++++++++++ .../predictors/__init__.py | 6 + .../predictors/logistic.py | 107 ++++++++++++++++++ .../run_smoke.py | 28 +++++ .../specs/manufacturing_stress_smoke.yaml | 21 ++++ .../targets.py | 42 +++++++ .../test_targets_and_features.py | 42 +++++++ scripts/fetch_manufacturing_stress.py | 28 +++++ uv.lock | 6 +- 13 files changed, 542 insertions(+), 3 deletions(-) create mode 100644 data/fred/IPMAN.parquet create mode 100644 implementations/manufacturing_stress_forecasting/README.md create mode 100644 implementations/manufacturing_stress_forecasting/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/data.py create mode 100644 implementations/manufacturing_stress_forecasting/features.py create mode 100644 implementations/manufacturing_stress_forecasting/predictors/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/predictors/logistic.py create mode 100644 implementations/manufacturing_stress_forecasting/run_smoke.py create mode 100644 implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml create mode 100644 implementations/manufacturing_stress_forecasting/targets.py create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py create mode 100644 scripts/fetch_manufacturing_stress.py diff --git a/data/fred/IPMAN.parquet b/data/fred/IPMAN.parquet new file mode 100644 index 0000000000000000000000000000000000000000..0c2bd4e4e69445fc6d8e8e3230e9b7495169f9d8 GIT binary patch literal 20621 zcmeI4cT^PHzUK=>%!)`<)Fz{%0)mR@@z5Dm!voUjus*3s z(F&#Hl}M_fX(&O;_KwdhMY5jme^Z8(e&>qHk<_%SXZ9c@uA$@h zBO$2Q)&oe^)!@e!Na=kA&m%}`MC$Ly5R!?bMxI2XEVugXT0K#ddpZ8YCD6cxd6-n(4Qoe_PuEzlnkg{*fZ^@7>>z}6WNGWgIwoard(0brgr0mU-na`2p z-op>RB)aY9{;!EHn7rsMQj&YD={*wmcshJS%Few$`UT1Q7NhbFDIGFU`~ykx*0=pc zNCHe|DJtOk3of5lLQ0kTbt@x9+PnPvAtijnQv-+|dC_DrQoNhJN(IR}_u#!MQhIA~ zkUEkY^6k7PQleitVK`DI(oEMuij$81F$&2__lVF%Qg04d=p!Xc?kppuj9s_b1S#f6 zy%>v>=Dctmj}+}*dwe32I%jBPfrPJRsg_9DVB5Eokt~-=7i*+cH216xQk3*<+;2qh zHPauEVy$~OZHewPd#nS|=Y84CK}yP#KXQ?9RxQK@DXTx!=!#?wHaGJ?O7(7T_d-%4 z-ZvklB=Pw?8VT#t?)nm4vv!alQe+yw)Su`PU3UVAzHF6KFj9P`S6L{MRWBJ9fs}U4 zSQ&|=^v*qqMoK38y2c@839WnLk>a%rw3CpmqG9Wji9SwnHU$arVcZg;FHJ~WM)Yiz z&tjygF2i#rlIk$MxEd+>a@Bk-Qf9^7n2r=XKl#1^DNPHZGmxTfiZxkC>d^Knxk#CY z!t#8icwBLJAyOJX(s?UVwDk0;BBbQBwYmfeb-i`rQ4f4JjG0!Q%l^<}~1U8B*-GTc;f<-D1436Dc})sjCY~T?!C9 zC%Wg(^p{9hnC;hYqL)?rye0anxtHG~;nRKAC#0<5d@n|jT8&W!_VD=BBXuf6b zPo(6)5hF!KJip34UkNE|dDXiQQaZzp*AFT3e0g>NQj!s=H5dtHeb=fW#gEe3RgtVu z243n&Y5$8CHIbAPd(?2GWX^+)I!M`Ozh|S6;sal4T_mfjphlnQ9&O(Ykr28t(uC+c zK39(=`pMkMuJbLCve`GTPezL4=1sRoN`HS=V1pE0T+`<_ zB-Nsy3`7qJ+iQztEm9ipK=czUlQ=}b&g$eMp`Qd?kg}08DqN9bi@T#ekkVM;VlSj< z)u-n^NJ(XqBaMV+)#JWM+4F;jend}sPx~XOO_?@zXh}+Df>m|+K>`jbNmA&L?7KILyGrK`tlgbx=t8(UMzSPpg>R9f`+bhRM^f*~3_c-YqJj7eQf62A`YTdQ&-MR-l;+(( z{SztLyJ)OpFKn;tkJU;@_@4h!87Wh-4C#jyZBH&7fTWJ9^&L#~w>d#7MDJ~WTNTN& ztC*mUlnQvonn+R9^FhOrl06X-I!HLL+&T&={CO#{?<6 zA~`;m=)GC0zDXyx{C)r1;!NO=~2pAv?_mDH@{MJ_AV^ z9P|XFWU9+WTcTgd_-K!mwwZ=-h_1a~$|d@Eu9*u`Hm_#AD^k2XvSQK_qE}xIU51q1 z4Qv(@UF)&=N}`)CFIkPG=Kc9S4Jlc+H7XqmIaBX#zyi`sq5i~_3_QT<^e)driu4*4 zbCJ}P`SJNk$*jST3yFT$Lwze!+TFdXi0Gy> z9;B$l?#VtR^@q&o01_sP4pks!&Oca3kYfKWna7CUeZT4iQlhwc(rKd4{JQBZ(Y*`) zJdc!SY4}zmMZ1n%twK^~+^wsT@TD%d1}PgDtyGI-IluJ3ft1c&S67D=B^b?YKtgNU znntATmBFWGBx_umM=Me~lU><{q?Sr`9v~%Iej8*+*!A_>W2Cq}MbL?4ebKnmg%nxk z>pe$O&XclVA|-R{6u|~2+j|#Fu zN++FZn1Q6`Pn!Tp$?BFOTO@2r9OQsxQO({Qq*N{85*JB%z8md=l!RtvxFTgc2ETAe zicjwI^+K|4I9>BWiu%_W(nxA_NS-ee=5)N7gOtUkiu{q{)uZYIh^`jcD;Oy;`57Nd z^pIsY!->9V#BY&E>4`0yqmiQPQ~JdrsYi_q4RyD#ihvO8=#+iN2})Wg1daYvh!U1XvZvZq$sHM^+%#h=viNge(dAvuSoH` zM2#OvRv*LaD+o39xn zMYj{CnINgBDtpHwWxV*erbuz%kbsFu>Gn-$&5@#`<4i4)lDB))CL=-F>GM>iYcJ{CVL@S!y9+{Af*%LtJ6p->P?(4QX<|cn}d{{8#vt`DQ?)aF96BvavTv%^rUpx zP$Z-qpARScm0jAAM89XZE*dG)uIh+IQWHep@koj7kE%qZZ26MW$w+aoc18+PdaLmH zVx;JamG3en^{wHmnCR;?eymV%H!D68wVKFn7By+T2cI1LW^dh;bUXm#-EuY{W$c%V z8RUHay7(-lG^g*)9HeOX&KdbgNvFZ)LL_{x?7I~y8|=TZ2q{gJUf7Nlt@E2$ij-8} zOD{u0Tgum6NU_!*K6{X?@%fkcA*Jj|RtJ#O^23=GNJ)+xbp$D^zd8FDQrsC?djiS& z+SleZ(bu}foK;w8TJ-Gxc_QBpx2{xReR!qty7!(cJRmY%tyGPq*m{XIN&HqYtjZw-!kSy<_fS*Wd__SLJ%6R_L7EnS;PV=`ZBcbm7fPP5vz=W^? zNS3Zj%OIrG>UT#Kq-5*hO{z$!*!M#XDSkCpsEK4L*3@VtMKd`DI!Ma9BWDy+5}w*i z7b)9G`RgOar;BbHBBh^o#+o2S15a-ri==b~{l*jh;FjqVk*rHo_L~!3;Y1%xqHB03 zPey{*?S`pHSy-H{4N|;h(BT8TBa04cgTW~nVwGGNagdnB+Noj6FDW%~&((W{JJ z%tBIks(f9Eu5NeSo#WSltQUabxnm#P%Cg zWUKUVPVLAIx@rBiY{$)MFORn0w0Uz$zi#@6#-O?xUpjWw{r3Gsd)-W`w?RE9sR!4y z`x=(j+YYqqsJBybFt}x}<`aC&K`W%}mZMHm$1M(PwLycEL0)hJ*JNi|gR|+ej)qxg zmkn;aST+UU=1uJ^yX`vtW5;bb=xx~OZm%BF=;36zv(eMVsujDKciFIIPGVC?i{HY|oh@^heC%xT7xy;0 zBU+^%dM9A5;jTM@8?2t(3CeUZY7Nfy32hB24B6Ehx-IERYnWuU(cSQ}ywJN5yLaxo zJ8%E7CwC(&E*rH)9c>D2i$2-8t1ag2$0u#E(%#1R;x4I&-J4%ySbi`5x>eV`gn9?# z`-zP{VfT~ngp}W3a4)IrezI(}@q>jOd0`Jyp6)Dvu;}Hnt_O?XTsD5V=~!==Vw zI?Ep}`~I=(;c`mZL?%|!2$!YyHQFs(F>vxz*-8~hlSix6_~DOMYlZH9v_@ya(?@Bn zH71YO8svvRUT3mv_v3Wa<4+&2H>);j-(cAs-oA0_lilr`rhj_co&m~ZIx_7wB0931 zjP`V7yG(x8k>l<-rZd-@AJLgdhwkajpR?duXMt$Vm?wq7`4LYxhws|+WJ}cXXHT}q zRgdY~me?H8RkZNQp0460pPqGX7b}l_Dp{p5?`g?eqrFc{H%xwRLg9A;G7t6V_?^Hu z<~xBmCLdzeW*@rnvRKI$;{O=(?1Zr`WDQv~d7q;#+zY2-Q+|{;l-#|Gv zFUJvuz>9QhWj$Y$3aLxzmM@ws5XpZRFJ%cJOrGxK9O3?SQvxklVpacJOlI z8RH=@?7+Ze*@ja#_TU?A^U%$~9$IIl(7R{Y!<*Gty(>lbaI|K@`R#%Bus*8m+nyAA z$hX7aBJJVS_p}df1@@r2^IWCoO?z0!7IoIYvxf&cX{&wT+XJ??v7p)>tVsh0?cv#p zgT1=;+r##Kzu)oCw+Brp_wQO~@VvO2Ya7nn!-P!97jtA@W4~~{4fb#=YtEl`+4hjo zqWX>~RX~(qRZVP!KYlHl79%}l`*y{6{4WXYq0!ogvVN3G1QvFkGxMp$b z(1ZhQIP~aQ-r+_zysL1J+@fg<^G6Jljd!wzM+0yMH{*Od_F6dLs4bk$&m6Moye%A4 z|5n?rU^WgD^N7{o?$I9XxIFA(!E(R^1M8;Ew+SH{{}#6J2(Fbzs(~ zpCgzI8E|YD*Ae!>`Z=?`_3E=wCsqR z(Z8I-jPoo9(CU8^tmnWQ-`i)~2Xf$<(}bV8K8`Sw80=>Ui1Y7rQ~Q(y4EMM@V#y;1 zAl-jqJ2L$qaAfR5lLJa!8%$n}=P>rK#(_k#(4TM~$U^nw0D3`WKfG_bKiF|#=;Z0= zJdHTe7tL$?q@Hn`b0AQKwmz!Gf%+rDkEiZB0`?kUvC$C*DvnFj7~=^2{*Z(n+2R08 z$qCkuFa($T=ny<_|JOOuojvPy*8x5i+|NmCasaYiDRmC;Q}@TGq(TR9CJk+JVEo6? z0V2@dl?)x=5A!Dn4AmTfjb>ArK=I>wM7A|&# z_oEwP{aYMi@OiV%V{v_PH6AFYa3CQZE$IXYveC`HHgRBG!vooX7aX{_rd)8%*9q>t z`QR)pc7jDaP3?5fH~|^vl~yO9cU#@C>2`u03TJz(4&*ZPYs`h$Qyn<*=3H>h{iN)# z#f3DD)|;PgxIn^9E{_Wzel#w8HkS*;9g5tzU^VwNcc2BAxt|~|q@z3KIdd655ON_B z!`1!STp*_@+Ht|yyzhRUKrTpzPrPpsitXbtE#`3H2Zo`RbzJz^){>e~%muZ2`#W!5 za)FrV=4)J7i*o7_>_3XX^guNi3<`c`F017-{(p!IS5BYYsC~^HVJ5zvlxGz=mHr19>~00AgJ5d_P4bzaJ~C#m2Hv>V>cNtz`^ij zu-gTQSv`N@0?`f+-KS zU1C+lJMq8|m-$sB5A>oIF50=D2V8WcA9H!|8-{x;A0Ftp{jqFbFb`a&U?ex>G3!2w z2ZM+q-Em?3UylbQElpSB!PGAogZENA#%@)3Ong)2LGK;e(-g3O=012#d@ts~_8WWa znwIgH^~>jh3UTa%Joua>+cva_$JotD9(;5bu9T7{Bh<)9+v&K-t6dgXi!dl>FoO z+^+)wobI7!^R&I3E07mp`@)^Lwt4i)r(=k{gpR zez*d0`^&Fgq4(ts^W@%cu>9M!xSL;G;f9Uttt?A7W_%0X0KLqsy~qvP(tm_}ZggY( z;+`9fKsQl-<_6=mFr%8fGkL+o9Zm!;Z=DhC&dm1`cZebZE5jWy>s_rn?9Sx(Dt8Fk zEAsYy?GA^FUYA!7^8gHX=|3DiV7PQPi_P-@5)Q`LdVmT^>~0>6UE*iCzj}E9S*FKf z9!!36_5fmjFT@_uH4+zQuLoSK!inAG0as?B!R_||OA>I;docDc@nFW+;lbqDRu4Gx zJmHx7Fi&_Jblq>(RL`D#<_Y9BQWb&}9>(TlOar(ST-5EJ+qZ^mu~ z-i&{*_J)}x;GXqn?DLK{yv4A&M#%>XF&#?#`#@?Q7EC|A;S7eEHyS=n{<896;$lA^ zFeU-F+ndQBDL%|REbxJ_rmlJ8cKJXrEH8o%_&{xm!}0gGeBk{iuSA1(ALjnF`Aj{d z#b@kp0-x!3E+1wJFmk!`nR$!kLtQ8~n8t_Mm`2s2`JnHNm4lQI?K`(#Vs#*i+YA%{ zDF-7534o;e{lf)teme$S5HRx>Du9t!J7<=K2_TUK`d9(nM7QQA3YhxTRlxXFjDYb& zUjbxvyc^vxO908^vC=RRz}RV6nW_nx`2L>HtlM)wvkvuq#;y+Z+($Z}iQi%T9=qbh zO>Io{)A>+&4JSmO&(w=5e5U>z&S&hL&4)Epn=eP(^C3k0F|8TPXX?`xe3(KExP%XL zSnRh!_xMb{Xyh~Yf0qv=?c_Y<199`=I39U_Z}_ki%_!gsABx0A7uS5_GjZ<&pUE3P z_)NXs#E08FtPooHjK88jjZE|a0kd8o`AmEq(=*TG1whKey+H!TU;P9?(%m?Lfbpjl z0zhw{^XGB_9L&XnH%q|8o3jGO&Nm8R?kuc;s|0ZTJto-u0`QBz{O93z0obFvNp)!) zG!}G7c|Gex!-(R!V``Vs%zPZD;h7OeqC%SS`y(_HFD}tc-P=rq)1yUd2QJWzzdWLu zc!lT7^W0||NO^hBO33)lOd;d%@j|8@k&wwdvxQ7POArD^_vXtXLLlkXZLtt$Jy)_E zI#0;t_hKPq54(gw%)Wb#5Qv$&Y!Wi@;+>FL_ckGXR`xG+c`Ib<`f_V1-x%FVDy80 zrha_m!_@ysQl?QEKFoeA+=q#0<9z_5RCetMA28oMRx2;jhw+=EK1`g!>*V+G(Fcf| zzqH^3W{V8-iF_u1&qw>4cQ!F6vBy8q&z&wT9XS>K?KFn*keLEVMKdn95iogZj)2+M zgbSGZ2>lwXQQ5Zn0$7h}r6Z*$4iuu_le)QB!0bEs379&hQ2_p9YE`Zr#yGGH6BY6u z8zat{o_-z*KtMK}KLwC!j*(yp&EzjLn%RFD(9AxBM}vqY{xvkS?)n{BY=lg|Glb0kYpRfm z`{*z7I*b-F`O`uOWZSk>QOM*2O(ASPgBw^4Aro)$GjSi^KWQkzvN2)2kg3~;3qcXf zcC`UQsE)=;iV`w@(@ita4Ia?Uy8l5l^=B#xjaWb#ixAp~KW zk}^;Txci%Z=snHUaX9Z5xDD#Sd6w5l6NP}${lqOxA@IqA1@ym8OgFJZgv`E#BZM;C zPPW(yfs`$8G5(O{bi_F2m9M)gDOw0*JL5WE$mBz@5J-A^xI)O}F^o&{{h?6EtUI13 z#q!q_*F`=bs@Pw>UfUnI4$S_DhMZ{_+3^15@%k+d2IN6W70o<{c|`+BJJ(Oq%zk(^ z4d|s>N~dY)EiZs*rta8911bB)AEV(VKGtzA5CGZMeE8%Awj`0?^=8(88K1ESPxM>T zPq_fP@$taiT>_>K=@0;UJkVbm=b6+alWC~O?a9Ohnu!DG=koe*9L?+ltZ61cE~T0M z3i=P(UVC7kkmnKfJ9*t;Pc!w`RvH3Jnk`>TalE+A2*>-9*PVF1e7}qSOTy%c^E5MV zyw7Odh8-`aVN()1GUg%jSZ8i3t}7`J(9bilyeU}TV;>nblVAO4z`HuleS`N&3Y6JB z{xz3o>I}Ru+$FqOJ-=t%p*?;+ttWqZ^~4)@nz0Z3{Cy8TAhGDNCpVgT{(zLX|60I2 zN18#yMBGN5b)bQSQ!R{BGh8(M z{bR{?)N`v1^Z0knAN8m*vAk2Tt1lB_kuBP(vL84)WTnx>Ob?~yh#S(cSHYVn&} zX``1@s%u#*RXo?~rm?cu>a90xSgW4_s_P7L+&$MB7KpOf8EuVgSZBOlteS4JBhxc| zOt~aGeeAx9hV*dnMqMVJB+v09-obpgSY}3^COs`GWU6Pzl(_U2E-emJyIxJ)Q`+Bd8 z8J}f28NYpdb30?^Pf9HldJXl?WcSg{&9oh0-k51OgsqlkKg`2B%Rw_BH_LIv{KhQK z=v1|AC;cq%Y_4%hZnpEdLyg(9CRVEDxJ{c-UT$plJZ~=#pFAHyKwchy_WY(ifq$xcJ{^?hlP?S_$;CDgGsixO{p2#S(g0t$*2w9RiRN`9ECS-h}4OHiEBRZ>vA z=*6Ly;>E8kHMcK$e@n1^sqyDW1>2W>d)u;o`A-EciMW?4ElKU8S14IAz~YW%5|o&frTY&M#SGKNgKUFt8}e?HeI^TxU{e|eca(YrRyhN)Y`FOQUkqXrlNLPrk$#=EQ_PJxh#8@MQd4(o2~ZFTrW@I&OAZj=AHSo<6CzY_^;63 zRTz{l+_gEZbn~t)k%wD%ZH>LCUA`@$L0Ddt{CIPD@#1%_<=dAl4&N-B(NuLs~?Z~S^a;MeN`_-F0EUJv;7 zdcd#O1JDnCy&mxE^?+Zm2jHK1{(3#&*XsfJXU@M~5BT+Zz^~T>@PWav*8_gN9`Nh+ zfM2f%{D1X&fVPVjrKOw@6dn>CppGx?C>bhh^-GM14oOH1h>kNXic;^7 zQtt%;QAr`pX#?UzqCx@^LW2DR690OlMsa^_9qs8xl#aTRwiTtUqWzZ^)fG|J$QEhr z78&jGH0t}m_fC+uDZbD^;eV9^f2bg)k5Se(!q4;*WV%`*(#RJXojt5z zR3XC7{{H>qfBCKB|D>~j+}mHL;jeesk*#P{Emioxc7qzbBxLT4`f5CpC{o&{TFP+& zF~I=|TAP#>>qW!_hb;6Dij7K&j!Dp)#+vPC%F<&#`pdPDe>p1uxL7YHAUXt3*Zb#+ z>)~~w5g}2*{{L2Dy7W&>iIZOz9FQ17E+tpRBt^%i{7so`IXfxAkLb}Mi2-Co0j`TWBVj z#9u^vamn}+@w#wwy^xHFV`U!5S!nHINAB4woU}*U4~}+B2<~b7-;B{hC|GEY{gC#O zg#s(=%k{5)M+b7O!-MUGX50ueU)Tq2YxSSTAH8sakoK@}wfkQmQ&2QN!B^n8$XDPQ zir4;E^Oxc)SQv%liSl*CF);1_yD|R9{4n>C6f7`L4&hsyh0wN9WIegjp5eh9zI@GG z=XnMO)2_kH{g~stI+E+d$$2>U34u=L!DK!0m|0MCR75b&eNYO{uTvtPm;GE;~Nze;~E!eVJTk=-aL;ao}FbfH%4w> z|8XzT{FESzs0D$fO*`%)mwD_YUW&6d8Zn1h@;~ebe1 z@Q9Urh7&pXPgi5J?TF^&jP}V753=A#(iVZOKt5 z-*EJwDEy6`yr8GQFgyuGbTqsqh#4F@pL|f{#Gdh>bCM78pX7&~ygg#`{6#qbi9zz~ z!$>?}y2ex3>=`pCEmmAW{QRVl#PLCKapUCyiPaNuSWGC=o~}bt%>O9Yz7*w-{~^Nv E0ZIcfjsO4v literal 0 HcmV?d00001 diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md new file mode 100644 index 000000000..bf130759b --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -0,0 +1,67 @@ +# Manufacturing stress forecasting — minimal IPMAN MVP + +This implementation asks one Track 1 question: + +> Given information available at a monthly forecast origin, what is the +> probability that U.S. manufacturing will be under stress three months later? + +The first version intentionally uses only FRED's `IPMAN` series. It excludes +Yahoo Finance, macro covariates, news, LLMs, and agents until the target and +backtest are easy to inspect. + +## Target + +A month is labelled `1` (stress) when IPMAN has declined by at least 2% over +its preceding three months; otherwise it is `0`. The threshold is a provisional +version-1 definition and should be reviewed visually before expanding the +project. + +The forecast made at month `t` predicts the stress label at `t + 3 months`. +That distinction makes this forecasting rather than current-state detection. + +## Predictors + +- `HistoricalFrequencyPredictor`: the visible historical stress rate. +- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on + trailing 1-, 3-, 6-, and 12-month IPMAN percentage changes. + +Both return `BinaryForecast` probabilities and are scored with Brier score. + +## Data and cutoff assumptions + +`FREDAdapter` caches `IPMAN` at `data/fred/IPMAN.parquet`. Because the standard +FRED response does not provide point-in-time release vintages, this prototype +conservatively shifts `released_at` one month beyond each reference timestamp. +The limitation remains: historical FRED observations may contain later +revisions. A production-quality study should use ALFRED vintages. + +## Run + +From the repository root, put a personal FRED key in `.env` or export it: + +```bash +export FRED_API_KEY="..." +``` + +Populate the cache and inspect the registered series: + +```bash +uv run python scripts/fetch_manufacturing_stress.py +``` + +Run the small backtest: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_smoke +``` + +The output prints one mean Brier score per predictor; lower is better. The +logistic model should be compared against historical frequency, not judged in +isolation. + +## Next steps + +1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. +2. Add a full monthly development backtest after the smoke run is stable. +3. Add a small FRED macro panel. +4. Add an agent only after the deterministic Track 1 experiment is credible. diff --git a/implementations/manufacturing_stress_forecasting/__init__.py b/implementations/manufacturing_stress_forecasting/__init__.py new file mode 100644 index 000000000..e4cbe5929 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/__init__.py @@ -0,0 +1,16 @@ +"""Minimal IPMAN-based manufacturing-stress forecasting use case.""" + +from manufacturing_stress_forecasting.data import ( + IPMAN_SERIES_ID, + STRESS_SERIES_ID, + build_manufacturing_stress_service, +) +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +__all__ = [ + "IPMAN_SERIES_ID", + "STRESS_SERIES_ID", + "ManufacturingStressLogisticPredictor", + "build_manufacturing_stress_service", +] diff --git a/implementations/manufacturing_stress_forecasting/data.py b/implementations/manufacturing_stress_forecasting/data.py new file mode 100644 index 000000000..187254448 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/data.py @@ -0,0 +1,98 @@ +"""FRED/IPMAN data service for the manufacturing-stress MVP.""" + +from __future__ import annotations + +from pathlib import Path + +from aieng.forecasting.data import DataService, SeriesMetadata +from aieng.forecasting.data.adapters import FREDAdapter +from aieng.forecasting.data.features import StaticFrameAdapter +from manufacturing_stress_forecasting.features import ( + FEATURE_PERIODS, + apply_conservative_monthly_release_lag, + build_ipman_feature_frames, +) +from manufacturing_stress_forecasting.targets import ( + DEFAULT_LOOKBACK_MONTHS, + DEFAULT_STRESS_THRESHOLD_PCT, + derive_manufacturing_stress_labels, +) + + +IPMAN_FRED_ID = "IPMAN" +IPMAN_SERIES_ID = "ipman_us_manufacturing_production" +STRESS_SERIES_ID = "manufacturing_stress" + +_REPO_ROOT = Path(__file__).resolve().parents[2] +DEFAULT_FRED_CACHE_DIR = _REPO_ROOT / "data" / "fred" + + +def build_manufacturing_stress_service( + *, + cache_dir: str | Path = DEFAULT_FRED_CACHE_DIR, + refresh: bool = False, + release_lag_months: int = 1, + stress_lookback_months: int = DEFAULT_LOOKBACK_MONTHS, + stress_threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, +) -> DataService: + """Build a service containing IPMAN, momentum features, and stress labels.""" + raw_ipman = FREDAdapter(IPMAN_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + ipman = apply_conservative_monthly_release_lag(raw_ipman, months=release_lag_months) + feature_frames = build_ipman_feature_frames(ipman) + stress = derive_manufacturing_stress_labels( + ipman, + lookback_months=stress_lookback_months, + threshold_pct=stress_threshold_pct, + ) + + service = DataService() + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(ipman), + SeriesMetadata( + series_id=IPMAN_SERIES_ID, + description="U.S. manufacturing industrial production index (IPMAN)", + source="FRED (IPMAN)", + units="Index", + frequency="MS", + ), + ) + + for series_id, frame in feature_frames.items(): + periods = FEATURE_PERIODS[series_id] + service.register( + series_id, + StaticFrameAdapter(frame), + SeriesMetadata( + series_id=series_id, + description=f"Trailing {periods}-month percentage change in IPMAN", + source="Derived from FRED IPMAN", + units="Percent", + frequency="MS", + ), + ) + + service.register( + STRESS_SERIES_ID, + StaticFrameAdapter(stress), + SeriesMetadata( + series_id=STRESS_SERIES_ID, + description=( + "Binary U.S. manufacturing stress label: 1 when trailing " + f"{stress_lookback_months}-month IPMAN change is at or below {stress_threshold_pct:.1f}%" + ), + source="Derived from FRED IPMAN", + units="Binary event (0=no stress, 1=stress)", + frequency="MS", + ), + ) + return service + + +__all__ = [ + "DEFAULT_FRED_CACHE_DIR", + "IPMAN_FRED_ID", + "IPMAN_SERIES_ID", + "STRESS_SERIES_ID", + "build_manufacturing_stress_service", +] diff --git a/implementations/manufacturing_stress_forecasting/features.py b/implementations/manufacturing_stress_forecasting/features.py new file mode 100644 index 000000000..535aee05d --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/features.py @@ -0,0 +1,84 @@ +"""Leak-safe monthly features for the manufacturing-stress MVP.""" + +from __future__ import annotations + +import pandas as pd +from aieng.forecasting.data.features import canonical_three_col + + +IPMAN_CHANGE_1M_SERIES_ID = "ipman_change_1m_pct" +IPMAN_CHANGE_3M_SERIES_ID = "ipman_change_3m_pct" +IPMAN_CHANGE_6M_SERIES_ID = "ipman_change_6m_pct" +IPMAN_CHANGE_12M_SERIES_ID = "ipman_change_12m_pct" + +FEATURE_PERIODS: dict[str, int] = { + IPMAN_CHANGE_1M_SERIES_ID: 1, + IPMAN_CHANGE_3M_SERIES_ID: 3, + IPMAN_CHANGE_6M_SERIES_ID: 6, + IPMAN_CHANGE_12M_SERIES_ID: 12, +} +FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) + + +def apply_conservative_monthly_release_lag(frame: pd.DataFrame, months: int = 1) -> pd.DataFrame: + """Stamp observations as available ``months`` after their reference month. + + The standard FRED adapter uses ``released_at = timestamp`` because it does + not retrieve release vintages. For this monthly prototype, one month is a + deliberately conservative approximation that prevents a month-start + forecast from seeing that same month's completed production observation. + """ + if months < 0: + raise ValueError(f"months must be non-negative; got {months}") + out = frame.copy() + out["released_at"] = pd.to_datetime(out["timestamp"]) + pd.offsets.MonthBegin(months) + return canonical_three_col(out) + + +def percent_change_feature(ipman: pd.DataFrame, periods: int) -> pd.DataFrame: + """Return the trailing ``periods``-month IPMAN percentage change.""" + if periods < 1: + raise ValueError(f"periods must be positive; got {periods}") + out = ipman.copy().sort_values("timestamp").reset_index(drop=True) + out["value"] = out["value"].pct_change(periods=periods, fill_method=None) * 100.0 + return canonical_three_col(out) + + +def build_ipman_feature_frames(ipman: pd.DataFrame) -> dict[str, pd.DataFrame]: + """Build the four small momentum features used by the first baseline.""" + return {series_id: percent_change_feature(ipman, periods) for series_id, periods in FEATURE_PERIODS.items()} + + +def build_feature_snapshot( + origin: pd.Timestamp, + feature_frames: dict[str, pd.DataFrame], +) -> dict[str, float] | None: + """Return the latest feature values that were published by ``origin``. + + Filtering on ``released_at`` here is essential when reconstructing older + training examples: the surrounding ``ForecastContext`` protects the current + forecast origin, while this function recreates the stricter cutoff at each + past origin used to train the fit-at-origin logistic model. + """ + snapshot: dict[str, float] = {} + for series_id in FEATURE_SERIES_IDS: + frame = feature_frames[series_id] + visible = frame[pd.to_datetime(frame["released_at"]) <= origin] + if visible.empty: + return None + snapshot[series_id] = float(visible.sort_values("timestamp")["value"].iloc[-1]) + return snapshot + + +__all__ = [ + "FEATURE_PERIODS", + "FEATURE_SERIES_IDS", + "IPMAN_CHANGE_1M_SERIES_ID", + "IPMAN_CHANGE_3M_SERIES_ID", + "IPMAN_CHANGE_6M_SERIES_ID", + "IPMAN_CHANGE_12M_SERIES_ID", + "apply_conservative_monthly_release_lag", + "build_feature_snapshot", + "build_ipman_feature_frames", + "percent_change_feature", +] diff --git a/implementations/manufacturing_stress_forecasting/predictors/__init__.py b/implementations/manufacturing_stress_forecasting/predictors/__init__.py new file mode 100644 index 000000000..a9dad38c7 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/__init__.py @@ -0,0 +1,6 @@ +"""Predictors for the manufacturing-stress implementation.""" + +from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor + + +__all__ = ["ManufacturingStressLogisticPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/predictors/logistic.py b/implementations/manufacturing_stress_forecasting/predictors/logistic.py new file mode 100644 index 000000000..a0c5d3632 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/logistic.py @@ -0,0 +1,107 @@ +"""Fit-at-origin logistic baseline for three-month-ahead manufacturing stress.""" + +from __future__ import annotations + +from datetime import datetime, timezone + +import numpy as np +import pandas as pd +from aieng.forecasting.data.context import ForecastContext +from aieng.forecasting.evaluation.prediction import BinaryForecast, Prediction +from aieng.forecasting.evaluation.predictor import Predictor +from aieng.forecasting.evaluation.task import ForecastingTask +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot + + +class ManufacturingStressLogisticPredictor(Predictor): + """Forecast manufacturing stress from four trailing IPMAN changes. + + The model is rebuilt at every backtest origin. For each resolved historical + outcome at month ``r``, its feature vector is reconstructed at ``r - lead`` + so the training examples obey the same three-month forecast horizon as the + current prediction. + """ + + def __init__(self, *, regularization_c: float = 1.0, min_training_examples: int = 24) -> None: + self._c = regularization_c + self._min_training_examples = min_training_examples + + @property + def predictor_id(self) -> str: + """Return the stable artifact identifier.""" + return "manufacturing_stress_logistic_ipman" + + def predict(self, task: ForecastingTask, context: ForecastContext) -> list[Prediction]: + """Fit on visible history and return one binary stress probability.""" + if task.payload_type != "binary": + raise ValueError(f"{type(self).__name__} requires payload_type='binary'.") + if len(task.horizons) != 1: + raise ValueError(f"{type(self).__name__} supports exactly one horizon; got {task.horizons}.") + + as_of = pd.Timestamp(context.as_of) + target = context.get_series(task.target_series_id) + feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} + lead = pd.tseries.frequencies.to_offset(task.frequency) * task.horizons[0] + + rows, outcomes = self._training_data(target, feature_frames, lead) + current = build_feature_snapshot(as_of, feature_frames) + payload, model_metadata = self._fit_and_predict(rows, outcomes, current) + + return [ + Prediction( + predictor_id=self.predictor_id, + task_id=task.task_id, + issued_at=datetime.now(tz=timezone.utc).replace(tzinfo=None), + as_of=context.as_of, + forecast_date=(as_of + lead).to_pydatetime(), + payload=payload, + metadata={"n_train": len(outcomes), **model_metadata}, + ) + ] + + def _training_data( + self, + target: pd.DataFrame, + feature_frames: dict[str, pd.DataFrame], + lead: pd.DateOffset, + ) -> tuple[list[list[float]], list[float]]: + rows: list[list[float]] = [] + outcomes: list[float] = [] + for resolution_date, outcome in zip(target["timestamp"], target["value"], strict=True): + past_origin = pd.Timestamp(resolution_date) - lead + snapshot = build_feature_snapshot(past_origin, feature_frames) + if snapshot is None: + continue + rows.append([snapshot[series_id] for series_id in FEATURE_SERIES_IDS]) + outcomes.append(float(outcome)) + return rows, outcomes + + def _fit_and_predict( + self, + rows: list[list[float]], + outcomes: list[float], + current: dict[str, float] | None, + ) -> tuple[BinaryForecast, dict[str, object]]: + base_rate = float(np.mean(outcomes)) if outcomes else 0.1 + if current is None: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + if len(outcomes) < self._min_training_examples or len(set(outcomes)) < 2: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + + from sklearn.linear_model import LogisticRegression # noqa: PLC0415 + from sklearn.pipeline import make_pipeline # noqa: PLC0415 + from sklearn.preprocessing import StandardScaler # noqa: PLC0415 + + model = make_pipeline(StandardScaler(), LogisticRegression(C=self._c, max_iter=1000)) + model.fit(np.asarray(rows), np.asarray(outcomes)) + current_row = np.asarray([[current[series_id] for series_id in FEATURE_SERIES_IDS]]) + probability = float(model.predict_proba(current_row)[0, 1]) + coefficients = model.named_steps["logisticregression"].coef_[0] + return BinaryForecast(probability=probability), { + "model": "logistic_regression", + "features": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in current_row[0]), strict=True)), + "coefficients": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in coefficients), strict=True)), + } + + +__all__ = ["ManufacturingStressLogisticPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/run_smoke.py b/implementations/manufacturing_stress_forecasting/run_smoke.py new file mode 100644 index 000000000..fdef561b8 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_smoke.py @@ -0,0 +1,28 @@ +"""Run the two-predictor manufacturing-stress smoke backtest.""" + +from pathlib import Path + +import yaml +from aieng.forecasting.evaluation import BacktestSpec, backtest +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" + + +def main() -> None: + """Load data, run both baselines, and print their mean Brier scores.""" + with SPEC_PATH.open() as file: + spec = BacktestSpec.model_validate(yaml.safe_load(file)) + + service = build_manufacturing_stress_service() + predictors = [HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor()] + for predictor in predictors: + result = backtest(predictor=predictor, spec=spec, data_service=service) + print(f"{predictor.predictor_id}: {result.mean_score:.4f} mean {result.metric}") + + +if __name__ == "__main__": + main() diff --git a/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml b/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml new file mode 100644 index 000000000..39cc9e5cc --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/specs/manufacturing_stress_smoke.yaml @@ -0,0 +1,21 @@ +# Initial Track 1 experiment: one binary target, one three-month horizon. + +description: >- + Development backtest for forecasting whether U.S. manufacturing will be + under IPMAN-defined stress three months after each forecast origin. + +task: + task_id: manufacturing_stress_3m + target_series_id: manufacturing_stress + horizons: [3] + frequency: MS + payload_type: binary + description: >- + Probability that U.S. manufacturing will be under stress three months + ahead. A resolved month is stressed when IPMAN has declined by at least + 2 percent over its preceding three months. + +start: "2018-01-01" +end: "2024-12-01" +stride: 3 +warmup: 60 diff --git a/implementations/manufacturing_stress_forecasting/targets.py b/implementations/manufacturing_stress_forecasting/targets.py new file mode 100644 index 000000000..d2db91aa7 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/targets.py @@ -0,0 +1,42 @@ +"""Deterministic manufacturing-stress target construction.""" + +from __future__ import annotations + +import pandas as pd +from aieng.forecasting.data.features import canonical_three_col + + +DEFAULT_LOOKBACK_MONTHS = 3 +DEFAULT_STRESS_THRESHOLD_PCT = -2.0 + + +def derive_manufacturing_stress_labels( + ipman: pd.DataFrame, + *, + lookback_months: int = DEFAULT_LOOKBACK_MONTHS, + threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, +) -> pd.DataFrame: + """Create a monthly 0/1 target from trailing IPMAN deterioration. + + A month is labelled stressed when IPMAN has fallen by at least + ``abs(threshold_pct)`` percent over the preceding ``lookback_months``. + The label inherits the current IPMAN observation's ``released_at`` date, + because it cannot be known before that observation is published. + """ + if lookback_months < 1: + raise ValueError(f"lookback_months must be positive; got {lookback_months}") + if threshold_pct >= 0: + raise ValueError(f"threshold_pct must be negative; got {threshold_pct}") + + out = ipman.copy().sort_values("timestamp").reset_index(drop=True) + deterioration = out["value"].pct_change(periods=lookback_months, fill_method=None) * 100.0 + out["value"] = (deterioration <= threshold_pct).astype(float) + out.loc[deterioration.isna(), "value"] = float("nan") + return canonical_three_col(out) + + +__all__ = [ + "DEFAULT_LOOKBACK_MONTHS", + "DEFAULT_STRESS_THRESHOLD_PCT", + "derive_manufacturing_stress_labels", +] diff --git a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py new file mode 100644 index 000000000..6afdd3e1e --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py @@ -0,0 +1,42 @@ +"""Focused tests for label construction and historical feature cutoffs.""" + +import pandas as pd +import pytest +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.targets import derive_manufacturing_stress_labels + + +def test_stress_label_uses_trailing_three_month_decline() -> None: + dates = pd.date_range("2024-01-01", periods=5, freq="MS") + ipman = pd.DataFrame( + { + "timestamp": dates, + "value": [100.0, 100.0, 100.0, 100.0, 97.9], + "released_at": dates + pd.offsets.MonthBegin(1), + } + ) + + labels = derive_manufacturing_stress_labels(ipman) + + assert labels["value"].tolist() == [0.0, 1.0] + assert labels["timestamp"].tolist() == [pd.Timestamp("2024-04-01"), pd.Timestamp("2024-05-01")] + assert labels["released_at"].tolist() == [pd.Timestamp("2024-05-01"), pd.Timestamp("2024-06-01")] + + +def test_feature_snapshot_ignores_values_released_after_origin() -> None: + origin = pd.Timestamp("2024-03-01") + frames: dict[str, pd.DataFrame] = {} + for index, series_id in enumerate(FEATURE_SERIES_IDS): + frames[series_id] = pd.DataFrame( + { + "timestamp": [pd.Timestamp("2024-01-01"), pd.Timestamp("2024-02-01")], + "value": [float(index), 999.0], + "released_at": [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-04-01")], + } + ) + + snapshot = build_feature_snapshot(origin, frames) + + assert snapshot is not None + for index, series_id in enumerate(FEATURE_SERIES_IDS): + assert snapshot[series_id] == pytest.approx(float(index)) diff --git a/scripts/fetch_manufacturing_stress.py b/scripts/fetch_manufacturing_stress.py new file mode 100644 index 000000000..af1ed1871 --- /dev/null +++ b/scripts/fetch_manufacturing_stress.py @@ -0,0 +1,28 @@ +"""Fetch/cache IPMAN and print the manufacturing-stress series summary.""" + +from __future__ import annotations + +import sys +from pathlib import Path + + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT)) +sys.path.insert(0, str(REPO_ROOT / "implementations")) + +from dotenv import load_dotenv + + +load_dotenv(REPO_ROOT / ".env", override=False) + +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service + + +def main() -> None: + """Populate the IPMAN cache and report the derived series.""" + service = build_manufacturing_stress_service() + print(service.summary().to_string(index=False)) + + +if __name__ == "__main__": + main() diff --git a/uv.lock b/uv.lock index 7314a4a59..a1ba2aec6 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.12, <4.0" resolution-markers = [ "python_full_version >= '3.15' and sys_platform == 'win32'", @@ -70,7 +70,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "agentic-forecasting-implementations", editable = "implementations" }, + { name = "agentic-forecasting-implementations", virtual = "implementations" }, { name = "ipykernel", specifier = ">=7.3.0" }, { name = "jupyter", specifier = ">=1.1.1" }, { name = "lightgbm", specifier = ">=4.0.0" }, @@ -97,7 +97,7 @@ dev = [ [[package]] name = "agentic-forecasting-implementations" version = "0.1.0" -source = { editable = "implementations" } +source = { virtual = "implementations" } dependencies = [ { name = "aieng-forecasting", extra = ["agentic", "documents", "llm", "numerical"] }, { name = "beautifulsoup4" }, From 19f86a9e0d467d22a16c682d9a189490f41a62a2 Mon Sep 17 00:00:00 2001 From: vbeohar Date: Mon, 21 Sep 2026 23:52:15 -0400 Subject: [PATCH 2/6] Added agent predictor --- .../analyst_agent/__init__.py | 14 ++ .../analyst_agent/agent.py | 146 ++++++++++++++++++ .../run_agent_prediction.py | 54 +++++++ .../test_agent_prompt.py | 71 +++++++++ 4 files changed, 285 insertions(+) create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py create mode 100644 implementations/manufacturing_stress_forecasting/analyst_agent/agent.py create mode 100644 implementations/manufacturing_stress_forecasting/run_agent_prediction.py create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py b/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py new file mode 100644 index 000000000..4d704e53c --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/__init__.py @@ -0,0 +1,14 @@ +"""Quantitative-only manufacturing-stress analyst agent.""" + +from manufacturing_stress_forecasting.analyst_agent.agent import ( + ManufacturingStressPromptBuilder, + build_manufacturing_stress_agent_config, + build_manufacturing_stress_agent_predictor, +) + + +__all__ = [ + "ManufacturingStressPromptBuilder", + "build_manufacturing_stress_agent_config", + "build_manufacturing_stress_agent_predictor", +] diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py new file mode 100644 index 000000000..5fc32724c --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -0,0 +1,146 @@ +"""Quantitative-only ADK agent for binary manufacturing-stress forecasts.""" + +from __future__ import annotations + +import json +from typing import Any + +import pandas as pd +from aieng.forecasting.data.context import ForecastContext +from aieng.forecasting.evaluation.task import ForecastingTask +from aieng.forecasting.methods.agentic import ( + AgentPredictor, + DiscreteAgentForecastOutput, + build_adk_agent, +) +from aieng.forecasting.methods.agentic.agent_factory import AgentConfig +from aieng.forecasting.models import LITE_MODEL +from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.targets import ( + DEFAULT_LOOKBACK_MONTHS, + DEFAULT_STRESS_THRESHOLD_PCT, +) +from pydantic import BaseModel, Field + + +def _build_instruction() -> str: + schema = DiscreteAgentForecastOutput.prompt_schema_json() + return ( + "## Role\n\n" + "You are a cautious U.S. manufacturing-cycle analyst. Estimate the probability that the " + "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" + "## Rules\n\n" + "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" + "2. Start from the supplied historical base rate, then adjust using the current IPMAN momentum signals.\n" + "3. Treat more-negative short- and medium-horizon IPMAN changes as evidence for stress, but do not " + "turn a weak signal into certainty.\n" + "4. `probability` means P(stress=1), not confidence in your explanation.\n" + "5. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "6. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " + "away from stress, and `neutral` when mixed.\n\n" + "## Output\n\n" + "Return exactly one JSON object matching this structure, with no markdown fence or preamble:\n\n" + schema + ) + + +class ManufacturingStressPromptBuilder(BaseModel): + """Serialize cutoff-safe IPMAN evidence into the agent's prompt.""" + + model_config = {"extra": "forbid"} + + recent_history_months: int = Field(default=24, ge=6, le=120) + trailing_base_rate_months: int = Field(default=60, ge=12, le=240) + + def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: + """Build one structured, cutoff-safe forecast payload.""" + if task.payload_type != "binary" or len(task.horizons) != 1: + raise ValueError("ManufacturingStressPromptBuilder requires one binary forecast horizon.") + + as_of = pd.Timestamp(context.as_of) + offset = pd.tseries.frequencies.to_offset(task.frequency) + forecast_date = as_of + offset * task.horizons[0] + ipman = context.get_series(IPMAN_SERIES_ID).sort_values("timestamp") + target = context.get_series(task.target_series_id).sort_values("timestamp") + feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} + current_signals = build_feature_snapshot(as_of, feature_frames) + + target_values = target["value"].astype(float) + trailing_values = target_values.tail(self.trailing_base_rate_months) + recent_ipman = [ + { + "reference_month": str(pd.Timestamp(timestamp).date()), + "value": float(value), + "released_at": str(pd.Timestamp(released_at).date()), + } + for timestamp, value, released_at in zip( + ipman["timestamp"].tail(self.recent_history_months), + ipman["value"].tail(self.recent_history_months), + ipman["released_at"].tail(self.recent_history_months), + strict=True, + ) + ] + + payload: dict[str, Any] = { + "task": { + "task_id": task.task_id, + "question": task.description, + "horizon_months": task.horizons[0], + }, + "as_of": str(as_of.date()), + "forecast_date": str(forecast_date.date()), + "target_definition": { + "event": "manufacturing stress", + "stress_value": 1, + "no_stress_value": 0, + "lookback_months": DEFAULT_LOOKBACK_MONTHS, + "threshold_pct": DEFAULT_STRESS_THRESHOLD_PCT, + "rule": ("stress=1 when trailing IPMAN percentage change is less than or equal to threshold_pct"), + }, + "current_ipman_signals_pct": current_signals, + "historical_stress": { + "n_visible_months": len(target_values), + "all_history_base_rate": float(target_values.mean()) if len(target_values) else None, + "trailing_window_months": self.trailing_base_rate_months, + "trailing_base_rate": float(trailing_values.mean()) if len(trailing_values) else None, + }, + "recent_ipman": recent_ipman, + } + return json.dumps(payload, indent=2) + + +def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentConfig: + """Build the tool-free manufacturing analyst configuration.""" + return AgentConfig( + name="manufacturing_stress_analyst", + model=model, + instruction=_build_instruction(), + temperature=0.1, + seed=42, + max_output_tokens=2_048, + ) + + +def build_manufacturing_stress_agent_predictor( + config: AgentConfig | None = None, +) -> AgentPredictor: + """Wrap the analyst in the standard binary AgentPredictor contract.""" + return AgentPredictor( + agent_config=config or build_manufacturing_stress_agent_config(), + prompt_builder=ManufacturingStressPromptBuilder(), + output_schema=DiscreteAgentForecastOutput, + ) + + +def __getattr__(name: str) -> Any: + """Expose a schema-free root agent for ``adk run`` and ``adk web``.""" + if name == "root_agent": + return build_adk_agent(build_manufacturing_stress_agent_config()) + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "ManufacturingStressPromptBuilder", + "build_manufacturing_stress_agent_config", + "build_manufacturing_stress_agent_predictor", +] diff --git a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py new file mode 100644 index 000000000..5a7245df1 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py @@ -0,0 +1,54 @@ +"""Run one current, quantitative-only manufacturing-stress agent forecast.""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pandas as pd +import yaml +from aieng.forecasting.evaluation import BacktestSpec +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor +from manufacturing_stress_forecasting.data import ( + IPMAN_SERIES_ID, + build_manufacturing_stress_service, +) +from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor + + +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" + + +def main() -> None: + """Forecast from the most recent cached IPMAN release date.""" + with SPEC_PATH.open() as file: + task = BacktestSpec.model_validate(yaml.safe_load(file)).task + + service = build_manufacturing_stress_service() + full_ipman = service.get_series(IPMAN_SERIES_ID, as_of=pd.Timestamp("2100-01-01").to_pydatetime()) + as_of = pd.Timestamp(full_ipman["released_at"].max()) + context = service.context(as_of=as_of.to_pydatetime()) + + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + build_manufacturing_stress_agent_predictor(), + ] + print(f"Forecast origin: {as_of.date()}") + print( + f"Latest visible IPMAN reference month: {pd.Timestamp(context.get_series(IPMAN_SERIES_ID)['timestamp'].max()).date()}" + ) + for predictor in predictors: + prediction = predictor.predict(task, context)[0] + output = { + "predictor_id": prediction.predictor_id, + "forecast_date": str(pd.Timestamp(prediction.forecast_date).date()), + "stress_probability": prediction.payload.probability, + "metadata": prediction.metadata, + } + print(json.dumps(output, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py new file mode 100644 index 000000000..88c46263b --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -0,0 +1,71 @@ +"""Tests for the manufacturing-stress agent payload.""" + +import json +from datetime import datetime + +import pandas as pd +from aieng.forecasting.data import DataService, SeriesMetadata +from aieng.forecasting.data.features import StaticFrameAdapter +from aieng.forecasting.evaluation import ForecastingTask +from manufacturing_stress_forecasting.analyst_agent import ManufacturingStressPromptBuilder +from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, STRESS_SERIES_ID +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS + + +def _frame(values: list[float], *, future_value: float | None = None) -> pd.DataFrame: + dates = pd.date_range("2020-01-01", periods=len(values), freq="MS") + frame = pd.DataFrame({"timestamp": dates, "value": values, "released_at": dates}) + if future_value is not None: + frame = pd.concat( + [ + frame, + pd.DataFrame( + { + "timestamp": [pd.Timestamp("2020-07-01")], + "value": [future_value], + "released_at": [pd.Timestamp("2020-08-01")], + } + ), + ], + ignore_index=True, + ) + return frame + + +def test_prompt_uses_only_cutoff_visible_evidence() -> None: + service = DataService() + metadata = lambda series_id: SeriesMetadata( # noqa: E731 + series_id=series_id, + description=series_id, + source="test", + units="test", + frequency="MS", + ) + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(_frame([100, 101, 102, 103, 104, 105], future_value=999)), + metadata(IPMAN_SERIES_ID), + ) + service.register( + STRESS_SERIES_ID, StaticFrameAdapter(_frame([0, 0, 1, 0, 0, 0], future_value=1)), metadata(STRESS_SERIES_ID) + ) + for index, series_id in enumerate(FEATURE_SERIES_IDS): + service.register( + series_id, StaticFrameAdapter(_frame([float(index)] * 6, future_value=999)), metadata(series_id) + ) + + task = ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id=STRESS_SERIES_ID, + horizons=[3], + frequency="MS", + payload_type="binary", + description="Will manufacturing be stressed three months ahead?", + ) + prompt = ManufacturingStressPromptBuilder()(task=task, context=service.context(datetime(2020, 6, 1))) + payload = json.loads(prompt) + + assert payload["as_of"] == "2020-06-01" + assert payload["forecast_date"] == "2020-09-01" + assert payload["recent_ipman"][-1]["value"] == 105.0 + assert 999.0 not in payload["current_ipman_signals_pct"].values() From 3c909b9e1a6531f2fecc5a88b9b7eb6982f15d0f Mon Sep 17 00:00:00 2001 From: vbeohar Date: Tue, 22 Sep 2026 01:08:47 -0400 Subject: [PATCH 3/6] Added 5 more macro expl vars --- .../README.md | 35 ++++++---- .../analyst_agent/agent.py | 33 +++++++--- .../manufacturing_stress_forecasting/data.py | 50 ++++++++++++-- .../features.py | 66 +++++++++++++++++-- .../predictors/logistic.py | 6 +- .../test_agent_prompt.py | 3 + .../test_targets_and_features.py | 36 +++++++++- scripts/fetch_manufacturing_stress.py | 4 +- 8 files changed, 196 insertions(+), 37 deletions(-) diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index bf130759b..c31f8b881 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -5,9 +5,10 @@ This implementation asks one Track 1 question: > Given information available at a monthly forecast origin, what is the > probability that U.S. manufacturing will be under stress three months later? -The first version intentionally uses only FRED's `IPMAN` series. It excludes -Yahoo Finance, macro covariates, news, LLMs, and agents until the target and -backtest are easy to inspect. +The model deliberately uses only five explanatory variables: trailing +1-, 3-, and 6-month IPMAN changes, the effective federal funds rate, and the +10-year minus 2-year Treasury yield spread. The small panel keeps the first +multivariate experiment interpretable. ## Target @@ -23,17 +24,20 @@ That distinction makes this forecasting rather than current-state detection. - `HistoricalFrequencyPredictor`: the visible historical stress rate. - `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on - trailing 1-, 3-, 6-, and 12-month IPMAN percentage changes. + the five IPMAN/rate variables. +- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same + five cutoff-safe signals plus recent IPMAN history and historical base rates. -Both return `BinaryForecast` probabilities and are scored with Brier score. +All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. ## Data and cutoff assumptions -`FREDAdapter` caches `IPMAN` at `data/fred/IPMAN.parquet`. Because the standard -FRED response does not provide point-in-time release vintages, this prototype -conservatively shifts `released_at` one month beyond each reference timestamp. -The limitation remains: historical FRED observations may contain later -revisions. A production-quality study should use ALFRED vintages. +`FREDAdapter` caches `IPMAN`, `DFF`, `DGS10`, and `DGS2` under `data/fred/`. +IPMAN is conservatively treated as available one month after its reference +month. Daily rate observations are treated as available on the next business +day and collapsed to their final monthly observation. The standard FRED API +does not provide full point-in-time vintages, so historical observations may +still contain later revisions; a production study should use ALFRED vintages. ## Run @@ -59,9 +63,14 @@ The output prints one mean Brier score per predictor; lower is better. The logistic model should be compared against historical frequency, not judged in isolation. +Run one current forecast, including the structured agent: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_agent_prediction +``` + ## Next steps 1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. -2. Add a full monthly development backtest after the smoke run is stable. -3. Add a small FRED macro panel. -4. Add an agent only after the deterministic Track 1 experiment is credible. +2. Compare the five-variable logistic score with the earlier IPMAN-only result. +3. Backtest the agent only after the deterministic model is stable. diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 5fc32724c..1f3c7e3b9 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -16,7 +16,12 @@ from aieng.forecasting.methods.agentic.agent_factory import AgentConfig from aieng.forecasting.models import LITE_MODEL from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID -from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.features import ( + FEATURE_SERIES_IDS, + IPMAN_FEATURE_SERIES_IDS, + MACRO_FEATURE_SERIES_IDS, + build_feature_snapshot, +) from manufacturing_stress_forecasting.targets import ( DEFAULT_LOOKBACK_MONTHS, DEFAULT_STRESS_THRESHOLD_PCT, @@ -32,12 +37,13 @@ def _build_instruction() -> str: "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" "## Rules\n\n" "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" - "2. Start from the supplied historical base rate, then adjust using the current IPMAN momentum signals.\n" - "3. Treat more-negative short- and medium-horizon IPMAN changes as evidence for stress, but do not " - "turn a weak signal into certainty.\n" - "4. `probability` means P(stress=1), not confidence in your explanation.\n" - "5. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" - "6. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " + "2. Start from the supplied historical base rate, then adjust using the five supplied signals.\n" + "3. Treat negative IPMAN momentum, a restrictive fed funds rate, and an inverted 10Y-2Y spread " + "as possible evidence for stress; explain how the signals interact.\n" + "4. Do not double-count correlated signals or turn a weak signal into certainty.\n" + "5. `probability` means P(stress=1), not confidence in your explanation.\n" + "6. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "7. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " "away from stress, and `neutral` when mixed.\n\n" "## Output\n\n" "Return exactly one JSON object matching this structure, with no markdown fence or preamble:\n\n" + schema @@ -64,6 +70,16 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: target = context.get_series(task.target_series_id).sort_values("timestamp") feature_frames = {series_id: context.get_series(series_id) for series_id in FEATURE_SERIES_IDS} current_signals = build_feature_snapshot(as_of, feature_frames) + current_ipman_signals = ( + {series_id: current_signals[series_id] for series_id in IPMAN_FEATURE_SERIES_IDS} + if current_signals is not None + else None + ) + current_macro_signals = ( + {series_id: current_signals[series_id] for series_id in MACRO_FEATURE_SERIES_IDS} + if current_signals is not None + else None + ) target_values = target["value"].astype(float) trailing_values = target_values.tail(self.trailing_base_rate_months) @@ -97,7 +113,8 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: "threshold_pct": DEFAULT_STRESS_THRESHOLD_PCT, "rule": ("stress=1 when trailing IPMAN percentage change is less than or equal to threshold_pct"), }, - "current_ipman_signals_pct": current_signals, + "current_ipman_signals_pct": current_ipman_signals, + "current_macro_signals": current_macro_signals, "historical_stress": { "n_visible_months": len(target_values), "all_history_base_rate": float(target_values.mean()) if len(target_values) else None, diff --git a/implementations/manufacturing_stress_forecasting/data.py b/implementations/manufacturing_stress_forecasting/data.py index 187254448..5a6f184d5 100644 --- a/implementations/manufacturing_stress_forecasting/data.py +++ b/implementations/manufacturing_stress_forecasting/data.py @@ -1,4 +1,4 @@ -"""FRED/IPMAN data service for the manufacturing-stress MVP.""" +"""FRED data service for the five-variable manufacturing-stress MVP.""" from __future__ import annotations @@ -9,8 +9,11 @@ from aieng.forecasting.data.features import StaticFrameAdapter from manufacturing_stress_forecasting.features import ( FEATURE_PERIODS, + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, apply_conservative_monthly_release_lag, build_ipman_feature_frames, + build_macro_feature_frames, ) from manufacturing_stress_forecasting.targets import ( DEFAULT_LOOKBACK_MONTHS, @@ -20,6 +23,10 @@ IPMAN_FRED_ID = "IPMAN" +FED_FUNDS_FRED_ID = "DFF" +TREASURY_10Y_FRED_ID = "DGS10" +TREASURY_2Y_FRED_ID = "DGS2" + IPMAN_SERIES_ID = "ipman_us_manufacturing_production" STRESS_SERIES_ID = "manufacturing_stress" @@ -35,10 +42,19 @@ def build_manufacturing_stress_service( stress_lookback_months: int = DEFAULT_LOOKBACK_MONTHS, stress_threshold_pct: float = DEFAULT_STRESS_THRESHOLD_PCT, ) -> DataService: - """Build a service containing IPMAN, momentum features, and stress labels.""" + """Build a service containing the target and five cutoff-aware input features.""" raw_ipman = FREDAdapter(IPMAN_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_fed_funds = FREDAdapter(FED_FUNDS_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_treasury_10y = FREDAdapter(TREASURY_10Y_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + raw_treasury_2y = FREDAdapter(TREASURY_2Y_FRED_ID, cache_dir=cache_dir, refresh=refresh).fetch() + ipman = apply_conservative_monthly_release_lag(raw_ipman, months=release_lag_months) - feature_frames = build_ipman_feature_frames(ipman) + ipman_feature_frames = build_ipman_feature_frames(ipman) + macro_feature_frames = build_macro_feature_frames( + raw_fed_funds, + raw_treasury_10y, + raw_treasury_2y, + ) stress = derive_manufacturing_stress_labels( ipman, lookback_months=stress_lookback_months, @@ -58,7 +74,7 @@ def build_manufacturing_stress_service( ), ) - for series_id, frame in feature_frames.items(): + for series_id, frame in ipman_feature_frames.items(): periods = FEATURE_PERIODS[series_id] service.register( series_id, @@ -72,6 +88,29 @@ def build_manufacturing_stress_service( ), ) + service.register( + FED_FUNDS_SERIES_ID, + StaticFrameAdapter(macro_feature_frames[FED_FUNDS_SERIES_ID]), + SeriesMetadata( + series_id=FED_FUNDS_SERIES_ID, + description="Month-end effective federal funds rate", + source="FRED (DFF), derived monthly", + units="Percent", + frequency="MS", + ), + ) + service.register( + YIELD_CURVE_SERIES_ID, + StaticFrameAdapter(macro_feature_frames[YIELD_CURVE_SERIES_ID]), + SeriesMetadata( + series_id=YIELD_CURVE_SERIES_ID, + description="Month-end 10-year minus 2-year Treasury yield spread", + source="FRED (DGS10 minus DGS2), derived monthly", + units="Percentage points", + frequency="MS", + ), + ) + service.register( STRESS_SERIES_ID, StaticFrameAdapter(stress), @@ -91,8 +130,11 @@ def build_manufacturing_stress_service( __all__ = [ "DEFAULT_FRED_CACHE_DIR", + "FED_FUNDS_FRED_ID", "IPMAN_FRED_ID", "IPMAN_SERIES_ID", "STRESS_SERIES_ID", + "TREASURY_10Y_FRED_ID", + "TREASURY_2Y_FRED_ID", "build_manufacturing_stress_service", ] diff --git a/implementations/manufacturing_stress_forecasting/features.py b/implementations/manufacturing_stress_forecasting/features.py index 535aee05d..3599a2106 100644 --- a/implementations/manufacturing_stress_forecasting/features.py +++ b/implementations/manufacturing_stress_forecasting/features.py @@ -2,6 +2,8 @@ from __future__ import annotations +from collections.abc import Sequence + import pandas as pd from aieng.forecasting.data.features import canonical_three_col @@ -9,15 +11,20 @@ IPMAN_CHANGE_1M_SERIES_ID = "ipman_change_1m_pct" IPMAN_CHANGE_3M_SERIES_ID = "ipman_change_3m_pct" IPMAN_CHANGE_6M_SERIES_ID = "ipman_change_6m_pct" -IPMAN_CHANGE_12M_SERIES_ID = "ipman_change_12m_pct" +FED_FUNDS_SERIES_ID = "fed_funds_rate_pct" +YIELD_CURVE_SERIES_ID = "treasury_10y_minus_2y_pct_points" FEATURE_PERIODS: dict[str, int] = { IPMAN_CHANGE_1M_SERIES_ID: 1, IPMAN_CHANGE_3M_SERIES_ID: 3, IPMAN_CHANGE_6M_SERIES_ID: 6, - IPMAN_CHANGE_12M_SERIES_ID: 12, } -FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) +IPMAN_FEATURE_SERIES_IDS: tuple[str, ...] = tuple(FEATURE_PERIODS) +MACRO_FEATURE_SERIES_IDS: tuple[str, ...] = ( + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, +) +FEATURE_SERIES_IDS: tuple[str, ...] = IPMAN_FEATURE_SERIES_IDS + MACRO_FEATURE_SERIES_IDS def apply_conservative_monthly_release_lag(frame: pd.DataFrame, months: int = 1) -> pd.DataFrame: @@ -45,13 +52,55 @@ def percent_change_feature(ipman: pd.DataFrame, periods: int) -> pd.DataFrame: def build_ipman_feature_frames(ipman: pd.DataFrame) -> dict[str, pd.DataFrame]: - """Build the four small momentum features used by the first baseline.""" + """Build the three IPMAN momentum features used by the model.""" return {series_id: percent_change_feature(ipman, periods) for series_id, periods in FEATURE_PERIODS.items()} +def monthly_last_observation(frame: pd.DataFrame) -> pd.DataFrame: + """Collapse a daily canonical series to its final observation each month.""" + out = canonical_three_col(frame) + out["month"] = out["timestamp"].dt.to_period("M") + out = out.sort_values(["month", "timestamp"]).groupby("month", as_index=False).tail(1) + out["timestamp"] = out["month"].dt.to_timestamp() + return canonical_three_col(out) + + +def build_macro_feature_frames( + fed_funds: pd.DataFrame, + treasury_10y: pd.DataFrame, + treasury_2y: pd.DataFrame, +) -> dict[str, pd.DataFrame]: + """Build monthly fed-funds and 10Y-minus-2Y rate features. + + Daily FRED observations are treated as available on the next business day. + The model then uses the final published observation associated with each + calendar month. This keeps the monthly feature panel small while preserving + an honest ``released_at`` cutoff. + """ + fed = canonical_three_col(fed_funds) + fed["released_at"] = fed["timestamp"] + pd.offsets.BDay(1) + fed_monthly = monthly_last_observation(fed) + + ten_year = canonical_three_col(treasury_10y).rename( + columns={"value": "value_10y", "released_at": "released_at_10y"} + ) + two_year = canonical_three_col(treasury_2y).rename(columns={"value": "value_2y", "released_at": "released_at_2y"}) + spread = pd.merge(ten_year, two_year, on="timestamp", how="inner") + spread["value"] = spread["value_10y"] - spread["value_2y"] + spread["released_at"] = spread[["released_at_10y", "released_at_2y"]].max(axis=1) + pd.offsets.BDay(1) + spread_monthly = monthly_last_observation(spread[["timestamp", "value", "released_at"]]) + + return { + FED_FUNDS_SERIES_ID: fed_monthly, + YIELD_CURVE_SERIES_ID: spread_monthly, + } + + def build_feature_snapshot( origin: pd.Timestamp, feature_frames: dict[str, pd.DataFrame], + *, + series_ids: Sequence[str] = FEATURE_SERIES_IDS, ) -> dict[str, float] | None: """Return the latest feature values that were published by ``origin``. @@ -61,7 +110,7 @@ def build_feature_snapshot( past origin used to train the fit-at-origin logistic model. """ snapshot: dict[str, float] = {} - for series_id in FEATURE_SERIES_IDS: + for series_id in series_ids: frame = feature_frames[series_id] visible = frame[pd.to_datetime(frame["released_at"]) <= origin] if visible.empty: @@ -71,14 +120,19 @@ def build_feature_snapshot( __all__ = [ + "FED_FUNDS_SERIES_ID", "FEATURE_PERIODS", "FEATURE_SERIES_IDS", + "IPMAN_FEATURE_SERIES_IDS", "IPMAN_CHANGE_1M_SERIES_ID", "IPMAN_CHANGE_3M_SERIES_ID", "IPMAN_CHANGE_6M_SERIES_ID", - "IPMAN_CHANGE_12M_SERIES_ID", + "MACRO_FEATURE_SERIES_IDS", + "YIELD_CURVE_SERIES_ID", "apply_conservative_monthly_release_lag", "build_feature_snapshot", "build_ipman_feature_frames", + "build_macro_feature_frames", + "monthly_last_observation", "percent_change_feature", ] diff --git a/implementations/manufacturing_stress_forecasting/predictors/logistic.py b/implementations/manufacturing_stress_forecasting/predictors/logistic.py index a0c5d3632..bfea5de23 100644 --- a/implementations/manufacturing_stress_forecasting/predictors/logistic.py +++ b/implementations/manufacturing_stress_forecasting/predictors/logistic.py @@ -1,4 +1,4 @@ -"""Fit-at-origin logistic baseline for three-month-ahead manufacturing stress.""" +"""Five-variable logistic baseline for three-month-ahead manufacturing stress.""" from __future__ import annotations @@ -14,7 +14,7 @@ class ManufacturingStressLogisticPredictor(Predictor): - """Forecast manufacturing stress from four trailing IPMAN changes. + """Forecast manufacturing stress from three IPMAN and two rate signals. The model is rebuilt at every backtest origin. For each resolved historical outcome at month ``r``, its feature vector is reconstructed at ``r - lead`` @@ -29,7 +29,7 @@ def __init__(self, *, regularization_c: float = 1.0, min_training_examples: int @property def predictor_id(self) -> str: """Return the stable artifact identifier.""" - return "manufacturing_stress_logistic_ipman" + return "manufacturing_stress_logistic_ipman_rates" def predict(self, task: ForecastingTask, context: ForecastContext) -> list[Prediction]: """Fit on visible history and return one binary stress probability.""" diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index 88c46263b..d3220fe39 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -68,4 +68,7 @@ def test_prompt_uses_only_cutoff_visible_evidence() -> None: assert payload["as_of"] == "2020-06-01" assert payload["forecast_date"] == "2020-09-01" assert payload["recent_ipman"][-1]["value"] == 105.0 + assert len(payload["current_ipman_signals_pct"]) == 3 + assert len(payload["current_macro_signals"]) == 2 assert 999.0 not in payload["current_ipman_signals_pct"].values() + assert 999.0 not in payload["current_macro_signals"].values() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py index 6afdd3e1e..3b94d08ea 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_targets_and_features.py @@ -2,7 +2,13 @@ import pandas as pd import pytest -from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS, build_feature_snapshot +from manufacturing_stress_forecasting.features import ( + FEATURE_SERIES_IDS, + FED_FUNDS_SERIES_ID, + YIELD_CURVE_SERIES_ID, + build_feature_snapshot, + build_macro_feature_frames, +) from manufacturing_stress_forecasting.targets import derive_manufacturing_stress_labels @@ -40,3 +46,31 @@ def test_feature_snapshot_ignores_values_released_after_origin() -> None: assert snapshot is not None for index, series_id in enumerate(FEATURE_SERIES_IDS): assert snapshot[series_id] == pytest.approx(float(index)) + + +def test_macro_features_use_month_end_values_with_next_business_day_release() -> None: + timestamps = pd.to_datetime(["2024-01-30", "2024-01-31", "2024-02-28", "2024-02-29"]) + + def frame(values: list[float]) -> pd.DataFrame: + return pd.DataFrame( + { + "timestamp": timestamps, + "value": values, + "released_at": timestamps, + } + ) + + features = build_macro_feature_frames( + frame([5.30, 5.31, 5.32, 5.33]), + frame([4.00, 4.10, 4.20, 4.30]), + frame([4.40, 4.50, 4.55, 4.60]), + ) + + fed = features[FED_FUNDS_SERIES_ID] + spread = features[YIELD_CURVE_SERIES_ID] + + assert fed["timestamp"].tolist() == [pd.Timestamp("2024-01-01"), pd.Timestamp("2024-02-01")] + assert fed["value"].tolist() == pytest.approx([5.31, 5.33]) + assert fed["released_at"].tolist() == [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-03-01")] + assert spread["value"].tolist() == pytest.approx([-0.40, -0.30]) + assert spread["released_at"].tolist() == [pd.Timestamp("2024-02-01"), pd.Timestamp("2024-03-01")] diff --git a/scripts/fetch_manufacturing_stress.py b/scripts/fetch_manufacturing_stress.py index af1ed1871..240114b33 100644 --- a/scripts/fetch_manufacturing_stress.py +++ b/scripts/fetch_manufacturing_stress.py @@ -1,4 +1,4 @@ -"""Fetch/cache IPMAN and print the manufacturing-stress series summary.""" +"""Fetch/cache IPMAN and rate inputs, then print the registered-series summary.""" from __future__ import annotations @@ -19,7 +19,7 @@ def main() -> None: - """Populate the IPMAN cache and report the derived series.""" + """Populate the IPMAN/rates cache and report the derived series.""" service = build_manufacturing_stress_service() print(service.summary().to_string(index=False)) From 255b5922cf6dcaf579c2f3bb765633c2cd1c4f2b Mon Sep 17 00:00:00 2001 From: default Date: Tue, 22 Sep 2026 20:13:44 +0000 Subject: [PATCH 4/6] Add XGBoost manufacturing stress predictor --- .../README.md | 8 +- .../predictors/__init__.py | 3 +- .../predictors/xgboost.py | 69 +++++++++++++++ .../run_agent_prediction.py | 6 +- .../run_smoke.py | 11 ++- implementations/pyproject.toml | 1 + uv.lock | 88 +++++++++++++------ 7 files changed, 149 insertions(+), 37 deletions(-) create mode 100644 implementations/manufacturing_stress_forecasting/predictors/xgboost.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index c31f8b881..2b24643a9 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -22,16 +22,16 @@ That distinction makes this forecasting rather than current-state detection. ## Predictors -- `HistoricalFrequencyPredictor`: the visible historical stress rate. -- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. -- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same + `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted + tree classifier using the same five variables and cutoff-safe training rows. five cutoff-safe signals plus recent IPMAN history and historical base rates. All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. ## Data and cutoff assumptions - +Compare XGBoost with logistic regression and historical frequency rather than judging it +in isolation, because this small monthly dataset can overfit flexible models. `FREDAdapter` caches `IPMAN`, `DFF`, `DGS10`, and `DGS2` under `data/fred/`. IPMAN is conservatively treated as available one month after its reference month. Daily rate observations are treated as available on the next business diff --git a/implementations/manufacturing_stress_forecasting/predictors/__init__.py b/implementations/manufacturing_stress_forecasting/predictors/__init__.py index a9dad38c7..c5cbd12ef 100644 --- a/implementations/manufacturing_stress_forecasting/predictors/__init__.py +++ b/implementations/manufacturing_stress_forecasting/predictors/__init__.py @@ -1,6 +1,7 @@ """Predictors for the manufacturing-stress implementation.""" from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors.xgboost import ManufacturingStressXGBoostPredictor -__all__ = ["ManufacturingStressLogisticPredictor"] +__all__ = ["ManufacturingStressLogisticPredictor", "ManufacturingStressXGBoostPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/predictors/xgboost.py b/implementations/manufacturing_stress_forecasting/predictors/xgboost.py new file mode 100644 index 000000000..3092187d3 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/predictors/xgboost.py @@ -0,0 +1,69 @@ +"""Five-variable XGBoost predictor for three-month-ahead manufacturing stress.""" + +from __future__ import annotations + +import numpy as np +from aieng.forecasting.evaluation.prediction import BinaryForecast +from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS +from manufacturing_stress_forecasting.predictors.logistic import ManufacturingStressLogisticPredictor + + +class ManufacturingStressXGBoostPredictor(ManufacturingStressLogisticPredictor): + """Forecast manufacturing stress with a small gradient-boosted tree model.""" + + def __init__( + self, + *, + n_estimators: int = 100, + max_depth: int = 2, + learning_rate: float = 0.05, + min_training_examples: int = 24, + ) -> None: + super().__init__(min_training_examples=min_training_examples) + self._n_estimators = n_estimators + self._max_depth = max_depth + self._learning_rate = learning_rate + + @property + def predictor_id(self) -> str: + """Return the stable artifact identifier.""" + return "manufacturing_stress_xgboost_ipman_rates" + + def _fit_and_predict( + self, + rows: list[list[float]], + outcomes: list[float], + current: dict[str, float] | None, + ) -> tuple[BinaryForecast, dict[str, object]]: + base_rate = float(np.mean(outcomes)) if outcomes else 0.1 + if current is None: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + if len(outcomes) < self._min_training_examples or len(set(outcomes)) < 2: + return BinaryForecast(probability=base_rate), {"model": "base_rate_fallback"} + + from xgboost import XGBClassifier # noqa: PLC0415 + + model = XGBClassifier( + n_estimators=self._n_estimators, + max_depth=self._max_depth, + learning_rate=self._learning_rate, + objective="binary:logistic", + eval_metric="logloss", + subsample=0.8, + colsample_bytree=0.8, + random_state=42, + n_jobs=1, + ) + model.fit(np.asarray(rows), np.asarray(outcomes)) + current_row = np.asarray([[current[series_id] for series_id in FEATURE_SERIES_IDS]]) + probability = float(model.predict_proba(current_row)[0, 1]) + return BinaryForecast(probability=probability), { + "model": "xgboost_classifier", + "features": dict(zip(FEATURE_SERIES_IDS, (float(value) for value in current_row[0]), strict=True)), + "feature_importances": dict( + zip(FEATURE_SERIES_IDS, (float(value) for value in model.feature_importances_), strict=True) + ), + } + + +__all__ = ["ManufacturingStressXGBoostPredictor"] diff --git a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py index 5a7245df1..2c2f668f7 100644 --- a/implementations/manufacturing_stress_forecasting/run_agent_prediction.py +++ b/implementations/manufacturing_stress_forecasting/run_agent_prediction.py @@ -14,7 +14,10 @@ IPMAN_SERIES_ID, build_manufacturing_stress_service, ) -from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" @@ -33,6 +36,7 @@ def main() -> None: predictors = [ HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), build_manufacturing_stress_agent_predictor(), ] print(f"Forecast origin: {as_of.date()}") diff --git a/implementations/manufacturing_stress_forecasting/run_smoke.py b/implementations/manufacturing_stress_forecasting/run_smoke.py index fdef561b8..3105e92d9 100644 --- a/implementations/manufacturing_stress_forecasting/run_smoke.py +++ b/implementations/manufacturing_stress_forecasting/run_smoke.py @@ -6,7 +6,10 @@ from aieng.forecasting.evaluation import BacktestSpec, backtest from aieng.forecasting.methods import HistoricalFrequencyPredictor from manufacturing_stress_forecasting.data import build_manufacturing_stress_service -from manufacturing_stress_forecasting.predictors import ManufacturingStressLogisticPredictor +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" @@ -18,7 +21,11 @@ def main() -> None: spec = BacktestSpec.model_validate(yaml.safe_load(file)) service = build_manufacturing_stress_service() - predictors = [HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor()] + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), + ] for predictor in predictors: result = backtest(predictor=predictor, spec=spec, data_service=service) print(f"{predictor.predictor_id}: {result.mean_score:.4f} mean {result.metric}") diff --git a/implementations/pyproject.toml b/implementations/pyproject.toml index 7467a9c70..0b14070c1 100644 --- a/implementations/pyproject.toml +++ b/implementations/pyproject.toml @@ -10,6 +10,7 @@ requires-python = ">=3.12" dependencies = [ "aieng-forecasting[numerical,llm,agentic,documents]", "beautifulsoup4>=4.12,<5", # BoC press-release HTML extraction (boc_rate_decisions.press_releases) + "xgboost>=2.1,<4", ] [tool.setuptools.packages.find] diff --git a/uv.lock b/uv.lock index a1ba2aec6..1b79f4a07 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.12, <4.0" resolution-markers = [ "python_full_version >= '3.15' and sys_platform == 'win32'", @@ -11,11 +11,11 @@ resolution-markers = [ "python_full_version == '3.14.*' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version == '3.14.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.14.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", "python_full_version == '3.13.*' and sys_platform == 'win32'", - "python_full_version < '3.13' and sys_platform == 'win32'", "python_full_version == '3.13.*' and sys_platform == 'emscripten'", - "python_full_version < '3.13' and sys_platform == 'emscripten'", "python_full_version == '3.13.*' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version == '3.13.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.13' and sys_platform == 'win32'", + "python_full_version < '3.13' and sys_platform == 'emscripten'", "python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'darwin'", "(python_full_version < '3.13' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", ] @@ -70,7 +70,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "agentic-forecasting-implementations", virtual = "implementations" }, + { name = "agentic-forecasting-implementations", editable = "implementations" }, { name = "ipykernel", specifier = ">=7.3.0" }, { name = "jupyter", specifier = ">=1.1.1" }, { name = "lightgbm", specifier = ">=4.0.0" }, @@ -97,16 +97,18 @@ dev = [ [[package]] name = "agentic-forecasting-implementations" version = "0.1.0" -source = { virtual = "implementations" } +source = { editable = "implementations" } dependencies = [ { name = "aieng-forecasting", extra = ["agentic", "documents", "llm", "numerical"] }, { name = "beautifulsoup4" }, + { name = "xgboost" }, ] [package.metadata] requires-dist = [ { name = "aieng-forecasting", extras = ["numerical", "llm", "agentic", "documents"], editable = "aieng-forecasting" }, { name = "beautifulsoup4", specifier = ">=4.12,<5" }, + { name = "xgboost", specifier = ">=2.1,<4" }, ] [[package]] @@ -3405,6 +3407,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, ] +[[package]] +name = "nvidia-nccl-cu13" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/0a/c29c302036a06d27dd732588f3fd8ee89b1f7b0087e38c668ae7be8ff7b2/nvidia_nccl_cu13-2.32.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:a5bee92b2f4af218c109f8d221c3c9adcc752b94ae0ffcb0ed5abf9341a7724c", size = 305107282, upload-time = "2026-09-22T08:30:28.048Z" }, + { url = "https://files.pythonhosted.org/packages/5b/29/6b277e63c92d91f9cb4d1a3a554e148983de39d54baa652bb52c798af78e/nvidia_nccl_cu13-2.32.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1459723080ac889d73a26edfa3e04383a7928ab31ac8f0ec43b3ea9548b04ff3", size = 305100071, upload-time = "2026-09-22T08:30:53.705Z" }, +] + [[package]] name = "onnxruntime" version = "1.26.0" @@ -3737,7 +3748,7 @@ name = "pexpect" version = "4.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "ptyprocess" }, ] sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } wheels = [ @@ -5073,16 +5084,16 @@ resolution-markers = [ "python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'darwin'", ] dependencies = [ - { name = "cloudpickle", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "numba", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "numpy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "packaging", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "pandas", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "scikit-learn", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "scipy", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "slicer", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "tqdm", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "typing-extensions", marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, + { name = "cloudpickle" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/dc/c6/9823a7f483aa9f3179fc359c10d22da9e418b1a7a3fc99a42b705d05e82a/shap-0.49.1.tar.gz", hash = "sha256:1114ecd804fff29f50d522ce6031082fcf42fe4a32fb1b5da233b2415d784c8c", size = 4084725, upload-time = "2025-10-14T10:04:49.75Z" } wheels = [ @@ -5102,24 +5113,24 @@ resolution-markers = [ "python_full_version == '3.14.*' and sys_platform == 'emscripten'", "(python_full_version == '3.14.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.14.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", "python_full_version == '3.13.*' and sys_platform == 'win32'", - "python_full_version < '3.13' and sys_platform == 'win32'", "python_full_version == '3.13.*' and sys_platform == 'emscripten'", - "python_full_version < '3.13' and sys_platform == 'emscripten'", "(python_full_version == '3.13.*' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", + "python_full_version < '3.13' and sys_platform == 'win32'", + "python_full_version < '3.13' and sys_platform == 'emscripten'", "(python_full_version < '3.13' and platform_machine != 'x86_64' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform != 'darwin' and sys_platform != 'emscripten' and sys_platform != 'win32')", ] dependencies = [ - { name = "cloudpickle", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "llvmlite", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "numba", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "packaging", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "pandas", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "scikit-learn", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "scipy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "slicer", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "tqdm", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "typing-extensions", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "cloudpickle" }, + { name = "llvmlite" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a4/0a/4a3ee4b1a3654f2a9ae038a64bb3e91a42af3da07577d69b65241f010970/shap-0.51.0.tar.gz", hash = "sha256:cfa17ff213657c9d50285aa923d79b0037a62e2ee1a31bc3eec7e196b00bdb59", size = 4108336, upload-time = "2026-03-04T09:18:19.985Z" } wheels = [ @@ -5910,6 +5921,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dc/83/6d810a8a9ebc9c307989b418840c20e46907c74d707beb67ab566773e6fc/xarray-2026.4.0-py3-none-any.whl", hash = "sha256:d43751d9fb4a90f9249c30431684f00c41bc874f1edccd862631a40cbc0edf08", size = 1414326, upload-time = "2026-04-13T19:45:34.659Z" }, ] +[[package]] +name = "xgboost" +version = "3.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/a9/295320f741c5be4be996c73ee65a2a11852028c50daa7229adb0d61c330b/xgboost-3.4.1.tar.gz", hash = "sha256:6968a4c71efdfa859df0dfcad0d99211c95c28c4ffd6aecff46efff77d18026a", size = 1231819, upload-time = "2026-08-15T08:39:21.197Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/ea/0bdcd374241a86f1986e87e272516f0a70d841c3aa86aa9ca167fb651573/xgboost-3.4.1-py3-none-macosx_10_15_x86_64.whl", hash = "sha256:1ea15f15f661825b6a67d87674fb9604a1abb38dd0d4c5cf0486fc85f5203e83", size = 2541584, upload-time = "2026-08-15T08:38:48.484Z" }, + { url = "https://files.pythonhosted.org/packages/f7/94/e5c37a8972ad780edc1d8459d1931356344ca133f7f99ba9cfda516b5bba/xgboost-3.4.1-py3-none-macosx_12_0_arm64.whl", hash = "sha256:a7afd7dbace0951c93aa85ffe046e54bc40893f5b51cd3e7991eb157bf9c7c7c", size = 2365501, upload-time = "2026-08-15T08:38:52.366Z" }, + { url = "https://files.pythonhosted.org/packages/a7/11/4ff1f36ca5c32c642c71c88bec1508ee98b2c3b1e9eb169e8c82de303522/xgboost-3.4.1-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:7faaf99de26719c22bfae883a02bd56b5a3c2203122616e563cc72b7191b5c96", size = 57196172, upload-time = "2026-08-15T08:39:03.288Z" }, + { url = "https://files.pythonhosted.org/packages/99/c7/bd05c5c430feb347aa040fcc8870135d70b256718deee9bc7d2ca74a77ff/xgboost-3.4.1-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:6adf2afa396da2ae8ed30295b50b99d4712eed9a6e0ce6cfe069290e4335e51f", size = 57615456, upload-time = "2026-08-15T08:39:09.983Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3c/925394671f6a1668e2a71886de66e80be694eaf37f615cec74eefaf43107/xgboost-3.4.1-py3-none-win_amd64.whl", hash = "sha256:2d30fa513673101f542fdcbd18f30c8f96c064046f798635ac08663e9969f81b", size = 48942686, upload-time = "2026-08-15T08:39:16.182Z" }, + { url = "https://files.pythonhosted.org/packages/90/2f/f2fbe984ca095709fd246546125e78834740f347e3aa7561a22a1e928510/xgboost-3.4.1-py3-none-win_arm64.whl", hash = "sha256:e9312b30e5679d27c1d8b9ee97e092b964d960a672d5d406d9fb3cd0845c9797", size = 2094178, upload-time = "2026-08-15T08:39:19.308Z" }, +] + [[package]] name = "yarl" version = "1.24.2" From 9abcd9345b4645a6185ade2b88aed71c56a63e3b Mon Sep 17 00:00:00 2001 From: minaattari Date: Wed, 23 Sep 2026 00:58:10 -0400 Subject: [PATCH 5/6] feat(manufacturing): add notebook workbench and cached LLMP backtest --- .../README.md | 33 +- .../analyst_agent/agent.py | 8 +- .../manufacturing_stress_workbench.ipynb | 7348 +++++++++++++++++ .../run_agent_backtest.py | 89 + .../test_agent_prompt.py | 15 +- 5 files changed, 7486 insertions(+), 7 deletions(-) create mode 100644 implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb create mode 100644 implementations/manufacturing_stress_forecasting/run_agent_backtest.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index 2b24643a9..59bb4cfd5 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -22,9 +22,12 @@ That distinction makes this forecasting rather than current-state detection. ## Predictors +- `HistoricalFrequencyPredictor`: the visible historical stress rate. +- `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted tree classifier using the same five variables and cutoff-safe training rows. +- `manufacturing_stress_analyst`: a structured LLM predictor receiving the same five cutoff-safe signals plus recent IPMAN history and historical base rates. All predictors return `BinaryForecast` probabilities; backtested predictors are scored with Brier score. @@ -41,6 +44,12 @@ still contain later revisions; a production study should use ALFRED vintages. ## Run +The primary interactive entry point is +[`manufacturing_stress_workbench.ipynb`](manufacturing_stress_workbench.ipynb). +Open it in VS Code or Jupyter and use its configuration cell to refresh FRED +data, run the deterministic smoke test, and explicitly opt in to the cached +LLMP backtest without using the terminal. + From the repository root, put a personal FRED key in `.env` or export it: ```bash @@ -53,7 +62,7 @@ Populate the cache and inspect the registered series: uv run python scripts/fetch_manufacturing_stress.py ``` -Run the small backtest: +Run the deterministic small backtest: ```bash uv run --directory implementations python -m manufacturing_stress_forecasting.run_smoke @@ -63,6 +72,25 @@ The output prints one mean Brier score per predictor; lower is better. The logistic model should be compared against historical frequency, not judged in isolation. +Run the token-limited LLMP backtest explicitly: + +```bash +uv run --directory implementations python -m manufacturing_stress_forecasting.run_agent_backtest +``` + +This evaluates historical frequency, logistic regression, XGBoost, and the +`manufacturing_stress_analyst` agent through the same binary backtest and +Brier-score calculation. The agent run uses the default lite model, a +12-month IPMAN history, compact JSON prompts, a 384-token response cap, and +one retry per failed origin. Complete results are cached under +`data/predictions/manufacturing_stress_smoke_llmp_v1/`, so rerunning the +command does not make new model calls. Use `--force-refresh` to intentionally +re-run the predictors. + +Compare scores only when the results have the same scored-origin count. The +command prints both `scored` and `skipped` counts because failed agent origins +are excluded from the mean Brier score. + Run one current forecast, including the structured agent: ```bash @@ -73,4 +101,5 @@ uv run --directory implementations python -m manufacturing_stress_forecasting.ru 1. Plot IPMAN and the derived stress months; confirm or revise the 2% threshold. 2. Compare the five-variable logistic score with the earlier IPMAN-only result. -3. Backtest the agent only after the deterministic model is stable. +3. Compare the cached agent backtest against the deterministic baselines only + after checking scored and skipped origin counts. diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 1f3c7e3b9..9e1e1a845 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -42,7 +42,7 @@ def _build_instruction() -> str: "as possible evidence for stress; explain how the signals interact.\n" "4. Do not double-count correlated signals or turn a weak signal into certainty.\n" "5. `probability` means P(stress=1), not confidence in your explanation.\n" - "6. Give a concise rationale, identify both supporting and countervailing evidence, and remain calibrated.\n" + "6. Give a rationale of at most 40 words, identify supporting and countervailing evidence, and remain calibrated.\n" "7. Use `direction_bias='down'` when signals point toward manufacturing stress, `up` when they point " "away from stress, and `neutral` when mixed.\n\n" "## Output\n\n" @@ -55,7 +55,7 @@ class ManufacturingStressPromptBuilder(BaseModel): model_config = {"extra": "forbid"} - recent_history_months: int = Field(default=24, ge=6, le=120) + recent_history_months: int = Field(default=12, ge=6, le=120) trailing_base_rate_months: int = Field(default=60, ge=12, le=240) def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: @@ -123,7 +123,7 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: }, "recent_ipman": recent_ipman, } - return json.dumps(payload, indent=2) + return json.dumps(payload, separators=(",", ":")) def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentConfig: @@ -134,7 +134,7 @@ def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentCon instruction=_build_instruction(), temperature=0.1, seed=42, - max_output_tokens=2_048, + max_output_tokens=384, ) diff --git a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb new file mode 100644 index 000000000..22e3719f5 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb @@ -0,0 +1,7348 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "id": "988dada7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running: uv sync --all-extras --dev --all-packages\n", + "\n", + "Environment synchronized successfully.\n", + "If packages changed, restart the notebook kernel before continuing.\n" + ] + } + ], + "source": [ + "# Cell 0: synchronize the repository environment before running the workbench.\n", + "from pathlib import Path\n", + "import subprocess\n", + "\n", + "SETUP_ROOT = Path.cwd()\n", + "while not (SETUP_ROOT / \"pyproject.toml\").exists() and SETUP_ROOT != SETUP_ROOT.parent:\n", + " SETUP_ROOT = SETUP_ROOT.parent\n", + "\n", + "if not (SETUP_ROOT / \"pyproject.toml\").exists():\n", + " raise FileNotFoundError(\"Could not find the repository root containing pyproject.toml.\")\n", + "\n", + "print(\"Running: uv sync --all-extras --dev --all-packages\")\n", + "setup_result = subprocess.run(\n", + " [\"uv\", \"sync\", \"--all-extras\", \"--dev\", \"--all-packages\"],\n", + " cwd=SETUP_ROOT,\n", + " check=False,\n", + " text=True,\n", + " capture_output=True,\n", + ")\n", + "print(setup_result.stdout)\n", + "if setup_result.returncode != 0:\n", + " print(setup_result.stderr)\n", + " raise RuntimeError(\n", + " \"uv sync failed. Install uv or restart the notebook with the repository environment selected.\"\n", + " )\n", + "print(\"Environment synchronized successfully.\")\n", + "print(\"If packages changed, restart the notebook kernel before continuing.\")" + ] + }, + { + "cell_type": "markdown", + "id": "b696c087", + "metadata": {}, + "source": [ + "# Manufacturing Stress Forecasting Workbench\n", + "\n", + "This notebook is the main interactive entry point for the manufacturing-stress experiment. It creates or refreshes the FRED data cache, runs the deterministic baselines, and optionally runs the token-limited LLMP backtest.\n", + "\n", + "All predictors use the same backtest specification and shared Brier-score implementation. The LLMP is opt-in and cached so repeated analysis does not make new model calls." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1b6955d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'refresh_fred_data': False, 'backtest_stride': 3, 'run_llmp_backtest': True, 'force_refresh_llmp_cache': True, 'run_current_forecast': False}\n" + ] + } + ], + "source": [ + "# Main controls: change these values, then run the notebook from top to bottom.\n", + "REFRESH_FRED_DATA = False\n", + "BACKTEST_STRIDE = 3\n", + "RUN_LLMP_BACKTEST = False\n", + "FORCE_REFRESH_LLMP_CACHE = False\n", + "RUN_CURRENT_FORECAST = False\n", + "\n", + "# BACKTEST_STRIDE = 1 evaluates every month; 3 evaluates every third month.\n", + "# False: one smoke run for historical frequency, logistic regression, and XGBoost.\n", + "# True: the same smoke run also includes the cached, token-limited LLMP.\n", + "# RUN_CURRENT_FORECAST controls the separate latest-data forecast section.\n", + "print({\n", + " \"refresh_fred_data\": REFRESH_FRED_DATA,\n", + " \"backtest_stride\": BACKTEST_STRIDE,\n", + " \"run_llmp_backtest\": RUN_LLMP_BACKTEST,\n", + " \"force_refresh_llmp_cache\": FORCE_REFRESH_LLMP_CACHE,\n", + " \"run_current_forecast\": RUN_CURRENT_FORECAST,\n", + "})" + ] + }, + { + "cell_type": "markdown", + "id": "e43fbfdd", + "metadata": {}, + "source": [ + "## Imports and project paths\n", + "\n", + "Run this notebook with the repository environment selected as the Jupyter kernel. The `.env` file is loaded for the FRED key and, when needed, the LLM proxy credentials." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "2e5a002b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Repository: c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "\n", + "import pandas as pd\n", + "import yaml\n", + "from dotenv import load_dotenv\n", + "from aieng.forecasting.evaluation import BacktestSpec, backtest\n", + "from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result\n", + "from aieng.forecasting.methods import HistoricalFrequencyPredictor\n", + "from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor\n", + "from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, build_manufacturing_stress_service\n", + "from manufacturing_stress_forecasting.predictors import (\n", + " ManufacturingStressLogisticPredictor,\n", + " ManufacturingStressXGBoostPredictor,\n", + ")\n", + "\n", + "REPO_ROOT = Path.cwd()\n", + "if not (REPO_ROOT / \"pyproject.toml\").exists():\n", + " REPO_ROOT = Path.cwd().parents[1]\n", + "\n", + "load_dotenv(REPO_ROOT / \".env\", override=False)\n", + "SPEC_PATH = REPO_ROOT / \"implementations\" / \"manufacturing_stress_forecasting\" / \"specs\" / \"manufacturing_stress_smoke.yaml\"\n", + "STORE_DIR = REPO_ROOT / \"data\" / \"predictions\"\n", + "LLMP_SPEC_ID = \"manufacturing_stress_smoke_llmp_v1\"\n", + "print(f\"Repository: {REPO_ROOT}\")" + ] + }, + { + "cell_type": "markdown", + "id": "549de858", + "metadata": {}, + "source": [ + "## Create or refresh the data\n", + "\n", + "The service loads `IPMAN`, `DFF`, `DGS10`, and `DGS2` from the FRED cache. Set `REFRESH_FRED_DATA = True` in the first cell when the cache should be updated from FRED." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "7cd4ad0a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " series_id description source units frequency n_obs start end\n", + " fed_funds_rate_pct Month-end effective federal funds rate FRED (DFF), derived monthly Percent MS 867 1954-07-01 2026-09-01\n", + " ipman_change_1m_pct Trailing 1-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 654 1972-02-01 2026-07-01\n", + " ipman_change_3m_pct Trailing 3-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 652 1972-04-01 2026-07-01\n", + " ipman_change_6m_pct Trailing 6-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 649 1972-07-01 2026-07-01\n", + "ipman_us_manufacturing_production U.S. manufacturing industrial production index (IPMAN) FRED (IPMAN) Index MS 655 1972-01-01 2026-07-01\n", + " manufacturing_stress Binary U.S. manufacturing stress label: 1 when trailing 3-month IPMAN change is at or below -2.0% Derived from FRED IPMAN Binary event (0=no stress, 1=stress) MS 652 1972-04-01 2026-07-01\n", + " treasury_10y_minus_2y_pct_points Month-end 10-year minus 2-year Treasury yield spread FRED (DGS10 minus DGS2), derived monthly Percentage points MS 604 1976-06-01 2026-09-01\n" + ] + } + ], + "source": [ + "service = build_manufacturing_stress_service(\n", + " cache_dir=REPO_ROOT / \"data\" / \"fred\",\n", + " refresh=REFRESH_FRED_DATA,\n", + ")\n", + "print(service.summary().to_string(index=False))" + ] + }, + { + "cell_type": "markdown", + "id": "095e4106", + "metadata": {}, + "source": [ + "## Load the common backtest specification\n", + "\n", + "Every predictor below receives this same target, horizon, forecast-origin schedule, warmup, and cutoff-aware data service." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "36a12895", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probability that U.S. manufacturing will be under stress three months ahead. A resolved month is stressed when IPMAN has declined by at least 2 percent over its preceding three months.\n", + "Origins: 2018-01-01 to 2024-12-01, stride=3, warmup=60\n", + "Target: manufacturing_stress; horizon=3 MS\n" + ] + } + ], + "source": [ + "with SPEC_PATH.open() as file:\n", + " spec = BacktestSpec.model_validate(yaml.safe_load(file))\n", + "spec = spec.model_copy(update={\"stride\": BACKTEST_STRIDE})\n", + "\n", + "print(spec.task.description)\n", + "print(f\"Origins: {spec.start.date()} to {spec.end.date()}, stride={spec.stride}, warmup={spec.warmup}\")\n", + "print(f\"Target: {spec.task.target_series_id}; horizon={spec.task.horizons[0]} {spec.task.frequency}\")" + ] + }, + { + "cell_type": "markdown", + "id": "5c5d451c", + "metadata": {}, + "source": [ + "## Run one smoke test\n", + "\n", + "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. When LLMP mode is enabled, completed results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "345f6b3e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "historical_frequency: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\historical_frequency.yaml\n", + "historical_frequency: 0.0356 mean brier; scored=28 skipped=0\n", + "manufacturing_stress_logistic_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_logistic_ipman_rates.yaml\n", + "manufacturing_stress_logistic_ipman_rates: 0.0471 mean brier; scored=28 skipped=0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "manufacturing_stress_xgboost_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_xgboost_ipman_rates.yaml\n", + "manufacturing_stress_xgboost_ipman_rates: 0.0413 mean brier; scored=28 skipped=0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2018-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2019-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2020-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2021-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2022-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2023-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", + "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", + "Node execution failed with exception\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "Root node manufacturing_stress_analyst failed.\n", + "Traceback (most recent call last):\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", + " await task\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", + " raise ctx.error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", + " await self._execute_node(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", + " await self._run_node_loop(ctx, node_input)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", + " async for item in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", + " async for event in run_iter:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", + " async for event in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", + " async for response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", + " raise model_error\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", + " async for llm_response in agen:\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", + " await self._preprocess_request(llm_request)\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", + " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", + " ^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", + " if self.api_client.vertexai\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", + " val = self.func(instance)\n", + " ^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", + " return Client(**kwargs)\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", + " self._api_client = self._get_api_client(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", + " return BaseApiClient(\n", + " ^^^^^^^^^^^^^^\n", + " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", + " raise ValueError(\n", + "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", + "predict() failed at origin 2024-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large.", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 33\u001b[39m\n\u001b[32m 29\u001b[39m \n\u001b[32m 30\u001b[39m results = {}\n\u001b[32m 31\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m predictor \u001b[38;5;28;01min\u001b[39;00m predictors:\n\u001b[32m 32\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m RUN_LLMP_BACKTEST:\n\u001b[32m---> \u001b[39m\u001b[32m33\u001b[39m result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n\u001b[32m 34\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 35\u001b[39m result = backtest(predictor=predictor, spec=spec, data_service=service)\n\u001b[32m 36\u001b[39m results[predictor.predictor_id] = result\n", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 10\u001b[39m, in \u001b[36mrun_cached_backtest\u001b[39m\u001b[34m(predictor, force_refresh)\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cached \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 7\u001b[39m print(f\"{predictor_id}: loaded {artifact_path}\")\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cached\n\u001b[32m 9\u001b[39m \n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m result = backtest(\n\u001b[32m 11\u001b[39m predictor=predictor,\n\u001b[32m 12\u001b[39m spec=spec,\n\u001b[32m 13\u001b[39m data_service=service,\n", + "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:661\u001b[39m, in \u001b[36mbacktest\u001b[39m\u001b[34m(predictor, spec, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 611\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mbacktest\u001b[39m(\n\u001b[32m 612\u001b[39m predictor: Predictor,\n\u001b[32m 613\u001b[39m spec: BacktestSpec,\n\u001b[32m (...)\u001b[39m\u001b[32m 616\u001b[39m retry_delay: \u001b[38;5;28mfloat\u001b[39m = \u001b[32m2.0\u001b[39m,\n\u001b[32m 617\u001b[39m ) -> BacktestResult:\n\u001b[32m 618\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Run a backtest of a predictor against a BacktestSpec.\u001b[39;00m\n\u001b[32m 619\u001b[39m \n\u001b[32m 620\u001b[39m \u001b[33;03m Iterates over forecast origins derived from the spec, calls the predictor\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 659\u001b[39m \u001b[33;03m >>> print(f\"Mean {results.metric.upper()}: {results.mean_score:.4f}\")\u001b[39;00m\n\u001b[32m 660\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m661\u001b[39m predictions, scores, skipped = \u001b[30;43mrun_eval_loop\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 662\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 663\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 664\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 665\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 666\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 667\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 668\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 669\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 670\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m BacktestResult(\n\u001b[32m 671\u001b[39m spec=spec,\n\u001b[32m 672\u001b[39m predictor_id=predictor.predictor_id,\n\u001b[32m (...)\u001b[39m\u001b[32m 678\u001b[39m skipped_origins=skipped,\n\u001b[32m 679\u001b[39m )\n", + "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:602\u001b[39m, in \u001b[36mrun_eval_loop\u001b[39m\u001b[34m(predictor, task, origins, warmup, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 599\u001b[39m skipped += \u001b[32m1\u001b[39m\n\u001b[32m 601\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m predictions:\n\u001b[32m--> \u001b[39m\u001b[32m602\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 603\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mNo predictions were scored. All \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(origins)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m candidate origins were skipped. \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 604\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mCheck that the target series covers the evaluation window and that warmup (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mwarmup\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 605\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mis not too large.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 606\u001b[39m )\n\u001b[32m 608\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m predictions, scores, skipped\n", + "\u001b[31mValueError\u001b[39m: No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large." + ] + } + ], + "source": [ + "def run_cached_backtest(predictor, *, force_refresh=False):\n", + " predictor_id = predictor.predictor_id\n", + " artifact_path = STORE_DIR / LLMP_SPEC_ID / f\"{predictor_id}.yaml\"\n", + " if not force_refresh:\n", + " cached = load_backtest_result(LLMP_SPEC_ID, predictor_id, store_dir=STORE_DIR)\n", + " if cached is not None:\n", + " print(f\"{predictor_id}: loaded {artifact_path}\")\n", + " return cached\n", + "\n", + " result = backtest(\n", + " predictor=predictor,\n", + " spec=spec,\n", + " data_service=service,\n", + " max_retries=1,\n", + " retry_delay=1.0,\n", + " )\n", + " path = save_backtest_result(result, spec_id=LLMP_SPEC_ID, store_dir=STORE_DIR)\n", + " print(f\"{predictor_id}: saved {path}\")\n", + " return result\n", + "\n", + "\n", + "predictors = [\n", + " HistoricalFrequencyPredictor(),\n", + " ManufacturingStressLogisticPredictor(),\n", + " ManufacturingStressXGBoostPredictor(),\n", + "]\n", + "if RUN_LLMP_BACKTEST:\n", + " predictors.append(build_manufacturing_stress_agent_predictor())\n", + "\n", + "results = {}\n", + "for predictor in predictors:\n", + " if RUN_LLMP_BACKTEST:\n", + " result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n", + " else:\n", + " result = backtest(predictor=predictor, spec=spec, data_service=service)\n", + " results[predictor.predictor_id] = result\n", + " print(\n", + " f\"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; \"\n", + " f\"scored={len(result.scores)} skipped={result.skipped_origins}\"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "b9382397", + "metadata": {}, + "source": [ + "## Compare results\n", + "\n", + "Use only results with matching scored-origin counts for a fair comparison. Lower Brier score is better." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "e7c1bd4f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
predictormetricmean_brierscoredskipped
0historical_frequencybrier0.035598280
2manufacturing_stress_xgboost_ipman_ratesbrier0.041290280
1manufacturing_stress_logistic_ipman_ratesbrier0.047142280
\n", + "
" + ], + "text/plain": [ + " predictor metric mean_brier scored \\\n", + "0 historical_frequency brier 0.035598 28 \n", + "2 manufacturing_stress_xgboost_ipman_rates brier 0.041290 28 \n", + "1 manufacturing_stress_logistic_ipman_rates brier 0.047142 28 \n", + "\n", + " skipped \n", + "0 0 \n", + "2 0 \n", + "1 0 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparison = pd.DataFrame(\n", + " [\n", + " {\n", + " \"predictor\": result.predictor_id,\n", + " \"metric\": result.metric,\n", + " \"mean_brier\": result.mean_score,\n", + " \"scored\": len(result.scores),\n", + " \"skipped\": result.skipped_origins,\n", + " }\n", + " for result in results.values()\n", + " ]\n", + ")\n", + "comparison.sort_values(\"mean_brier\") if not comparison.empty else comparison" + ] + }, + { + "cell_type": "markdown", + "id": "266430ff", + "metadata": {}, + "source": [ + "## Optional current forecast\n", + "\n", + "Set `RUN_CURRENT_FORECAST = True` in the first cell to run the selected predictors against the latest released IPMAN data. This is a current forecast, not a historical backtest, so it does not produce a Brier score. `RUN_LLMP_BACKTEST` controls whether the LLMP is included here too." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f360e6c3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\n" + ] + } + ], + "source": [ + "if RUN_CURRENT_FORECAST:\n", + " with SPEC_PATH.open() as file:\n", + " current_task = BacktestSpec.model_validate(yaml.safe_load(file)).task\n", + "\n", + " full_ipman = service.get_series(\n", + " IPMAN_SERIES_ID,\n", + " as_of=pd.Timestamp(\"2100-01-01\").to_pydatetime(),\n", + " )\n", + " current_as_of = pd.Timestamp(full_ipman[\"released_at\"].max())\n", + " current_context = service.context(as_of=current_as_of.to_pydatetime())\n", + "\n", + " current_predictors = [\n", + " HistoricalFrequencyPredictor(),\n", + " ManufacturingStressLogisticPredictor(),\n", + " ManufacturingStressXGBoostPredictor(),\n", + " ]\n", + " if RUN_LLMP_BACKTEST:\n", + " current_predictors.append(build_manufacturing_stress_agent_predictor())\n", + "\n", + " print(f\"Forecast origin: {current_as_of.date()}\")\n", + " print(\n", + " \"Latest visible IPMAN reference month: \"\n", + " f\"{pd.Timestamp(current_context.get_series(IPMAN_SERIES_ID)['timestamp'].max()).date()}\"\n", + " )\n", + " for predictor in current_predictors:\n", + " prediction = predictor.predict(current_task, current_context)[0]\n", + " print({\n", + " \"predictor\": prediction.predictor_id,\n", + " \"forecast_date\": str(pd.Timestamp(prediction.forecast_date).date()),\n", + " \"stress_probability\": prediction.payload.probability,\n", + " \"metadata\": prediction.metadata,\n", + " })\n", + "else:\n", + " print(\"Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "agentic-forecasting-bootcamp (3.12.14.final.0)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.14" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py new file mode 100644 index 000000000..17fd1b982 --- /dev/null +++ b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py @@ -0,0 +1,89 @@ +"""Run the cached, token-limited manufacturing-stress agent backtest.""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +import yaml +from aieng.forecasting.data import DataService +from aieng.forecasting.evaluation import BacktestSpec, backtest +from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result +from aieng.forecasting.evaluation.backtest import BacktestResult +from aieng.forecasting.evaluation.predictor import Predictor +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor +from manufacturing_stress_forecasting.data import build_manufacturing_stress_service +from manufacturing_stress_forecasting.predictors import ( + ManufacturingStressLogisticPredictor, + ManufacturingStressXGBoostPredictor, +) + + +REPO_ROOT = Path(__file__).resolve().parents[2] +SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" +STORE_DIR = REPO_ROOT / "data" / "predictions" +SPEC_ID = "manufacturing_stress_smoke_llmp_v1" + + +def _parse_args() -> argparse.Namespace: + """Parse explicit controls for the paid backtest.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--force-refresh", + action="store_true", + help="Re-run predictors and overwrite cached results.", + ) + return parser.parse_args() + + +def _run_or_load( + predictor: Predictor, + spec: BacktestSpec, + service: DataService, + *, + force_refresh: bool, +) -> BacktestResult: + """Load one cached result or run it with one retry and persist it.""" + predictor_id = predictor.predictor_id + if not force_refresh: + cached = load_backtest_result(SPEC_ID, predictor_id, store_dir=STORE_DIR) + if cached is not None: + print(f"{predictor_id}: loaded {STORE_DIR / SPEC_ID / (predictor_id + '.yaml')}") + return cached + + result = backtest( + predictor=predictor, + spec=spec, + data_service=service, + max_retries=1, + retry_delay=1.0, + ) + path = save_backtest_result(result, spec_id=SPEC_ID, store_dir=STORE_DIR) + print(f"{predictor_id}: saved {path}") + return result + + +def main() -> None: + """Run all predictors under the identical binary Brier-score harness.""" + args = _parse_args() + with SPEC_PATH.open() as file: + spec = BacktestSpec.model_validate(yaml.safe_load(file)) + + service = build_manufacturing_stress_service() + predictors = [ + HistoricalFrequencyPredictor(), + ManufacturingStressLogisticPredictor(), + ManufacturingStressXGBoostPredictor(), + build_manufacturing_stress_agent_predictor(), + ] + for predictor in predictors: + result = _run_or_load(predictor, spec, service, force_refresh=args.force_refresh) + print( + f"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; " + f"scored={len(result.scores)} skipped={result.skipped_origins}" + ) + + +if __name__ == "__main__": + main() diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index d3220fe39..c6729d3e8 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -7,7 +7,10 @@ from aieng.forecasting.data import DataService, SeriesMetadata from aieng.forecasting.data.features import StaticFrameAdapter from aieng.forecasting.evaluation import ForecastingTask -from manufacturing_stress_forecasting.analyst_agent import ManufacturingStressPromptBuilder +from manufacturing_stress_forecasting.analyst_agent import ( + ManufacturingStressPromptBuilder, + build_manufacturing_stress_agent_config, +) from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, STRESS_SERIES_ID from manufacturing_stress_forecasting.features import FEATURE_SERIES_IDS @@ -68,7 +71,17 @@ def test_prompt_uses_only_cutoff_visible_evidence() -> None: assert payload["as_of"] == "2020-06-01" assert payload["forecast_date"] == "2020-09-01" assert payload["recent_ipman"][-1]["value"] == 105.0 + assert len(payload["recent_ipman"]) <= 12 assert len(payload["current_ipman_signals_pct"]) == 3 assert len(payload["current_macro_signals"]) == 2 assert 999.0 not in payload["current_ipman_signals_pct"].values() assert 999.0 not in payload["current_macro_signals"].values() + assert "\n" not in prompt + + +def test_agent_config_limits_output_tokens() -> None: + config = build_manufacturing_stress_agent_config() + + assert config.max_output_tokens == 384 + assert config.temperature == 0.1 + assert config.seed == 42 From 6877b06e9d07add56b1fc141389364fe6d1aae6f Mon Sep 17 00:00:00 2001 From: vbeohar Date: Wed, 23 Sep 2026 10:03:42 -0400 Subject: [PATCH 6/6] fix(manufacturing): harden agent backtest evaluation --- .../README.md | 24 +- .../analyst_agent/agent.py | 46 +- .../manufacturing_stress_workbench.ipynb | 7118 +---------------- .../run_agent_backtest.py | 79 +- .../test_agent_backtest.py | 122 + .../test_agent_prompt.py | 49 + 6 files changed, 340 insertions(+), 7098 deletions(-) create mode 100644 implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py diff --git a/implementations/manufacturing_stress_forecasting/README.md b/implementations/manufacturing_stress_forecasting/README.md index 59bb4cfd5..68a0512d3 100644 --- a/implementations/manufacturing_stress_forecasting/README.md +++ b/implementations/manufacturing_stress_forecasting/README.md @@ -25,7 +25,7 @@ That distinction makes this forecasting rather than current-state detection. - `HistoricalFrequencyPredictor`: the visible historical stress rate. - `ManufacturingStressLogisticPredictor`: fit-at-origin logistic regression on the five IPMAN/rate variables. - `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted +- `ManufacturingStressXGBoostPredictor`: a small fit-at-origin gradient-boosted tree classifier using the same five variables and cutoff-safe training rows. - `manufacturing_stress_analyst`: a structured LLM predictor receiving the same five cutoff-safe signals plus recent IPMAN history and historical base rates. @@ -82,14 +82,20 @@ This evaluates historical frequency, logistic regression, XGBoost, and the `manufacturing_stress_analyst` agent through the same binary backtest and Brier-score calculation. The agent run uses the default lite model, a 12-month IPMAN history, compact JSON prompts, a 384-token response cap, and -one retry per failed origin. Complete results are cached under -`data/predictions/manufacturing_stress_smoke_llmp_v1/`, so rerunning the -command does not make new model calls. Use `--force-refresh` to intentionally -re-run the predictors. - -Compare scores only when the results have the same scored-origin count. The -command prints both `scored` and `skipped` counts because failed agent origins -are excluded from the mean Brier score. +one retry per failed origin. Calendar dates are replaced by relative month +offsets in retrospective agent prompts to reduce historical-event recall. + +Complete results are cached under a specification-fingerprinted directory in +`data/predictions/`, so changing the stride, horizon, dates, or warmup cannot +silently reuse an incompatible result. Incomplete runs with skipped origins +are not cached. Use `--force-refresh` to intentionally re-run every predictor. +The command also verifies that every reported model was scored on the exact +same origin and forecast-date pairs. + +This remains a retrospective LLM pseudo-backtest: anonymizing dates reduces, +but cannot eliminate, the possibility that a modern model recognizes a +historical episode from its training knowledge. Use prospectively recorded +forecasts for a clean out-of-sample LLM evaluation. Run one current forecast, including the structured agent: diff --git a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py index 9e1e1a845..67053b677 100644 --- a/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py +++ b/implementations/manufacturing_stress_forecasting/analyst_agent/agent.py @@ -34,9 +34,10 @@ def _build_instruction() -> str: return ( "## Role\n\n" "You are a cautious U.S. manufacturing-cycle analyst. Estimate the probability that the " - "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast date.\n\n" + "binary IPMAN stress event in the supplied task resolves to 1 at the specified forecast horizon.\n\n" "## Rules\n\n" - "1. Use only the JSON payload. Do not use remembered events or facts after `as_of`.\n" + "1. Use only the JSON payload. Do not use remembered events or facts after the forecast origin.\n" + " Historical backtests may anonymize calendar dates; do not try to infer the hidden dates.\n" "2. Start from the supplied historical base rate, then adjust using the five supplied signals.\n" "3. Treat negative IPMAN momentum, a restrictive fed funds rate, and an inverted 10Y-2Y spread " "as possible evidence for stress; explain how the signals interact.\n" @@ -57,6 +58,7 @@ class ManufacturingStressPromptBuilder(BaseModel): recent_history_months: int = Field(default=12, ge=6, le=120) trailing_base_rate_months: int = Field(default=60, ge=12, le=240) + anonymize_dates: bool = False def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: """Build one structured, cutoff-safe forecast payload.""" @@ -83,19 +85,32 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: target_values = target["value"].astype(float) trailing_values = target_values.tail(self.trailing_base_rate_months) - recent_ipman = [ - { - "reference_month": str(pd.Timestamp(timestamp).date()), - "value": float(value), - "released_at": str(pd.Timestamp(released_at).date()), - } - for timestamp, value, released_at in zip( + recent_rows = list( + zip( ipman["timestamp"].tail(self.recent_history_months), ipman["value"].tail(self.recent_history_months), ipman["released_at"].tail(self.recent_history_months), strict=True, ) - ] + ) + if self.anonymize_dates: + origin_month = as_of.to_period("M").ordinal + recent_ipman = [ + { + "months_before_origin": origin_month - pd.Timestamp(timestamp).to_period("M").ordinal, + "value": float(value), + } + for timestamp, value, _released_at in recent_rows + ] + else: + recent_ipman = [ + { + "reference_month": str(pd.Timestamp(timestamp).date()), + "value": float(value), + "released_at": str(pd.Timestamp(released_at).date()), + } + for timestamp, value, released_at in recent_rows + ] payload: dict[str, Any] = { "task": { @@ -103,8 +118,6 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: "question": task.description, "horizon_months": task.horizons[0], }, - "as_of": str(as_of.date()), - "forecast_date": str(forecast_date.date()), "target_definition": { "event": "manufacturing stress", "stress_value": 1, @@ -123,6 +136,11 @@ def __call__(self, *, task: ForecastingTask, context: ForecastContext) -> str: }, "recent_ipman": recent_ipman, } + if self.anonymize_dates: + payload["timing"] = {"calendar_dates_anonymized": True} + else: + payload["as_of"] = str(as_of.date()) + payload["forecast_date"] = str(forecast_date.date()) return json.dumps(payload, separators=(",", ":")) @@ -140,11 +158,13 @@ def build_manufacturing_stress_agent_config(model: str = LITE_MODEL) -> AgentCon def build_manufacturing_stress_agent_predictor( config: AgentConfig | None = None, + *, + anonymize_dates: bool = False, ) -> AgentPredictor: """Wrap the analyst in the standard binary AgentPredictor contract.""" return AgentPredictor( agent_config=config or build_manufacturing_stress_agent_config(), - prompt_builder=ManufacturingStressPromptBuilder(), + prompt_builder=ManufacturingStressPromptBuilder(anonymize_dates=anonymize_dates), output_schema=DiscreteAgentForecastOutput, ) diff --git a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb index 22e3719f5..a9f800bce 100644 --- a/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb +++ b/implementations/manufacturing_stress_forecasting/manufacturing_stress_workbench.ipynb @@ -2,33 +2,29 @@ "cells": [ { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "988dada7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running: uv sync --all-extras --dev --all-packages\n", - "\n", - "Environment synchronized successfully.\n", - "If packages changed, restart the notebook kernel before continuing.\n" - ] - } - ], + "outputs": [], "source": [ "# Cell 0: synchronize the repository environment before running the workbench.\n", - "from pathlib import Path\n", "import subprocess\n", + "from pathlib import Path\n", "\n", - "SETUP_ROOT = Path.cwd()\n", - "while not (SETUP_ROOT / \"pyproject.toml\").exists() and SETUP_ROOT != SETUP_ROOT.parent:\n", - " SETUP_ROOT = SETUP_ROOT.parent\n", "\n", - "if not (SETUP_ROOT / \"pyproject.toml\").exists():\n", - " raise FileNotFoundError(\"Could not find the repository root containing pyproject.toml.\")\n", + "def find_repo_root(start: Path) -> Path:\n", + " \"\"\"Find the workspace root without confusing member pyproject files for it.\"\"\"\n", + " for candidate in (start, *start.parents):\n", + " if (\n", + " (candidate / \"uv.lock\").exists()\n", + " and (candidate / \"implementations\").is_dir()\n", + " and (candidate / \"aieng-forecasting\").is_dir()\n", + " ):\n", + " return candidate\n", + " raise FileNotFoundError(\"Could not find the agentic-forecasting repository root.\")\n", "\n", + "\n", + "SETUP_ROOT = find_repo_root(Path.cwd().resolve())\n", "print(\"Running: uv sync --all-extras --dev --all-packages\")\n", "setup_result = subprocess.run(\n", " [\"uv\", \"sync\", \"--all-extras\", \"--dev\", \"--all-packages\"],\n", @@ -44,7 +40,7 @@ " \"uv sync failed. Install uv or restart the notebook with the repository environment selected.\"\n", " )\n", "print(\"Environment synchronized successfully.\")\n", - "print(\"If packages changed, restart the notebook kernel before continuing.\")" + "print(\"If packages changed, restart the notebook kernel before continuing.\")\n" ] }, { @@ -56,7 +52,7 @@ "\n", "This notebook is the main interactive entry point for the manufacturing-stress experiment. It creates or refreshes the FRED data cache, runs the deterministic baselines, and optionally runs the token-limited LLMP backtest.\n", "\n", - "All predictors use the same backtest specification and shared Brier-score implementation. The LLMP is opt-in and cached so repeated analysis does not make new model calls." + "All predictors use the same backtest specification and shared Brier-score implementation. Complete LLMP results are cached by backtest-specification fingerprint so repeated analysis does not make new model calls. Historical agent prompts use relative month offsets instead of calendar dates, but this remains a retrospective pseudo-backtest: model-training knowledge leakage cannot be eliminated completely.\n" ] }, { @@ -64,15 +60,7 @@ "execution_count": null, "id": "d1b6955d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'refresh_fred_data': False, 'backtest_stride': 3, 'run_llmp_backtest': True, 'force_refresh_llmp_cache': True, 'run_current_forecast': False}\n" - ] - } - ], + "outputs": [], "source": [ "# Main controls: change these values, then run the notebook from top to bottom.\n", "REFRESH_FRED_DATA = False\n", @@ -106,43 +94,35 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "2e5a002b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Repository: c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\n" - ] - } - ], + "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import pandas as pd\n", "import yaml\n", - "from dotenv import load_dotenv\n", "from aieng.forecasting.evaluation import BacktestSpec, backtest\n", - "from aieng.forecasting.evaluation.artifacts import load_backtest_result, save_backtest_result\n", "from aieng.forecasting.methods import HistoricalFrequencyPredictor\n", + "from dotenv import load_dotenv\n", "from manufacturing_stress_forecasting.analyst_agent import build_manufacturing_stress_agent_predictor\n", "from manufacturing_stress_forecasting.data import IPMAN_SERIES_ID, build_manufacturing_stress_service\n", "from manufacturing_stress_forecasting.predictors import (\n", " ManufacturingStressLogisticPredictor,\n", " ManufacturingStressXGBoostPredictor,\n", ")\n", + "from manufacturing_stress_forecasting.run_agent_backtest import (\n", + " run_or_load_backtest,\n", + " validate_comparable_results,\n", + ")\n", "\n", - "REPO_ROOT = Path.cwd()\n", - "if not (REPO_ROOT / \"pyproject.toml\").exists():\n", - " REPO_ROOT = Path.cwd().parents[1]\n", "\n", + "REPO_ROOT = SETUP_ROOT\n", "load_dotenv(REPO_ROOT / \".env\", override=False)\n", "SPEC_PATH = REPO_ROOT / \"implementations\" / \"manufacturing_stress_forecasting\" / \"specs\" / \"manufacturing_stress_smoke.yaml\"\n", "STORE_DIR = REPO_ROOT / \"data\" / \"predictions\"\n", - "LLMP_SPEC_ID = \"manufacturing_stress_smoke_llmp_v1\"\n", - "print(f\"Repository: {REPO_ROOT}\")" + "print(f\"Repository: {REPO_ROOT}\")\n" ] }, { @@ -157,25 +137,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "7cd4ad0a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " series_id description source units frequency n_obs start end\n", - " fed_funds_rate_pct Month-end effective federal funds rate FRED (DFF), derived monthly Percent MS 867 1954-07-01 2026-09-01\n", - " ipman_change_1m_pct Trailing 1-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 654 1972-02-01 2026-07-01\n", - " ipman_change_3m_pct Trailing 3-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 652 1972-04-01 2026-07-01\n", - " ipman_change_6m_pct Trailing 6-month percentage change in IPMAN Derived from FRED IPMAN Percent MS 649 1972-07-01 2026-07-01\n", - "ipman_us_manufacturing_production U.S. manufacturing industrial production index (IPMAN) FRED (IPMAN) Index MS 655 1972-01-01 2026-07-01\n", - " manufacturing_stress Binary U.S. manufacturing stress label: 1 when trailing 3-month IPMAN change is at or below -2.0% Derived from FRED IPMAN Binary event (0=no stress, 1=stress) MS 652 1972-04-01 2026-07-01\n", - " treasury_10y_minus_2y_pct_points Month-end 10-year minus 2-year Treasury yield spread FRED (DGS10 minus DGS2), derived monthly Percentage points MS 604 1976-06-01 2026-09-01\n" - ] - } - ], + "outputs": [], "source": [ "service = build_manufacturing_stress_service(\n", " cache_dir=REPO_ROOT / \"data\" / \"fred\",\n", @@ -196,20 +161,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "36a12895", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Probability that U.S. manufacturing will be under stress three months ahead. A resolved month is stressed when IPMAN has declined by at least 2 percent over its preceding three months.\n", - "Origins: 2018-01-01 to 2024-12-01, stride=3, warmup=60\n", - "Target: manufacturing_stress; horizon=3 MS\n" - ] - } - ], + "outputs": [], "source": [ "with SPEC_PATH.open() as file:\n", " spec = BacktestSpec.model_validate(yaml.safe_load(file))\n", @@ -227,6933 +182,44 @@ "source": [ "## Run one smoke test\n", "\n", - "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. When LLMP mode is enabled, completed results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`." + "This is the single execution path. It always runs the historical-frequency, logistic-regression, and XGBoost predictors. Set `RUN_LLMP_BACKTEST = True` in the first cell to include the token-limited LLMP in the same run. Compatible complete results are loaded from cache unless `FORCE_REFRESH_LLMP_CACHE = True`; refreshed FRED data also forces a rerun.\n" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "345f6b3e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "historical_frequency: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\historical_frequency.yaml\n", - "historical_frequency: 0.0356 mean brier; scored=28 skipped=0\n", - "manufacturing_stress_logistic_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_logistic_ipman_rates.yaml\n", - "manufacturing_stress_logistic_ipman_rates: 0.0471 mean brier; scored=28 skipped=0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "manufacturing_stress_xgboost_ipman_rates: saved c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\data\\predictions\\manufacturing_stress_smoke_llmp_v1\\manufacturing_stress_xgboost_ipman_rates.yaml\n", - "manufacturing_stress_xgboost_ipman_rates: 0.0413 mean brier; scored=28 skipped=0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2018-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2019-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2020-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2021-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2022-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2023-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-01-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-01-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-04-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-04-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-07-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-07-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-10-01 (attempt 1/2): No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key. — retrying in 1s\n", - "Authentication error: Langfuse client initialized without public_key. Client will be disabled. Provide a public_key parameter or set LANGFUSE_PUBLIC_KEY environment variable. \n", - "Node execution failed with exception\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "Root node manufacturing_stress_analyst failed.\n", - "Traceback (most recent call last):\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 815, in _cleanup_root_task\n", - " await task\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\runners.py\", line 560, in _drive_root_node\n", - " raise ctx.error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 135, in run\n", - " await self._execute_node(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 255, in _execute_node\n", - " await self._run_node_loop(ctx, node_input)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_node_runner.py\", line 269, in _run_node_loop\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_base_node.py\", line 217, in run\n", - " async for item in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 559, in _run_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\workflow\\_llm_agent_wrapper.py\", line 383, in run_llm_agent_as_node\n", - " async for event in run_iter:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\base_agent.py\", line 305, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\agents\\llm_agent.py\", line 515, in _run_async_impl\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 889, in run_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 968, in _run_one_step_async\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1362, in _call_llm_async\n", - " async for event in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1340, in _call_llm_with_tracing\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 1423, in _run_and_handle_error\n", - " async for response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 408, in _run_and_handle_error\n", - " raise model_error\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\flows\\llm_flows\\base_llm_flow.py\", line 385, in _run_and_handle_error\n", - " async for llm_response in agen:\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 190, in generate_content_async\n", - " await self._preprocess_request(llm_request)\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 486, in _preprocess_request\n", - " if self._api_backend == GoogleLLMVariant.GEMINI_API:\n", - " ^^^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 358, in _api_backend\n", - " if self.api_client.vertexai\n", - " ^^^^^^^^^^^^^^^\n", - " File \"C:\\Users\\Mina Attari\\AppData\\Roaming\\uv\\python\\cpython-3.12-windows-x86_64-none\\Lib\\functools.py\", line 998, in __get__\n", - " val = self.func(instance)\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\adk\\models\\google_llm.py\", line 352, in api_client\n", - " return Client(**kwargs)\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 458, in __init__\n", - " self._api_client = self._get_api_client(\n", - " ^^^^^^^^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\client.py\", line 506, in _get_api_client\n", - " return BaseApiClient(\n", - " ^^^^^^^^^^^^^^\n", - " File \"c:\\Users\\Mina Attari\\BMO-C2-agentic-forecasting\\.venv\\Lib\\site-packages\\google\\genai\\_api_client.py\", line 783, in __init__\n", - " raise ValueError(\n", - "ValueError: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n", - "predict() failed at origin 2024-10-01 after 2 attempt(s) — skipping origin: No API key was provided. Please pass a valid API key. Learn how to create an API key at https://ai.google.dev/gemini-api/docs/api-key.\n" - ] - }, - { - "ename": "ValueError", - "evalue": "No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large.", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 33\u001b[39m\n\u001b[32m 29\u001b[39m \n\u001b[32m 30\u001b[39m results = {}\n\u001b[32m 31\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m predictor \u001b[38;5;28;01min\u001b[39;00m predictors:\n\u001b[32m 32\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m RUN_LLMP_BACKTEST:\n\u001b[32m---> \u001b[39m\u001b[32m33\u001b[39m result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n\u001b[32m 34\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 35\u001b[39m result = backtest(predictor=predictor, spec=spec, data_service=service)\n\u001b[32m 36\u001b[39m results[predictor.predictor_id] = result\n", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 10\u001b[39m, in \u001b[36mrun_cached_backtest\u001b[39m\u001b[34m(predictor, force_refresh)\u001b[39m\n\u001b[32m 6\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cached \u001b[38;5;28;01mis\u001b[39;00m \u001b[38;5;28;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 7\u001b[39m print(f\"{predictor_id}: loaded {artifact_path}\")\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cached\n\u001b[32m 9\u001b[39m \n\u001b[32m---> \u001b[39m\u001b[32m10\u001b[39m result = backtest(\n\u001b[32m 11\u001b[39m predictor=predictor,\n\u001b[32m 12\u001b[39m spec=spec,\n\u001b[32m 13\u001b[39m data_service=service,\n", - "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:661\u001b[39m, in \u001b[36mbacktest\u001b[39m\u001b[34m(predictor, spec, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 611\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mbacktest\u001b[39m(\n\u001b[32m 612\u001b[39m predictor: Predictor,\n\u001b[32m 613\u001b[39m spec: BacktestSpec,\n\u001b[32m (...)\u001b[39m\u001b[32m 616\u001b[39m retry_delay: \u001b[38;5;28mfloat\u001b[39m = \u001b[32m2.0\u001b[39m,\n\u001b[32m 617\u001b[39m ) -> BacktestResult:\n\u001b[32m 618\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Run a backtest of a predictor against a BacktestSpec.\u001b[39;00m\n\u001b[32m 619\u001b[39m \n\u001b[32m 620\u001b[39m \u001b[33;03m Iterates over forecast origins derived from the spec, calls the predictor\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 659\u001b[39m \u001b[33;03m >>> print(f\"Mean {results.metric.upper()}: {results.mean_score:.4f}\")\u001b[39;00m\n\u001b[32m 660\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m661\u001b[39m predictions, scores, skipped = \u001b[30;43mrun_eval_loop\u001b[39;49m\u001b[30;43m(\u001b[39;49m\n\u001b[32m 662\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mpredictor\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 663\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mtask\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 664\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43morigins\u001b[39;49m\u001b[30;43m(\u001b[39;49m\u001b[30;43m)\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 665\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mspec\u001b[39;49m\u001b[30;43m.\u001b[39;49m\u001b[30;43mwarmup\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 666\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mdata_service\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 667\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mmax_retries\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 668\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m=\u001b[39;49m\u001b[30;43mretry_delay\u001b[39;49m\u001b[30;43m,\u001b[39;49m\n\u001b[32m 669\u001b[39m \u001b[30;43m \u001b[39;49m\u001b[30;43m)\u001b[39;49m\n\u001b[32m 670\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m BacktestResult(\n\u001b[32m 671\u001b[39m spec=spec,\n\u001b[32m 672\u001b[39m predictor_id=predictor.predictor_id,\n\u001b[32m (...)\u001b[39m\u001b[32m 678\u001b[39m skipped_origins=skipped,\n\u001b[32m 679\u001b[39m )\n", - "\u001b[36mFile \u001b[39m\u001b[32m~\\BMO-C2-agentic-forecasting\\aieng-forecasting\\aieng\\forecasting\\evaluation\\backtest.py:602\u001b[39m, in \u001b[36mrun_eval_loop\u001b[39m\u001b[34m(predictor, task, origins, warmup, data_service, max_retries, retry_delay)\u001b[39m\n\u001b[32m 599\u001b[39m skipped += \u001b[32m1\u001b[39m\n\u001b[32m 601\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m predictions:\n\u001b[32m--> \u001b[39m\u001b[32m602\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 603\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mNo predictions were scored. All \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(origins)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m candidate origins were skipped. \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 604\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mCheck that the target series covers the evaluation window and that warmup (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mwarmup\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 605\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mis not too large.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 606\u001b[39m )\n\u001b[32m 608\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m predictions, scores, skipped\n", - "\u001b[31mValueError\u001b[39m: No predictions were scored. All 28 candidate origins were skipped. Check that the target series covers the evaluation window and that warmup (60) is not too large." - ] - } - ], + "outputs": [], "source": [ - "def run_cached_backtest(predictor, *, force_refresh=False):\n", - " predictor_id = predictor.predictor_id\n", - " artifact_path = STORE_DIR / LLMP_SPEC_ID / f\"{predictor_id}.yaml\"\n", - " if not force_refresh:\n", - " cached = load_backtest_result(LLMP_SPEC_ID, predictor_id, store_dir=STORE_DIR)\n", - " if cached is not None:\n", - " print(f\"{predictor_id}: loaded {artifact_path}\")\n", - " return cached\n", - "\n", - " result = backtest(\n", - " predictor=predictor,\n", - " spec=spec,\n", - " data_service=service,\n", - " max_retries=1,\n", - " retry_delay=1.0,\n", - " )\n", - " path = save_backtest_result(result, spec_id=LLMP_SPEC_ID, store_dir=STORE_DIR)\n", - " print(f\"{predictor_id}: saved {path}\")\n", - " return result\n", - "\n", - "\n", "predictors = [\n", " HistoricalFrequencyPredictor(),\n", " ManufacturingStressLogisticPredictor(),\n", " ManufacturingStressXGBoostPredictor(),\n", "]\n", "if RUN_LLMP_BACKTEST:\n", - " predictors.append(build_manufacturing_stress_agent_predictor())\n", + " predictors.append(build_manufacturing_stress_agent_predictor(anonymize_dates=True))\n", "\n", "results = {}\n", "for predictor in predictors:\n", " if RUN_LLMP_BACKTEST:\n", - " result = run_cached_backtest(predictor, force_refresh=FORCE_REFRESH_LLMP_CACHE)\n", + " result = run_or_load_backtest(\n", + " predictor,\n", + " spec,\n", + " service,\n", + " force_refresh=FORCE_REFRESH_LLMP_CACHE or REFRESH_FRED_DATA,\n", + " store_dir=STORE_DIR,\n", + " )\n", " else:\n", " result = backtest(predictor=predictor, spec=spec, data_service=service)\n", " results[predictor.predictor_id] = result\n", " print(\n", " f\"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; \"\n", " f\"scored={len(result.scores)} skipped={result.skipped_origins}\"\n", - " )" + " )\n", + "\n", + "validate_comparable_results(list(results.values()))\n", + "print(\"All predictors were scored on identical forecast origins.\")\n" ] }, { @@ -7163,89 +229,15 @@ "source": [ "## Compare results\n", "\n", - "Use only results with matching scored-origin counts for a fair comparison. Lower Brier score is better." + "Lower Brier score is better. The notebook refuses to compare results unless every predictor was scored on the exact same forecast-origin and forecast-date pairs.\n" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "e7c1bd4f", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
predictormetricmean_brierscoredskipped
0historical_frequencybrier0.035598280
2manufacturing_stress_xgboost_ipman_ratesbrier0.041290280
1manufacturing_stress_logistic_ipman_ratesbrier0.047142280
\n", - "
" - ], - "text/plain": [ - " predictor metric mean_brier scored \\\n", - "0 historical_frequency brier 0.035598 28 \n", - "2 manufacturing_stress_xgboost_ipman_rates brier 0.041290 28 \n", - "1 manufacturing_stress_logistic_ipman_rates brier 0.047142 28 \n", - "\n", - " skipped \n", - "0 0 \n", - "2 0 \n", - "1 0 " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "comparison = pd.DataFrame(\n", " [\n", @@ -7274,18 +266,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "f360e6c3", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Current forecast is disabled. Set RUN_CURRENT_FORECAST = True to enable it.\n" - ] - } - ], + "outputs": [], "source": [ "if RUN_CURRENT_FORECAST:\n", " with SPEC_PATH.open() as file:\n", diff --git a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py index 17fd1b982..488631234 100644 --- a/implementations/manufacturing_stress_forecasting/run_agent_backtest.py +++ b/implementations/manufacturing_stress_forecasting/run_agent_backtest.py @@ -3,6 +3,9 @@ from __future__ import annotations import argparse +import hashlib +import json +from datetime import datetime from pathlib import Path import yaml @@ -23,7 +26,24 @@ REPO_ROOT = Path(__file__).resolve().parents[2] SPEC_PATH = Path(__file__).resolve().parent / "specs" / "manufacturing_stress_smoke.yaml" STORE_DIR = REPO_ROOT / "data" / "predictions" -SPEC_ID = "manufacturing_stress_smoke_llmp_v1" +# Bump when prompt or predictor semantics change without changing predictor IDs. +CACHE_VERSION = "v2" + + +def backtest_cache_id(spec: BacktestSpec) -> str: + """Return a versioned cache key tied to the complete backtest spec.""" + serialized = json.dumps(spec.model_dump(mode="json"), sort_keys=True, separators=(",", ":")) + fingerprint = hashlib.sha256(serialized.encode()).hexdigest()[:10] + return f"manufacturing_stress_smoke_llmp_{CACHE_VERSION}_{fingerprint}" + + +def _cache_rejection_reason(cached: BacktestResult, spec: BacktestSpec) -> str | None: + """Explain why a cached result is unsafe to reuse, if applicable.""" + if cached.spec != spec: + return "the cached backtest specification differs" + if cached.skipped_origins: + return f"the cached result skipped {cached.skipped_origins} origin(s)" + return None def _parse_args() -> argparse.Namespace: @@ -37,20 +57,27 @@ def _parse_args() -> argparse.Namespace: return parser.parse_args() -def _run_or_load( +def run_or_load_backtest( predictor: Predictor, spec: BacktestSpec, service: DataService, *, force_refresh: bool, + spec_id: str | None = None, + store_dir: Path = STORE_DIR, ) -> BacktestResult: - """Load one cached result or run it with one retry and persist it.""" + """Load a compatible complete result or run it and cache only if complete.""" predictor_id = predictor.predictor_id + resolved_spec_id = spec_id or backtest_cache_id(spec) if not force_refresh: - cached = load_backtest_result(SPEC_ID, predictor_id, store_dir=STORE_DIR) + cached = load_backtest_result(resolved_spec_id, predictor_id, store_dir=store_dir) if cached is not None: - print(f"{predictor_id}: loaded {STORE_DIR / SPEC_ID / (predictor_id + '.yaml')}") - return cached + rejection_reason = _cache_rejection_reason(cached, spec) + if rejection_reason is None: + path = store_dir / resolved_spec_id / f"{predictor_id}.yaml" + print(f"{predictor_id}: loaded {path}") + return cached + print(f"{predictor_id}: ignoring cache because {rejection_reason}") result = backtest( predictor=predictor, @@ -59,11 +86,41 @@ def _run_or_load( max_retries=1, retry_delay=1.0, ) - path = save_backtest_result(result, spec_id=SPEC_ID, store_dir=STORE_DIR) + if result.skipped_origins: + print( + f"{predictor_id}: not cached because the run skipped " + f"{result.skipped_origins} origin(s)" + ) + return result + + path = save_backtest_result(result, spec_id=resolved_spec_id, store_dir=store_dir) print(f"{predictor_id}: saved {path}") return result +def scored_origin_keys(result: BacktestResult) -> set[tuple[datetime, datetime]]: + """Return the exact forecast-origin/date pairs scored in a result.""" + return {(prediction.as_of, prediction.forecast_date) for prediction in result.predictions} + + +def validate_comparable_results(results: list[BacktestResult]) -> None: + """Require all model comparisons to use identical scored origins.""" + if len(results) < 2: + return + + reference = results[0] + reference_keys = scored_origin_keys(reference) + for result in results[1:]: + result_keys = scored_origin_keys(result) + if result_keys != reference_keys: + missing = len(reference_keys - result_keys) + extra = len(result_keys - reference_keys) + raise ValueError( + f"Cannot compare {result.predictor_id} with {reference.predictor_id}: " + f"scored origins differ (missing={missing}, extra={extra})." + ) + + def main() -> None: """Run all predictors under the identical binary Brier-score harness.""" args = _parse_args() @@ -75,14 +132,18 @@ def main() -> None: HistoricalFrequencyPredictor(), ManufacturingStressLogisticPredictor(), ManufacturingStressXGBoostPredictor(), - build_manufacturing_stress_agent_predictor(), + build_manufacturing_stress_agent_predictor(anonymize_dates=True), ] + results: list[BacktestResult] = [] for predictor in predictors: - result = _run_or_load(predictor, spec, service, force_refresh=args.force_refresh) + result = run_or_load_backtest(predictor, spec, service, force_refresh=args.force_refresh) + results.append(result) print( f"{result.predictor_id}: {result.mean_score:.4f} mean {result.metric}; " f"scored={len(result.scores)} skipped={result.skipped_origins}" ) + validate_comparable_results(results) + print("All predictors were scored on identical forecast origins.") if __name__ == "__main__": diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py new file mode 100644 index 000000000..5792afcb0 --- /dev/null +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_backtest.py @@ -0,0 +1,122 @@ +"""Tests for manufacturing-stress backtest caching and comparison guards.""" + +from datetime import datetime +from pathlib import Path + +import pytest +from aieng.forecasting.data import DataService +from aieng.forecasting.evaluation import BacktestSpec, ForecastingTask +from aieng.forecasting.evaluation.backtest import BacktestResult +from aieng.forecasting.evaluation.prediction import BinaryForecast, Prediction +from aieng.forecasting.methods import HistoricalFrequencyPredictor +from manufacturing_stress_forecasting import run_agent_backtest + + +def _spec(*, stride: int = 3) -> BacktestSpec: + return BacktestSpec( + task=ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id="manufacturing_stress", + horizons=[3], + frequency="MS", + payload_type="binary", + description="Manufacturing stress three months ahead", + ), + start=datetime(2020, 1, 1), + end=datetime(2020, 7, 1), + stride=stride, + ) + + +def _result( + spec: BacktestSpec, + *, + predictor_id: str = "historical_frequency", + as_of: datetime = datetime(2020, 1, 1), + skipped_origins: int = 0, +) -> BacktestResult: + prediction = Prediction( + predictor_id=predictor_id, + task_id=spec.task.task_id, + issued_at=datetime(2026, 1, 1), + as_of=as_of, + forecast_date=datetime(as_of.year, as_of.month + 3, 1), + payload=BinaryForecast(probability=0.1), + ) + return BacktestResult( + spec=spec, + predictor_id=predictor_id, + predictions=[prediction], + scores=[0.01], + metric="brier", + mean_score=0.01, + ran_at=datetime(2026, 1, 1), + skipped_origins=skipped_origins, + ) + + +def test_cache_id_changes_with_backtest_spec() -> None: + assert run_agent_backtest.backtest_cache_id(_spec(stride=1)) != run_agent_backtest.backtest_cache_id( + _spec(stride=3) + ) + + +def test_incomplete_result_is_not_cached(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + spec = _spec() + incomplete = _result(spec, skipped_origins=1) + saved: list[BacktestResult] = [] + + monkeypatch.setattr(run_agent_backtest, "load_backtest_result", lambda *args, **kwargs: None) + monkeypatch.setattr(run_agent_backtest, "backtest", lambda **kwargs: incomplete) + monkeypatch.setattr( + run_agent_backtest, + "save_backtest_result", + lambda result, **kwargs: saved.append(result) or tmp_path / "unexpected.yaml", + ) + + result = run_agent_backtest.run_or_load_backtest( + HistoricalFrequencyPredictor(), + spec, + DataService(), + force_refresh=False, + store_dir=tmp_path, + ) + + assert result is incomplete + assert saved == [] + + +def test_comparison_rejects_different_scored_origins() -> None: + spec = _spec() + first = _result(spec, predictor_id="first", as_of=datetime(2020, 1, 1)) + second = _result(spec, predictor_id="second", as_of=datetime(2020, 2, 1)) + + with pytest.raises(ValueError, match="scored origins differ"): + run_agent_backtest.validate_comparable_results([first, second]) + + +def test_incompatible_cached_spec_is_recomputed(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None: + requested_spec = _spec(stride=1) + stale = _result(_spec(stride=3)) + fresh = _result(requested_spec) + saved: list[BacktestResult] = [] + + monkeypatch.setattr(run_agent_backtest, "load_backtest_result", lambda *args, **kwargs: stale) + monkeypatch.setattr(run_agent_backtest, "backtest", lambda **kwargs: fresh) + monkeypatch.setattr( + run_agent_backtest, + "save_backtest_result", + lambda result, **kwargs: saved.append(result) or tmp_path / "fresh.yaml", + ) + + result = run_agent_backtest.run_or_load_backtest( + HistoricalFrequencyPredictor(), + requested_spec, + DataService(), + force_refresh=False, + spec_id="deliberately-shared-id", + store_dir=tmp_path, + ) + + assert result is fresh + assert saved == [fresh] diff --git a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py index c6729d3e8..de87e2388 100644 --- a/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py +++ b/implementations/tests/manufacturing_stress_forecasting/test_agent_prompt.py @@ -85,3 +85,52 @@ def test_agent_config_limits_output_tokens() -> None: assert config.max_output_tokens == 384 assert config.temperature == 0.1 assert config.seed == 42 + + +def test_backtest_prompt_anonymizes_calendar_dates() -> None: + service = DataService() + metadata = lambda series_id: SeriesMetadata( # noqa: E731 + series_id=series_id, + description=series_id, + source="test", + units="test", + frequency="MS", + ) + service.register( + IPMAN_SERIES_ID, + StaticFrameAdapter(_frame([100, 101, 102, 103, 104, 105])), + metadata(IPMAN_SERIES_ID), + ) + service.register( + STRESS_SERIES_ID, + StaticFrameAdapter(_frame([0, 0, 1, 0, 0, 0])), + metadata(STRESS_SERIES_ID), + ) + for index, series_id in enumerate(FEATURE_SERIES_IDS): + service.register( + series_id, + StaticFrameAdapter(_frame([float(index)] * 6)), + metadata(series_id), + ) + + task = ForecastingTask( + task_id="manufacturing_stress_3m", + target_series_id=STRESS_SERIES_ID, + horizons=[3], + frequency="MS", + payload_type="binary", + description="Will manufacturing be stressed three months ahead?", + ) + prompt = ManufacturingStressPromptBuilder(anonymize_dates=True)( + task=task, + context=service.context(datetime(2020, 6, 1)), + ) + payload = json.loads(prompt) + + assert "as_of" not in payload + assert "forecast_date" not in payload + assert payload["timing"] == {"calendar_dates_anonymized": True} + assert payload["recent_ipman"][-1] == {"months_before_origin": 0, "value": 105.0} + assert "reference_month" not in payload["recent_ipman"][-1] + assert "released_at" not in payload["recent_ipman"][-1] + assert "2020-" not in prompt