From b9a055ce59ca22ae412ace09b28b689cd343bfb7 Mon Sep 17 00:00:00 2001 From: Brett Klein Date: Tue, 29 Oct 2024 16:36:07 -0400 Subject: [PATCH] Update --- framework-evalanche/README.md | 4 ++-- framework-evalanche/pages/data.py | 3 ++- framework-evalanche/src.zip | Bin 66944 -> 67976 bytes framework-evalanche/src/custom_metrics.py | 27 ++++++++++++---------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/framework-evalanche/README.md b/framework-evalanche/README.md index 6f79617..88454bf 100644 --- a/framework-evalanche/README.md +++ b/framework-evalanche/README.md @@ -86,8 +86,8 @@ To run a reference dataset through your desired LLM pipelines on the data page, will be passed to the stored procedure as: ```python { - "QUESTION": "What is the capital of France?", - "QUESTION_TYPE": "Geography" + "TASK": "Tell a joke", + "PERSONA": "Pirate" } ``` A appropriately crafted stored procedure could look like the below. diff --git a/framework-evalanche/pages/data.py b/framework-evalanche/pages/data.py index be5d25e..9ac94f0 100644 --- a/framework-evalanche/pages/data.py +++ b/framework-evalanche/pages/data.py @@ -147,7 +147,8 @@ def preview_merge_data() -> None: st.error(f"Error: {e}") if data is not None: st.write(f"Limited to {limit} rows.") - st.dataframe(data, hide_index=True, use_container_width=True) + st.dataframe(data, hide_index=True, use_container_width=False) + def data_spec(key_name: str, instructions: str, height=200, join_key=True) -> None: diff --git a/framework-evalanche/src.zip b/framework-evalanche/src.zip index c7680a93dbf0541547b93ee5da735a7713044908..b7ecad09999fe9a58827d33c6f35f4dff25fe0fb 100644 GIT binary patch delta 22780 zcmaIdV{j%>-#_@+m?RV1wrz7_+qRP{wylY6+qP}{iaD7iJNNzkpWWJhvEBXa7w22u z)zw{fx=(#h2Sh_eBtsx7$$~?`f&6E&Q`AdD#Ku;5BeM8UJ%j!P`A_&01m@rRpHPq# zTIqkn1}j!r@PAFod9YOf+txG-JB9_`@1~cWK|+r0#Y=4A`LF)pXZcUMN+JO8_?P^r z{*wZAbZqg~ymGg8)0>u)NW^6dB?{@H+g3sg$(LHKql)P^P~EgDX2`pLK=6{ zKQdio_a7$hlI%u{xqe6CRX#F4w%@3VaE>LRGER1K(Ngt%dNo#6Ob}X*l<+6U9zV|WCwXgRaMhy1_65RQ`LQh z%KDJejdsrAwblc(u;$IV{pyqn&tj+e7piG11Z)p8j{yJ!p6J*}gcoT!5%jpO%90cj zUMOm3JK(P>U75&~6Nx6{%$5@|mdb>IdA<2ojv5PTh^dsCNS|cw9cOL?WmmJ5_C=~Y zFthV5gK7ePvL?R-7^0APK(X7>w;eI`bvuf9gv;jMwvP%+CrqE zK}mxQiMztF(Y1$mehD%eSNdaet+=k)MI>@WWWITyt4eO^JuUTKi6)C~U5z|b`N$}a z`Wx?VZs@!05y5$oOoxHTBxlN2nd)p#vv!u%y6N3J(W3IN`MO6z+iNVrQT6l;lORa1 z_iw;Q#T`R4VDB8f-b%L5PdRcb08Lt@FrckrSX|RgEsETfyz&e*1kAqC-|sSH)rPL) zt9{Wuqe;rQuto!C-o^6DROD93!7ph#ssenoRs$|cJ4$W~Qp#&n*2QX9X@FBkLBc8? z_L*M@03qSu&_DEd=;qK+v?C^*YF*k*-VQ*_G(8>=Fbixz2f6%G$gBGKa@Qz;?4uZg9nMU*OE}Oyl0WGw-7`asm23 z9O`T)Zg;*twpe_Sg*yelhR$D$WPO_GcRJE;DrGsF@M8$hYEmB2qq*h*$V^8~8jfgJ-G14)={0EokY1m;=L&ZlcIpTLgszF}R%tsGGr z2KqZi3jhfRx>^!k&Kh)}nq25|(*T+z6k{0rpd;~K0X5FU=z*&|jX%caFo1d;)Ah4$M|%2LT_GBdv+OXDLAWQdyw>f#Ch-#{`4%nXIJ7l}{Uj6|+oqGWTld(uwbXa#Pt^wo z6lR{LKeNiKT$S z?xI1WMR)vyFX>LGL1K8R%Y7A@^>2kwnwj&vhEXSjWM?;9y z%;+)Mk1(IVCILY=>eG$sf|1(<6MQ^ z$tk}CYNUVtfKWE>R;3n7cp{K8-t<(RliW^Gu!9t|y$fgw!s$nUG8Cq^fDRN_jRZ#< zR8A^jCH5N_OEvXeJTJt3(C_C7p9tDRaW|``W^6XEzAy>*@dvCf*$}6!9-c@Vz}L}@w_;1Q8XQ@0Z@;5eTbbcq?9-@A zB#~~avax*zkkhOb+7!Dl&@(P7NIWk#uPc6(@}#Eimgh+sDFrAk#>mT3?|#$_Mniu8-IdrgS4e4%90|18PwZP1px01!ohcCp!h(Cc=R4wKuptqpO^{} zQwar35;CoYI=EubhXz^)mK8-hQdI(xQ*0z0#kpO>g?8+ox+0PXoNeTyhU$nB-85%I2Hp>Y75rlX(ctGgu{v<>+DlG$KWJnlGx` zBbbG~wE=2*mw(psMqq4~T!o#umBxqbxXGx^N~XY@ec?&1wQp@*#EqWFu5}!E3oQ&< zhuCiIzPNjIqOdBa^}BKjq{>(;ZPf_GKGM#&yo{fyn?8*5^^H{qqb~s^v*q?${sgF+ z&i|@@4HDQ;s7t7;=z4f2LADTwicCJp;cl%xrvaS!GO*|lt=zYvYPsvg?WjLttGOAY z-JGn1ZU6Q015GL&d|1x2P|NeWtjV@di~Oi+OWvSRsmVl_gU@VY*eg`3Q6J$KP6A0b zq{RkFT5acKQ(|F`b;e2lf4!yPE?^ddXV@lNkmDilpTHU3~-B-DB_}^P~tzO zq0gfY)vPdT1~ix{&`+S@^nmCrFhaR5GXOV+HhZ7Zz>8Lc$v1A)#RcMXMQsO(X29h zqgmw-gK#J#u!snIB*{I>Ur|}F6aQV&@Kg~ew9DDB$Sr{>IJ+5B#C)s6dOOK$-G_&l zrMos&2GTf_kc#wT~Q2i#N;0rhqs3-I3?BsZKVF_Qk7xN{%c0;Sw-!mCKvDVQ_ zbk9@&>xKl0;tfNou7#|5TJfdCCgW?j=t-mSBrngW1=;Vm9# zc(L$4ELWRWliWNkaXoF|iaRe++_z!k#7$1n^4zzxik|l2AFNR0gwEV&ouPqpD!lSq z7Ls9PhE}}pHJUOd<|XP<82YAt%Y%8n-_9A<1m0K?)vd1{M$mn8HHE45GE|wDplCiP z!b&WTLFVf;j*!N-B8jNW_yAO;g=#z+E?3`u*fbp_wY$sf;FN7}M$SM?dQrD?#r^N4 zD+J;6WG63IBG>s87xy41l`wTod2R=yBj9KI)r58aM>c)O4z&Gv<`s1cWwv7PsIAI zfda!C3*pxn12TRv7<84IE5u8OI|i)QL|G_QqLNUN#$s+{7w{Z+sa6uGdj33@)=>+L znLa;@ULh*63KAU_0dWvvoi5bQ-KTLYT&AD&NM32oHj?m)bk_hb#Ebn00ipx}tg^A{ zH(dqan>5esQcpVC-0?`tnq=)OYk;GMVQplcT)=-{_L__P>2#`00c=_>Wjf0K=|hT~Ok&TXCsSRWGi3 zHne&?L9c3nOD3;u+7+YNxCOnEwU~y*fM~dc-xkAAoy;Ai z^ACPPn%+d>X*tfj)5?I@h<9cf3us~N6Tz=)~hcv8iYN)2eiX2ZkuT!TZ z<}^H^#@r+BcGS3UgZmj^?eKSKLZuvqGP3LJJ50a9H81zS4z5D-Zk9g*+`c5AF1`wf ziTSBC2_8wqRinJ-TDk{j<9jm2&+3H{D0?*>rN`X>xJp}hQMsOo@^Lxb{dixr6%()T zcHqpp`5rh&#Wp3DGP_B9W9XylotnEtPMZ|EkB#~yPN4j;L8p4sEt)zGPgz)@xjpE> z>t-%%fRfaqlbUcN=zhGsKs@Lg8T4)`(iuzddA<*0p%;294@j|=>WKz2Q9y8?+h<{P z1)8k_j=Sk4;wG3aSTFLHV#Hxvn7!o!N2JU4bj5*>f(@J5awRyOuGSY%L-i}&j~63u z*k?-#X-JDl57gceKARTM|LWVrXNHqPKVCQLr(MiUbX{rZL1Y>Mbkg(n?7$;z*DZUl z6RxKtf0$+`VmWpf$=fHbU5xTnS!QEmmotE|>V87YxE&!>8Y3yr*r zrb)1+2i|)1<3)Lwu1)0jWhD!El;h7i=7w}+Zn5sME@*6IZk~U z)#%AoqtV(m1!@EYS}^WMOH$)S$(q3Rs-!P?=Yc)qKNS9IzPi}*S4RAxw-6n8EN-lT{QU2lBy2$PgB)W)uV+5$i;MpHd`t;41KP+;P4qyro9#j2TOJVq17J0oXs*#(=B%OST;#EcrQUSy=4S zo8w(s{$Wl}b~ne%c%Ycm+6ew=aF|KW>~6YfZDPK%o#f7bC=|S{ngTf^y#TZVNROxc zG^?GKHwBFXe8Ws{=Fj{ks(T)scQ-t@E?V8QUEF`#xi28ajA}^oYze6>gmxgHavo`^ zJf$$4Az_G@TCqAZDRNR2WY-r3Lu%-D2*ti#694|5Rt7!_j&B3guHHx}l`gK+d7c_BH^P42^ta%!u z+w92j}P`rt?gb1K8`RnRD!4jh3rc#|zbi#ZeX43;!@Ke{=R|gZi(O5^p7JRFJ z&5`~0qg^I%N?k?YpB7#Dscqr;K_;SMzpmA9b@@^=i_^#<&KHmY)eqm+mv>#@<72DW z)|k@Gj8C?M&l-KTjxWiT-JI9f<5!q(O>;fF3av0rr>)I)9uq)FK$OLS)*H6!V_$W2 zDPH=#tn;Kv4m~u(v4gr4kCJPuv){Rz;E&qGhg3JC&Z&hCwwfVx8m4MOanJT_j)U0q zLxJ~sIb)`(v5ItTB?iqUnfD!+{nc6USQw0$%Dp9t*d8cVgA^v>i6U`;6L~pD;QdC$ z55Fm)&mJg?!CXMYy(bmw3Qz3#P=S~(u>;vGB?-%}I_yYcVsUY~wa5zRlVM{D zk`?|)t!guTu6TYNN`8=1^U7>b06=`eyb4@ru*+xruy{EU{B zbXZunT*cj&WerBE2gkUAp%%w%ht)a@|NWbTbY1?xbL#{Ixl=x_j&H{YUke4jMZp7u zSx0`9A8~-V7s%l7JX{_gE;c;6^>_kYEIw4aH{wUl?}Ofhfxrb5=v>09mkBt5=}Esvo<4G_TZ$f|1@#hX@oe#r;Hz$P8H zLzcT0{=ynLWxBS|-%qvuqC5BBZ$U z!7Yb;PgUaI}w@*~^Dl>Wh@!4*Zxw&F@sDIq%gV!`+;AY$lZuvJ>{Clq5 z@N`1;%r5uGJ3G=)QD=dkbx8komi1D*>BSF_na2zqh(a#JTV1?$)*ygamL#?OG5)9D zmW05`IvJZ*nD4mrgpE@J4u13^-)I21JQajhcexLna+NE7`iD=He-pugG;QMdpHY&z z>I#F}kN(t+73d3}I=UCe`&+!pTHs_2aIzZMS>U()ITbCwyBG&|`&oK`7XAe$5F7xA zmXZ9r&e^Ezy8soH$SpORzSUz<@~PPp+h&?9oMM4lGO6BEZ63Hs>wb$deM~zw?H09D zNWPCEK)IZNJ1hqhBMPRf_9>s_n$pEP+VBwY}z#Sm}@ zDn7@Tlx=ouuh}O)uK)D{EN$uSU1$SbEk5zN0b}%lS9yTP>R$5W>ol)YD6a>(-xTG} zleE?z#{8-MJ3-%t58su|)cfXXD2c^ykw??oEr>8n`f^JlfhBm|o36a*7!P_Gc|hh5 zWWD!z|1j`(Dp@D(?@ouuz?SK7n;mGLH)PHR=+=8e8M<7DCeW7dZYDX+8v#H8b+kFC z^z;Ky#kA-ay&zYwpndI>o6fX@5zo-<0bDA7LC?Uq0nK$t8>jl z%~qB!Lo|c^@&pmL0f zwKq(MwIuD(yP`b4EOe9nPDkmDEihLXn2R7Cz*s((-br+fMwZ8%)(t?1HGcYP@f`IE z2wkv#t2oWO1#ZoJ8@J8Bh8$rkHVRc0VeBpWaxbgPSb5Rt;Tq zO4nqz3FlADaI&2dx9r(ncWuw7IUt-7K~2SLLUi5d9v{o>d2MP}&4yV;L z)>>-78LX6M{H>OQvkCN3(~W2&*UqF31e{39p=JY03=~J+{pxYhVm}flVj#t=%*yJ7ezn8$r0LD-64C zA}GrlO;jAuSx((~otvn7LR-?=kC` zUer(g5`Z;Dtlcv)(3L71IZ0_H2-z3c$_8SjS+ zeOENXu^MWmg<`{rbw2jsvvUSPl~P?eI>sy}HWyt>k|_B`zhf`=cS&rWLuYfvIQPbE z=%3KL779Fdi%j1^)@_^~k%j@pmOu9$JebgFmw;VvIR#o+zWdrLBio*;BsS0W-x|T5 z-@j8$hy0@MT6c;c$#e12LQnSRbXRV_$Z7Kot$=8BHU2^LYk~vn1v6Y~I+)EicIYbN z(!uG#QSP82WqfWr=!t{i1Kb)xKxB@3QkuH^9LY95(v(hm3-X_I#xFV{2HFV}cW_=1 zQh;#hkJ2&nOaeiv-ShAAo6&;2K8d=j`A-s^J`l%%ArgMoB)b@gjF|{wDe*0HjAm1! z_svd{cue=vo7_Erw>hxByOxo=mZdjx5k1M-oy;aTbo`P_3g?KHru-DF;akIlUZ{%K z#%#>ck$vT>!?j%$Cl(IIWbTb_5@Np7J_1lBS!fu`e3PdxJP;6SX^{Uy>;EWhfV*Du zrz!#VJ|D5gf9ih$_5VrP)JXn+QU^5#%Kz`N|3kR{@Kx)-(EEROY{^Dj1mH%Fj>)}W zSg;5n{|9B02O?dPO-FttACXWs{So~0Gnq*RBY8-z>%X=es4finkL&)g?E-yuY;iTR zPN~(=Z+|j&uBX|R&`qRaZ8@V-Dj1JlP&N8S({+e%T(~C{P^(Lu%OzgY(8R4Q3oYHn zP>XK;YE6y|xB$r#r??^-wXfHlX2bYM81u&tcyRnthyf3y$u=MDM@l_02tE zj4nQ657^>gmn}auD4YHK`)ttbQt)L*bxe7O{Ta;m`AjYHh1=lQn*Cb$oke*}N`jU- zm4tosZ|Kr_oOQr>k2l)UI7p6is13ey3iHp2a3{a-q`bHGH_49TdP1)Bu`Y;o2@&I?R zWc{etXOdAee^;IG9;G9%b#+~&X|o7f$w%%WwH(-ip3C2Afu|O|?JnBAd`cpt1nWDA z^1yAeGP1DSO#7>&NE%t&bS*_=7pi2-su!5x0PV|r(1q3;TNEL@Jrq}5BJG{s4ga<( z4A>gwXvpg#^yp$5&De$n+7(_p$!R2BgG-b{bgfL>}GN@Kb{`WJQ(i38yQH14@R>X zm4HSK#tc^^yF!V4w;(KD-w%ys_MzTk6~$e7!h$FJ$4*liNh}D$9&^WLzy^JJYsfFk%}A5ELGuygWNm$JX&-Sw{ zWrFW&{^%UGrfyd^2hm6AH()i6{(c1G;e$3I;QJb64$=-H&+ywp@UeTS2B^;-lB}CsmG-(AZyE5H* zD_>VC4NO;D2on*IPDXULQD0kA5yOUh>{4l+=5zX?T8FnDS9n*}Vb7bZyk-$zWp6ZU zPl~d`7*_wh&;Yk2O>ul$T>^Db^VKw(I-@vRmql;8(mcq=EdUUBtpSaMm~LzRDm(zS z4y3Q7$;eHxcUS!xgQa>cX>DEIzqO9%L8axJ1#K-Inb_j|t|WQ6*}t42f%DBtDnkC{ zP?RmM5)&nKA@roW3QmB~h;1`}ps@5(1Yb zErd?#ow#}3>^46!R~RCc$jOMw#^v3RIb=KD;T%4kFGI ze7AUP$wb^=v5XpzA`PHdlWZ^rrEwU>G;y@*zb_bHKF2;&KN)dJ_;!cd9V}^Xch{`m zq!s_VkNy6gdUF;7BJqQ)yGXhPbF2$qN;iK<9UMvBvV0_+p2E{cG<)yWkd7L9!FwMj?z_38^LUN?4#_XeCsqu%gI~t*&*w+3)SJay@n0fmMN1dL(rhY zVI9XfCP3ckB^HWdK#kk+A;GgA8B-6g)96GmAqB+wJTr-^SqsGKQ*zdH4J=!*CR$3dLn;Mw@XG%!&p#;*wQ&d#aQ`jS)F;2o|G$D!C zl0kOo0!{W_GOrm(QLR-6EJJ1&4`!Fo`UNqopKdpm=Wg{3z&<6T{6#<->EUeS{6sBc z0ibXDnq|AV=)39#^R~6Geb>Kw(SMrAt}rht$$>OY^TOc5fcHu5wV`WgY_%(1qca}x z{^(5CKp?AX9C>?I73`k;yT`zdpnc2Bu*W5Tk=yWT{#6dGkJ!8&J-Fs8sqC0Jmuz6Q z4vgOeoZqHw6&#u-5Zvql#7}Lej7E^S9Wbq2&mBdQ@mW|kjv1<0Fnp$70f|CE=N_)i z7^s4~hX18fe(%zY0goglwNp9pHL$T^3#BAD%#elDYVkhuQFEZIDZF|C#Xa53=W{fG56i4uffG1z3QyhCtb)#={y&006J_ zzTC&@H4Q`KHS<<6cX4|fVDx*r5=te1Z_UR2nMw^%UnLnpm*k-6OxEf0{O)|4xYyq2 z`n}pjz-(t2i+38zg^;FTu&6uebJ|hsNrcd7T zk5#(0&AjGTykvbsbvgFkH63M*wTe?hqqks=o9zOrq}?~F4IR_UOPMJ*EERWV;u%_z zmk;6PB=PS#nt*s~l%&BF0Ihh3u*T-EF55}VnkD4^Y8Tn^SPsUUB^@Jw{(Rwu3fs%d z!P521c$it!6;*rfh4<4>wFt99`vxXV)VsY4^@an6^5vKEVU^-Ft(W@SiQ!0B)%A|rvl!wb%IAvGmXE`>w@Hf&|FRD3 zbDA!>#tO6wB}y{S-Mt6>R@J~V|1LTd0@5%ML*CvUDnO^gP_$necB zv!*rVFI$Gx895_D7xv%V%f2;Pf2cTc`e+5D;$yt`QW}_wvsX z?{DGKMF-Zr@0AT)YH-Ji_{i&A%2M`qs10M;X zn!!X!q83|F0|8lwu86&5|?`6SxQph ze6Sa??=}A6g#9A?;&+{OS{ix%&6$Ij0G@E^VLktQzwC}fu#G7jkEVI~gZqRglBw@C zZCfR18{kZOPS^E=LF~$_U?kt=8`%>R42V!BVvKk+FpZO+6h*T^_5Aa_z)n0OsnUyl z>0`BwTC_qdgduAPZ9$I%P2$)^CG&!NC1-1miRc+$IjF^Jx57#=zw;i)oIs9jG;9_@ z0U=K+uE*Qm(~<;K-mGbSMPyPpqdb!yfwOmb6wum5kGtfjnq^%Na3j6281h%G(qV;I zKF#9Zh;CDMUPTC4RRE5hUYq-hnzPZgbQ>z$kv60jXXZfCvznr}I?XfeFRJGar~btY zIMUtKWnMH_u~GufX`H5Ex(LT~g$&_}t$gNRLD0%vhX{v_uX%l+Xd75HdHq$m+)<4$ z2@w404-l*V3qbw52j|S|t*k**Q7ZI92Qb0m`iTu42d4&N+XiU2|7B9$uciqqWNZiWc_xFtz{EoA4ENB** z-K84Zq7Jk6*hOgU@&*M z2MiAb3n?=%b)em(7daT#_AS`vo#M9&mc^_Ku`Ra(?qj%BDi;pB6%le#Ri9m`K51ngB z<9-AnnbDTtN5rk;#z)NOCX8F!Ze=TQxXMk^Z7bJW(xT-m0p+3j?Z3SXbqC0jq%k?+ z7RUWXSG5MeQgT>eMF$?bk$evz;B$AE48E6Cz9%9WUo0p)F@~DUHtO~e1%o*Z;&pk2 zkQBS^?KvsgY8|8I7cz4bc>Ax+$!=NVQi84PNY&#op4jfVA1?0h?~NTZ%Ha9Dt)@*` zp-+IpMZtq=J4|c}yYQ(&)|V<8p_rr1^%t=YAdIff$NJ|>^mVUiEe;SsbL-{K|L6K} z!}@Hu<^2Jvys!voyYG-5`gN$qJ7i}qY{So~{i1lD{6z&Uc~HpqwIA)I|I1p@ z;9_}l{y~bI>eEQ{iBZ2itW~WI7__l1(O!dhZJa*PRp>tij2n=fC!vQRBUx0pyVBbm3L68SpoZ7SmY@Q+z!Q9Y@FDwvWX5OKdz%YxM)@LVow$KJW=3rt z0ahca8Waf1SoNOUq8--m!VMYABa6d?X$rb(yTo)r(Hb zaef8tG(&YB(^!<2{zQ-Y$U`bxQ}?W^$P^KtScvQv8-ahFs$LWX@%}EV(_444Kgt?; zCEW=#i~mS*NH7LisAbcQgRhMj4{B{8ueVUU*Dxad$}d*Y3{2yARjMg|dq3;zvz6qv*QNta`|Q;3EQ}IL@n3)TLh=V%4{SWL=hHI`?4H#Vj!1_ckG9b_axK}@1 zV~N#Rs?z|1Diny{LNPb> zo)8N(+xD-ETfs>_{Bbh9Kzp&;Yvb{iR|ScV(H~WQeM6gD2E?cS;Z;t3MTT2->)nq= zBr*Wxoo~y|rUt9;V23oDrLS-)j|F7W2I9`_f(<;9IPt8ZC8x#tH>T;5;%JL7gLEjg zmrt?FJ=7smrV)`meI@ftp_^YyAxmDy`ln>_bKGUrEy)VzN2fuWqKdda=In+&`)kTk8So&u2aj~*TLuZmu;nRTCzUX>Ym$BpaWzO3x6JKemN0Q*#JXqT{ zh#mYLmS2)E{K7b`s?Rt{F2j7nG+HtnEWsa{s+bMoG&dBz;gu1&(9QKKFkV$%FF1VL zh+xMaC>OWx)sin7Bp-+k7*_3(bt`w8@lqJ!h=M4=$nAlshO&IwCA(X?mlbr6$aH`Y z082&Q_osQHh3G)A_xPeD=23Ve3vWs*)(6pDs(VjGj=LRkStM)(59Lg_<)3vbwC(rc zCuS!cWQ@4nOfFWgBs@YNeozuVW`85kWYw-r)%eOsj)f9soox|UlhZ`4Qz^@_6~XWj z#p^@bpf~psM18Reh(?r4rs2(@HhlonvaD1jf1%+)M4o6BJ~~Ok)XaQRKmWrhFaud9 z!^05<08!DUwFauAEEMvN-Kr~wjdmgB#%Us?Yig|3>}*UC#WX|cqdB-CjB6S^am)sp z&)!(1~(HtD1m>yboy%tvAciqk5oA~O!x7qXX=w_fevi6vIJJHok=|I@) z*Y10s`urK3`WbBSb$s*Xas}vJh;nefR|^m>In&71df!-_nqo{3#iyujPg72%^}6%w ztV>v|Wl^!gWUx{Bb30L#q1|~wd&tpp{lx|1f{$D?_QBk@&k!a4nsNod+`DEmI zem>omr@UDi8^7r?vdT;>1xJ!uy94%o+ZpwTq(p;BNuO+CZP=K&SeW_jTMq&`&@lTU znahsMHb2v)z9tu4IsxcE*!&Rr9SWiEb2ek%hjo+Fm*=dR;eRxAQTj?>(nowrE`I{X zT>G|mM(feHjdmAKcOu+zjDeu1JRE1o72>%1i>!uk)sli%8}<;@l4Q}O5+Tj}U9Cmi z-Wht)q$`?h+Vyz+5oNtE%F3u!yLUc;I)SMNZVnbBTkolDAAs66pPen8`8Xv?tjIodI^+Cd&LK|HWy8B=Lm2j^`v#u@Y|6upR2`$tKJ>)Upqfr<4Qkyexen8N z3CDpvVtCLEM01kHAH$C%BZfnB1mGh?gPSLo1Lk=DzIV8Ywq~h$0ci)ibK%=@-FL^I zxkXi04h&oMZoZ@q7l=i-}Y#))hV-=RVlW^nyW8+}0l#0x%PZ)l) ztei|DXWTfLDRA~9_!ghDO=|(RV1^N*6$Wbx+c6byU6ev-mPre%Svr4Jg{^(Svy`dk zdxCYB#J>oU1O=y=v8yJ+`OsYQ^#ias%sZ|aM$`O^?*J=_=5A|ii};ynb?h@XJih;frW!avJm4Ql8 zn8@cO0Kn;ob!lz^*=oJIfkK_xHoUyeI@^~ucejn24zfpGPXmE}<+Wc_jYagOVuLj( zF!;uNR0eat{+y&m{PJVH2q5q10^3wcNc4_gK&kBMndf>D%|J9St$kFcE#jsx3{qkxxQw-^WpF1hV%Er9$v*$Unc{CT1Y`7 z6X4090K=gj52(ef6?wx*_;(?FcXELB)ieG4D-2{H)&I54zwu}uXmf%&`}Gn!36FNQ z#i-h9Km`v(?%}`VHNtGxeh#Z#AB$>3zMa$P=4W%4T-gG9(q9h$eP=`&;0v$v>Yha~ zvMouoYv0`ma^9gn)f0d#+ui_?1Ow~70+=lu)+;Ky-|56{MySq-f-5}qPKXkM`@TTU z&0ErIY9!e5#gGxdF7vQgz+&RZ-WgsH^-Q5-=e5ZtEt(n1ALxX;pv*S1|=44Iwz(^8386_X}?nWp~R&hTpwj48=*%|QJ-4L~B1 zuqn!9pW)!R4Rt~5;AfYx>I|$*`f7ZvObTp#+$5Sy&DK*}RCCwIt+ALQQ;z+ukAQn4 z9LKAPD6a8B-)D9AR^Q+kPizcgihro1u}Hg>E{TX7`_M?`^?ZlZ_h%5g!@0Q)b=&66 zl0DvOv!Qz;C)M*KcwQd=SLjvU}hB71?tdEL-D}eKa zW=SFxEWC(XgaETJhJk9wI>?6Az)C7pWIWTcAcMA*?@*GPq<-0VZy~`OOOkyq{Y5f{ zUx+`_FOfg;gBb)rG>o4O2Eeyx^=3J5aHSU@0L82l0i|=@1HV)*^|&i;WsJbRCKGIm zrl!Z7{P~}4^hfGoHS1)*7bOncn3f*XhLf*Gof`p#lKaO2j}>>jLw|-? zyC`?t+?`6hEx&s;Y?yCImaavS^0(m4}c_C zICahm2*}Mlc@|;NdssOZ;Xs6fiOvK$7Gh=tCD$a_2w+XK0!xGCAN5Tu<8VFm)&;5u zzZ9J1?|(o3Lc=f$$4LV4K|oYg|A(OeZzxW-j}%Rw`-1+*!v9Bm|I5NQ|Ii~&owljS zm5T4b96Vdk2mQZpjM5-LS8yqD!q1I@A~lm-{xmrRS0`?*c4D&fBD$q`WnEG$@ws1V zUE*8b43qmLmh96&0H|th1qsZn*o%rh=n47D>+~09FPN50m zrit1|@Ze9ta&`g*Lo;{^yp^<~i#(~PF%*=@D%909x3D5|W;>MBUHs8oVb!AT# zJNg?pG5Prbk`lIElCZRzu%y2RCaH6t#5obHgkxX6w~&Bl zwJG9Jl@7v}|Ji)S=!mhP{2L4xf3m1Y2ICq+Ouy+y&b! zhV`vzqTSwe7a&i`Y9-3mkuOS9GKv+v0b8gsQ)-gbnh`hF9IxEqY3@&4axRm@>Clq!zS8H6uhI2e>NmI{WU4p# zL1dZ%dp_%=PF&~1L}XZo9GEa0N!r$|F)lYqipl!1OR>K>}nRIaDAVumQsz{8+Q zI-y=ViZjf{PLix4npvtQY&Dd4LP3<@+QhWgo1yqKveqI?nwycw)qPVg{DuO2Eq&7p?oH%GH>Ew%4XmZ8H zeE=R-6#G)9EGmX)OdOU64H+mABd4s+9HCnUn%70uDV1rCOnGX} zge}mJ+9f;@#_&=8Rovdr?3S=OO`GVO;HwUyh~6A^Es`_@QUyBR&@=+us8YpUhhsG$ z7neG#wS-!|p6uGN#z;=l^21wtMp}wGp@4w)sezjl#dmm3y(O$xUr^v0Zc*&)sq}H=Io?q?jdl|qT<79Q42PPOH0)s225)aH-LKj zHjS=>W}Xj8b5r#*{EvN6v-s=Jq%L3=?7P8+SmBIoN>|CJi+ z((rNhTj9U?T4w0%u-KJ_7AtJ*R*2P;If0SKUXZ1w8IXVwc6L|#g??)BsnY&0^8c%k zuMUf1|Ndu}PLYNs1Vo7iq#Nl)mRLHJ?rx=*P5}{N5d>i=Dd{e0L0|!;5dj63hO2aa z!F%;{z0dFYJu~yiyyw)s=gfJ}bI!a@TBPl#QWhJXJz|c0j?s4#<0>|bM4QnI@bu&u z!NDJdo+D`yZgMM9+*6E|=kcSPF?v+;J`^r7&M&YJkdJybGkD zD}-`6zkT}P#Ve7pZNsQ--q5wDN~>P4&? zMykRfVYaHp%oq)Xcg(JwnBS;!)FzRCTMLdCLI;^bhbq&IkG&+k7l-2D!^`AQ`y7_} z>45}3%TP;RBL2!kQ}ak^J)F8nx)eMZ3W}sDwFeeOdQ`6O6^RV*i$mI|VoW+JFFA^o zkg&d#^PUA|u^$ej=k;}BMsxJ7`Co?N=N;=S_0WtjJgO;CcVgwq>%Ywwl_!>ywCd9N zmACfCJIYj?8UvdgHo{ckZUffAFgBSFSYzw)q`wtzh zDzMGcyQHtYD{;!w@XwU5{nlTk0-39Cy0^Z2PLYI~lIt$~njk_EOF=)*Ue7%C2g z3*#^DSjNdtNR^b?UBH_~tL_U!>cX5DxDU1-4)fT$Znd6=$=Pv_c{(3`Uj&`ko1FUv z2ziuJi0SQKKqjZkoa_7ANzR8h9VTP6CSyWjBuc4YnhzFNncf~a@$NhE;_Q__#jKkc zZ*NIVn4!r<;%c(q(gUvFbBSZGL((u)(fVv%>>8$noONv}_2F7Y22K&0PjV(i^P&bf zW^M4#CRM`4IWlN4$dov93|9x?4oeryH|9Yi%Z)V+z*H^aJ)DOtqZ8B zF!<|+j^r~`<)n2woJ296kB!8m~pY|q-%DDS&qD?={5w+FP!PEI<# zp8LdT-1VXFf5QnEtrWx>!0pgcNk<$gJke<3msdOB_)4-b^ok6=`i{6e)@O^Ldk_qZ z5Gqt?$;Wz>eF#i5-k*PWL8q$A7lw!I$$t^rx0N+TO}t5-Y%fMzKRc1_{sx~!G+8~5 zN|7UnvqpK$zA>;k&t^?_2mDxKhVKT|a-LG6(&Ol2i3JrnBT>7HEL4|ug#2M`#Zt$c z47JVb@$rX6IB$ZdiNebaS=rev^#Un(YI=RVJJTza3N5EH8*WC5($6e{zLs_Nq%x&OC5kN|oxi&6-HEM-ZQ_iEf)k$ORG~%WBL*?>cfD_$f!+)P z@ppyD3>FLEpDgqI{4qsBD5gw$ofEsNCv}jT6K#Eum8@+M<4At>EPqI}1ZO$1GnebM zCgc2ZH_L|qQ(s$-WQyJ~qwrc@dYPCxw_(@QLi_OjHE9SjuF7(&uc@)ItPL-@ltD?N zz~^{-$cAL^b0(<{Vpr|JGZER1a;Kro@b_(|ZqN{T%W7n~{ke?Eo3KtZ={E`Jn~=-} zVtBQsb#EZgp-FnBliv5Rz-9rIRH>*6lY>szfMEdpptQ3!2d-Tv$k zmo0{>TnvXY!6&=7xY20bCqY$oVp_5E_Udp*&65kKQ|^_CIJo%52lpw%c-2&vWNg<) z&%VC~Yr9utHmYA+zqN_Ylo)IeEuS0p9lC71JozqSVz@=a>;05k(lM8pqU$uMfP1I8 z?(+Nj)eaAOd)$X1ay6%sls-1QV}_s47vn(l^B|^iUikLp5%mMIeTw{o~cDnVxJ=RWB2)#?D@^;M>V5V6J5#e zJ(%!B0}ax7`90}ady0m-oD1pL8?g62z1}|A{c|z^;>a>V;!97I+1)GPLM_cTT6YQA0{|U%=Qzu!9Dr!_Uy#bp2J)r z3(HSS1<0iH!#9m!@wQ`49-8nm&GG!6Zm`arkKmBAR7=IPP$Plt!A7qYIh79Fq&F@3 zJn^*?WZ|fRJojSegU8Lik6GQ}^^@M=44#)UrR1K9PaCQ220w@JJ=tBb?3)80lUQ!k zh~%$#`_;r&J{fF8!#?IOBjwwh>m5dqO!uN~K9Gd5e&Lk}U>eE5`jP3PZN!`QHI5cU zykePCK=s+dS4I~$h*W;I&yii<*m;!jT+f(#*Tu|uVOhepT!|!wB`PZt?i~^Zh;xX6 zcZah0hQ8w$w<##!{6bSfl=S4~;Y)(agcpEN;c$+h``YN&OSh99jZd6!c?VtILA^R+ zg)DcNXU98Y+p$YwSnjd}yr;#_$g;iH7sC!IYPZ5S%; zjz)s^^Fe164o#0l3LNBC%q6}*bZ*;a`NF~6+gj%NYOz7628f@qU(^^RdX_pwMMtJK z=Noz#gXir5TANavyEwT38b_BEv0lv_%ZIgW5kP_fdm>8&Y$(n{k$FQ;U={gYu0nqe zxRor<<25-sdsnFOU54Q@-W}qwq32j(kE5uzEwj{i$J?eifM=MTDf0&9QB!;-{!yji zWaB=Q%TRP93CCtF<)vh@RqB+tZ-n=E0x6An{o<=XwCD64J}+6lST%YKCDxa7QzuSr zR~YE1z~^Gfc-xLIB}3cO%%@bj8uonvB}yCdq52)W6GQH98Ep>(6d}od9FFo|H`VeX zlHM!py4zL|zykl)NEN{Ht<^hV33a-0)O|U)+uxRIQ^Q#7WX%ZB1(I0Kvu9&Plf&qJ z#%4eUCkNT1U#H~JB$BUm^jIaJNtq~M{#iHKWjr=qJzY~pLQdH~MXNNkK<1>hp%^r45-E=r=q_uMx!;>+sMRep>OrZ ztiEZ0E{99>+JrNpDd(AoXcxt-!hM^@D#`W5BNKHc>3KZegxRr3DS&tc?0y-%o}zl9 z>Ak7}Ecy__K%aIV0n;kzTvN-tM&HF7F>%yBeV@&o?ZfUCkbA?r3QjJHIy!gEZZNRK zJA%3-azxzB!*WM%IT6vN^X#3y$0rWR!n9jh&xUtY&vz=FLyNg9bEZ#Y6BCF##iwow z_Ta#?TtkS1Fo^39LISc$KtL3c@YBiJQNJ3ubxk{F1J?nNV&pCNGJDaqoDL3yfwqJ@ zmyU93(lsH9@#iH;2xt=GHMYS~HyP@y(2^%o$pDX)FubI~>?+2vhO9rwDUi5pw{9|k z2fqbwh=`tANHqJAs8h)-R|#l;7&Btas~cRwRmM9=*cazljDg&UZZvqEqNO3F;5F&x z9o*e61h$w;d8C@Nv;~9OX1U_ulkfV1W44P#`)}QQyR=yI!swIN=-HUThfK*#HTdmY z7c$YsLBIs_emb}B%Xo_UOl`Vh9>(%V-q!mMaRY)xdTE)}Vm=;Xq3e&@8mxk%c1r4A z&z{un%XM};{&0@fJ}99`)r0T4mFW1k4_1_WimA;$op42- zQgKbVRTz7CPZjkW;X7LK$8m@QL~`DAlNxJUwiiC1sVL6RfHu? zfoc|)@F`}PZEvglO5=wOoU+U@@R9~ zT>0|)AR|tJPVT$nXICc$Y1Ho3nvV|WuL%#qG zQ%@NMVlv__d=Gf;96C0_1+FHxYDb%)YJB6|L)fxaTWUNeM(M z`*B^hG)wUib=2n|#8fml)1?99hgs(ojvUw@sWdEo-4itj(c>bOyH!Ni#9$`S0s|i_$yhW($J8+-dUiNZH}old^6re}7o^7baU! zHW^juCL5Emn88YY$}xjmoBDy4#D!Mwh3R#6@#KBtV?hcGj4H@~vWx$Np(Hmfu_Py6 z;w0N@Q~pjQUI9?5t$GL1z8RHW{Ul@^bK_-&9j0PX-TZHDP|ZV=5(8;Em+<36^c zGOB8Xm>ENY^hQ}a3n6#XoFJvu8i{W-;<`fS%&ij9!5NWImyBNLgknNFml%N#_@(UE zB;?nm*`x%-W-z6fozak#Jte?9d(V6&Jz>=&y{xEOLU9#L&)7)H(>XiaOe_GZI~IO| z+2MxYmsHPcZ8pMGr(~rh6i1SFk28`m#KX)ljRC@p46;NMiKQt=jL{9{eN*XHw9487 zIFs*LY%Aw)1Z^Ov!bMZpn3hZ_apUa$R z3>iWe>$Ve`eQ$zuOiS5PKtqnt)ddWyh(uWxC(fC@4^h)r&}BaHC*w1OqbjG!5>em5 zs)nbL@82#=R@^)p9+Bgs!6r|=ui~k2j!S?vsVihLND;AG$s#$`eW3WrGf{R_zyC1A zPjwFVgYNM&!VZ#6=hn|H?Wo+*SajO&2fwj4ylgN&PoIhl2)2Dff)&buGNuNTGHSRJJ zUHP!ncMpS1UQz<>m4SinsujGq{r22};6k!K`>)T2-WIu;Al|Z?)1bP=tbhmn?ICB- z^!=Wk`B!^354wFDWCgMnhUVDS#Jo7#3HDiy*-_!z{hopwm4y)O*J_Qb>paKA5SINC)z)skdr7R2ErSt6+a*z1|e-e>kA=w9}F<{Tt)m z_^Mdk!sT5=l6E3%&O&}OaY%ECk${+4Wtmws_o4mn;8-h5e?F=`2>!j`qM!i`R6n+S zT}Z(Pt(Q`ar6B#dWuUN1VDeyiBRHs)a=w)1 zFn91^y8SvF(T}_bU|?ZjfUlr*Fem^>iTS(lX|n#wUFu(rPyfF5yX|Rm$_d}EK$ARl zqVqHO+&&flJ!XDt{4-K@oC>h~YJ2)`8P~YG|6%=-sm^4n|0$W+{@aXe;Gftzh<)Qe z28OArnykErwgIoM0UpLLG~a)T1I|GYSY-Z1?CD|o|6}-H)V%@#(qa((0|Ug6IhQq- zK_meHpyb_CEWtn3{jLZZV)pRdyebo6;u+ zotXpYb&|Kw*@Jfhe}Sopu}|6$4E}n;}ypHRd@Pl zj{e_vi2PxPp7-BU6ECT+YFGHUzbaQ>F1Rq69$(94M{EEA_{rs$6bL*_04eF8{48<5 z__cr=aaRU&rH}w5FvH?8lE1|9BibA9{| zasP+DuJW2*hxz)R|Ghfi{X=SK)wQkE$q79~DH{O%|9H#qnLrR?0zg1e-!G%D7g2J2 zyk9s@gcuOOh54oLrz}Je5C8!>Od|S#08`+H&wum4XK4{A0DubNg$ZB;CeB}9y?v#U z0Wp3(aA)}!8QJyVt!u0Q?FDpySiQcCFvkMi`n6aiqOky6z|<8)Ef#?N`kg^6U;#kz z{S6F^Yd^j66;p37dnZpGH{WX~|EIC=A5Z&gK{x#OOH28OzN(|YC0TlVdbv8AI$L{r e*jxS*_v;$~2F1p?_H&l2&H2jXaj?&?PyY|F39u>v delta 22293 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 Union[str, None]: # if self.prompt is not None: # fstrings = { # "question": question, -# "answer_ref": answer_ref, # "ai_response": ai_response, # } # return self.prompt.format(**fstrings) @@ -50,15 +52,16 @@ # def evaluate( # self, # question: str, -# answer_ref: str, # ai_response: str, -# model: str = "llama3.1-8b", +# model: Optional[str] = None, # ): # import re -# prompt = self.get_prompt(question, answer_ref, ai_response) +# model_to_use = model if model else self.model -# response = run_async_sql_complete(self.session, model, prompt) +# prompt = self.get_prompt(question, ai_response) + +# response = run_async_sql_complete(self.session, model_to_use, prompt) # values = [str(i) for i in range(1, 11)] # pattern = f"[{''.join(values)}]" # match = re.search(pattern, response) @@ -66,5 +69,5 @@ # return int(match.group(0)) if match else None custom_metrics = [ - # CustomRelevancy() + # CustomAnswerRelevancy() ]