From 18d6845b6c347c7be3e2ef528976e1345a81fe01 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Jul 2024 04:13:58 +0000 Subject: [PATCH] deploy: 19080f1eed7bbd31a02c0154d8df86509a12cdee --- .doctrees/developer_notes/prompt.doctree | Bin 29990 -> 30176 bytes .doctrees/environment.pickle | Bin 5920909 -> 5921129 bytes _images/dataclass.png | Bin 0 -> 21499 bytes _sources/developer_notes/prompt.rst.txt | 27 +++++++++++++---------- _static/images/database.png | Bin 0 -> 35527 bytes _static/images/dataclass.png | Bin 0 -> 21499 bytes developer_notes/base_data_class.html | 2 +- developer_notes/prompt.html | 24 ++++++++++---------- searchindex.js | 2 +- 9 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 _images/dataclass.png create mode 100644 _static/images/database.png create mode 100644 _static/images/dataclass.png diff --git a/.doctrees/developer_notes/prompt.doctree b/.doctrees/developer_notes/prompt.doctree index e56623b054ef09dab390c0fb2efdc33c6550b801..0ebe6a924409fdc9915b33092da2238be3aae991 100644 GIT binary patch delta 2628 zcmai0Yfuwc6y|Im0ty7hpoGApf;>}#yp$OfbkKmP^@)I(C9do)A;Dx*#pm5y)mpp0XH?XgKBl!)r>!0Or%wGL);e}Zt<_q4??y17(m$KM-~G-x-~H~n zceCdv{Q5g+SL?R?ctrcoAZSAzQ~~LDC)|Wl5j${y*nQC8N8vO4m=YE7g9c)iuEFa7 zSj81p4KM<~8G0N>qbq8dvcp&lkb;k+kAp=yI_x+=Cf3L7gB*-9m6G>`reUyJc@#SX zjG|MNn^?}Zh~=DKH`~C~^QdzD20WA4VoYb33Zg?`IS=+jtw!|mOJSz|fn=GL?s~}a`mUjVQi&8n(0il(aP@Bw(UY5h}#+mz& z*A!&odt(jQSe&GE70hP9iG_u;Vzvt==?N1QB*Y4uz@im;JWzN+(5J_Wfwh+g8)*o&qyz@m9n0?)$dBrIN z;)-+hd)4x|*)mi)Qk4GaxUw_7JemVRK{gk=h+oY4oN_uV3p}p3eI3R*o$jSx zw#n^dWj9_bUxJrPgCh-ns4T|XOjtNBymek8IZ@WKY>2_dWutJk&44?~-hf<8n3@gw zWX6oE>LRg2G&9*+JY1Jc8ohIBOZYkBQ4A5NI{qd4%1fUs{kodXnUkcavT zy-3Whzcz_%p4a>x9zyPZHKXHUJ>I*@$|ej_=>{Whr74N%sSi+ zjcymw^a9P#CC-fKvkbpdWAng(#RWul_N~_Ms(US?CMP@iH{$UDA{EaYSi^p5g1^_V zsow9aa4`?Hcy4~W=>eUiP1Ng1-0;;(f8)aWH4uzv=V!cx)upoZl~=&n59_ANN~kJ< zQT?!PQI_&q6}h{!`l0=yCR@AU3z*Ok>$b{jt=R|DC@cEKi@bxY7Iraq9l86`!i9*Z z4*f~osK#CPwajaDCVjZ9Qypp~KYMQj@VgUpLg}5!<8|N*2E93vR@33hG9aqm_*1PHd|2uj$sFiae=kiL@CA|f z<57nNPLcXC_}HoQ>g?i4NfZk-vl_-S1p6RF3} z{1F%;*n%IDw4kSbT9B*`9#f^HX`>&}GJcOJ=>ZuMfBwPq0+(SW5zkBLL3>HC;&ky< z7)vCSk;|8spQy)Qrqc3pXeyr?{D@>9(=CAxUQq`Ic1VB(ic<;1#8@0#A8EMXTi$im zK59}3ZmVyAGm6f6kbzH>&t3O4`jsT3v>Xq4Qgij>ph+6~@KMl1A0N|P$D~g3BV8pA zUvr3yYvARkM&3*RE=Vge%xjLPp&Qk(jcUjSHDZHLNT8hMX!GVJsF~@v-=A4M*2g5; eyJ}{#_dC4_(1jPhZ|YTaFV2t~;3S@vh5rDWHfWCk delta 2365 zcmah~dr(wm6zAN1B+o#B1=eLRBDg$uLE_~TPyu-;q97;=F0ky~%d!jXuDF#AjW!Bl zs0VYVY{Eg!W*p18K{!Y_)@YAW2b*l1vZ%=#HLXm=w8p;g@>)xVfA0P6`F`j8e&_c+ z?$Av*as#BzvVF=E($~D;0HRkZ{_3Ta+O0+dKK6MV4|?C1dV-r9c6zC>*C&2_R(R}l zMFL9U%Jl63YN6bJ13(z|1@u59miq?@t$~#Q8oZ_G0j+Q-s0Sbp%R-JqB1)CHWL%&O zf+m4et^#kf$?jzJmTFdSwpsDQ%!tV*LUBuIIwa%C(5;}wxa3eQR-0iVo>Bh}i}7}R zh;W`QmqI$0$19l9Cd`Z|V5~KW5gG#Ti`eDQ+BvxA;iR)BoG zJ|}^KLo}Tpx7ZqMBU@{5PM(GNYy`d<^$PRZu%Ez*v+kI(_>A0W zu(Nh6{=Il3(cO@x!ltwcQt)DWBKf|QCX7bA(qrHdjRv$z+}uc0fo*eR*(L)!o*#(| zGCW7o)fwT?Gg_lRBZ_I2U}1D392QhdmP+6PQBnZ!QqdAF!-j*IR*71CtGqg1=@>Cf z$zLUMmccc#%vGE_KNx64g|o6_V0bjTEjyjLI#RqBA7+<9ySSn3%a`KzTwm-g3dP+) z(pZJm&5fJMNjMc3%Z29kxh_iSYH~1gENr!*M(;4&V=*}AGoL1t*-SRF+1kW9tq%Mx z#~JM9f?-``YH&}k3>tG4StyAN- zsX?#`8}fJgoZ^(chUgPL{S>`chk09mCm@WnCk^okpHk+Hg-%L4!(~r z5(#O@-U_8S4fKzD`^mVs{a8?vAJGdDB>Cm4= z=;`&BnCVkNe-WYIlw~pORM6`bD)1XxfzeHcy&;xeRDPCOI2H7!2+glJ%H)br<>YNS%w4rXg)e~=F|E~-jZ^0e&8GSOfu{p`&HqPZ4#SJ|Ke zrPbl^j;n+&TG8d!Wk`qre1 ztt)Uv&BySQXvJMJGlY3Y8$7}RV}Rlj6-hQSFC#b0*xk=R!kfl;Mk2@hR26#W`(iGq z0yp$Cja&xa*vXm6y|%~{iOo89*)S>k7iO5k6~naLhy^rwmnyF0AK(inJ)@Q5X`{bF zD}NfJ7Tx(mCTWaO3kl-g#2V zkmv^OUV(+?I_MJy%*PlwBABiBByuOw#BWBUEjrnsoFv|lJ{oAyLLZ&9RyTi{y!bE4 z!_nq$(bpO5&U%B5{w;YYp0lacG_^%cYY|g+iWxf{To}b{Mu|NoOsxEv8LKRw+isrj eM6ohi$})Qx`H^h3?~sepF7$BJ!3Vg-!Tk$>Wgzna diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 8f734c50e4b1ef9f84b1c08b2520ac24a589c42c..e6312bf49233c1628e9635b5f41e491fd3b5e6af 100644 GIT binary patch delta 226559 zcma%kcR&=!_jq9xdGffm2Tk2wDhMuK$Wti2c&rbYEQNYU(v!BR0T#F>2f{D{kfH%sswAd zr~2?q+Qn0PQ1W{gq70$J8t~6JKfbb+4j5OaI?(0*fIX4r&l_4c9z(_qP zz7eUyx;K>?k&zI@6#yz+H7fo_8>3E}S6nbGYIteE;9*e(h5hnJ@zXDZ8WF+*i}Ft~ZKbuhH#2R`1(LTrA3y_4++{Yq_->O;ex_fZAVq|`#Od4H#&IphE^&3=GH!Z!?wO)vntHf zwcKfF{;;CqL;L27y{aq^gFOj@E_s8@*lch9ace*R?{@xtNrpd_0yeGAN--rWI zmJTiGGrY8DD2Ya8xl<{^3i1Z?584NVw5^URVi;7c%kqLf8-F;}%dK1|aSe+aTr^-n zLE(VPa#wIRKHHUl);<*Mw-57jEqCshKO%o{QE~pz-i1Y_(6xSj__i7KC|^Lm$oA!3 z((6&7VBeYSQ0S%)hz8j{n#yu}JV0b<+O=)Y&(83pJou+*Jz;-my-9aPBfMz@9H&X?E_`%`TG@NlXqXoK z+00dUvu@r7q2#Jxe$o-A941c0=D*#Ryvp142xBk~4IE<~+N^`OfG!ObDrfxKfg zU*LGP6-<@}KsQ9w0O$BrsU7^%EF;j4vezmq&31~}S*g^&d|FmRkS$hm9MS-_FAIg$dG5I^CH02aWXCCW3dkD*Ze7dr1xDV{L1q3ENhcvneNb^H z%gwIRd=QZ^QwYTFAR0_Ly=Jo^%c-nMfzM7&gy zLx+`CnlJMoGxhw;?m`XzXmI_ZEoTLPqicZjEFu~~NqDvqGVVr-_>^u= z)IWT?Zb8bMsMQ0_D-Wpo5yD)+tj(b=koP>lv0EthoWIg7h2#TRn!RPewQNBaOK&hH)mHQDM3G#Zxgo50O*$P#q`6MENedXEF zP{|F1xPnbzXS>3_?ct+(1}NVnnh&awXcW&N%!tYaiqv0_!;P;nDd#T2AwI_M>se2E z1@Q!+Dp8Mm&1-wrS6)SwAi%E9hBNZ}Yz0*GD`A2pJwL9O6Mfr;|GJmA@^?h`1Tia9 z^>(D28U=r{R|BODiU^#pr_zl|oTqE}k2!k2Lkl&ZmZPK&^DT2iXtjbb$?>6{@L%Nw zD%T@b2C}@J&QUARA>5C@)m+N-y--6vr3+H*iIxm6mH8;*iNxg)eDzDJlK(pw_OG`S ztx)hwd;2RNp!Ps%HE^UZ@lSdOQ~QuBvoq9S?{7E^xA>&o2Gkuy1-rMWs=>IcFn>2A zSucK5hMSllr}?$He#&1EIRGtX0WhM6u+W(YIEh_J7ND}@1dAPshYAt>QStVNVSI+9 z4PetxE&P=Nf<4jl?XBE|U_H=$$abe~75v$}0HqcQ`rvgRN=m($B){{kL_ciFWT^n`*<&$tQF%0bAPAL3vnPV=(ZLHHb|9KJg6z=22Oa)JG+zXv z>S*>u&~^kF5QM6u*$AOB^BV;EBO)q|<^Xg+CD9y+AXEv>^$>)rpt(MRPz5vxA!rMN zf)PZaLkK!tMzjV9LdDJ;iXc?z%wY)n4ME`uLUqm@QHDTN-pr8*LWRv7g`m|4ibl|9 z=n#VrsJ5A7(ZLBF8lnR#ZRR)xp_*oHgrI8(YK))_2#QD0V+1822$eH)69j#<`K;_S zb0Pv!DKjS_$Qd1)q64aA=41rzMo0$hry&ScF*A#x^9bS)^c+DZ1ieB~ zGXyzA#+DW{0l*y5OfSdoe_j8 zkhu$jUL&Y0f=~@IcS8^=J?8ERx{aV72tswo+!H|>bm)Z+sN|S)&|wW~?Tw(r5Gph0 zB2bMEdFb#2HTOXfsyXJq2tw7y+z&x}5tNT0RBFuq(E-&N^8f_BK+r%0DbS$+9Z;1q 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
RdBILSINjaKObt$oI&@nEqznWJrE|KT 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
^Vo=0TOwag*CZ#b$Tx}ckskXY^(?sB z-f*k#;Kk>6UE)j9)?e^8y_Nu0nx;CH{}pS-Dm7iRpx6sM{VS%OeimkLZ_IgTGaBQc z-nfVgQde&zp~q*=VJSP;LYn1`^k=vOcfg&8t$W8C4%fMO3MSw#{)Xkp9$cDP1d8O< zawShcL!$+#TMC+XN#1Hfh@h*KC46tG$5QKZiOg%ZTEy#22AeE1>v)*OW)9 zy-T_TiT@J#it~KS?js>;y~`OD@P=;mRhYYy_?K#UFrtI+U(RTPEowyg?116K?jH~* z690WG&o>I7Mpv-6(_R9#QGou7MB|}raeMY3FxxHjgiOs7^7Qif@^tG+MhN~TRS1ZG z39(F*^7nitRt8;JXX{4Z!-{lMKq z3>h)0oaTq@)@y(X*Kr5)ZH}t01a8v8KgHZDJ~rgul@=K% z2VNLmF6wYIN7C`zm}d&fSg+IeLHOGrg8LoCcJAIy6h_3+|0FU-E4n8K}wyrTW`^EAu#zFAAgT@!6Y;zsKa z3%UL6O|#QVX`jVOLm!WSfshN&tpZ-r@=c;GP9K!=O{)CuEiIih{qV(|GM!M1N2CUO4BxX zEaYc5uCTcAPcn-8)m%E=(Ojz*FLzXga6jC})N}g@-fP9idvB{$jOPoDRPApYO8Re4 z@y@clfa;<`oqdY=+VDYfxKTvUpw7H!v?FLQ#p3k&v359(48<$tMFM)h3Z3yBi_SSd z(9U=drR?)%MDhmm{Dk}~EU(y`-f2P`U7~;6EpBDlys?U${E>0w;;2*~=1Iz8#mOw`h zZGr_iUV(eHfTJ1irOyivm(%9~Ctj(19ptF4eQd$ua(Y`jc=i!=VlWG% zF@6gq&|C!wPFFC66mit>o8^u6jwhOEJJi!|J3e2*CUP403c_wBQ}rmfSrtq2^SnfB zu31&wWmeujh;!{gHGX3iF47eGluB?=eCnnw> zQ}z5&S=nPe4ze+|kXof3rSO*BtB?+MA3~k63bF zt|T@_#ge2F^dwF8)a`3+cmd1k9K01-ur z<)KBpWUSYO{kZ^^8)Mt+x^z-t9vxICk`8U}o}b>W;0V+Hw9s#OqqnH&XySJ@PxRkC z(S>S3a?t`z`1|UZWInRsU?y$2 zeVy^W*`c_)CFsOoko979)NIlpxQPZ<(jzWF_la7R|n`2;dFW12Uu2)~WIGG)lumTi z^4lX}cB(Mf5*-=Z4j-6pdBZI3QMWn`YwQTYe`Se=`9sC(rpwNap_RSr7N%ZJ9Ff{( zALt8tL+@w!6m(^F-O{wWDRid@+aj zONnb}D-x*uY%FS3n1d}a*DUpcS>%Qh)(z?=tQ$TA<$7F6>M_4)8QYCee#_(szU#gi zwZ!haRq4W9EXJ?lK5cIL`mMFLcC{-4UOkI&DZy>`gqg<2x)pJj^?n-^m!G!jFlgfM z&HxfcbK5%F;sy-Fs$R@Xfx#`D*w)+A&QaSBR+%HfJN86?LKmTX-`A}}$J)bWViyHi zit(w&BdndLSeo8RT(&9%yOrjM!)+4+wwE_7ET(|1NGE=-i~nD$4eajT*j?P%S}evq z_e3DOm{9*iUn}bi@lEu!OLe2HH!APSa+i9S+cU$_2KQrlRboEXZYP{?Trb|87C7K0 zeI)@7dIMlIb@SWj4X~R>Sgr7dM=LtY=*TH&@g*c`*r)$gV^*tNXCuv0umE8S4e zX(h;SFp3k)N72uiF&OTR60u%0d|@7IU5V!@TB)v%YFaxBvb7f^ri2C*-OW)9wm2`? zl>Z-WF>-Ww6xPOD*kgRLJ7BuZ3wF30R{O&0^7#$iUCvbiLqMoNZi0M8a^#r%l?8vp zqkY*>j-%Dbv9EMMAS(0w-iEFjLA*V@&;fwO-k&%qfoLyS@fNA$Ku0lcxC*;}ASP|o2X?Rx zyC@5=Gb~s{+pxSl(4L%zgNas3roDI6ZLBSWu@v5E6*lLtqms76r<`qxt_~4)LmTQS zqn*XB6Q5{)PLxvuSg~I-K@XsVL$Q`UmFPX&oDi_7+VMo!L@gFpPfX}|U?Vwf{3&%D zTtR`g{}o45zkEEx=ZwH}HlmdUT4<{jw7x5`P2OuVb`VzP3AsEkNFm^&DcENE z(SkgtK>EldDDr-kmzRc&lZu}2_QwR`5LmBah;%d=dQ z*6><7hBMCnXoZ@18_A$1ZVyN7NOstf5N%EC*cF-u$G=t+X%zqyMI+vHG|;Ly@iqum z1Ppg_L{(?bfSc4qvUgS454?i6(T=wq^|Vet7`hNH6@Nij{%tYTQr~ur#hV-<#0(W> z^L$5TiW!!Gqt5TZzn<;`HN_iBxUKKc#7Np9@wTaWnNCNFw%G?|gExw(+vZvDF)mA# z3o6Rw+3ljUqO)&dkBCURYCUcMCODT6pDLM++^esdo$K$5CYdb&lFPne<{F z#!?dtCQ*e!8zpH8J}`B?VMLwq3L-x}Ux3|^Ar@AaigkP!dhO_9M;Y9vn-EBUEJUOC z_kr&F|AoeF1Mh;j9$|U6Hl{Gc>sP?Sb+*u$H(I}yjyl*V^Fr(3fhL3watp2H zZz5;eCa2t99lQwKMtPxDC^;5jowOuL&bOB?!_^X}2Nw!VulLgPaNCaZQtOLV*dzPG zlJzr1R=`Bjgw@zs-|8*vCbz8Gr%5i)LNw?8HK_U(3+|FP+}IDXhRF4XJC`S%7=4>Q z!d5bFJludj#GSQkUELyt6WadzTI@L#%8ppdlzl|(`uR8eF2;>osy|kHZ>_wvGmYqQp zSutZojC`4ynQDEwATEV}ex+7Pdbu5M)Q0ndtzM|v97hOE0k7^F42F~9+AS5{SjrA; z@y(YK&#@#1ZzMh3;i#`UeI$Nc0PxvV_#&ZSV4r=rWdA~CNAm~Mi7y;=w9kAnwpz8` zl0 z4ZjC`Jwn{0e!wzp8l)0^ftm_$|4mORSMGzO-@$@!r@%v5f~og@_^_?>ETe@|hJwkz zw59`CiA}ID$19la4#EtN$rEl=o^a?>on{_#L~9>ga33jf!a@9BTEj3}{bs|0)ay&E zFIMM?{(he5Vz5s73ij@lg?>UohsH$H)(;zoP^Yf}d^}I!@ACu}hZaUoD~!JbX^t-- z@}XVB>GShnw9 zh<~?EPL@28gjBEMd|jd{JQvEE89; z@l48Y!$902tKO6TU0MT5JKL}fjqI-nYEHq{mDYU^>;JYl@0+-nN={&+pw;IZR<>Sl zthe|I9E0cgvEWk{Iv+_%#oxQFPIV17ff4sx!-}%#V;01_$FX3-|518Y{M-K<;)~pd z6)Z9CS{Rjn#CvV*Zh2y0V~aOfUSiZff%ooFbpJF4X@|lcqv+!kFao%j`IJZVhwzBz z8tNdr6zw7Aq-hd(RL7Wt8roOHWy&~l>SM_3y69?A;|~4xU^>1iEe3xEEXw<9D$Jbd zZo|7ghbYevXa69F?CG+fie-$@nn_&}T?>)v66@}#_(z2)BD>P(lW?aq|Fmcm75>@L zAOAWl;DoqH65_t56w$vG?qi2$3USx};wX$gDAh_js1Qoj-!^3@Q?c%|(f{*5xT(6C8@LSFoyeO$}m8>*d>tq1JK>+sc>FLtEFv zK`P!!FRA5kAy#XOu4$BcUd+lu`XvVwD_Fc$6<*^vyy>bed6l9oh#3487p|(8rxnB} zN_}&&jgqFY=jLL|r>zfrE6MJMkFc+zEpUePs!QEo;t;0Xr4w`IR)1U?n^dk*BpqC+ z2l`D^u&-ZqRMB3Q*h;m=dQ@v*l|~i3E=_bdO#922G08`|B~m(Vp%!zL(HoZv%L|-XA_rhJEE~tcQZTw!j8Z;Z|2Q5v#?mG zh-lu{BA;xLUEgA*VU2ctVOa`>Q=rbtf!g2n2E=&fO?pKEh)cKpKnRvdO_t%zUvw)u zmAy!ZJ;G(K4?O0eNNj1jhPY^svJV_3v<7aTNLug!u5dkX#@d2WczqvcV6%Ik7H(Po zE-Le>za3?8Nfs|v8AAAP-+#~(>8)HnA;fjeZxSKy645585Y7HUYmWDZ7$YFKJ${Zh zz~;|$*8s0&qlyagcGNym0r8P4E@66%1;#pW)DNX#UJ&1W)ub35_!m3*M^&6po?zby z>kQAjeUm4|C;!4nyrXiLc?#}7y}57X$zA3d>_}v5yCWm%(`PtY5k~j@b+ug!@d)gJ zdA7ikDNQ42*T2}xsINjad=3F{=EM^Mr+EN@v(lnnF%Vqsiqd#ZrJ~LqE0%kBOVV)J zmO|l_@o9RXHq1h=Il;Bu8!FJ1(L1QMYxIh~v9FWYX1jT#mVT*Mz$GqTg1sdK)84>% zvEKRff2P5e)g^@G);22$)I`%`@u>rcP)h&Av-G0=_(13fm2I{^N<^SGoQ2>lJa^te4z>=E?0Bh`hL#w4jcq$OJ40rv&QNa3krOAde0W6A{wM z{04u~jBlB_ui*Cy|J|H7hBZ41ktXaZSyXfdUd*|Xrv~Zear>|ra*~4lhK-CriUux@ zoAFA>u5O2~5Bb_o?P|YC5&r&HDLp!uRM_$%&>Fn$z!phUH{p*IkB91Iu)6oE=0Qak{1tPU z&aYy_#&Z|ER&WEPghO4fdh`CC7q9U4CRS+Xn)wRRwkVezdm^yH4r=SYYn@-jU`daU zDfq;SN(syVzQh-8GyXgA;z-PC{J+AjTEao#=I-clG371b+iZ}>1y^=1_PDUSMmBDl4m{i%Gk zUSC`1!~3B(uW;(>6-U<}RZ8AgT(72m=fnMt&7D~SN}5CntTjaAwsIwRJJ_24L_@BA z7xSNgJ83p|6-4LcYvs_4>t^VSv?yfR4S*B()zcP zZ);m&Q-Qxm#rs1kl4$bSw#mh;DR-I*eLV&pKG_F)qAeKzyI_HEpgauVYL&NM1@OM_ z(@5`$m{crRECIwP$)OXIT~{A`t%B^RsK;rCd<597Lw*YB!fi^79gJN5eb++a2CmC|1d#M(&ByC zYv#?quYq3Qud~A5zM_`H_}VusGpFiS08IZ zuFdj+d?(FiqVF$GZ%7jx>oxo~+HClz>c)CqZM_fM$5Il^igl8Oi55B&))aR7M}>QT zQ@w|F%!m7kH@7Hz=7^Na*4*+y!I;<#y?fUOj%xXGbp_gxqE<}x^=t(lB8{Br( z++!GqiwLO%AEn8GjYbgKIwMV*>P=;pr6f*P7lkh`aAV867Lo0}aof0Y@yQo2RQf2V zdkP;#XnEJ)JO&D%dg!|N?&K7%iZ`$V$DActkojB zVhrBz;Obw|LoeFsfz>!MEgJn ztZ>@`;dgI@i~l#m)OLET7L+b6sDOCUPOqiqPxl^unutl|5(xcA<%Is@&mipf-uMHi zxD)cjR58iAJ;5!#xLjn7vs zA*U|0Hm0;8K1f*>Qh$jQST$WB30Xdv5aYVFVVMPWXn^a~|6&rg4LLibj*_{`3*Cow*JWkgJ>R%E|Bv^aH+7lm)e>!@o!o~-wwX7B`nPGEB(YJju-$iG5 z_h%9OFW782w0Iq^40%4eXh|x2My4L4HTGd|m?t~-wySCVRQ4bHW4!nFVegSA``H0- z1m9HIy9@;2G#~cKHaqVPyfTGqSkwOlt3^Y%3m;_7>w3Dj*Mcm&!*V>dT@q4pp+CoI zL7l(N6{gQUuFko6aZC1KjE!G>#5pZuQni!#2uBVs0djT-hT?OTKVzs~L3`>`Hf{h> z%C2l8QyGWsLWmqiYfQZ=^j{z0G2cat2)Rth-xQ5^&(%ou}Zz!MeW z*%(a7|9B%j$O}Pu2hYdqW%;^b3LF^Gq2tD3m0Mi*9+O2yOe$WyS-qJ$ULS%t?`}r_ zS238I_%J5gjJy;5h7tm6Jh(ej=;W%`pa^(DZ;MiX0@h8Y58_~*JOB24D|pBDYgxo{ z$->0n==&_w=k0f4kbp?i>YuhBk1yU zj{z6TBbsYo+)t)K#0Dz&xanwPd?n<`joo64TT~xa5Y6!&nuk|^VQ+f|pl)x%%#5%g zlQOL-fWKP+q%zuuFpp+fJOipe*Uc715pO}&XL(D4^MYKG88{y$O}|j{GV!gWDei5! z5?fV>d2d74H+e(gyGu_9p&;|$f!wE5?tqyXtS7v=kK5d;x$K>+)uP%?2=GXSSm1QLZ5bS6G0!{NsrW)`@k)8!&!|koS*D2ZOY26 z?1KtgxkY*nZJ!UuZo59ByI(AVVZ5lYjav*$@S6|YS*z%u?V1So*fnijTS;0c(P?PQ zD7vu(z4+1xp2`ZykY$)=D$srM7%$~Ix%xv0FnJf=!hUe4O;HP= zl>&hKUaMmRh65;00*-JXLM}0zc5?NL06YFJ?C1~$q4RPq{jb%R(!{m?#w zMl%aq>3M!r=Hcf?ahknC579nSin+f6>v|lX@e~y2W^6$LBVeJ80#=9CbBmK*Q@-XG z>z5&i+q%{-=OsG*73X@}|Eo9r88%-Se#H3<}`^&Y$A-lX*@1nh>axPeh3F8eP&Z*v! z<`Wg9=>PP1ZJiIuhk1gueAu>i7Yw2S%3x3`m*MXoW-thR^ z3FXOkPJ;X`2KFk4+hY=XIMl*g#atfKAdy{h8wPas=)ZM)^k{9Sn=Oip?S-q3x4xb= ze8Vk*HnppV-LLdpJI{;3HmGnj_u-A}C*E-DJmJ*&Y~{mtHE7Fn94h}o#VK+CdyRNU z46&5jd?#w7ybmb)qisV!+~u;N>u|tQPbm2@A}r%M7sm7P4wvz~N_P(F-4)i|HtRmg zy5G%8d9YS-mwLixJ;i_h4jZ24Xa2!W`RQGBu##S-(ixtxy)hoA-LPx&fK?>AVZ;6@ zCA#fqU7rVQtXranyHS#uOB(ZEszgnw`d50@%1wE^5U2@$SxvOx6Sb=xc4%;+)zASk zr9z#=FzhEgRH)^9KUv=!!m^}mO}okAGvO2t(=?)!M?5;PK{q+|{qF8ITikWK-BVvF z^JBMYeCm6LXA@H&|b|?gy(2dr#)~#zZ#|uFe$7YO(kYj9= z#+&;Cg?okM?yyr#62iJp`ySTyM+;%qx2~5z#{`$6 z&PQZx&~JM>6b#+V_GWdZ9er7?QCBJ!sQw7Xp zJP0r!%iwPwXy!#3?3^mYvoiRe2ZhWqS$qT!qRh{Dq@NkesRHI^PL(uw@F2$A&V!=n zQ66aKJ{}Y@zvDrmd6fs{&C5IpHh0NjBM$=1Ej$P@_xn#pSkQdR$w2cA4+@yicu>&H z;lT*=R~`hL=Xv07-s3@j^Nytck-@(*xWsPco1xUDyai9 z_=*R9<|!Fm;6Z?SOHy}b5H5we(De=_m`4~FG8Z}TwB+{1$a^IIMSnt`07pcy3@ zxl4^A9`PW*`3Dbz%r9glH<94urUzNRltDhpcU@B3WbhZgJgGah6aJ+Cq?anfHL>@S zs^*QKVbx#ak!9|rX+P=Fjkp^2USgWL`SN87Wdu?EJ}0=#MChtKWzYmo$58#ny{zMl~>4Q7-R^cfbeEp#Fhk-|y$yW>7nt8}%9n3GQY3Z3gSzBF@iyc+ zd7CZ}jp?S|J15h2inJ9T)Mp+PZ*b1{J+}%AM3Zxpn}Y?S$vMTlV1a0RH^n=_P4V7v zQ{}7r35wf~1$+Zqp{9FK+iVI}VSzcanws_aBTX=JbFjdC?m^Xhtfs|#P<1@0Ob=>+ z2X)j&fwRxfzf3}pr5R@CG1?G7VD%XR$=s{hnF8R0>o4UY!s*nrJ z$Qtg%1!h$bD%peT;z1RNlYHDJE--^Vs6rl8s7g&W!&TDcV}4W7VvWICGr5#uxu;0Y6Xh`OA|21)(^ntWa_gipVv#*;cgN) zneP{a@gG?nkB`dZv9ltd2DtOY6Mv|Js7+OQ)FrxhUY}HyJ5oI5Mr)*OZNpRi0%-hi zdRHwVfPVZ;hpnHUyDbU`Mp2YxS%%*=Vlf) z?q^MOH0FZdE8;WB%#A0~Hv7}X3%XO=;ZNp8{eOPjDe96wy2w!r^v-_2eCB_6WSRSj zF6qfQ;Qh-baXR$HC4CbyK@#ec^h$rgWV@Vnju-)>C&9W{SSpZ^Yy zGxXc<*bsb1L01r&v$Mq&Z1Kc!;|np)Tjf21;WG>Wi^q3QH57V}7GBlMx4B~_e;tMy z^Adk73g^=%_ttpbM-)cXZ2m|p!sEH61S&Ut2sByMhyL{MRh+{N3ZVFF=$LcV`kJ0x zZi9tUydBtM`C}7*SdTRVbG`dOUZ-`N$Zw2#?WAc&+@Og(xJfH-=#8gx z&kqRP^FzQrKLpZmFuCUkihF(txaWs}dwvMG2u|_Y8X@=m5Zsc%T^VrC50TvSL%=;h1l;pOz#TsX-0?%e9X|xz@k78J zKLp(7AmEN40`B-B;Eo>xZeNPB$0=4jPBFloVy)v8OC6^eJ5DiDoMNCj#W-<_RgP0Ea-3p~;}lCA zr&!@Q#eD4)cTc-Y?uCiaD)}NczNaTxdHIB8{>x{p zB4=HB7go3PUZSP<^o~{`m+00#y|YcUzOVPPiS_sOel`*DKp$ZfZ#__WEc{#(n<(@|k#Fh~ySFaU#V7h`t2KobMO#3M zLGUqTpZ9>HVTo~;#{a8#s3Iliu7LRw_XC>#=E@t>&dv+ZTfoS?_^IC3(nC;Jp6YF^mJzJ2z-6w+PW^qo2sxhVN$#vmpXnXk)Xisl z8#k5spWf3=t@uyPdG|jxXS3&O&Na`~oc}!6+q+TPywLl&sZB5R468wepmX~{&`z1I z1{u^Jq-+AXXcb@DMS{wHsdu)3xcl}}kG4AN1^x9>&u|e-TQFBIzF4}Mxs>?@`TMap zu1uu+G1pjnK^y#7f2;Lg@Lsw&5s!q)H2q(+Uay-4s!;Of0)aN~V2!zS>jizKu`YH> zIe+FFyN9WnKWk;B9Hv?ROt*>O{h4d<9Hw>wtbG+(Wxl&-{x=toYl~eia$pHanGE-I zPXOy^wE?Jz{H%wY%FfS*TDAC`1Fd}@kFQoyY9UsHHU z@HZU_VzsPVbBEbH1$WsTTgX-GgbN^Lt>G^h31-Pw8K8OwGs8`N5zJazwdQlVnR^wF zfa_E?m{p{$A9si-xWogq19h?2&1i!3xvCD1UT-6GS|$-%MD}A-Po^%G2Km_3}a2) zRFQC%>Ke{mCIToQhqEs3oB32M+dPQtqK+cIpRKER1Sdyhzo4FGDH%G;%w4kIStOlKkN=H}pEF55K zBKX@CRr%)>Rm(kDl%={QELn`Ta#Mpns2#=BoX?A~baze`&04#u)zNCso6(F}qff}Y zst@E%>+5GtVI7?yrKVx&*}pieWdVVr;UiN|s_NRIY?5LAN+t%h)Ojn0sYZmS8h4)eO%C=1VXk2Bx#rDx>m02STav%L&nKiSC#8|s6_tC4d%;o*> zqilBz((6x#r8+OqoY;qx_?LERc)T{s7+Oy=R2BF)fV(S z`l>2xWL5V&UfoUSQNK@qb5%Fyf?ZvF@Keq1`K#1ZC6-oWO)Z(O(yuB}s=6)HRq9)v zHL@L zvis#K^{K^NE1|2jr+aux4^3w&)&4Qe+)gj_%ZEk#_w8>oC`HRpd-8jGVoSXqMeC z8Vyov?`0ZXhs9ZpmuY1kTVXHLZ$PnA%GR~3f0_E$Wv(UeW!hR-$@ZYG-7uG_W<9&j zQBFNp#X{RfOY7O$cF~XZSW7#lWPRJ4-bI7z+bz3`*44LV+eKIFGuKLT7d1^_?QDQK z39N%nTuiVB#zuOPVApgb)oWl&y^+Q>U=6Cs2H~4JW_BYq&>lSGQm=IryS=cj`cngY zZUR-JA&a+cEGS1q+mQja(u2Cu(DuuaRyWa}?m?`u<9!8q;Y^<@tTC4+prQ2&dLFl zL$z8ehyz>NtHB&v*wQu#IdrV0QiZ@)N?A=?DcN3aW%p$ceWnt3RiZ{~d+y1h5v>)T zPg~o%pF`JMD;2EKMj=MFQN&r_hSjnduJI#>&`D$8K6TYkMSHj&|azMllDprG)+^8X=%3Z=Fs%Y^!;zs^ZIDm#)WkvOTOE z8r+E`+x@?(lhWmPJ1JdJzOz#8E}a!A7Iap4e(J0!V!aRAWvT+brkMsV=Oo zD*2OKNWS`l?6udsvO;usc{N4Zdv{gDU)EL8%U`;(=5}3Ty0Ka+Y~eou`|_^P{62qI zQ*6fUZVKSxZfKeeH!is6Kt|%~?=8`r0nvL;q#{ z>|H)2rS-EnYCx^-XK&Piy3>zkSbig@R++4$CCx)F&DV`le90y*X<9V3rNN8yJ(>0f z0H}X5S)$d}{7|G>zZvpwN_Mf>R62q z>i8g5-A%n5WINVKOBt-9ygJz4WI@`N!S==tsJnyh%&-AH`RJLbGWGw zhO_Q&>g90edc_0GUL#a$_Xw8e&KWY2WmwwH&+(f1a4N#=JKfb1pUtpaBA2F*WbG|8 zo6B468M2wNGwA*>R*L^8m}_?@m+FkNSNXX#ca**8$)(&;tcRtnxzublbG^LHr4L5i zZ-a8_-_f?0o=Y9G?ZGR`9XuQ5`pt34IAoD6V{ia{ooy=tsHfTXN)J@CG0gR@>mc*r;Tyq5f0A%ah5y~BBYvB>9INqL7j?l32_ImsX9UO13 zdyY_{R}~)pRoi|Xp=By@{#DzgAEC;x+5X-U8vdF+K^&ovU$ZN9gf6{iFPyg0%hzlR zww016*v-0?#!Rpa-AcPA*uK?Px-o%OvfB6t6`p99bAviev@PWgnm5t5hd1cxMB9Sh zppZ$n1UIS1B-`%Zq`{MHfSa^_k}bhax--cJxJmJ^+t4>@*z2}4bCcG-ZrAiCU3guA zE;*UinJNtfKjvYkLm$moaTY-Ik=1$#7aZ_2eRU7ega}`c(yUWaWXXOW&%)U5E=uVA$XiFqs7ru*Q+V0fL zaoD+)B8oRaf8+GEJ5{^@lBql3V&pT|^;46LUUm({w*KlRYU(0)>d|G>V7VmFJ}L{s zs*Tu8K6XlF6MM-rtJs@lxoWD|nv|)Rxj@;)G)3N4y={SDmhzeHs;Q};CBUteycJleci@wvE-)d2ZjN>KZq$aLl6Hsj0#*lf1%jsRBREjV#<2 znR;CGPaXI%?&LmWVXS1bnCkxKi8pLpfNAsY8+Luf4EEY`l~GJ!lJN+y z&nir9?m}1YwF~8k4OqP}-c&$8KHfJ%g1m+7xj^5=^h8#WPrCzf{^igS{Fk?eMY< zX{Cw1#hQh48XT>__|B3!J!tydtVh5Sep2oETP&NOUmN{48_mN%-e$d2_Wtj%DL7$$ z`5iVrh<}d;6obr}?41x!nV(0B2W2i{@su)?#n4|){D1fqCo2N3#ZI;sLECJE9@`q!p?3z$)m#{ghL zW_}9$oW;?CB}}K3`&x+q5}XhJ-$J$;SI@Uy#Quli-XgXE!OF#KH-aupMB3veB5l=D zk(RcM?Lt}ru@wkb6Z;TBi+9<_2yVU0wjo%#T<|5m$5w&LeUEKMFlPnZiXdqv+kxQ0 zO11^Thwlrpo*$qMFD+Ze_91TnD(3X8#^lw^^gB)MKg1b=!fWu3;IypLChEP0O+`xX z8a7O3cu&LB*JmTDS>z+ux*$JUg}U!V-B%rD#g?sQnNSI2x%d%#muH=@mN|JCu#U~- z;kzE&lb+CuCp{@_9UDdwpRx!E{NE=s<9q8R zK($ZVY{`(_7Yx~br5Y{Rz&l|BE6NM$x`8d=;mr+f3=bjyx&qduP5qJrt5f|=Sa9$d zR3?`zQEhrzBd{#}vWX?|Bm7~T*?TUPE1QYP zU$>%TU(mE|Y$1ZE?Q9l;_qVfU2Zingfooq3(x7!7^IZU^Au{j7P z?1qd2V*~&4;Qc*pS~&MC08?1Pyh-Kvu=ccdA8UkWMxM|1vNb$!mwjw24}@j024jou$i8vi?zWpJM{x&$4HXmSBO8y{Aswhe_*@x&Q z9%Z(WnS$S0Vmd`6%|8eOkbaP*;=2g^ULOz-9&&sIi}3sqE4XveAr_+*5ROjcgVgUE zymZ|76^jq&F{n!`S(k=%`7o;$HfCJ^;li^VvjoSqsob|LnwoyiI`NM!7Jbb|@K8I< zhVXFMVK#t=Cl9mi;sW3Q03_rONZ0Hjej~N#H*7G^g|HIc_y(E*0=RD#u$)plGz%3t z_bry=JO(25rSds!BEIWbnS*{gMzz0V6fJURe+^LnKmm>5ubRi`!gp-BC)B1R%q$>$ z+O6ME%sf_$(!R$koyP!tBrW(J9s8IH9A&c+EI!KKiWa%W5ncWOc!4tje@yYm*kVtp zN5`-Z5q@EVUnt^vNHIz|&T5A97=TZejai2lp1_%}azC;_`rtT=z(q$}j$>x|n~oo6 zon=stn*YG!WlA(Te_*=bMT$JZV(}p|s~ygrZUD}gfax}%G_c6J;73-pfN;&%{6gF2 zp|_9y$XZH_?tVMzl@qK}_)dwk!qvwRt0p}?!9tNC=p-cCN%K#_rl*}`E#&VW2yUHZ z*?woK_fM=}L4GV2a%||IpN{{|%G0#gp;5GI4NHo4ADHE*X3=J?acZ4iOqI{NpQkDe^2p^wZeS;W0qoNwZF~<{AzT{%{(G24Rac7%d17pJAhT*x+aO z3J*W}S;klTMaD1tMaKL8D&uGT%0?9z<>b2yN%#X&UFW~S9decp=O_qcY0X*IkP|2} znpU63kcc?PB7=pSJ|1p5-NkW1NKt6fPbH3$+8f496OJNpoKyg&%$`szRW^GMWcy@L5)hdntFP8ak_UN z;_xVlbJHcxn)8@=yZy#OG#vgL^cx$*!ykTQCJ!6uvI#u=JQpJsVaW?%uhaXs>b{QidboOO7nTPi;V@xCL@w+VVtKZqAGD6tI zideVs2U;M$5`K%=%lGNzsE86Y<_dNWJYs&j0)qgg;6GT8z|Wu&<~+Lp2dwt;KUi`R z9)Zf17{INzxu`PmKBL=zuy^q}8-fIGOREO)ud&QGtKk^qU|gm2^K}+MTUST&<9s{? z{1qwY8mp<{gXH)dtSGfS2Ll|xGBTK^Tw{?udf_#e%)_6qv1UAsy3Shiu-kQp>%;u<0|JpAK^1g(5iW*Tslb=PpT@W4%+ z*W4^?rc>xG)|tl+yv4G3c=Q&!24UkrWw`!NbQ$Pkx7jNpoXf1hmxdMM=<-umjPBiJ zh3UmDI1zOkg<%px&I`9;t`XM%i}eZ>9CZ`Gfd_@(Vr@#q4ay!lyzjuF1IF^~036o{ z$#|&A=9rNqtmGa|kc}2(* z;#A-vYr+}PkL4-rA#1?D|9c;iK|5rp&ZSEa(e;Qe{}0ncd8`>T062J%qca+D!DCjX z$k^=6p=e`~{2oungTCxwB^S;bpNTdTsdEM*6%QI&!Ahkbk64)a?(h-o8X_{)7=%nU z2644WqJocE6i+Vum^pYj>M>(dkjq1n4G)S)msm9^;t31lnMyukJ$N|&3F|2{ivyc@ zkY5W|!6pAi^CDB#e_3~#sZ2Hy@la$RkU7jHyEwXuhf?uOCHWdZ*@*|GlyH?Wt5~sc zUc$tu47Vux(=Sh1cUi?ZCnEEk6KQq0QB1TUjrnnUX*_)Og^WM)f@KsJ z%{_M^p!owzGHfw^BUkO0tQF4AJg`P-M4H=5zu z&q&5|wULJBZKDG+H}W&uAeioFq=br{8*v~L581XSG$Wdx`WeNLCsH#yBIqZBEt=5+ z)Zd!XEJQF4+z62dZlo#xMy=qi*T!az7`VjTPGkIy6y)3CZzRbA-rJ6Rc+i&_Xn#?_ zr~o67Y6lnvkTEg9&=JfE;G)v^0Y*y%;rWf0(V`T`UU2gV8sW`-_`RLX{6-z*S()D$ zjGK-66fmljzrPVhDS<}m@T0OF3Jerp_+WhSVAP;xfkv}vo+1xx@)MhY`xIw3&7<^Z zpph+c`uOdm>4l6^^lJg5T+lv=RG3~CFq$F-=kRp|^MVW`gr}LEz5#!yZ=|kl2{J0t z@>S_kxD zw6%~$#|OQI!i>`J7L1sJe9sJ>TxVc@S`%)Rpvj?l#FQ*m61fJ27#%{yrdsdQ0O@_2 zroVvob`&lZN=-rx{EujeQ5gC1heEdRs9UJfskF#04s`Md%0Gm2o#LZLa}z~`K@~2B z8a1Q{op7Ohzc8a&LB2HyAzDEQVQEGcHgJ(tY~wJ^yh^vjj0|LK8g6t$uv7+j!j0~r z+C~^%5v-0dj8L(^SMLv$h6gQd1I-XPmm-W%im1T?dHzVlK(JB<_aX&1Uc&2$d@suA zg5Z9X(HlWVVZ(u7bzyXkKpy%K$U`5>2}}UTEG-L_yO3U(OPNu`7>)d27J-6arHG;e zYj9B^`p%*TuWCp!G!qV_7BhMv*i+0Hh@f1w(G$U>Xp#1V49XW5wVPDj=!dl5iW^;} z3;|Kt;0uVNg*r@$ONQvuLOyZol0VSqgK+p#d_rp0qx&V`UK}i8)C3Y5y9@=FG#cP5 z?v#>7(_p^qiH4s)kS;$&&!(3)V#Ah*&rZ#0*bBvDSql_}_$m}q$_N2piBhQAWg1n= z=#1doQbrbnnx%~{Az}-4b49Riu1JSESbR~^Zi>YA`2QKReI?51Y$cYptg1-Oj72Jc zpawrx#qZ0MSjK1#c*t6sR+Pb**+tIs(2d7sjEcd0Qx?LnA4ps3^7e=^;;=5>MP^xy zkzI7WtT6yVopO+O7tJh(zTQQb${8aNWW->g@1mVChFMzd?e46H^7sQ~FRPE=BDOls zD{qvfuH|7JM9H1;!TZJXXt<5C?60kcJ2W;Xlx|coN&W7+a4#u~jiU80K7iH9Sr7~OgJeHEi?S%JBzB{2B|(oboH-y*hJV~zZJmXD?`RgFZ> z0GYes0)PoM(O3S}jF{m4QuM#AHo91#Mlf}(VU$4|?Wb3&VbJZT{nd<4Av~k`s2z|W zwWIKKNbbs8mYVFsvJa<7t7Ek6r{mR)E}{HX+d(1RlR zFuGI+4I%_7O;ze*$UUPu4KU>1tZP&Z;x8Q_StHt97jynIdQ=xf?HP5iCxU(Tj6t9( z);BT{yj9=m6UrIPw@nm+2c5i+g-mWeBc6)S=!j|U8MRF?Mk4R71Y=lfk+;xrfPvH59X1Jtia0}MnVPr6?Yoois!FUVhXK%&lB`SIu5n6~>R8o_9NoEU3pv`41p z4UJX^E=sC;B4)}Q8lMR1aX2v%$|v5GJjg~#53(tu38wZ>TVU@ahk7(JQW30dBv@`V z5-hbF8%c;9(O5+8X)Maf-vm}FhdMM7k?%Iaq?|)n5lHYOlL3BYGTm!pG!Dwj&K{Y~ z<(t|RGm9vE{Zyo{pDNRbjur zn~NgO2GfG6~=fDJ#7UGgw&DMT5L-D=^!)Guk0?Njt%QNd`6B3%-f%VX$)ONP8i9!89SVBTewF zNE0Ym(%`-2P?Zish!HaQyo2BiNXJYJbxjux>(YhRUQajDWR1mn$QeheUvt#BOh=<& zq2XC$GY4jl#X2;HrgRi?eb*5-B8SRl7))~g{v*2J_aA9$TW}r1n-4LjKF<)cJbH~J!I#zd3MVnUG9 zOf-6|0S73DrWr;{2`vsW7XCx_+Yeog(ELNOG{~XQPJ*p#C(-n4I|=SbokY8~>}+I6 zZsR5dGj4LfsRm8yYJ|}bk<|;)zJ}F{ z48KKegbfy+X(V_TkeO+;3B1D##l;={jk0ts6FvctK#7a#Stb8a-ow0je%Y;-Ls6!{KCR%Sw>vYzY=Z>eUW9v^4JSmMgtz67zB63 zd|V1Jpy~}W>RUX~G;NSkiWBb-GU`}a8{p={0)rtQzgP+4eM3zLLj$f+kHJPfg4`ik zU3@5`4h=TyBdXcZ|JT-;$Mc5kuWcb0c7v4!L!vBl1t zDymc|F;x`x(al~eVpmmCRZADUAXOB#7ghXT=ggh+)jodtBXj0CXU?3t%iOv5zUN#_ zs{)d&(vYhp;Q;(yMJM41`dz)Pb6+K4hQU>9BSEc_sxs<8M%5Zfh9p~6kt|BK>QltU zBgyCwMRY>@_mq!qRU}&3w)*)!r0qB>+*j?N5?)5FwV_A|ici&L+v=I?p|5HQWM z)*+TnX~4+3-(0^Ke zmV!Auej3|6)q1lq{lo#S7aPncK+9TcRmE`Jhh~TStBt8vDCwO{wPH*D-;ZbM7qn>L zU?dtqX{+H@H^*8z)nlSnOwF$tj+m4qF=#DK!=0>h*9!DIOZ~=gCDi58;Uy5Z*Qyps z2rY-|mRqZpBdpdq>+s9l5xB!Vt8R|4dLijB68Ds6)fXdimYh|&M`3t7i(miYp7*TU zF$yE{Syg(pm4syaXlrl@ZYZJye4~Hxb0x_b;?u0y|9CMr&1&Xnex{)|udi85{g`G| zVg$z`)w48Q7}u&6W6ZC`}q?b)C`DT->I7$~! zvbvV!y8H`T`iCB^zz=CDsMzyKR%_CN|D{#0$ySA2#W16vY=s9>q%m}6yxwymDx^(B z3H5!Po~3s{BHmkJlN5dr52i+q zOdOCp5;Khp>ZfJ z+x!z<`Uj6n&V@%8)Zg>0iO@mwHPk2XTjhLqs{QXb?266WOVb%(u!Qxjr8wC)+5dsxDyEc7atJXv_kx1@&NcXaUCV zo$BfW9KiS~Q^W^WBR>jRhdq@~jraiL80eM{teBESF$IUO^bdabSqvGap$oMZ>XuTI z7Q*&k_0>YFX@R}k^Pr?W>ewPHLQNUf!yje!7GbWqS9up<0*l`QFT%8ZuL?+K7@N*; zX*%X`d)3u+t4jb`vHN|Aw)%a!cp1*TOA9T3wSEz9AIhio2r9wl{G(y|2fwOrg6>|m zd@*LGdsWV2OxCm1re(Nc?WwFc3ebiPZ;5#g8yrW~pg9$^HoU zzFF$cr5IPU)as>}fo7>kORXLy*#7=Z*r$K+wf7FlS*p)6)`62f5DM_f#~2UFF1N}D zq9^2QbdtVysFok&e)gS}-Ad%LH>r8caU-xv{kj|-+@xxKY_%>!`gX1#V3YpQJ~{@O z>DTJ`$9OEV`eUn#ZlXJ)4VGPDH7{^oH!>I-9NQ;LJ0#x`)ekyZaeYOH;{&n?o z1zfwXdaSf!N>Bwm^CT?OKeV#tC&<^;-j#5Ojh0arSK+1uAHrQ@HBiS^S%CqI>>IkB z@o1;dO0;uy6=ttDl+PzP?QW<(pWsS!L+$wlm!=!4^lCg!p$hi;Q?R}M6z}=w|Ff#9 z-K+6L|Asoa8h3n9{2y*pZm1Fe!`5Ye{>d@@gJ09KQTK*At99T@`@GM|=AY`s8XQQA z*H{&b6Tl`;=S^(iry9@I4{I=Ss|0#O%Qbl}$x%|>kt?GU+b&VD3=%-da&e>~z z$BK=pMx|7R&rtEDO8E@WFkY&QpW)HsOLgo^xSjSnp60w%8$Y)~k(~G(y=9}6EcgOX zNw`*+s`w>0hpN@oyf1P8$Mt(5LDgW@el4yU`EskdYppJU6cQ4?AJT_MlZEp;1gV6z zR(_Rl9Y%SrRaJFehso7?HDR6A&<|$_)i|ay*Wr;n!*a@ZJ?2j*@G5M*Rm+b8OG4w6 zN?32bL3GA?oRR@5YrWONkHSr&Fk1y~z)2IJ+HAnq4^T@t;Mr+_>hcw)_Ek6HUIyQK z`pODbGdAMf4p4zx@X+y}jaD4jxBI@tqLuF&H&7pJ!Yx{W%HG7bif`t2;x?nt0cy!+ zoDl))=4PBqY`G^A7#)ZN_NM>G)bTAi^w?CmYPZ#DVx?C6<%;1R5P~0Cx)ffrENHY4l2J4%a!ju zD%&Lk)XJSWvr;oKvmt^FR7Wk#u-4&23YD<##@9XQt5cta#rcH&--?Uqzyc5+iN9<2V_X%$ylJJ}$bp+;f1jB22wetrlv>wsolG+QmkWJ zm2#`SKHXne4|iL2pct_aimmtHN|dR_@59@Npa-T>?>#tnx9-6kq)c^q4-SA#ReCSp z*k!8ty>N^h>GU6~zWZ=L!B*QNfx#|F4)4Q}#g&6q?fuxqr&RC#R%1VmCFJzS>f`;W zbxQrPABW8WRs0*Pg+E0`McJpx_|aL!eeBR~S`AF21C)t=JB2QfWGy6g}hy4t53A*efYEx)sx5k>mC zTJ)V&gEFXEMqT{Q3a1R}ms2$k;aoX}LlcZh23tF16%sRcjaz&)wH{sFt=U*=VVqu7;Ss&2<|onL;`s#6#<2I^NC zoBP$h7Jie4i|4!_F>fgOqg4vJ`;J?+RsSDxefv`F_|bYF$?+3bBlXrXJm~onKO3{^ zslvx`{IS_oB&abR36$%qu_tid+y=oO%I6oo3YWWN96G2fmOwIen z8b}$`cdHJ+;${aK80k*w>0dDg{6@Wg%Boj{VxM9I^kOg4s?II1ioDgbgntt}^Bv5) z_8T?%6wZ^M)c2>Xc7eEtllnmIbOb9e%ueuAElyj-wNiOHZ;LKIW4)e#z|iEx6g-u_ zs8*lGlbMUU@=$gCG`818RrL%m;}_MrvsMN5=^6NRQ8hS+H-`RaaV>&;7LVgt3&m$K z{IhDj*6NOrWxsRIYUKZiHaZg?sk@gjN@bt3f>8MA9OjC5RLk>L%fLHYXP)*tY+=j3 z<<$D~R-i5~txlcCh7H6acmXF!=?hk1uIX10jVjY@yi4p-m3UTOvLZ0t{3s7>7H77 z5mS_V>d{53jkficip;iLT0WuXXIm{z8^2~_JiMp!UBZ}hPc^@U)069msjZi+N|4W9 zvLcO<@|Uf4uNVnYb1qw9dH*4AOQ~I#t-Ags!`ttvk0CcPv;!Qnk8b)yaFG zs`#n#S8)GKGOCc~~A=c~3mkp~7?`K*;3-5Nzujc<@tmZTE3z>{9z?)d5#LXV^vgV|FFU} zn63)lMCYA8cD-pe(DH0GM>uz)gsT6@Dx&7!wgML4vWowwOZ9G9^>jtCMU8R&8C(y(y(;IE@xi&Hl8C=^~|~|Fn8)nLAfg<@{+i z)PQ^FY=!A+tyY|~SIogfmP+kPsiF^XY_M`=)%^jQXSugp{QwUfSfl4G^M8!jd4#?6f5v(1hMN{LAK|I`zguYc7iM3Kq=k?E!r?{{ z)-fIX_;1`=-TKR_SeO8M^e(n4F6?z`EgasjylU|n0|BePt8V^{EBeUC7`_?!F30`< zm3C#-&yTGZS|_(!^$ZU_8a=@Qz&c8$Ji%QQ%Vkx|f6!LiA6C(YQ~L#~J%3^Pa-nC3 zfczXT+y3W&xz)|g_T^Rmr>2SdtMQoT&-SI&qNm0Rem?Wm8mKMWYVUJ2H{@@trUu*{ zr#bew$A4Vy{|tMEy}Dy1nq*gh{sv9}MXfEQM+K$5YQ59_U5UR{2U;Wpug6=1YRyuev-la90mwc!Px zo0E(h$5qY?tFkExd}+1HOY!jW20Z4aRX>nqXr0z}!_!;1%c<=zt)g1#41QbZE~9R} z#E#)w<C*fD2m_4$7l=Aqx z-_&*6s#U&doB0iO)7RZx%gy`Ce(uOuO3JGRe(utF@vsGJp4DbQcLhI^p;||s^K+NeC9&$IpS!k} zN2vPw-5puWZi`Rpee|$n6}3LUyW}fIg4Ct_?qa6y)BNr*Q@45ncboszU0%TbMqUJ; z$8T}ep#tt|ek8+z&gw}4cLh@t;_q&lcRy*BRK5M(H3Lb8mU}1<5@pp0e|Isp&fgti zwD$PBJLILWFW42-`vL9>2rKL^6G#Bndg*H6s&)V-1;bGCifZ$`*QlXG>STbsS}BrI zV<6YCkL<_HfQyH#;sxE|T6MVUP|%&=x0$MCX605VPIU@Z#|ygaFhcDVRiKc&%YPK6 z6>=B%*2DrnoBk!$pSj3xK)Hq{M~fY8z2XsNttdzTShEe~^jb%(IY)7O1Gu=O$=Rjy zaj{E4BZT0GeiQ@x ztl|uM3veuY`x2pbkoGcsyaq-F7{F~Lnw*`2crizSUwsDe3HVBb_XRX*$Qla- zENVo+YcCY?X=7GN7eJp6Kr>1}=cWvn2w2mc!BPQrBN;3guvUW=0(@Jt#wrcG*rq)- zSuHACG*~0x-Bw)ZGXX)Z8GIqY*)Qt|{7gIQT07R*XaMi1%_e7W#779wwJp4-Uahc= zRCp!liVm!jX#iW;X>$DW0a(~A;GB!~_X_CSnZbSm^w9xSIUwL@5A+}8ppc=_3=Rp{ z6vH4(Ku|n`BLZl}DQp}SaG@82V*>p8FgPLLJq>>9mj}lmca~P6!pJY8;@6kKDFO5$ z0%)8O;B24s1SFIMG_nog4R+b&?BWC1K#qWr!T7QpDqIyp!6*Q(6QEV8HpQO+xM={J zylry!tYKVyN5G^M2KNMvNM-Oqz@Xs_9ytL0ABT?_ppD0(LSHukcq*XnWCqU!)SSxT zxq!UW7`znVIGziu#P};bc7y4xk;ee;NxuGGQ~pAi=Qrhe)5aD21^lQ%K>_q31o#;! zz-gl>fv;)vQ3wub1R21MmM}THSUSGb^R$S7=$s4$pyY0c^6a$=SJeaRULh z{>S=_1cZOVpoxHV4GOEgue%F-TL>?>niX3KaBR0BaGbi=WG`#9H-LTVXmWNPUEEnf zb;LHo=IA0IE`vcg0lmGMOnL~hcQJ4ape4O9;wvezhrWNt};Y4oHkMjJSGi_X#>Yc0HkLZ z_j!%}xP)6DrS<3_IQktcrb*3b#~6$iKnsImN-qp1+Y7YqiK5{&Hif_g(rAFlF{m=l z0B&@;$=Tt$xQQ33u22Tw4Ml}_M8yGf1UPl(5x_e)9hV1H78t;7EHpX(ln{!`oq;Or zuhNYw(b#ti{fEj&L^80o41N$mUnN169|gST z)vh@UmC==tv5*=nCq=~pzX))8bD99J9i~OgsB+E#?)?RmvuS}civPVP8Q=!5i96cvrjv|qfqL<(`XVo3tD{Mnv|RnIUI zYyfX{y%d^?$Lr$qrr3ZA1kB24GEm6?Hc-Xn?B`Xy+(309HSytJRH!MSw+6KZyr)53 z0WO56LX`#rCTcJXiS{B}``J`9uwa|2v=~6=A3OTI3X@i%;yBVqfa6Ge0gfY`1UQaF z32+?gMqmSNFp8vwb}a++O<1(a+V!e)d8~jpYcTK#*r7pB0d;D!MsERMYLFm+)@-BE zegZz%U;qIx`{f_ODv6>(tF}>RumD=84UjB=R%QbX5pb#*gJA+_F*Y<(1<>+qfDr=b zwf5mj*eD^i+8Qcp0%&7p{RH-i}hXiYX8`PZ6k0<%TK*|~EGY^A+TfzhDxz5#sjFEBZK3l-!1TPTDUYNJBB z09u+2pajrrY=9*K9%!&s04>Fa#&Q9<1~XV8;E@Ka7|`{PmSj_%)uIwNguxmCYlkxU zOaQIUMwKrFygr=4S^=~)8yf2c&}wXejRI)>HQfYl7V`C2R@ow;%yOIgS`a2yr=$|%4EN&^qa}xfPe$2=9)lwS&d+CXQ~;K6^YQPj;l`ersSlYGqT(DwKNI+h_7%m`LvKzQzz5YCle2g0 z;&TG-EoJ=+0xmCOkgWk-f95P_a#>W;KW304AawOBDg8yGwgFm)q?M*?UKIjTGsuzwqarvln+XYfowsT~ZS zGvMQYswOW*g_f1Ws$N!3TYZ||tiD*k`LErOm%tIyxV@XJy!M-?2)l zkjIA@R1~oAFoQ}0KKPzN6#-d4FsLSg)~usly=I+yl1sZ0S=Q21$;!E zx}-vYJ6qr6>>Ikcp#WOT4*kXgcAsX@R6xjC2F(S~Qg&2%Whwhl`uuApDvlRz2=IDr ziZqEj?G0eJI+~oFs*7C$u3lvQC;_`JG3Y9w(PakRHK6lvt0tDHY{+4iXaTey9$v%> zxPO&_N5JN540;NS zCJONQGng!3dq6I}{&cMczMk{MJz>~1w;t&QMSrKucq>DES@YW0C z3Y&$@)nJQ&-!%AIKx$2{k|Dsa7K2Oym+COsDS%=Ez^zwe0%%9}^1gr7^KYomI_fM% zf<>K!25?snnVj7~7iS5`Y{dFU1W>2|7%Ou&vl3~CD4pTMA& zfWv(mL#Yje-rUtN|%}vg(ql+U2^d8Lmtprp| zV$fQ^4Fb6SwH2~4nN`{gppXY>w4;FDLm0RO)EmkmN&p2tK$Ta59%#?Hi-yw^H-STZ z{!xTy)QM$+&T`*8CTCC4#XSW~9?tr`1w7IqK>&Tg3l{qcxT?Vb0YeZg0UF*!Arw6U zWUzp7qZlL$pzn74rO|Q*TLe`7n8DWqC;|kGWC-|X1%pfh*H<#wDPYhi40a2M zS*@=>dxabafz|y2g1=yJK)~jnmg1mxbtAWOhQ4UP!-Z8K{eCE(?71XsRd za!gd{Q(Sjuf{;UdStVOQ z)P4q+1su{KM?i@KtZ`Mqehsb(pznpj)f)nm4>Gt3;MK80Jl`?7Eh@7PF}NdO>|qA? z1dPjK@IU~C$UrlX1iaATv4CDjS>vgIq+@zicqW7*X28gE0WD83cq!oZ(+qqN96|d& zUjttOQ_rwQ9sv|l14i=+=zESq{z3HonU8>O=b8A6O3Moj3JRd_ior;rfK3+}6cO;+ zB?iR=gj{A2Bw*nc1|OyYqG59O7k_baO95vzXe}WBW7cRVpt%Me1t2^Kxz!oK zs~bg>4kBGerK0wthX4u_0u3D*gu3$8T?VnD;W!>Iz;U&=0LRt70`foB$NvB!j<16R zIKCzea9kZKz;QKIfaB^&0_Vt8`bGtOPcwiw=~&M3_+RuXmyb8){OvbX_*YC3vM^aR z9FtQC+@&@so(MFi8^CSMFgd%kE}kV|gs(5@duIzNk&nq70TgBgD*p~M0`R_QIE{Wl zfJ2AS2Q{FPZUB3sOwP{M#Y+S%@CI@P9cG03v0AGv7Zu0kN&*~51OZ2=jnxKl8*5C? zepeTNCV)bYK;H>Df+o6XjkToVebwX!B2USS2fPa8kg} zRT%stz+0snlhZ=_>qgHBaJ;xEz-jlg0H@vG1UT(p6X3M_hXAM9+g>3~yLSmtm=rrW zoIQJB0QY_wywk-?w4aYmvC)4*;2~{3L{y<2|I7e3@Z99=bSlRD@1>AFb-98M!WL)? zGwU(%6>w35JOc7HWQ}|RzHG!Gzkps%82AgISS)Z$$7130KS?_pC@PNUMG45~W>6={ z0Pac&le52T$|g$*pl~eEcfzq?TfD0^%8CYkzy=!L5F%%3bJ0g@Kq?x*ZB#Njd!jC` zA|O{Q)~_aDs|H~L2EEA|H3iIU&7hWmt==|FB7|hNV^CK>k@gJg3mB(CLje@i1&-^O zF4U8<+SR6_;dHG9fwiPTpWs22R)gvKON2YyTFNWw^0orjY0zE(MS6h+9qENkKG9yd zM8j#L3xR#4L0|SkmF@;mn_k;8S-Y<;j}~yWGgpWe&_0TRN5Fm!dJ1UUg*AE$=+u=# zf&l++4Ekw6_g|g5GZ`Q%(<}yw0vfv+3>H9PWzdym0pEBS3=vSG7lUB}$|NvI6`=Y9 z;QSl$e`Fx5II(8nnV;SwX`j}z_GeO00p*z(M1G~(!Qt9HUTID*v}<{Y5vRQk-B`T zDd#vfsG#H2kcFaJV})oqCO;uyV%Ja`YYgBvJ~KJHz;Jfq3jtvxeEIp~S|NExvdVe^ z*&1vV;2Fgln+06fV2gmLv8?g6fY##}WC-vd&mfb4mpv~!fyqu$nKg;QZUHSPGuSKO zsRsK6P^=vE-ieii4R#@w!9mfWk7GgOFo6rSNpDZXk5EC57{XiZsLAoiFj0I=z|U{7 zg%bicOlR84c+C`%05@qO$v4R=FU6qVB*E9d(C1|8W|F z%c6mf&GlY8mU774Yc_2IU2eTE!q# zz*nmoR1|P;jXwV>390=#t5gv{F@)e&H31Ya2tdaRBF8=2vznse^rSX{EYhHlx1ma1 z1GsDTogDhVOP4n^<%lE16&efZwuM1c0f#kcE}-RB)`%3aU4vEvYU5Yw@S?SV&lz~_ zwn9R%R1GTa1$?MMM*)TL8(C<$1T5AdN&v+uf`*P!M7^J?d)HkwoXz1Tu!(28f2!<{&ST>*T2aajuhW z0Pm(DCTEw@#lr;b)*w~DFDKZ*2muu72wvz&N7TfvV+_(n!~eJ*G{+ISK`PaMW|fHs zuosg}&TgcO*=yEs_$%vA6OD};Oczk)6l=^7K+%!l)+`2S|24ZY9z1}|7L_8HkOIsR zF#bG)_XJS1BxvYpNxb>AXA4Bb>B%Aj&q?FYY_6gV;I4Uf^du@jqsy0?asxgl@RBq( z;jRpgt}=ivtTs7{s6@q|3YdP0!50G7Xs}MeA+IJIh1}5KbJ)_24%A?)XgFSE2yirZ z2yoinEx>7apMXQ!=z%1f|8n1)cE2MPiqT|`zQ)dH8Ni)AVsfVVM*)x>cvuc*K^Y9_w`$Fl$dj%R@a9M6gpctTsaA8w;zBgg>WU?ogW7i0ci znh3>|viD)ZCn}URfGdHAWNI$R~>o+ri^;?*ny$Ul-IN3_TTlhgeKpO^Lvam#}v=^0K zxVL~xCjnE-Fo+VcM1yVuPHJEY$fwM_xfcRLneI^OWsmQ=9pwSx) z-V)%_Rb~iy%x!w@cZ4`z%n{(UJ5PYq?g9Z$yNd)k?J5CIyB`VA?b^!;oZ{>M&g$&z zN==;Je`0dBQ@n-%uKcgrH|wze=LYcB`qJd=l{L9|y#R#YqOG+_K#n%B1;G0+liNha zF_J03F|td5V`MJ@Tyybz2E^AwGv64%ZhdQV_L_QJd`Q5=`T#ipzZbHyA*&n}a8#Rg zB6p#U+I3muq-Z$c7XeN)rv-2`SREt4Y2_jVKL4C%E)&6=1vh30x`nR%W&n5PcayU{ zZMgV`fCbGM+!D~>O$K)aG;Yb@zJPG8;e8~eySDm7z&;J02|!#ha!ZE# zCJnLa`p@Mr+HrYBQ*M9JoNRfZ%j$LDi1X;tk$2C?gXO^y_J{xN{aPgLco_H2*=Tp`KiOz{u`6u!(p8^e7~ zF@W`lo18toI~R`P);bE{=K$6zjAmFW@tg%_Z3Ek*c0ge|L0(!(D2nR-# z9YUOTcMEXZ-6z0l_kaMW-R}fA?Pd|cd=??A`fw{h7{I;%k#ju$I^`#b+@}hDgSo=b z25^O6O^$-Bk=JJge3`)DyZ}U4BaLhU&j&GhCAyl{@ct$$PNUZZIL-Vaz-i{T0H>L| z0-RSvZl~{mTIE$rF>aXM2;m{F#uH6b3H@Ale#r#Rt)Xw8=qQBe#G*#&idj*;F1;-|CK zz5*N@0|X01?~B z&qWTv{3rJsCQ4KgMT=BE5>R#}gXIDc4~;Zd3P3b80;>f))Eb`(u(h9G2+)pu?R7#N zUpESHeEmv*z_9{ z`;4}iEuh?5*1sZPng&+|JRpm>|F|y1Y2&5<$LgN~9IN*PI94ADV5?XVM}WhojoreI z{A~a`{*TFd?Wm1h{?ZV;tp>Re^-Ej0v6(gU2za)MfuDfOTEkz!Kcu5es;T$0j%HG%S62j*FYwwkfxV>k7jNY$gkcCr2A|Z=L-`C(m?pNGEu^Kq}{Sa#tsR>g175p6Ub--ANPAO(}V(b9m}W zIlPjfWUWs2>7*F0phW2%K9V9@m0m6*NAF>gqSb>O_9*!P$cvO4+&ngP(qKakkBI{B=mR%3ElD| zq5EqjbhnCx?m&^yjU^JgkwZdvV@T+(3kls!A)&hpBy_LP8zVSPV3DOM7!sQDAfed- z61sjNp-T)Bx|ATHff)(LA4+HlKtg9R5;{4N&?$$6&LkvsIv}~tNm^Rk+`P%d`VCGT zwP>!tN=a~6&i{L!*Is*nQB}l(-ksnshoIc&6WkRLgZgEHyGkGObN<}?JrY|D7#(g8 zAG`=B)t^oU@_qi?f+G`0k4#P+lQ=SbI3mc;T$Dz}mW{xfxPtyIq<>53-(vim-+ykt zfkOu+4}}Bvyo}j>-FYY+{QFDYWs$63>aK$1m!M<1%-y!m#$$I`kH8>g35fZlc_JH$}|1*SjN-EL-ochvdY1ce4;Wq3y8<)TqNl zEkuMymeTCsioW*R=tXMk(SWKM(Hq>on&js$DA%r8YGt2X!3EeA*B;mLS?cZ&0YTKG zzpirwRd2ZKpn;w@xck#@xN8T|h+z+}fPXA)eS@To!#CXheW4k4+g&+;hLKVB>}uTX z~B$LCVE9-9G zbUmG=S{(DOT2OcUnd=4W7E}9w_6>sKV<;jiS1Y`Ta9S2q(i#V2YZYN%-se1p`1+R-KG zEg`PHHSv$7+lU*fr96lasij1b-a!CJ&2lv~Qh$*uH!-Y2QzH#)Zlt3koryFoqNP-x z-O|7wh|8!OIrgTJvf4OOnmr4?;yBv>PVSJ5O%c&`au??vn%5OPYtg957#k6U(LR&$ zSN-Vk>EPTyIJzd1JAei+Ilo8wVl(!QEmVpQ%H(7|Lei6Y-&{zJt_vGQ?C3X;G_a%TgAbE!R{6r_9d^l% zrqkAMNOU7FT`29Uo$-&Qmm&>|0;6l3eZ?};5QJ&e?6gSLdm5$?kx`fC>20KF#9-8{ zMuL$(B8gjz?i*;t8VHIAnDOI~=mCY`T%8GgFi)Nk-86`<;&w;GQRE1WY4)~3*y3tI zKEEm%4<|(5Yf^wWcsW-H4y4+*^46q{Qf^yxD9p6n7F|(q!*^XfW~tgM@|C61IoqOZ zqjc9cKB{xJ@wW2I;9RW?-a)-Hq8mabJ%jCJWbiJzoWa|%;P&XMC~L4iI-&>1teS<0 zj5-L^q*O>W->~N)2BT)5O)%24Nk$rui@7e{Fx5z_5nmB3BXfK7q}TN+T;COi^Qoj7 zQME9gO1+Ln)5x~q7#}>Fjz!b>`s=ainl;#s#R#6Ljeh%{k#5a*q%?c&J9MPZt)hJL z=C7I&dp!C=A-!!XyBf|?$NY+f(zfZF9Zlc=_$WJ?zU8qeJGwfO8`;ryLb#2g%Z=ra zRv78jDwZ;uUWzW%5!#)q#n8c*S}lf-@p;u^LXd2%7DIdFgf9C_!xGhF=!kDpohu|% zXU(aAdO+#t6E&0u6nrvqW3dwWI^s$7ef1b}=#frB!eVG#Y9AIuquPkD7#b^=hsAV7 zayu-hnU|(u_7;Re($RnFBK(n-)-*KI{3b>!j=)B`^kxeqO>1SO-3V%=OFwCAq(%r@ z#4LSHAs-6+hj$DJTcp*BcJb-th!YU0NW;55jFbnli8T8m&PaWF8EJKIBSj>zlySdC zO#hAOSM>Rq@=f@VpXHj1jT6{9b=dIK6nyX_9AUkaQ}i{|HP4lf!b1O7m^h~2P}+hU z&hu_LdOn7B@V)afbP$!e5JO`^o*Uw?sj((wztlOAc!vKM(jbhsE3 zrU!Ri$%kQ7dbu;GBppT{USxy&F7lrF<09|;fb1BWH&oB&Ryt<$&KsW1du>@ZYkrr_ z_5RG}3WYDRll3lfS)WTW^nIH-8g9H46OP=)OYCI6%j{hZopjg97@aJ=%pKTsnQdOW z%q{p`iD`oBt*>xDQm$~17wKe&PA*;HdcHYauTl;lo$Yei`NW)<7O4I|4G-q9&D%LK zO}%`nd+Zw(l6%&ow8@xUokOS}9Vg0-7*1N+DN~SlGY2JY^38N zwVP_#N7IdTbQVj^a1Pu=3?*H;7-A)9>4r!h5iUuym<2}qP)iy8uf~+GugAU-u2DFE z%P610C21I0S2~u?@n1{F()sTb%(<}O*m4c|Tv+Ma2kn5)shAM8c{6-yYCmU+>H5ZX zj7|hof{(!@rcjxh8XOx8Q_F&5OBQ4sccO~WXj4r2Oe{sSo>RfG;bFWxOZY?uQ&B-< zWn|*0M0`|+3(NXMRiMJ6YV-S1Jo9Z^CYHv!!DV9U6q}=yjb&oPymS+2FGs{A9b9NJ zLM3Tw;u<4$|I|pu*BhzBMkD3gY^0Q}Mhe(&q|2E`>VQZ`+VX1%aipa-yK z-L+XPT`y)gXNLv*M3trD!u|eTUdJgf?-LdJ|EW&JYJnX~bKh_6*h-PyR#Ts-4p8PZ z{UKr(=^#fl5VS~3S!ayY0a1xGYkQugjH*LoV`jjZ_iij*-9JL2=Q1CM3n|r_kzpNu{-!)EM0Zq(a9G&`Tkxk zU6}9O<84{!er(0s+=tG9Nh+_CA zDSW;kOUd&4+{~W)ya#^2AKSvk787zsjmZW5Vx#({4D6peE+KJT;(+kc{YDO!)8;^~ zsKcZZ@T!W_nf1A%PN7Uq-CedM_2NNn86;~S@LoUkfRBM|54g?1hkW$5ddRS!PNwN( z)x%ht9vprcOLOkO9&+!4A92$1QEZTxp1at05y?r%fI5s2PFiY%NKIPWD^ezcHE9-! zC{0>=f$&UP+I`JP_Yjatvo{cUNlPDy^fp2-X*TnY*N7AD8EG`aEa~FKh_9rjbOct? z(r`pn($X4Vg#KXnzt3%?I(d!sSfqGA!&V?nlCF{H??{d90|5s9FVILc3LB|Y5hE2Y zYNR%ZdSqYCnEO|30UC%^NF0rEJ452=WW5*?M`uToP=@tG8OG_{q|i7zBA188(Wsjl z8b`bI*U-2cE$FeAy{-c6vNWcmkwV@uQnkuP>RHv1((H-Bx#-qwL8w(c!(Ab+SP>XZ zsvB2L&uYV5;j`3&JLP#+ySr{29j@o<#?dJ9cip)9NNU%MqZvd(y*L{G7SxNQgJpZY zIGPY$tQUtNd~yA_8tv(EoZUYR&9byZq-r${J05PNx)Db5A`+3V5mS$(j8XODPUVMb zS7cljeTl1siT9$pud8EgL+CJ9k?h^J$T%8^e~pZ*9z@Ro?Iw*;pQV*7Wdya1+d_Bq zSsvbqzkA|p=svq$J!h#x{-Nb*3f3$>j;3#k@!YSu@o_YH%8WPLC&e{xmU>YyG=y{u z_T-%t-ZPFIY2TAQ7~C_iY*{*;U7xr1EN zn!rhx3Pu{~8yb>dkkP$N5~a%TmuMBNgvr zr2Gg4q)X>^H_{7>q>OdRaox$07iqlF%8!YoPbJ2UVf$%1w?XHQjEM`YMvrXm1Vs7K zv3jP&8R?=(N%6!o%8!j3n-8|s6y5(X;!dww5SV`+ARk>>X`(%^nZO6gBh#$IpS(c-Z4-l8~~VrA&$@}f8zH3QSx zc%yVaE&8O#(OEw`J&qpz>`RZMhYb(Yz4=vXP?D&))&B;u6Ho{uR8t)jTqhkVYep!6StgNc^;Rf?>JI?qTa zMupgy+^x4>@_?}UC7&u6U&i4nL3*GEgG71@{y)qUq2qWgLFIM(6M^dJW zhep6=RXkzk=`DtxCl3}0uoRikNHhIO%9vTj6Yme@%XK`?a8SWjf0p`ZY>i;r!Hw#A zYL}!}Aa-C;=#!LYR}S>0Cm|)({`oaZWh|-dnNkoIO1ARQ)0L=Jo+|n%Y~r$T6qf(C zMvz+A$`kZDy+W~fybd!YrP(Knkr@?oIy^YzOe>FFTn|TuT~%kPZsWq=aE7BWS0taU z-H(UA?yn~}u2!zr7_vSL=LueBjE9Ei-(x&<AsQDY@fPtT1~wf9<(ja^CNA!V*@;NQT%g&r)B`X08VJ4I}lSn$9XQIev|PYnli+U_f!v} zw^H`mjwohnN+*&s(#LyN(#5;MN)KJilUDN4Hg~0`Y%sfD$5j{Z1z7!t4Ilc-oy@l@ zJv4GZU&(G(S>>VYWw%v)@C{$ZhvJ4+9=aJhi!wd-Zgbs%snV)Qa*yI_WBzXW=qL;O zgzLCI@znOx3p2Z57x=}}Fp&;+H7s{`BaIYkU94g6dW>|Ur;#Fi87ZN^NCQP0Ez`(PbELL-`|z2HlOvBRGSvm@#6<} zUC(>!^`h5>cK*?5ho#HojC6Lqk$O%vlHX(_?HB3r6vG-$bEGu;=5X$6_mg!(w_WgD zr|I8~KRr=M8s72HJk-9!t}na8=U3Jp4;>?Sk?3xwx~8C;q4nyPPz~>Tg6dwNtk3USpyL2fFb8P@Qk@vpaG!!2AcszHx7{#~OB zW__sf$}^8Xu4Iq`tZI)+P2v0Y?~BIMl>1uI_>e?4_>pU^cx+Mg^l(pM{t zG-Z{McCR+lKWmKC^m8K({nAKP@GjThn=!Ol`~#XO^$m${fn-HUJWaxPhs4vh;BrVj zUEOnq#@DXK?s#1N9Cv=hOJlvHb5Dkmj^bsnot4ouH2zyUq(j=pS1iTV2JmaH0=ThE zppPdfj-;*Dt6hB64qSZ2bsw7|@9>eyDWeBCqwk|Af85OSEqlA2FpK7}${z2JwUmPQ z9$G5+14$V_w2OZ`7aHx}F`h=s;T_}YW@ll?`0(=dUfW)K0%|P1f6_?P@RHfSo^h#T z{FXvB*^}b*N(k>$69@H68|pkfa+Py+1N;&6a7OS2zio;Z3@T3Y|` F{|Blr23r6C diff --git a/_images/dataclass.png b/_images/dataclass.png new file mode 100644 index 0000000000000000000000000000000000000000..33f4c4836d6b9ef64593691d82d7b2818480e31b GIT binary patch literal 21499 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 literal 0 HcmV?d00001 diff --git a/_sources/developer_notes/prompt.rst.txt b/_sources/developer_notes/prompt.rst.txt index c9a1e8886..dfc9532f3 100644 --- a/_sources/developer_notes/prompt.rst.txt +++ b/_sources/developer_notes/prompt.rst.txt @@ -19,11 +19,12 @@ Design ---------------- `LightRAG` seeks to maximize developers' control over the prompt. -Thus, in most cases we help developers gather together different sections and form them into one prompt. +Thus, in most cases, we help developers gather different sections and form them into one prompt. This prompt will then be send to the LLM as a single message. The default role of the message we use is `system`. Though it is not a special token, we use ```` to represent the system message in the prompt, which works quite well. + .. code-block:: python simple_prompt = r""" You are a helpful assistant. User: What can you help me with?""" @@ -53,7 +54,8 @@ Data Flow in LLM applications Look at the most complicated case: We will have user query, retrieved context, task description, definition of tools, few-shot examples, past conversation history, step history from the agent, and the output format specification. All these different parts need to be formatted into a single prompt. -We have to do all this with flexiblity and also easy for developers to read. +We have to do all this with flexibility and also make it easy for developers to read. + Why Jinja2? @@ -85,10 +87,11 @@ To format the prompt, you can use any of Python's native string formatting. We opted for `Jinja2` [1]_ as the templating engine for the prompt. -Besides of the placeholders using ``{{}}`` for key-word arguments, Jinja2 also allow users to write code similar to Python syntax. -This includes conditionals, loops, filters, and even comments that is lacked from Python's native string formatting. +Besides the placeholders using ``{{}}`` for keyword arguments, Jinja2 also allow users to write code similar to Python syntax. +This includes conditionals, loops, filters, and even comments, which are lacking in Python's native string formatting. Here is one example of using `Jinja2` to format the prompt: + .. code-block:: python def jinja2_template_example(**kwargs): @@ -144,8 +147,7 @@ Prompt class We created our :class:`Prompt Component` to render the prompt with the string ``template`` and ``prompt_kwargs``. -It is a rather simple component, but it is rather handy. - +It is a simple component, but it is quite handy. Let's use the same template as above: .. code-block:: python @@ -163,7 +165,7 @@ Let's use the same template as above: print(prompt(input_str=input_str)) # takes the rest arguments in keyword arguments The ``Prompt`` class allow us to preset some of the prompt arguments at initialization, and then we can call the prompt with the rest of the arguments. -Also, by subclassing ``Component``, we get to easily visualize this component with ``print``. +Also, by subclassing ``Component``, we can easily visualize this component with ``print``. Here is the output: .. code-block:: @@ -181,12 +183,13 @@ Here is the output: User: {{ input_str }}, prompt_kwargs: {'task_desc_str': 'You are a helpful assitant', 'tools': ['google', 'wikipedia', 'wikidata']}, prompt_variables: ['input_str', 'tools', 'task_desc_str'] ) -As all components, you can use ``to_dict`` and ``from_dict`` to serialize and deserialize the component. +As with all components, you can use ``to_dict`` and ``from_dict`` to serialize and deserialize the component. Default Prompt Template ------------------------- -In default, ``Prompt`` class uses the :const:`DEFAULT_LIGHTRAG_SYSTEM_PROMPT` as its string template if no template is provided. -This default template will allow you conditionally passing seven important variables designed from the data flow diagram above. + +In default, the ``Prompt`` class uses the :const:`DEFAULT_LIGHTRAG_SYSTEM_PROMPT` as its string template if no template is provided. +This default template allows you to conditionally passing seven important variables designed from the data flow diagram above. These varaibles are: .. code-block:: python @@ -210,7 +213,7 @@ Now, let's see the minimum case where we only have the user query: output = prompt(input_str=input_str) print(output) -The output will be bare minimum with only the user query and a prefix for assistant to respond: +The output will be the bare minimum with only the user query and a prefix for assistant to respond: .. code-block:: @@ -221,7 +224,7 @@ The output will be bare minimum with only the user query and a prefix for assist .. note:: - We barely need to use the raw ``Prompt`` class directly as it is orchestrated by the ``Generator`` component. + In reality, we barely need to use the raw ``Prompt`` class directly as it is orchestrated by the ``Generator`` component together with the ``ModelClient`` that we will introduce next. diff --git a/_static/images/database.png b/_static/images/database.png new file mode 100644 index 0000000000000000000000000000000000000000..b7903a894247fbaf96c5c8864bdd75300dce9ab4 GIT binary patch literal 35527 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
-DataClass +DataClass

DataClass is to ease the data interaction with LLMs via prompt(input) and text prediction(output).#

diff --git a/developer_notes/prompt.html b/developer_notes/prompt.html index d29559567..19eb83d2a 100644 --- a/developer_notes/prompt.html +++ b/developer_notes/prompt.html @@ -478,7 +478,7 @@

Context#<

Design#

LightRAG seeks to maximize developers’ control over the prompt. -Thus, in most cases we help developers gather together different sections and form them into one prompt. +Thus, in most cases, we help developers gather different sections and form them into one prompt. This prompt will then be send to the LLM as a single message. The default role of the message we use is system. Though it is not a special token, we use <SYS></SYS> to represent the system message in the prompt, which works quite well.

@@ -505,7 +505,7 @@

Data Flow in LLM applications

Why Jinja2?#

@@ -531,8 +531,8 @@

Why Jinja2?[1] as the templating engine for the prompt. -Besides of the placeholders using {{}} for key-word arguments, Jinja2 also allow users to write code similar to Python syntax. -This includes conditionals, loops, filters, and even comments that is lacked from Python’s native string formatting. +Besides the placeholders using {{}} for keyword arguments, Jinja2 also allow users to write code similar to Python syntax. +This includes conditionals, loops, filters, and even comments, which are lacking in Python’s native string formatting. Here is one example of using Jinja2 to format the prompt:

def jinja2_template_example(**kwargs):
    from jinja2 import Template
@@ -579,8 +579,8 @@ 

Why Jinja2?

Prompt class#

We created our Prompt Component to render the prompt with the string template and prompt_kwargs. -It is a rather simple component, but it is rather handy.

-

Let’s use the same template as above:

+It is a simple component, but it is quite handy. +Let’s use the same template as above:

Default Prompt Template#

-

In default, Prompt class uses the DEFAULT_LIGHTRAG_SYSTEM_PROMPT as its string template if no template is provided. -This default template will allow you conditionally passing seven important variables designed from the data flow diagram above. +

In default, the Prompt class uses the DEFAULT_LIGHTRAG_SYSTEM_PROMPT as its string template if no template is provided. +This default template allows you to conditionally passing seven important variables designed from the data flow diagram above. These varaibles are:

LIGHTRAG_DEFAULT_PROMPT_ARGS = [
    "task_desc_str",  # task description
@@ -636,7 +636,7 @@ 

Default Prompt Templateprint(output)

-

The output will be bare minimum with only the user query and a prefix for assistant to respond:

+

The output will be the bare minimum with only the user query and a prefix for assistant to respond:

<User>
 What is the capital of France?
 </User>
@@ -645,7 +645,7 @@ 

Default Prompt Template

Note

-

We barely need to use the raw Prompt class directly as it is orchestrated by the Generator component.

+

In reality, we barely need to use the raw Prompt class directly as it is orchestrated by the Generator component together with the ModelClient that we will introduce next.

References

diff --git a/searchindex.js b/searchindex.js index 51a0184a1..db0033dbb 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"1. Document Splitter": [[92, "document-splitter"]], "1. FunctionTool": [[94, "functiontool"]], "1. Install LightRAG": [[97, "install-lightrag"]], "2. Embedder": [[92, "embedder"]], "2. Set up API keys": [[97, "set-up-api-keys"]], "2. ToolManager": [[94, "toolmanager"]], "3. Function Call end-to-end": [[94, "function-call-end-to-end"]], "3. LightRAG Retrievers": [[92, "lightrag-retrievers"]], "3. Load environment variables": [[97, "load-environment-variables"]], "4. Install Optional Packages": [[97, "install-optional-packages"]], "API Reference": [[47, "api-reference"]], "API References": [[69, null], [70, null], [74, null], [88, null], [91, null], [94, null]], "API reference": [[72, null], [75, null], [78, null], [84, null]], "Adding Documentation Tests": [[66, "adding-documentation-tests"]], "Agent": [[69, "agent"]], "Agent Essentials": [[79, "agent-essentials"]], "Agents": [[24, "agents"]], "Author": [[70, null], [72, null], [74, null], [75, null], [77, null], [78, null], [84, null], [88, null], [91, null], [93, null], [94, null]], "BM25Retriever": [[91, "bm25retriever"]], "Base classes": [[79, "base-classes"]], "BatchEmbedder": [[75, "batchembedder"]], "Building": [[79, "building"]], "Chunking Example Detailed": [[93, "id2"]], "Class Hierarchy": [[71, "class-hierarchy"]], "Cloud database": [[74, "cloud-database"]], "Commit Changes": [[66, "commit-changes"]], "Community": [[95, "community"]], "Component": [[41, "component"], [72, "component"], [72, "id1"]], "Components": [[24, "components"], [47, "components"]], "Context": [[88, "context"], [91, "context"]], "Contribute to Document": [[66, "contribute-to-document"]], "Controllability": [[100, "controllability"]], "Core": [[41, "core"], [47, "core"]], "Customization Tips": [[93, "customization-tips"]], "DEFAULT_REACT_AGENT_SYSTEM_PROMPT": [[11, "default-react-agent-system-prompt"]], "Data & RAG": [[74, "data-rag"]], "Data Flow & LightRAG structure": [[81, "data-flow-lightrag-structure"]], "Data Flow in LLM applications": [[88, "data-flow-in-llm-applications"]], "Data Handling": [[41, "data-handling"]], "Data Models": [[74, "data-models"]], "Data Pipeline": [[73, "data-pipeline"], [74, "data-pipeline"]], "Data Pipeline and Storage": [[79, "data-pipeline-and-storage"]], "Data Process": [[24, "data-process"]], "DataClass": [[70, "dataclass"]], "DataClass in Action": [[70, "dataclass-in-action"]], "Datasets and Evaulation": [[79, null]], "Decorators": [[54, "decorators"]], "Default Prompt Template": [[88, "default-prompt-template"]], "Describe the data format to LLMs": [[70, "describe-the-data-format-to-llms"]], "Describing the Data Format": [[70, "describing-the-data-format"]], "Design": [[70, "design"], [88, "design"]], "Design Philosophy": [[80, "design-philosophy"]], "Design pattern": [[91, "design-pattern"]], "DialogTurn": [[74, "dialogturn"]], "Document": [[74, "document"]], "Embedder": [[75, "embedder"], [76, "embedder"]], "Embedder in Action": [[75, "embedder-in-action"]], "EmbedderOutput": [[75, "embedderoutput"]], "Embedding and Retrieval": [[41, "embedding-and-retrieval"]], "End-to-end applications": [[98, "end-to-end-applications"]], "Evaluating a RAG Pipeline": [[103, "evaluating-a-rag-pipeline"]], "Evaluation": [[46, "evaluation"], [47, "evaluation"]], "Evaluator": [[46, "evaluator"]], "For Contributors": [[68, "for-contributors"]], "Foundation": [[98, "foundation"]], "FunComponent": [[72, "funcomponent"]], "Function Call in Action": [[94, "function-call-in-action"]], "Function Output Format": [[94, "function-output-format"]], "Function calls": [[94, "function-calls"]], "FunctionExpression Output Format": [[94, "functionexpression-output-format"]], "Generation and Utilities": [[41, "generation-and-utilities"]], "Generator": [[78, "generator"]], "GeneratorInAction": [[78, "generatorinaction"]], "GeneratorOutput": [[78, "generatoroutput"]], "Get Started": [[96, "get-started"]], "Graph database": [[74, "graph-database"]], "How does it work": [[93, "how-does-it-work"]], "How to evaluate?": [[77, "how-to-evaluate"]], "How to start?": [[98, "how-to-start"]], "How to use it": [[93, "how-to-use-it"]], "In-memory FAISSRetriever": [[91, "in-memory-faissretriever"]], "Installation": [[97, "installation"]], "Integration with Other Document Types": [[93, "integration-with-other-document-types"]], "Introduction": [[81, "introduction"], [90, "introduction"], [98, "introduction"], [100, "introduction"]], "Introduction to BaseDataClass": [[105, "introduction-to-basedataclass"]], "Introduction to LLM applations": [[81, "introduction-to-llm-applations"]], "LLM Evaluation": [[77, "llm-evaluation"]], "LLM as Retriever": [[91, "llm-as-retriever"]], "LightRAG": [[98, "lightrag"]], "LightRAG Contribution Guide": [[67, "lightrag-contribution-guide"]], "LightRAG Scope and Design": [[94, "lightrag-scope-and-design"]], "LightRAG in 10 minutes": [[99, "lightrag-in-10-minutes"]], "LightRAG\u2019s Implementation": [[90, "lightrag-s-implementation"]], "Load data from dataset as example": [[70, "load-data-from-dataset-as-example"]], "Local database": [[74, "local-database"]], "Logger": [[58, "logger"]], "Loggers": [[54, "loggers"]], "Logging": [[82, "logging"]], "Logging & Tracing": [[83, "logging-tracing"]], "Logging & Tracing & Configurations": [[79, "logging-tracing-configurations"]], "Model Client": [[41, "model-client"]], "Model Clients": [[24, "model-clients"]], "Model Inference SDKs": [[84, "model-inference-sdks"]], "ModelClient": [[84, "modelclient"]], "ModelClient Protocol": [[84, "modelclient-protocol"]], "Optimizer": [[47, "optimizer"], [48, "optimizer"], [85, "optimizer"]], "Optimizer & Trainer": [[79, null]], "Optimizing": [[79, "optimizing"]], "Our deep understanding of LLM workflow": [[80, "our-deep-understanding-of-llm-workflow"]], "Output Parsers": [[24, "output-parsers"]], "OutputParser": [[86, "outputparser"]], "Overview": [[24, "overview"], [41, "overview"], [46, "overview"], [54, "overview"], [58, "overview"]], "Parallel Function Calls": [[94, "parallel-function-calls"]], "Parameter": [[87, "parameter"]], "Parameters": [[41, "parameters"]], "PostgresRetriever": [[91, "postgresretriever"]], "Principle 1: Quality over Quantity": [[80, "principle-1-quality-over-quantity"]], "Principle 2: Optimizing over Building": [[80, "principle-2-optimizing-over-building"]], "Principle 3: Practicality over Showmanship": [[80, "principle-3-practicality-over-showmanship"]], "Prompt": [[88, "prompt"]], "Prompt class": [[88, "prompt-class"]], "Prompts and Templates": [[41, "prompts-and-templates"]], "Quick Walkthrough": [[94, "quick-walkthrough"]], "RAG Essentials": [[79, "rag-essentials"]], "RAG application": [[89, "rag-application"]], "RAG components": [[79, "rag-components"]], "ReAct Agent": [[90, "react-agent"]], "ReAct Agent Deep Dive": [[90, "react-agent-deep-dive"]], "References": [[69, null], [70, null], [75, null], [88, null], [91, null], [94, null]], "Reranker as Retriever": [[91, "reranker-as-retriever"]], "Resources": [[81, "resources"], [101, "resources"], [102, "resources"]], "Retriever": [[91, "retriever"], [92, "retriever"]], "Retriever Base Class": [[91, "retriever-base-class"]], "Retriever Data Types": [[91, "retriever-data-types"]], "Retriever in Action": [[91, "retriever-in-action"]], "Retrievers": [[24, "retrievers"]], "Sequential": [[72, "sequential"]], "Serialization": [[58, "serialization"]], "Setup & Build Documentation": [[66, "setup-build-documentation"]], "Setup_env": [[58, "setup-env"]], "Show data examples & parse string to data instance": [[70, "show-data-examples-parse-string-to-data-instance"]], "Simplicity": [[100, "simplicity"]], "Souce Code Docstring Standard": [[66, "souce-code-docstring-standard"]], "Structure": [[98, "structure"]], "Submodules": [[12, "submodules"], [13, "submodules"], [16, "submodules"], [18, "submodules"], [20, "submodules"], [21, "submodules"], [22, "submodules"]], "Suggestion on File reading and writing": [[74, "suggestion-on-file-reading-and-writing"]], "Text Splitter": [[93, "text-splitter"]], "Text Splitting Options": [[92, "id4"]], "TextSplitter Overview": [[93, "textsplitter-overview"]], "Tracing": [[47, "tracing"], [54, "tracing"], [78, "tracing"]], "Training [Experimental]": [[78, "training-experimental"]], "Tutorials": [[79, "tutorials"]], "Unites both Research and Production": [[100, "unites-both-research-and-production"]], "Use Cases": [[104, "use-cases"]], "Use Local Model": [[75, "use-local-model"]], "Use ModelClient directly": [[84, "use-modelclient-directly"]], "Use OpenAI API": [[75, "use-openai-api"]], "Use Output Processors": [[75, "use-output-processors"]], "Use Score Threshold instead of top_k": [[91, "use-score-threshold-instead-of-top-k"]], "Use together with Database": [[91, "use-together-with-database"]], "Utils": [[47, "utils"], [58, "utils"]], "What is LightRAG?": [[98, "what-is-lightrag"]], "What is an agent and why you need it?": [[90, "what-is-an-agent-and-why-you-need-it"]], "What is not part of LightRAG?": [[98, "what-is-not-part-of-lightrag"]], "What to evaluate?": [[77, "what-to-evaluate"]], "Where to evaluate?": [[77, "where-to-evaluate"]], "Why Jinja2?": [[88, "why-jinja2"]], "Why do we need chat completion instead of the previous text completion?": [[81, "why-do-we-need-chat-completion-instead-of-the-previous-text-completion"]], "With LocalDB": [[91, "with-localdb"]], "Work with Data Instance": [[70, "work-with-data-instance"]], "Writing Documentation": [[66, "writing-documentation"]], "components.agent": [[12, "components-agent"]], "components.agent.react": [[0, "module-components.agent.react"]], "components.data_process": [[13, "components-data-process"]], "components.data_process.data_components": [[1, "module-components.data_process.data_components"], [14, "module-components.data_process.data_components"]], "components.data_process.text_splitter": [[2, "module-components.data_process.text_splitter"], [15, "module-components.data_process.text_splitter"]], "components.memory": [[16, "components-memory"]], "components.memory.memory": [[3, "module-components.memory.memory"], [17, "module-components.memory.memory"]], "components.model_client": [[18, "components-model-client"]], "components.model_client.transformers_client": [[4, "module-components.model_client.transformers_client"]], "components.model_client.utils": [[5, "module-components.model_client.utils"], [19, "module-components.model_client.utils"]], "components.output_parsers": [[20, "components-output-parsers"]], "components.output_parsers.outputs": [[6, "module-components.output_parsers.outputs"]], "components.reasoning": [[21, "components-reasoning"]], "components.reasoning.chain_of_thought": [[7, "module-components.reasoning.chain_of_thought"]], "components.retriever": [[22, "components-retriever"]], "components.retriever.bm25_retriever": [[8, "module-components.retriever.bm25_retriever"]], "components.retriever.llm_retriever": [[9, "module-components.retriever.llm_retriever"]], "components.retriever.postgres_retriever": [[23, "components-retriever-postgres-retriever"]], "components.retriever.reranker_retriever": [[10, "module-components.retriever.reranker_retriever"]], "core.base_data_class": [[25, "module-core.base_data_class"]], "core.component": [[26, "module-core.component"]], "core.db": [[27, "module-core.db"]], "core.default_prompt_template": [[28, "module-core.default_prompt_template"]], "core.embedder": [[29, "module-core.embedder"]], "core.func_tool": [[30, "module-core.func_tool"]], "core.functional": [[31, "module-core.functional"]], "core.generator": [[32, "module-core.generator"]], "core.model_client": [[33, "module-core.model_client"]], "core.parameter": [[34, "module-core.parameter"]], "core.prompt_builder": [[35, "module-core.prompt_builder"]], "core.retriever": [[36, "module-core.retriever"]], "core.string_parser": [[37, "module-core.string_parser"]], "core.tokenizer": [[38, "module-core.tokenizer"]], "core.tool_manager": [[39, "module-core.tool_manager"]], "core.types": [[40, "module-core.types"]], "eval.answer_match_acc": [[42, "module-eval.answer_match_acc"]], "eval.llm_as_judge": [[43, "module-eval.llm_as_judge"]], "eval.retriever_recall": [[44, "module-eval.retriever_recall"]], "eval.retriever_relevance": [[45, "module-eval.retriever_relevance"]], "optim.few_shot_optimizer": [[49, "module-optim.few_shot_optimizer"]], "optim.llm_augment": [[50, "module-optim.llm_augment"]], "optim.llm_optimizer": [[51, "module-optim.llm_optimizer"]], "optim.optimizer": [[52, "module-optim.optimizer"]], "optim.sampler": [[53, "module-optim.sampler"]], "tracing.decorators": [[55, "module-tracing.decorators"]], "tracing.generator_call_logger": [[56, "module-tracing.generator_call_logger"]], "tracing.generator_state_logger": [[57, "module-tracing.generator_state_logger"]], "utils.config": [[59, "module-utils.config"]], "utils.file_io": [[60, "module-utils.file_io"]], "utils.lazy_import": [[61, "module-utils.lazy_import"]], "utils.logger": [[62, "module-utils.logger"]], "utils.registry": [[63, "module-utils.registry"]], "utils.serialization": [[64, "module-utils.serialization"]], "utils.setup_env": [[65, "utils-setup-env"]]}, "docnames": ["apis/components/_autosummary/components.agent.react", "apis/components/_autosummary/components.data_process.data_components", "apis/components/_autosummary/components.data_process.text_splitter", "apis/components/_autosummary/components.memory.memory", "apis/components/_autosummary/components.model_client.transformers_client", "apis/components/_autosummary/components.model_client.utils", "apis/components/_autosummary/components.output_parsers.outputs", "apis/components/_autosummary/components.reasoning.chain_of_thought", "apis/components/_autosummary/components.retriever.bm25_retriever", "apis/components/_autosummary/components.retriever.llm_retriever", "apis/components/_autosummary/components.retriever.reranker_retriever", "apis/components/agent_prompt", "apis/components/components.agent", "apis/components/components.data_process", "apis/components/components.data_process.data_components", "apis/components/components.data_process.text_splitter", "apis/components/components.memory", "apis/components/components.memory.memory", "apis/components/components.model_client", "apis/components/components.model_client.utils", "apis/components/components.output_parsers", "apis/components/components.reasoning", "apis/components/components.retriever", "apis/components/components.retriever.postgres_retriever", "apis/components/index", "apis/core/core.base_data_class", "apis/core/core.component", "apis/core/core.db", "apis/core/core.default_prompt_template", "apis/core/core.embedder", "apis/core/core.func_tool", "apis/core/core.functional", "apis/core/core.generator", "apis/core/core.model_client", "apis/core/core.parameter", "apis/core/core.prompt_builder", "apis/core/core.retriever", "apis/core/core.string_parser", "apis/core/core.tokenizer", "apis/core/core.tool_manager", "apis/core/core.types", "apis/core/index", "apis/eval/eval.answer_match_acc", "apis/eval/eval.llm_as_judge", "apis/eval/eval.retriever_recall", "apis/eval/eval.retriever_relevance", "apis/eval/index", "apis/index", "apis/optim/index", "apis/optim/optim.few_shot_optimizer", "apis/optim/optim.llm_augment", "apis/optim/optim.llm_optimizer", "apis/optim/optim.optimizer", "apis/optim/optim.sampler", "apis/tracing/index", "apis/tracing/tracing.decorators", "apis/tracing/tracing.generator_call_logger", "apis/tracing/tracing.generator_state_logger", "apis/utils/index", "apis/utils/utils.config", "apis/utils/utils.file_io", "apis/utils/utils.lazy_import", "apis/utils/utils.logger", "apis/utils/utils.registry", "apis/utils/utils.serialization", "apis/utils/utils.setup_env", "contributor/contribute_to_document", "contributor/contribution_guide", "contributor/index", "developer_notes/agent", "developer_notes/base_data_class", "developer_notes/class_hierarchy", "developer_notes/component", "developer_notes/data_pipeline", "developer_notes/db", "developer_notes/embedder", "developer_notes/embedder_xy", "developer_notes/evaluation", "developer_notes/generator", "developer_notes/index", "developer_notes/lightrag_design_philosophy", "developer_notes/llm_intro", "developer_notes/logging", "developer_notes/logging_tracing", "developer_notes/model_client", "developer_notes/optimizer", "developer_notes/output_parsers", "developer_notes/parameter", "developer_notes/prompt", "developer_notes/rag", "developer_notes/react_agent_xy", "developer_notes/retriever", "developer_notes/retriever_xy", "developer_notes/text_splitter", "developer_notes/tool_helper", "get_started/community", "get_started/index", "get_started/installation", "get_started/introduction", "get_started/lightrag_in_10_mins", "index", "resources/index", "resources/resources", "tutorials/eval_a_rag", "tutorials/index", "tutorials/introduction_to_basedataclass", "tutorials/logging"], "envversion": {"nbsphinx": 4, "sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["apis/components/_autosummary/components.agent.react.rst", "apis/components/_autosummary/components.data_process.data_components.rst", "apis/components/_autosummary/components.data_process.text_splitter.rst", "apis/components/_autosummary/components.memory.memory.rst", "apis/components/_autosummary/components.model_client.transformers_client.rst", "apis/components/_autosummary/components.model_client.utils.rst", "apis/components/_autosummary/components.output_parsers.outputs.rst", "apis/components/_autosummary/components.reasoning.chain_of_thought.rst", "apis/components/_autosummary/components.retriever.bm25_retriever.rst", "apis/components/_autosummary/components.retriever.llm_retriever.rst", "apis/components/_autosummary/components.retriever.reranker_retriever.rst", "apis/components/agent_prompt.rst", "apis/components/components.agent.rst", "apis/components/components.data_process.rst", "apis/components/components.data_process.data_components.rst", "apis/components/components.data_process.text_splitter.rst", "apis/components/components.memory.rst", "apis/components/components.memory.memory.rst", "apis/components/components.model_client.rst", "apis/components/components.model_client.utils.rst", "apis/components/components.output_parsers.rst", "apis/components/components.reasoning.rst", "apis/components/components.retriever.rst", "apis/components/components.retriever.postgres_retriever.rst", "apis/components/index.rst", "apis/core/core.base_data_class.rst", "apis/core/core.component.rst", "apis/core/core.db.rst", "apis/core/core.default_prompt_template.rst", "apis/core/core.embedder.rst", "apis/core/core.func_tool.rst", "apis/core/core.functional.rst", "apis/core/core.generator.rst", "apis/core/core.model_client.rst", "apis/core/core.parameter.rst", "apis/core/core.prompt_builder.rst", "apis/core/core.retriever.rst", "apis/core/core.string_parser.rst", "apis/core/core.tokenizer.rst", "apis/core/core.tool_manager.rst", "apis/core/core.types.rst", "apis/core/index.rst", "apis/eval/eval.answer_match_acc.rst", "apis/eval/eval.llm_as_judge.rst", "apis/eval/eval.retriever_recall.rst", "apis/eval/eval.retriever_relevance.rst", "apis/eval/index.rst", "apis/index.rst", "apis/optim/index.rst", "apis/optim/optim.few_shot_optimizer.rst", "apis/optim/optim.llm_augment.rst", "apis/optim/optim.llm_optimizer.rst", "apis/optim/optim.optimizer.rst", "apis/optim/optim.sampler.rst", "apis/tracing/index.rst", "apis/tracing/tracing.decorators.rst", "apis/tracing/tracing.generator_call_logger.rst", "apis/tracing/tracing.generator_state_logger.rst", "apis/utils/index.rst", "apis/utils/utils.config.rst", "apis/utils/utils.file_io.rst", "apis/utils/utils.lazy_import.rst", "apis/utils/utils.logger.rst", "apis/utils/utils.registry.rst", "apis/utils/utils.serialization.rst", "apis/utils/utils.setup_env.rst", "contributor/contribute_to_document.rst", "contributor/contribution_guide.rst", "contributor/index.rst", "developer_notes/agent.rst", "developer_notes/base_data_class.rst", "developer_notes/class_hierarchy.rst", "developer_notes/component.rst", "developer_notes/data_pipeline.rst", "developer_notes/db.rst", "developer_notes/embedder.rst", "developer_notes/embedder_xy.rst", "developer_notes/evaluation.rst", "developer_notes/generator.rst", "developer_notes/index.rst", "developer_notes/lightrag_design_philosophy.rst", "developer_notes/llm_intro.rst", "developer_notes/logging.rst", "developer_notes/logging_tracing.rst", "developer_notes/model_client.rst", "developer_notes/optimizer.rst", "developer_notes/output_parsers.rst", "developer_notes/parameter.rst", "developer_notes/prompt.rst", "developer_notes/rag.rst", "developer_notes/react_agent_xy.rst", "developer_notes/retriever.rst", "developer_notes/retriever_xy.rst", "developer_notes/text_splitter.rst", "developer_notes/tool_helper.rst", "get_started/community.rst", "get_started/index.rst", "get_started/installation.rst", "get_started/introduction.rst", "get_started/lightrag_in_10_mins.rst", "index.rst", "resources/index.rst", "resources/resources.rst", "tutorials/eval_a_rag.rst", "tutorials/index.rst", "tutorials/introduction_to_basedataclass.rst", "tutorials/logging.rst"], "indexentries": {"acall() (component method)": [[26, "core.component.Component.acall", false]], "acall() (embedder method)": [[29, "core.embedder.Embedder.acall", false]], "acall() (functiontool method)": [[30, "core.func_tool.FunctionTool.acall", false]], "acall() (generator method)": [[32, "core.generator.Generator.acall", false]], "acall() (modelclient method)": [[33, "core.model_client.ModelClient.acall", false]], "acall() (retriever method)": [[36, "core.retriever.Retriever.acall", false]], "action (functionexpression attribute)": [[40, "core.types.FunctionExpression.action", false]], "action (stepoutput attribute)": [[40, "core.types.StepOutput.action", false]], "add() (localdb method)": [[27, "core.db.LocalDB.add", false]], "add_component() (component method)": [[26, "core.component.Component.add_component", false]], "answermatchacc (class in eval.answer_match_acc)": [[42, "eval.answer_match_acc.AnswerMatchAcc", false]], "anthropic (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.ANTHROPIC", false]], "append() (sequential method)": [[26, "core.component.Sequential.append", false]], "append_dialog_turn() (conversation method)": [[40, "core.types.Conversation.append_dialog_turn", false]], "append_to_jsonl() (in module utils.file_io)": [[60, "utils.file_io.append_to_jsonl", false]], "args (function attribute)": [[40, "core.types.Function.args", false]], "assistant_response (dialogturn attribute)": [[40, "core.types.DialogTurn.assistant_response", false]], "assistant_response_timestamp (dialogturn attribute)": [[40, "core.types.DialogTurn.assistant_response_timestamp", false]], "assistantresponse (class in core.types)": [[40, "core.types.AssistantResponse", false]], "augment_samples() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.augment_samples", false]], "average_pool() (in module components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.average_pool", false]], "batchembedder (class in core.embedder)": [[29, "core.embedder.BatchEmbedder", false]], "bm25retriever (class in components.retriever)": [[22, "components.retriever.BM25Retriever", false]], "bm25retriever (class in components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.BM25Retriever", false]], "booleanoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.BooleanOutputParser", false]], "bootstrapfewshot (class in optim.few_shot_optimizer)": [[49, "optim.few_shot_optimizer.BootstrapFewShot", false]], "build_index_from_documents() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.build_index_from_documents", false], [22, "components.retriever.BM25Retriever.build_index_from_documents", false]], "build_index_from_documents() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.build_index_from_documents", false], [22, "components.retriever.LLMRetriever.build_index_from_documents", false]], "build_index_from_documents() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.build_index_from_documents", false], [22, "components.retriever.RerankerRetriever.build_index_from_documents", false]], "build_index_from_documents() (retriever method)": [[36, "core.retriever.Retriever.build_index_from_documents", false]], "call() (batchembedder method)": [[29, "core.embedder.BatchEmbedder.call", false]], "call() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.call", false], [22, "components.retriever.BM25Retriever.call", false]], "call() (booleanoutputparser method)": [[6, "components.output_parsers.outputs.BooleanOutputParser.call", false]], "call() (classsampler method)": [[53, "optim.sampler.ClassSampler.call", false]], "call() (component method)": [[26, "core.component.Component.call", false]], "call() (defaultllmjudge method)": [[43, "eval.llm_as_judge.DefaultLLMJudge.call", false]], "call() (embedder method)": [[29, "core.embedder.Embedder.call", false]], "call() (funcomponent method)": [[26, "core.component.FunComponent.call", false]], "call() (functiontool method)": [[30, "core.func_tool.FunctionTool.call", false]], "call() (generator method)": [[32, "core.generator.Generator.call", false]], "call() (jsonoutputparser method)": [[6, "components.output_parsers.outputs.JsonOutputParser.call", false], [20, "components.output_parsers.JsonOutputParser.call", false]], "call() (jsonparser method)": [[37, "core.string_parser.JsonParser.call", false]], "call() (listoutputparser method)": [[6, "components.output_parsers.outputs.ListOutputParser.call", false], [20, "components.output_parsers.ListOutputParser.call", false]], "call() (llmaugmenter method)": [[50, "optim.llm_augment.LLMAugmenter.call", false]], "call() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.call", false], [22, "components.retriever.LLMRetriever.call", false]], "call() (modelclient method)": [[33, "core.model_client.ModelClient.call", false]], "call() (outputparser method)": [[6, "components.output_parsers.outputs.OutputParser.call", false]], "call() (prompt method)": [[35, "core.prompt_builder.Prompt.call", false]], "call() (randomsampler method)": [[53, "optim.sampler.RandomSampler.call", false]], "call() (reactagent method)": [[0, "components.agent.react.ReActAgent.call", false], [12, "components.agent.ReActAgent.call", false]], "call() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.call", false], [22, "components.retriever.RerankerRetriever.call", false]], "call() (retriever method)": [[36, "core.retriever.Retriever.call", false]], "call() (sampler method)": [[53, "optim.sampler.Sampler.call", false]], "call() (sequential method)": [[26, "core.component.Sequential.call", false]], "call() (textsplitter method)": [[2, "components.data_process.text_splitter.TextSplitter.call", false], [13, "components.data_process.TextSplitter.call", false], [15, "components.data_process.text_splitter.TextSplitter.call", false]], "call() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.call", false]], "call() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.call", false]], "call() (yamloutputparser method)": [[6, "components.output_parsers.outputs.YamlOutputParser.call", false], [20, "components.output_parsers.YamlOutputParser.call", false]], "call() (yamlparser method)": [[37, "core.string_parser.YamlParser.call", false]], "check_object() (in module utils.serialization)": [[64, "utils.serialization.check_object", false]], "children() (component method)": [[26, "core.component.Component.children", false]], "class (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.CLASS", false]], "classsampler (class in optim.sampler)": [[53, "optim.sampler.ClassSampler", false]], "cohere (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.COHERE", false]], "component (class in core.component)": [[26, "core.component.Component", false]], "components() (component method)": [[26, "core.component.Component.components", false]], "components.agent": [[12, "module-components.agent", false]], "components.agent.react": [[0, "module-components.agent.react", false]], "components.data_process": [[13, "module-components.data_process", false]], "components.data_process.data_components": [[1, "module-components.data_process.data_components", false], [14, "module-components.data_process.data_components", false]], "components.data_process.text_splitter": [[2, "module-components.data_process.text_splitter", false], [15, "module-components.data_process.text_splitter", false]], "components.memory": [[16, "module-components.memory", false]], "components.memory.memory": [[3, "module-components.memory.memory", false], [17, "module-components.memory.memory", false]], "components.model_client": [[18, "module-components.model_client", false]], "components.model_client.transformers_client": [[4, "module-components.model_client.transformers_client", false]], "components.model_client.utils": [[5, "module-components.model_client.utils", false], [19, "module-components.model_client.utils", false]], "components.output_parsers": [[20, "module-components.output_parsers", false]], "components.output_parsers.outputs": [[6, "module-components.output_parsers.outputs", false]], "components.reasoning": [[21, "module-components.reasoning", false]], "components.reasoning.chain_of_thought": [[7, "module-components.reasoning.chain_of_thought", false]], "components.retriever": [[22, "module-components.retriever", false]], "components.retriever.bm25_retriever": [[8, "module-components.retriever.bm25_retriever", false]], "components.retriever.llm_retriever": [[9, "module-components.retriever.llm_retriever", false]], "components.retriever.reranker_retriever": [[10, "module-components.retriever.reranker_retriever", false]], "compose_model_kwargs() (in module core.functional)": [[31, "core.functional.compose_model_kwargs", false]], "compose_prompt_kwargs() (prompt method)": [[35, "core.prompt_builder.Prompt.compose_prompt_kwargs", false]], "compute() (answermatchacc method)": [[42, "eval.answer_match_acc.AnswerMatchAcc.compute", false]], "compute() (llmasjudge method)": [[43, "eval.llm_as_judge.LLMasJudge.compute", false]], "compute() (retrieverrecall method)": [[44, "eval.retriever_recall.RetrieverRecall.compute", false]], "compute() (retrieverrelevance method)": [[45, "eval.retriever_relevance.RetrieverRelevance.compute", false]], "conversation (class in core.types)": [[40, "core.types.Conversation", false]], "conversation_id (dialogturn attribute)": [[40, "core.types.DialogTurn.conversation_id", false]], "convert_inputs_to_api_kwargs() (modelclient method)": [[33, "core.model_client.ModelClient.convert_inputs_to_api_kwargs", false]], "convert_inputs_to_api_kwargs() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.convert_inputs_to_api_kwargs", false]], "convert_schema_to_signature() (in module core.functional)": [[31, "core.functional.convert_schema_to_signature", false]], "core.base_data_class": [[25, "module-core.base_data_class", false]], "core.component": [[26, "module-core.component", false]], "core.db": [[27, "module-core.db", false]], "core.default_prompt_template": [[28, "module-core.default_prompt_template", false]], "core.embedder": [[29, "module-core.embedder", false]], "core.func_tool": [[30, "module-core.func_tool", false]], "core.functional": [[31, "module-core.functional", false]], "core.generator": [[32, "module-core.generator", false]], "core.model_client": [[33, "module-core.model_client", false]], "core.parameter": [[34, "module-core.parameter", false]], "core.prompt_builder": [[35, "module-core.prompt_builder", false]], "core.retriever": [[36, "module-core.retriever", false]], "core.string_parser": [[37, "module-core.string_parser", false]], "core.tokenizer": [[38, "module-core.tokenizer", false]], "core.tool_manager": [[39, "module-core.tool_manager", false]], "core.types": [[40, "module-core.types", false]], "cotgenerator (class in components.reasoning.chain_of_thought)": [[7, "components.reasoning.chain_of_thought.CoTGenerator", false]], "cotgeneratorwithjsonoutput (class in components.reasoning.chain_of_thought)": [[7, "components.reasoning.chain_of_thought.CoTGeneratorWithJsonOutput", false]], "count_tokens() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.count_tokens", false]], "create_from_dict() (dynamicdataclassfactory static method)": [[25, "core.base_data_class.DynamicDataClassFactory.create_from_dict", false]], "created_at (conversation attribute)": [[40, "core.types.Conversation.created_at", false]], "custom_asdict() (in module core.functional)": [[31, "core.functional.custom_asdict", false]], "data (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.data", false]], "data (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.data", false]], "data (sample attribute)": [[53, "optim.sampler.Sample.data", false]], "dataclass (class in core.base_data_class)": [[25, "core.base_data_class.DataClass", false]], "dataclass_obj_from_dict() (in module core.functional)": [[31, "core.functional.dataclass_obj_from_dict", false]], "dataclassformattype (class in core.base_data_class)": [[25, "core.base_data_class.DataClassFormatType", false]], "dataset (randomsampler attribute)": [[53, "optim.sampler.RandomSampler.dataset", false]], "decode() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.decode", false]], "default() (in module utils.serialization)": [[64, "utils.serialization.default", false]], "default_lightrag_system_prompt (in module core.default_prompt_template)": [[28, "core.default_prompt_template.DEFAULT_LIGHTRAG_SYSTEM_PROMPT", false]], "defaultllmjudge (class in eval.llm_as_judge)": [[43, "eval.llm_as_judge.DefaultLLMJudge", false]], "delete() (localdb method)": [[27, "core.db.LocalDB.delete", false]], "delete_dialog_turn() (conversation method)": [[40, "core.types.Conversation.delete_dialog_turn", false]], "deserialize() (in module utils.serialization)": [[64, "utils.serialization.deserialize", false]], "dialog_turns (conversation attribute)": [[40, "core.types.Conversation.dialog_turns", false]], "dialog_turns_input (conversation attribute)": [[40, "core.types.Conversation.dialog_turns_input", false]], "dialogturn (class in core.types)": [[40, "core.types.DialogTurn", false]], "doc_indices (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.doc_indices", false]], "doc_scores (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.doc_scores", false]], "document (class in core.types)": [[40, "core.types.Document", false]], "documents (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.documents", false]], "dynamicdataclassfactory (class in core.base_data_class)": [[25, "core.base_data_class.DynamicDataClassFactory", false]], "embedder (class in core.embedder)": [[29, "core.embedder.Embedder", false]], "embedder (modeltype attribute)": [[40, "core.types.ModelType.EMBEDDER", false]], "embedderoutput (class in core.types)": [[40, "core.types.EmbedderOutput", false]], "embedderoutputtype (in module core.types)": [[40, "core.types.EmbedderOutputType", false]], "embedding (class in core.types)": [[40, "core.types.Embedding", false]], "embedding (embedding attribute)": [[40, "core.types.Embedding.embedding", false]], "embedding_dim (embedderoutput property)": [[40, "core.types.EmbedderOutput.embedding_dim", false]], "enable_library_logging() (in module utils.logger)": [[62, "utils.logger.enable_library_logging", false]], "encode() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.encode", false]], "entitymapping (class in utils.registry)": [[63, "utils.registry.EntityMapping", false]], "error (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.error", false]], "error (functionoutput attribute)": [[40, "core.types.FunctionOutput.error", false]], "error (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.error", false]], "estimated_num_tokens (document attribute)": [[40, "core.types.Document.estimated_num_tokens", false]], "eval() (component method)": [[26, "core.component.Component.eval", false]], "eval.answer_match_acc": [[42, "module-eval.answer_match_acc", false]], "eval.llm_as_judge": [[43, "module-eval.llm_as_judge", false]], "eval.retriever_recall": [[44, "module-eval.retriever_recall", false]], "eval.retriever_relevance": [[45, "module-eval.retriever_relevance", false]], "evaluate_ast_node() (in module core.functional)": [[31, "core.functional.evaluate_ast_node", false]], "example_json (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.EXAMPLE_JSON", false]], "example_yaml (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.EXAMPLE_YAML", false]], "execute() (functiontool method)": [[30, "core.func_tool.FunctionTool.execute", false]], "execute_func() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func", false]], "execute_func_expr() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr", false]], "execute_func_expr_via_eval() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr_via_eval", false]], "execute_func_expr_via_sandbox() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr_via_sandbox", false]], "extend() (localdb method)": [[27, "core.db.LocalDB.extend", false]], "extract_dataclass_type() (in module core.functional)": [[31, "core.functional.extract_dataclass_type", false]], "extract_json_str() (in module core.functional)": [[31, "core.functional.extract_json_str", false]], "extract_list_str() (in module core.functional)": [[31, "core.functional.extract_list_str", false]], "extract_yaml_str() (in module core.functional)": [[31, "core.functional.extract_yaml_str", false]], "faiss (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.FAISS", false]], "fetch_items() (localdb method)": [[27, "core.db.LocalDB.fetch_items", false]], "fetch_transformed_items() (localdb method)": [[27, "core.db.LocalDB.fetch_transformed_items", false]], "fix_json_escaped_single_quotes() (in module core.functional)": [[31, "core.functional.fix_json_escaped_single_quotes", false]], "fix_json_missing_commas() (in module core.functional)": [[31, "core.functional.fix_json_missing_commas", false]], "fn_schema_str() (functiondefinition method)": [[40, "core.types.FunctionDefinition.fn_schema_str", false]], "format_class_str() (dataclass class method)": [[25, "core.base_data_class.DataClass.format_class_str", false]], "format_example_str() (dataclass method)": [[25, "core.base_data_class.DataClass.format_example_str", false]], "format_instructions() (booleanoutputparser method)": [[6, "components.output_parsers.outputs.BooleanOutputParser.format_instructions", false]], "format_instructions() (jsonoutputparser method)": [[6, "components.output_parsers.outputs.JsonOutputParser.format_instructions", false], [20, "components.output_parsers.JsonOutputParser.format_instructions", false]], "format_instructions() (listoutputparser method)": [[6, "components.output_parsers.outputs.ListOutputParser.format_instructions", false], [20, "components.output_parsers.ListOutputParser.format_instructions", false]], "format_instructions() (outputparser method)": [[6, "components.output_parsers.outputs.OutputParser.format_instructions", false]], "format_instructions() (yamloutputparser method)": [[6, "components.output_parsers.outputs.YamlOutputParser.format_instructions", false], [20, "components.output_parsers.YamlOutputParser.format_instructions", false]], "from_config() (component class method)": [[26, "core.component.Component.from_config", false]], "from_config() (embedder class method)": [[29, "core.embedder.Embedder.from_config", false]], "from_config() (generator class method)": [[32, "core.generator.Generator.from_config", false]], "from_dict() (component class method)": [[26, "core.component.Component.from_dict", false]], "from_dict() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_dict", false]], "from_dict() (document class method)": [[40, "core.types.Document.from_dict", false]], "from_dict() (prompt class method)": [[35, "core.prompt_builder.Prompt.from_dict", false]], "from_dict_to_json() (in module core.functional)": [[31, "core.functional.from_dict_to_json", false]], "from_dict_to_yaml() (in module core.functional)": [[31, "core.functional.from_dict_to_yaml", false]], "from_function() (functionexpression class method)": [[40, "core.types.FunctionExpression.from_function", false]], "from_json() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_json", false]], "from_json_to_dict() (in module core.functional)": [[31, "core.functional.from_json_to_dict", false]], "from_yaml() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_yaml", false]], "from_yaml_to_dict() (in module core.functional)": [[31, "core.functional.from_yaml_to_dict", false]], "fun_args (stepoutput attribute)": [[40, "core.types.StepOutput.fun_args", false]], "fun_kwargs (stepoutput attribute)": [[40, "core.types.StepOutput.fun_kwargs", false]], "fun_name (stepoutput attribute)": [[40, "core.types.StepOutput.fun_name", false]], "fun_to_component() (in module core.component)": [[26, "core.component.fun_to_component", false]], "func_desc (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_desc", false]], "func_name (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_name", false]], "func_parameters (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_parameters", false]], "funcomponent (class in core.component)": [[26, "core.component.FunComponent", false]], "function (class in core.types)": [[40, "core.types.Function", false]], "function_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.function_definitions", false]], "functiondefinition (class in core.types)": [[40, "core.types.FunctionDefinition", false]], "functionexpression (class in core.types)": [[40, "core.types.FunctionExpression", false]], "functionoutput (class in core.types)": [[40, "core.types.FunctionOutput", false]], "functiontool (class in core.func_tool)": [[30, "core.func_tool.FunctionTool", false]], "generate_function_call_expression_from_callable() (in module core.functional)": [[31, "core.functional.generate_function_call_expression_from_callable", false]], "generate_readable_key_for_function() (in module core.functional)": [[31, "core.functional.generate_readable_key_for_function", false]], "generator (class in core.generator)": [[32, "core.generator.Generator", false]], "generator_names (generatorstatelogger property)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.generator_names", false]], "generator_names_to_files (generatorcalllogger property)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.generator_names_to_files", false]], "generatorcalllogger (class in tracing.generator_call_logger)": [[56, "tracing.generator_call_logger.GeneratorCallLogger", false]], "generatorcallrecord (class in tracing.generator_call_logger)": [[56, "tracing.generator_call_logger.GeneratorCallRecord", false]], "generatoroutput (class in core.types)": [[40, "core.types.GeneratorOutput", false]], "generatorstatelogger (class in tracing.generator_state_logger)": [[57, "tracing.generator_state_logger.GeneratorStateLogger", false]], "generatorstatesrecord (class in tracing.generator_state_logger)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord", false]], "get() (entitymapping class method)": [[63, "utils.registry.EntityMapping.get", false]], "get_all() (entitymapping class method)": [[63, "utils.registry.EntityMapping.get_all", false]], "get_calls() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.get_calls", false]], "get_chat_history_str() (conversation method)": [[40, "core.types.Conversation.get_chat_history_str", false]], "get_current_script_and_line() (in module utils.logger)": [[62, "utils.logger.get_current_script_and_line", false]], "get_dataclass_schema() (in module core.functional)": [[31, "core.functional.get_dataclass_schema", false]], "get_dialog_turns() (conversation method)": [[40, "core.types.Conversation.get_dialog_turns", false]], "get_fun_schema() (in module core.functional)": [[31, "core.functional.get_fun_schema", false]], "get_jinja2_environment() (in module core.prompt_builder)": [[35, "core.prompt_builder.get_jinja2_environment", false]], "get_log_location() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.get_log_location", false]], "get_log_location() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.get_log_location", false]], "get_logger() (in module utils.logger)": [[62, "utils.logger.get_logger", false]], "get_model_args() (in module core.types)": [[40, "core.types.get_model_args", false]], "get_next_order() (conversation method)": [[40, "core.types.Conversation.get_next_order", false]], "get_prompt_variables() (prompt method)": [[35, "core.prompt_builder.Prompt.get_prompt_variables", false]], "get_string_tokens() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.get_string_tokens", false]], "get_subcomponent() (component method)": [[26, "core.component.Component.get_subcomponent", false]], "get_top_k_indices_scores() (in module core.functional)": [[31, "core.functional.get_top_k_indices_scores", false]], "get_transformed_data() (localdb method)": [[27, "core.db.LocalDB.get_transformed_data", false]], "get_transformer_keys() (localdb method)": [[27, "core.db.LocalDB.get_transformer_keys", false]], "get_type_schema() (in module core.functional)": [[31, "core.functional.get_type_schema", false]], "google_generativeai (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.GOOGLE_GENERATIVEAI", false]], "groq (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.GROQ", false]], "gts (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.gts", false]], "id (conversation attribute)": [[40, "core.types.Conversation.id", false]], "id (dialogturn attribute)": [[40, "core.types.DialogTurn.id", false]], "id (document attribute)": [[40, "core.types.Document.id", false]], "index (embedding attribute)": [[40, "core.types.Embedding.index", false]], "index (sample attribute)": [[53, "optim.sampler.Sample.index", false]], "index_keys (retriever attribute)": [[36, "core.retriever.Retriever.index_keys", false]], "indexed (retriever attribute)": [[36, "core.retriever.Retriever.indexed", false]], "infer_bge_reranker_base() (transformerreranker method)": [[4, "components.model_client.transformers_client.TransformerReranker.infer_bge_reranker_base", false]], "infer_gte_base_embedding() (transformerembedder method)": [[4, "components.model_client.transformers_client.TransformerEmbedder.infer_gte_base_embedding", false]], "init() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.init", false]], "init_async_client() (modelclient method)": [[33, "core.model_client.ModelClient.init_async_client", false]], "init_llm_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_llm_client", false]], "init_model() (transformerembedder method)": [[4, "components.model_client.transformers_client.TransformerEmbedder.init_model", false]], "init_model() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.init_model", false]], "init_model() (transformerreranker method)": [[4, "components.model_client.transformers_client.TransformerReranker.init_model", false]], "init_reranker_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_reranker_client", false]], "init_sync_client() (modelclient method)": [[33, "core.model_client.ModelClient.init_sync_client", false]], "init_sync_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_sync_client", false]], "input (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.input", false]], "input (functionoutput attribute)": [[40, "core.types.FunctionOutput.input", false]], "instance (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.INSTANCE", false]], "instruction (class in optim.llm_optimizer)": [[51, "optim.llm_optimizer.Instruction", false]], "is_dataclass_instance() (in module core.functional)": [[31, "core.functional.is_dataclass_instance", false]], "is_key_in_template() (prompt method)": [[35, "core.prompt_builder.Prompt.is_key_in_template", false]], "is_normalized (embedderoutput property)": [[40, "core.types.EmbedderOutput.is_normalized", false]], "is_normalized() (in module core.functional)": [[31, "core.functional.is_normalized", false]], "is_picklable() (component method)": [[26, "core.component.Component.is_picklable", false]], "is_potential_dataclass() (in module core.functional)": [[31, "core.functional.is_potential_dataclass", false]], "is_running_in_event_loop() (in module core.func_tool)": [[30, "core.func_tool.is_running_in_event_loop", false]], "items (localdb attribute)": [[27, "core.db.LocalDB.items", false]], "json_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.json_definitions", false]], "jsonoutputparser (class in components.output_parsers)": [[20, "components.output_parsers.JsonOutputParser", false]], "jsonoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.JsonOutputParser", false]], "jsonparser (class in core.string_parser)": [[37, "core.string_parser.JsonParser", false]], "kwargs (function attribute)": [[40, "core.types.Function.kwargs", false]], "lazyimport (class in utils.lazy_import)": [[61, "utils.lazy_import.LazyImport", false]], "length (embedderoutput property)": [[40, "core.types.EmbedderOutput.length", false]], "length (localdb property)": [[27, "core.db.LocalDB.length", false]], "listoutputparser (class in components.output_parsers)": [[20, "components.output_parsers.ListOutputParser", false]], "listoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.ListOutputParser", false]], "listparser (class in core.string_parser)": [[37, "core.string_parser.ListParser", false]], "llm (modeltype attribute)": [[40, "core.types.ModelType.LLM", false]], "llmasjudge (class in eval.llm_as_judge)": [[43, "eval.llm_as_judge.LLMasJudge", false]], "llmaugmenter (class in optim.llm_augment)": [[50, "optim.llm_augment.LLMAugmenter", false]], "llmoptimizer (class in optim.llm_optimizer)": [[51, "optim.llm_optimizer.LLMOptimizer", false]], "llmretriever (class in components.retriever)": [[22, "components.retriever.LLMRetriever", false]], "llmretriever (class in components.retriever.llm_retriever)": [[9, "components.retriever.llm_retriever.LLMRetriever", false]], "load() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.load", false]], "load() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.load", false]], "load() (in module utils.file_io)": [[60, "utils.file_io.load", false]], "load() (localdb method)": [[27, "core.db.LocalDB.load", false]], "load_from_file() (bm25retriever class method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.load_from_file", false], [22, "components.retriever.BM25Retriever.load_from_file", false]], "load_from_file() (retriever class method)": [[36, "core.retriever.Retriever.load_from_file", false]], "load_from_pickle() (component class method)": [[26, "core.component.Component.load_from_pickle", false]], "load_json() (in module utils.file_io)": [[60, "utils.file_io.load_json", false]], "load_jsonl() (in module utils.file_io)": [[60, "utils.file_io.load_jsonl", false]], "load_meta_data() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.load_meta_data", false]], "load_pickle() (in module utils.file_io)": [[60, "utils.file_io.load_pickle", false]], "load_state() (localdb class method)": [[27, "core.db.LocalDB.load_state", false]], "load_state_dict() (component method)": [[26, "core.component.Component.load_state_dict", false]], "load_state_pickle() (component class method)": [[26, "core.component.Component.load_state_pickle", false]], "localdb (class in core.db)": [[27, "core.db.LocalDB", false]], "log_call() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.log_call", false]], "log_prompt() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.log_prompt", false]], "logprob (tokenlogprob attribute)": [[40, "core.types.TokenLogProb.logprob", false]], "mapper_setups (localdb attribute)": [[27, "core.db.LocalDB.mapper_setups", false]], "memory (class in components.memory.memory)": [[3, "components.memory.memory.Memory", false], [17, "components.memory.memory.Memory", false]], "meta_data (document attribute)": [[40, "core.types.Document.meta_data", false]], "metadata (assistantresponse attribute)": [[40, "core.types.AssistantResponse.metadata", false]], "metadata (conversation attribute)": [[40, "core.types.Conversation.metadata", false]], "metadata (dialogturn attribute)": [[40, "core.types.DialogTurn.metadata", false]], "metadata (userquery attribute)": [[40, "core.types.UserQuery.metadata", false]], "model (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.model", false]], "model_client (embedder attribute)": [[29, "core.embedder.Embedder.model_client", false]], "model_client (generator attribute)": [[32, "core.generator.Generator.model_client", false]], "model_kwargs (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.model_kwargs", false]], "model_type (embedder attribute)": [[29, "core.embedder.Embedder.model_type", false]], "model_type (generator attribute)": [[32, "core.generator.Generator.model_type", false]], "modelclient (class in core.model_client)": [[33, "core.model_client.ModelClient", false]], "modelclienttype (class in core.types)": [[40, "core.types.ModelClientType", false]], "models (transformerembedder attribute)": [[4, "components.model_client.transformers_client.TransformerEmbedder.models", false]], "models (transformerllm attribute)": [[4, "components.model_client.transformers_client.TransformerLLM.models", false]], "models (transformerreranker attribute)": [[4, "components.model_client.transformers_client.TransformerReranker.models", false]], "modeltype (class in core.types)": [[40, "core.types.ModelType", false]], "module": [[0, "module-components.agent.react", false], [1, "module-components.data_process.data_components", false], [2, "module-components.data_process.text_splitter", false], [3, "module-components.memory.memory", false], [4, "module-components.model_client.transformers_client", false], [5, "module-components.model_client.utils", false], [6, "module-components.output_parsers.outputs", false], [7, "module-components.reasoning.chain_of_thought", false], [8, "module-components.retriever.bm25_retriever", false], [9, "module-components.retriever.llm_retriever", false], [10, "module-components.retriever.reranker_retriever", false], [12, "module-components.agent", false], [13, "module-components.data_process", false], [14, "module-components.data_process.data_components", false], [15, "module-components.data_process.text_splitter", false], [16, "module-components.memory", false], [17, "module-components.memory.memory", false], [18, "module-components.model_client", false], [19, "module-components.model_client.utils", false], [20, "module-components.output_parsers", false], [21, "module-components.reasoning", false], [22, "module-components.retriever", false], [25, "module-core.base_data_class", false], [26, "module-core.component", false], [27, "module-core.db", false], [28, "module-core.default_prompt_template", false], [29, "module-core.embedder", false], [30, "module-core.func_tool", false], [31, "module-core.functional", false], [32, "module-core.generator", false], [33, "module-core.model_client", false], [34, "module-core.parameter", false], [35, "module-core.prompt_builder", false], [36, "module-core.retriever", false], [37, "module-core.string_parser", false], [38, "module-core.tokenizer", false], [39, "module-core.tool_manager", false], [40, "module-core.types", false], [42, "module-eval.answer_match_acc", false], [43, "module-eval.llm_as_judge", false], [44, "module-eval.retriever_recall", false], [45, "module-eval.retriever_relevance", false], [49, "module-optim.few_shot_optimizer", false], [50, "module-optim.llm_augment", false], [51, "module-optim.llm_optimizer", false], [52, "module-optim.optimizer", false], [53, "module-optim.sampler", false], [55, "module-tracing.decorators", false], [56, "module-tracing.generator_call_logger", false], [57, "module-tracing.generator_state_logger", false], [59, "module-utils.config", false], [60, "module-utils.file_io", false], [61, "module-utils.lazy_import", false], [62, "module-utils.logger", false], [63, "module-utils.registry", false], [64, "module-utils.serialization", false]], "name (conversation attribute)": [[40, "core.types.Conversation.name", false]], "name (function attribute)": [[40, "core.types.Function.name", false]], "name (functionoutput attribute)": [[40, "core.types.FunctionOutput.name", false]], "name (localdb attribute)": [[27, "core.db.LocalDB.name", false]], "named_children() (component method)": [[26, "core.component.Component.named_children", false]], "named_components() (component method)": [[26, "core.component.Component.named_components", false]], "named_parameters() (component method)": [[26, "core.component.Component.named_parameters", false]], "new_component() (in module utils.config)": [[59, "utils.config.new_component", false]], "new_components_from_config() (in module utils.config)": [[59, "utils.config.new_components_from_config", false]], "normalize_np_array() (in module core.functional)": [[31, "core.functional.normalize_np_array", false]], "normalize_vector() (in module core.functional)": [[31, "core.functional.normalize_vector", false]], "objecttypes (class in utils.serialization)": [[64, "utils.serialization.ObjectTypes", false]], "observation (stepoutput attribute)": [[40, "core.types.StepOutput.observation", false]], "openai (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.OPENAI", false]], "optim.few_shot_optimizer": [[49, "module-optim.few_shot_optimizer", false]], "optim.llm_augment": [[50, "module-optim.llm_augment", false]], "optim.llm_optimizer": [[51, "module-optim.llm_optimizer", false]], "optim.optimizer": [[52, "module-optim.optimizer", false]], "optim.sampler": [[53, "module-optim.sampler", false]], "optimizer (class in optim.optimizer)": [[52, "optim.optimizer.Optimizer", false]], "optionalpackages (class in utils.lazy_import)": [[61, "utils.lazy_import.OptionalPackages", false]], "order (dialogturn attribute)": [[40, "core.types.DialogTurn.order", false]], "order (document attribute)": [[40, "core.types.Document.order", false]], "output (functionoutput attribute)": [[40, "core.types.FunctionOutput.output", false]], "output (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.output", false]], "output_processors (embedder attribute)": [[29, "core.embedder.Embedder.output_processors", false]], "outputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.OutputParser", false]], "parameter (class in core.parameter)": [[34, "core.parameter.Parameter", false]], "parameters() (component method)": [[26, "core.component.Component.parameters", false]], "parent_doc_id (document attribute)": [[40, "core.types.Document.parent_doc_id", false]], "parse_chat_completion() (modelclient method)": [[33, "core.model_client.ModelClient.parse_chat_completion", false]], "parse_chat_completion() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.parse_chat_completion", false]], "parse_embedding_response() (in module components.model_client.utils)": [[5, "components.model_client.utils.parse_embedding_response", false], [19, "components.model_client.utils.parse_embedding_response", false]], "parse_embedding_response() (modelclient method)": [[33, "core.model_client.ModelClient.parse_embedding_response", false]], "parse_embedding_response() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.parse_embedding_response", false]], "parse_func_expr() (toolmanager method)": [[39, "core.tool_manager.ToolManager.parse_func_expr", false]], "parse_function_call_expr() (in module core.functional)": [[31, "core.functional.parse_function_call_expr", false]], "parse_json_str_to_obj() (in module core.functional)": [[31, "core.functional.parse_json_str_to_obj", false]], "parse_yaml_str_to_obj() (in module core.functional)": [[31, "core.functional.parse_yaml_str_to_obj", false]], "parsed_input (functionoutput attribute)": [[40, "core.types.FunctionOutput.parsed_input", false]], "pgvector (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.PGVECTOR", false]], "pickle_to_file() (component method)": [[26, "core.component.Component.pickle_to_file", false]], "preprocess() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.preprocess", false]], "print_prompt() (generator method)": [[32, "core.generator.Generator.print_prompt", false]], "print_prompt() (prompt method)": [[35, "core.prompt_builder.Prompt.print_prompt", false]], "print_prompt_template() (prompt method)": [[35, "core.prompt_builder.Prompt.print_prompt_template", false]], "printc() (in module utils.logger)": [[62, "utils.logger.printc", false]], "prompt (class in core.prompt_builder)": [[35, "core.prompt_builder.Prompt", false]], "prompt_kwargs (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.prompt_kwargs", false]], "prompt_states (generatorstatesrecord attribute)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord.prompt_states", false]], "prompt_tokens (usage attribute)": [[40, "core.types.Usage.prompt_tokens", false]], "propose() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.propose", false]], "propose() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.propose", false]], "query (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.query", false]], "query_str (userquery attribute)": [[40, "core.types.UserQuery.query_str", false]], "random_replace() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.random_replace", false]], "random_replace() (classsampler method)": [[53, "optim.sampler.ClassSampler.random_replace", false]], "random_replace() (randomsampler method)": [[53, "optim.sampler.RandomSampler.random_replace", false]], "random_replace() (sampler method)": [[53, "optim.sampler.Sampler.random_replace", false]], "random_sample() (classsampler method)": [[53, "optim.sampler.ClassSampler.random_sample", false]], "random_sample() (randomsampler method)": [[53, "optim.sampler.RandomSampler.random_sample", false]], "randomsampler (class in optim.sampler)": [[53, "optim.sampler.RandomSampler", false]], "raw_response (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.raw_response", false]], "raw_response (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.raw_response", false]], "reactagent (class in components.agent)": [[12, "components.agent.ReActAgent", false]], "reactagent (class in components.agent.react)": [[0, "components.agent.react.ReActAgent", false]], "register() (entitymapping class method)": [[63, "utils.registry.EntityMapping.register", false]], "register_component() (component method)": [[26, "core.component.Component.register_component", false]], "register_generator() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.register_generator", false]], "register_parameter() (component method)": [[26, "core.component.Component.register_parameter", false]], "register_transformer() (localdb method)": [[27, "core.db.LocalDB.register_transformer", false]], "represent_ordereddict() (in module core.functional)": [[31, "core.functional.represent_ordereddict", false]], "required_field() (in module core.base_data_class)": [[25, "core.base_data_class.required_field", false]], "reranker (modeltype attribute)": [[40, "core.types.ModelType.RERANKER", false]], "rerankerretriever (class in components.retriever)": [[22, "components.retriever.RerankerRetriever", false]], "rerankerretriever (class in components.retriever.reranker_retriever)": [[10, "components.retriever.reranker_retriever.RerankerRetriever", false]], "reset() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.reset", false]], "reset() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.reset", false]], "reset() (localdb method)": [[27, "core.db.LocalDB.reset", false]], "reset() (reactagent method)": [[0, "components.agent.react.ReActAgent.reset", false], [12, "components.agent.ReActAgent.reset", false]], "reset_index() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.reset_index", false], [22, "components.retriever.BM25Retriever.reset_index", false]], "reset_index() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.reset_index", false], [22, "components.retriever.LLMRetriever.reset_index", false]], "reset_index() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.reset_index", false], [22, "components.retriever.RerankerRetriever.reset_index", false]], "reset_index() (retriever method)": [[36, "core.retriever.Retriever.reset_index", false]], "reset_parameter() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.reset_parameter", false]], "reset_parameter() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.reset_parameter", false]], "response_str (assistantresponse attribute)": [[40, "core.types.AssistantResponse.response_str", false]], "responses (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.responses", false]], "retriever (class in core.retriever)": [[36, "core.retriever.Retriever", false]], "retriever_output_to_context_str() (in module components.data_process.data_components)": [[1, "components.data_process.data_components.retriever_output_to_context_str", false], [14, "components.data_process.data_components.retriever_output_to_context_str", false]], "retrieveroutput (class in core.types)": [[40, "core.types.RetrieverOutput", false]], "retrieveroutputtocontextstr (class in components.data_process)": [[13, "components.data_process.RetrieverOutputToContextStr", false]], "retrieveroutputtocontextstr (class in components.data_process.data_components)": [[1, "components.data_process.data_components.RetrieverOutputToContextStr", false], [14, "components.data_process.data_components.RetrieverOutputToContextStr", false]], "retrieverrecall (class in eval.retriever_recall)": [[44, "eval.retriever_recall.RetrieverRecall", false]], "retrieverrelevance (class in eval.retriever_relevance)": [[45, "eval.retriever_relevance.RetrieverRelevance", false]], "safe_import() (in module utils.lazy_import)": [[61, "utils.lazy_import.safe_import", false]], "sample (class in optim.sampler)": [[53, "optim.sampler.Sample", false]], "sampler (class in optim.sampler)": [[53, "optim.sampler.Sampler", false]], "sandbox_exec() (in module core.functional)": [[31, "core.functional.sandbox_exec", false]], "save() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.save", false]], "save() (in module utils.file_io)": [[60, "utils.file_io.save", false]], "save_json() (in module utils.file_io)": [[60, "utils.file_io.save_json", false]], "save_meta_data() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.save_meta_data", false]], "save_pickle() (in module utils.file_io)": [[60, "utils.file_io.save_pickle", false]], "save_state() (localdb method)": [[27, "core.db.LocalDB.save_state", false]], "save_to_file() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.save_to_file", false], [22, "components.retriever.BM25Retriever.save_to_file", false]], "save_to_file() (retriever method)": [[36, "core.retriever.Retriever.save_to_file", false]], "schema (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SCHEMA", false]], "score (document attribute)": [[40, "core.types.Document.score", false]], "score (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.score", false]], "sequential (class in core.component)": [[26, "core.component.Sequential", false]], "serialize() (in module utils.serialization)": [[64, "utils.serialization.serialize", false]], "set_assistant_response() (dialogturn method)": [[40, "core.types.DialogTurn.set_assistant_response", false]], "set_user_query() (dialogturn method)": [[40, "core.types.DialogTurn.set_user_query", false]], "signature_json (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SIGNATURE_JSON", false]], "signature_yaml (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SIGNATURE_YAML", false]], "split_text() (textsplitter method)": [[2, "components.data_process.text_splitter.TextSplitter.split_text", false], [13, "components.data_process.TextSplitter.split_text", false], [15, "components.data_process.text_splitter.TextSplitter.split_text", false]], "split_text_by_word_fn() (in module components.retriever)": [[22, "components.retriever.split_text_by_word_fn", false]], "split_text_by_word_fn() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_by_word_fn", false]], "split_text_by_word_fn_then_lower_tokenized() (in module components.retriever)": [[22, "components.retriever.split_text_by_word_fn_then_lower_tokenized", false]], "split_text_by_word_fn_then_lower_tokenized() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_by_word_fn_then_lower_tokenized", false]], "split_text_tokenized() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_tokenized", false]], "sqlalchemy (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.SQLALCHEMY", false]], "state_dict() (component method)": [[26, "core.component.Component.state_dict", false]], "state_dict() (optimizer method)": [[52, "optim.optimizer.Optimizer.state_dict", false]], "step (stepoutput attribute)": [[40, "core.types.StepOutput.step", false]], "step() (optimizer method)": [[52, "optim.optimizer.Optimizer.step", false]], "stepoutput (class in core.types)": [[40, "core.types.StepOutput", false]], "support_models (transformersclient attribute)": [[4, "components.model_client.transformers_client.TransformersClient.support_models", false]], "text (document attribute)": [[40, "core.types.Document.text", false]], "text (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.text", false]], "textsplitter (class in components.data_process)": [[13, "components.data_process.TextSplitter", false]], "textsplitter (class in components.data_process.text_splitter)": [[2, "components.data_process.text_splitter.TextSplitter", false], [15, "components.data_process.text_splitter.TextSplitter", false]], "thought (function attribute)": [[40, "core.types.Function.thought", false]], "thought (functionexpression attribute)": [[40, "core.types.FunctionExpression.thought", false]], "thought (stepoutput attribute)": [[40, "core.types.StepOutput.thought", false]], "time_stamp (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.time_stamp", false]], "time_stamp (generatorstatesrecord attribute)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord.time_stamp", false]], "to_dict() (component method)": [[26, "core.component.Component.to_dict", false]], "to_dict() (dataclass method)": [[25, "core.base_data_class.DataClass.to_dict", false]], "to_dict() (in module utils.serialization)": [[64, "utils.serialization.to_dict", false]], "to_dict() (parameter method)": [[34, "core.parameter.Parameter.to_dict", false]], "to_dict() (prompt method)": [[35, "core.prompt_builder.Prompt.to_dict", false]], "to_dict() (sample method)": [[53, "optim.sampler.Sample.to_dict", false]], "to_dict_class() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_dict_class", false]], "to_json() (dataclass method)": [[25, "core.base_data_class.DataClass.to_json", false]], "to_json_obj() (dataclass method)": [[25, "core.base_data_class.DataClass.to_json_obj", false]], "to_json_signature() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_json_signature", false]], "to_schema() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_schema", false]], "to_schema_str() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_schema_str", false]], "to_yaml() (dataclass method)": [[25, "core.base_data_class.DataClass.to_yaml", false]], "to_yaml_obj() (dataclass method)": [[25, "core.base_data_class.DataClass.to_yaml_obj", false]], "to_yaml_signature() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_yaml_signature", false]], "toembeddings (class in components.data_process)": [[13, "components.data_process.ToEmbeddings", false]], "toembeddings (class in components.data_process.data_components)": [[1, "components.data_process.data_components.ToEmbeddings", false], [14, "components.data_process.data_components.ToEmbeddings", false]], "token (tokenlogprob attribute)": [[40, "core.types.TokenLogProb.token", false]], "tokenizer (class in core.tokenizer)": [[38, "core.tokenizer.Tokenizer", false]], "tokenlogprob (class in core.types)": [[40, "core.types.TokenLogProb", false]], "toolmanager (class in core.tool_manager)": [[39, "core.tool_manager.ToolManager", false]], "torch (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.TORCH", false]], "total_tokens (usage attribute)": [[40, "core.types.Usage.total_tokens", false]], "trace_generator_call() (in module tracing.decorators)": [[55, "tracing.decorators.trace_generator_call", false]], "trace_generator_states() (in module tracing.decorators)": [[55, "tracing.decorators.trace_generator_states", false]], "tracing.decorators": [[55, "module-tracing.decorators", false]], "tracing.generator_call_logger": [[56, "module-tracing.generator_call_logger", false]], "tracing.generator_state_logger": [[57, "module-tracing.generator_state_logger", false]], "train() (component method)": [[26, "core.component.Component.train", false]], "training (component attribute)": [[26, "core.component.Component.training", false]], "transform() (localdb method)": [[27, "core.db.LocalDB.transform", false]], "transformed_items (localdb attribute)": [[27, "core.db.LocalDB.transformed_items", false]], "transformer_setups (localdb attribute)": [[27, "core.db.LocalDB.transformer_setups", false]], "transformerembedder (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerEmbedder", false]], "transformerllm (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerLLM", false]], "transformerreranker (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerReranker", false]], "transformers (modelclienttype attribute)": [[40, "core.types.ModelClientType.TRANSFORMERS", false]], "transformers (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.TRANSFORMERS", false]], "transformersclient (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformersClient", false]], "type (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.TYPE", false]], "undefined (modeltype attribute)": [[40, "core.types.ModelType.UNDEFINED", false]], "update_default_model_kwargs() (embedder method)": [[29, "core.embedder.Embedder.update_default_model_kwargs", false]], "update_default_model_kwargs() (generator method)": [[32, "core.generator.Generator.update_default_model_kwargs", false]], "update_dialog_turn() (conversation method)": [[40, "core.types.Conversation.update_dialog_turn", false]], "update_parameter() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.update_parameter", false]], "update_parameter() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.update_parameter", false]], "update_prompt_kwargs() (prompt method)": [[35, "core.prompt_builder.Prompt.update_prompt_kwargs", false]], "update_value() (parameter method)": [[34, "core.parameter.Parameter.update_value", false]], "usage (class in core.types)": [[40, "core.types.Usage", false]], "usage (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.usage", false]], "usage (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.usage", false]], "user_id (conversation attribute)": [[40, "core.types.Conversation.user_id", false]], "user_id (dialogturn attribute)": [[40, "core.types.DialogTurn.user_id", false]], "user_query (dialogturn attribute)": [[40, "core.types.DialogTurn.user_query", false]], "user_query_timestamp (dialogturn attribute)": [[40, "core.types.DialogTurn.user_query_timestamp", false]], "userquery (class in core.types)": [[40, "core.types.UserQuery", false]], "utils.config": [[59, "module-utils.config", false]], "utils.file_io": [[60, "module-utils.file_io", false]], "utils.lazy_import": [[61, "module-utils.lazy_import", false]], "utils.logger": [[62, "module-utils.logger", false]], "utils.registry": [[63, "module-utils.registry", false]], "utils.serialization": [[64, "module-utils.serialization", false]], "validate_data() (in module core.functional)": [[31, "core.functional.validate_data", false]], "vector (dialogturn attribute)": [[40, "core.types.DialogTurn.vector", false]], "vector (document attribute)": [[40, "core.types.Document.vector", false]], "write_list_to_jsonl() (in module utils.file_io)": [[60, "utils.file_io.write_list_to_jsonl", false]], "yaml_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.yaml_definitions", false]], "yamloutputparser (class in components.output_parsers)": [[20, "components.output_parsers.YamlOutputParser", false]], "yamloutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.YamlOutputParser", false]], "yamlparser (class in core.string_parser)": [[37, "core.string_parser.YamlParser", false]]}, "objects": {"components": [[12, 0, 0, "-", "agent"], [13, 0, 0, "-", "data_process"], [16, 0, 0, "-", "memory"], [18, 0, 0, "-", "model_client"], [20, 0, 0, "-", "output_parsers"], [21, 0, 0, "-", "reasoning"], [22, 0, 0, "-", "retriever"]], "components.agent": [[12, 1, 1, "", "ReActAgent"], [0, 0, 0, "-", "react"]], "components.agent.ReActAgent": [[12, 2, 1, "", "call"], [12, 2, 1, "", "reset"]], "components.agent.react": [[0, 1, 1, "", "ReActAgent"]], "components.agent.react.ReActAgent": [[0, 2, 1, "", "call"], [0, 2, 1, "", "reset"]], "components.data_process": [[13, 1, 1, "", "RetrieverOutputToContextStr"], [13, 1, 1, "", "TextSplitter"], [13, 1, 1, "", "ToEmbeddings"], [14, 0, 0, "-", "data_components"], [15, 0, 0, "-", "text_splitter"]], "components.data_process.TextSplitter": [[13, 2, 1, "", "call"], [13, 2, 1, "", "split_text"]], "components.data_process.data_components": [[14, 1, 1, "", "RetrieverOutputToContextStr"], [14, 1, 1, "", "ToEmbeddings"], [14, 3, 1, "", "retriever_output_to_context_str"]], "components.data_process.text_splitter": [[15, 1, 1, "", "TextSplitter"]], "components.data_process.text_splitter.TextSplitter": [[15, 2, 1, "", "call"], [15, 2, 1, "", "split_text"]], "components.memory": [[17, 0, 0, "-", "memory"]], "components.memory.memory": [[17, 1, 1, "", "Memory"]], "components.model_client": [[4, 0, 0, "-", "transformers_client"], [19, 0, 0, "-", "utils"]], "components.model_client.transformers_client": [[4, 1, 1, "", "TransformerEmbedder"], [4, 1, 1, "", "TransformerLLM"], [4, 1, 1, "", "TransformerReranker"], [4, 1, 1, "", "TransformersClient"], [4, 3, 1, "", "average_pool"]], "components.model_client.transformers_client.TransformerEmbedder": [[4, 2, 1, "", "infer_gte_base_embedding"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"]], "components.model_client.transformers_client.TransformerLLM": [[4, 2, 1, "", "call"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"], [4, 2, 1, "", "parse_chat_completion"]], "components.model_client.transformers_client.TransformerReranker": [[4, 2, 1, "", "infer_bge_reranker_base"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"]], "components.model_client.transformers_client.TransformersClient": [[4, 2, 1, "", "call"], [4, 2, 1, "", "convert_inputs_to_api_kwargs"], [4, 2, 1, "", "init_llm_client"], [4, 2, 1, "", "init_reranker_client"], [4, 2, 1, "", "init_sync_client"], [4, 2, 1, "", "parse_embedding_response"], [4, 4, 1, "", "support_models"]], "components.model_client.utils": [[19, 3, 1, "", "parse_embedding_response"]], "components.output_parsers": [[20, 1, 1, "", "JsonOutputParser"], [20, 1, 1, "", "ListOutputParser"], [20, 1, 1, "", "YamlOutputParser"], [6, 0, 0, "-", "outputs"]], "components.output_parsers.JsonOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.ListOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.YamlOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs": [[6, 1, 1, "", "BooleanOutputParser"], [6, 1, 1, "", "JsonOutputParser"], [6, 1, 1, "", "ListOutputParser"], [6, 1, 1, "", "OutputParser"], [6, 1, 1, "", "YamlOutputParser"]], "components.output_parsers.outputs.BooleanOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.JsonOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.ListOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.OutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.YamlOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.reasoning": [[7, 0, 0, "-", "chain_of_thought"]], "components.reasoning.chain_of_thought": [[7, 1, 1, "", "CoTGenerator"], [7, 1, 1, "", "CoTGeneratorWithJsonOutput"]], "components.retriever": [[22, 1, 1, "", "BM25Retriever"], [22, 1, 1, "", "LLMRetriever"], [22, 1, 1, "", "RerankerRetriever"], [8, 0, 0, "-", "bm25_retriever"], [9, 0, 0, "-", "llm_retriever"], [10, 0, 0, "-", "reranker_retriever"], [22, 3, 1, "", "split_text_by_word_fn"], [22, 3, 1, "", "split_text_by_word_fn_then_lower_tokenized"]], "components.retriever.BM25Retriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "load_from_file"], [22, 2, 1, "", "reset_index"], [22, 2, 1, "", "save_to_file"]], "components.retriever.LLMRetriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "reset_index"]], "components.retriever.RerankerRetriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "reset_index"]], "components.retriever.bm25_retriever": [[8, 1, 1, "", "BM25Retriever"], [8, 3, 1, "", "split_text_by_word_fn"], [8, 3, 1, "", "split_text_by_word_fn_then_lower_tokenized"], [8, 3, 1, "", "split_text_tokenized"]], "components.retriever.bm25_retriever.BM25Retriever": [[8, 2, 1, "", "build_index_from_documents"], [8, 2, 1, "", "call"], [8, 2, 1, "", "load_from_file"], [8, 2, 1, "", "reset_index"], [8, 2, 1, "", "save_to_file"]], "components.retriever.llm_retriever": [[9, 1, 1, "", "LLMRetriever"]], "components.retriever.llm_retriever.LLMRetriever": [[9, 2, 1, "", "build_index_from_documents"], [9, 2, 1, "", "call"], [9, 2, 1, "", "reset_index"]], "components.retriever.reranker_retriever": [[10, 1, 1, "", "RerankerRetriever"]], "components.retriever.reranker_retriever.RerankerRetriever": [[10, 2, 1, "", "build_index_from_documents"], [10, 2, 1, "", "call"], [10, 2, 1, "", "reset_index"]], "core": [[25, 0, 0, "-", "base_data_class"], [26, 0, 0, "-", "component"], [27, 0, 0, "-", "db"], [28, 0, 0, "-", "default_prompt_template"], [29, 0, 0, "-", "embedder"], [30, 0, 0, "-", "func_tool"], [31, 0, 0, "-", "functional"], [32, 0, 0, "-", "generator"], [33, 0, 0, "-", "model_client"], [34, 0, 0, "-", "parameter"], [35, 0, 0, "-", "prompt_builder"], [36, 0, 0, "-", "retriever"], [37, 0, 0, "-", "string_parser"], [38, 0, 0, "-", "tokenizer"], [39, 0, 0, "-", "tool_manager"], [40, 0, 0, "-", "types"]], "core.base_data_class": [[25, 1, 1, "", "DataClass"], [25, 1, 1, "", "DataClassFormatType"], [25, 1, 1, "", "DynamicDataClassFactory"], [25, 3, 1, "", "required_field"]], "core.base_data_class.DataClass": [[25, 2, 1, "", "format_class_str"], [25, 2, 1, "", "format_example_str"], [25, 2, 1, "", "from_dict"], [25, 2, 1, "", "from_json"], [25, 2, 1, "", "from_yaml"], [25, 2, 1, "", "to_dict"], [25, 2, 1, "", "to_dict_class"], [25, 2, 1, "", "to_json"], [25, 2, 1, "", "to_json_obj"], [25, 2, 1, "", "to_json_signature"], [25, 2, 1, "", "to_schema"], [25, 2, 1, "", "to_schema_str"], [25, 2, 1, "", "to_yaml"], [25, 2, 1, "", "to_yaml_obj"], [25, 2, 1, "", "to_yaml_signature"]], "core.base_data_class.DataClassFormatType": [[25, 4, 1, "", "EXAMPLE_JSON"], [25, 4, 1, "", "EXAMPLE_YAML"], [25, 4, 1, "", "SCHEMA"], [25, 4, 1, "", "SIGNATURE_JSON"], [25, 4, 1, "", "SIGNATURE_YAML"]], "core.base_data_class.DynamicDataClassFactory": [[25, 2, 1, "", "create_from_dict"]], "core.component": [[26, 1, 1, "", "Component"], [26, 1, 1, "", "FunComponent"], [26, 1, 1, "", "Sequential"], [26, 3, 1, "", "fun_to_component"]], "core.component.Component": [[26, 2, 1, "", "acall"], [26, 2, 1, "", "add_component"], [26, 2, 1, "", "call"], [26, 2, 1, "", "children"], [26, 2, 1, "", "components"], [26, 2, 1, "", "eval"], [26, 2, 1, "", "from_config"], [26, 2, 1, "", "from_dict"], [26, 2, 1, "", "get_subcomponent"], [26, 2, 1, "", "is_picklable"], [26, 2, 1, "", "load_from_pickle"], [26, 2, 1, "", "load_state_dict"], [26, 2, 1, "", "load_state_pickle"], [26, 2, 1, "", "named_children"], [26, 2, 1, "", "named_components"], [26, 2, 1, "", "named_parameters"], [26, 2, 1, "", "parameters"], [26, 2, 1, "", "pickle_to_file"], [26, 2, 1, "", "register_component"], [26, 2, 1, "", "register_parameter"], [26, 2, 1, "", "state_dict"], [26, 2, 1, "", "to_dict"], [26, 2, 1, "", "train"], [26, 4, 1, "", "training"]], "core.component.FunComponent": [[26, 2, 1, "", "call"]], "core.component.Sequential": [[26, 2, 1, "", "append"], [26, 2, 1, "", "call"]], "core.db": [[27, 1, 1, "", "LocalDB"]], "core.db.LocalDB": [[27, 2, 1, "", "add"], [27, 2, 1, "", "delete"], [27, 2, 1, "", "extend"], [27, 2, 1, "", "fetch_items"], [27, 2, 1, "", "fetch_transformed_items"], [27, 2, 1, "", "get_transformed_data"], [27, 2, 1, "", "get_transformer_keys"], [27, 4, 1, "", "items"], [27, 5, 1, "", "length"], [27, 2, 1, "", "load"], [27, 2, 1, "", "load_state"], [27, 4, 1, "", "mapper_setups"], [27, 4, 1, "", "name"], [27, 2, 1, "", "register_transformer"], [27, 2, 1, "", "reset"], [27, 2, 1, "", "save_state"], [27, 2, 1, "", "transform"], [27, 4, 1, "", "transformed_items"], [27, 4, 1, "", "transformer_setups"]], "core.default_prompt_template": [[28, 6, 1, "", "DEFAULT_LIGHTRAG_SYSTEM_PROMPT"]], "core.embedder": [[29, 1, 1, "", "BatchEmbedder"], [29, 1, 1, "", "Embedder"]], "core.embedder.BatchEmbedder": [[29, 2, 1, "", "call"]], "core.embedder.Embedder": [[29, 2, 1, "", "acall"], [29, 2, 1, "", "call"], [29, 2, 1, "", "from_config"], [29, 4, 1, "", "model_client"], [29, 4, 1, "", "model_type"], [29, 4, 1, "", "output_processors"], [29, 2, 1, "", "update_default_model_kwargs"]], "core.func_tool": [[30, 1, 1, "", "FunctionTool"], [30, 3, 1, "", "is_running_in_event_loop"]], "core.func_tool.FunctionTool": [[30, 2, 1, "", "acall"], [30, 2, 1, "", "call"], [30, 2, 1, "", "execute"]], "core.functional": [[31, 3, 1, "", "compose_model_kwargs"], [31, 3, 1, "", "convert_schema_to_signature"], [31, 3, 1, "", "custom_asdict"], [31, 3, 1, "", "dataclass_obj_from_dict"], [31, 3, 1, "", "evaluate_ast_node"], [31, 3, 1, "", "extract_dataclass_type"], [31, 3, 1, "", "extract_json_str"], [31, 3, 1, "", "extract_list_str"], [31, 3, 1, "", "extract_yaml_str"], [31, 3, 1, "", "fix_json_escaped_single_quotes"], [31, 3, 1, "", "fix_json_missing_commas"], [31, 3, 1, "", "from_dict_to_json"], [31, 3, 1, "", "from_dict_to_yaml"], [31, 3, 1, "", "from_json_to_dict"], [31, 3, 1, "", "from_yaml_to_dict"], [31, 3, 1, "", "generate_function_call_expression_from_callable"], [31, 3, 1, "", "generate_readable_key_for_function"], [31, 3, 1, "", "get_dataclass_schema"], [31, 3, 1, "", "get_fun_schema"], [31, 3, 1, "", "get_top_k_indices_scores"], [31, 3, 1, "", "get_type_schema"], [31, 3, 1, "", "is_dataclass_instance"], [31, 3, 1, "", "is_normalized"], [31, 3, 1, "", "is_potential_dataclass"], [31, 3, 1, "", "normalize_np_array"], [31, 3, 1, "", "normalize_vector"], [31, 3, 1, "", "parse_function_call_expr"], [31, 3, 1, "", "parse_json_str_to_obj"], [31, 3, 1, "", "parse_yaml_str_to_obj"], [31, 3, 1, "", "represent_ordereddict"], [31, 3, 1, "", "sandbox_exec"], [31, 3, 1, "", "validate_data"]], "core.generator": [[32, 1, 1, "", "Generator"]], "core.generator.Generator": [[32, 2, 1, "", "acall"], [32, 2, 1, "", "call"], [32, 2, 1, "", "from_config"], [32, 4, 1, "", "model_client"], [32, 4, 1, "", "model_type"], [32, 2, 1, "", "print_prompt"], [32, 2, 1, "", "update_default_model_kwargs"]], "core.model_client": [[33, 1, 1, "", "ModelClient"]], "core.model_client.ModelClient": [[33, 2, 1, "", "acall"], [33, 2, 1, "", "call"], [33, 2, 1, "", "convert_inputs_to_api_kwargs"], [33, 2, 1, "", "init_async_client"], [33, 2, 1, "", "init_sync_client"], [33, 2, 1, "", "parse_chat_completion"], [33, 2, 1, "", "parse_embedding_response"]], "core.parameter": [[34, 1, 1, "", "Parameter"]], "core.parameter.Parameter": [[34, 2, 1, "", "to_dict"], [34, 2, 1, "", "update_value"]], "core.prompt_builder": [[35, 1, 1, "", "Prompt"], [35, 3, 1, "", "get_jinja2_environment"]], "core.prompt_builder.Prompt": [[35, 2, 1, "", "call"], [35, 2, 1, "", "compose_prompt_kwargs"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "get_prompt_variables"], [35, 2, 1, "", "is_key_in_template"], [35, 2, 1, "", "print_prompt"], [35, 2, 1, "", "print_prompt_template"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "update_prompt_kwargs"]], "core.retriever": [[36, 1, 1, "", "Retriever"]], "core.retriever.Retriever": [[36, 2, 1, "", "acall"], [36, 2, 1, "", "build_index_from_documents"], [36, 2, 1, "", "call"], [36, 4, 1, "", "index_keys"], [36, 4, 1, "", "indexed"], [36, 2, 1, "", "load_from_file"], [36, 2, 1, "", "reset_index"], [36, 2, 1, "", "save_to_file"]], "core.string_parser": [[37, 1, 1, "", "JsonParser"], [37, 1, 1, "", "ListParser"], [37, 1, 1, "", "YamlParser"]], "core.string_parser.JsonParser": [[37, 2, 1, "", "call"]], "core.string_parser.YamlParser": [[37, 2, 1, "", "call"]], "core.tokenizer": [[38, 1, 1, "", "Tokenizer"]], "core.tokenizer.Tokenizer": [[38, 2, 1, "", "count_tokens"], [38, 2, 1, "", "decode"], [38, 2, 1, "", "encode"], [38, 2, 1, "", "get_string_tokens"], [38, 2, 1, "", "preprocess"]], "core.tool_manager": [[39, 1, 1, "", "ToolManager"]], "core.tool_manager.ToolManager": [[39, 2, 1, "", "execute_func"], [39, 2, 1, "", "execute_func_expr"], [39, 2, 1, "", "execute_func_expr_via_eval"], [39, 2, 1, "", "execute_func_expr_via_sandbox"], [39, 5, 1, "", "function_definitions"], [39, 5, 1, "", "json_definitions"], [39, 2, 1, "", "parse_func_expr"], [39, 5, 1, "", "yaml_definitions"]], "core.types": [[40, 1, 1, "", "AssistantResponse"], [40, 1, 1, "", "Conversation"], [40, 1, 1, "", "DialogTurn"], [40, 1, 1, "", "Document"], [40, 1, 1, "", "EmbedderOutput"], [40, 4, 1, "", "EmbedderOutputType"], [40, 1, 1, "", "Embedding"], [40, 1, 1, "", "Function"], [40, 1, 1, "", "FunctionDefinition"], [40, 1, 1, "", "FunctionExpression"], [40, 1, 1, "", "FunctionOutput"], [40, 1, 1, "", "GeneratorOutput"], [40, 1, 1, "", "ModelClientType"], [40, 1, 1, "", "ModelType"], [40, 1, 1, "", "RetrieverOutput"], [40, 1, 1, "", "StepOutput"], [40, 1, 1, "", "TokenLogProb"], [40, 1, 1, "", "Usage"], [40, 1, 1, "", "UserQuery"], [40, 3, 1, "", "get_model_args"]], "core.types.AssistantResponse": [[40, 4, 1, "", "metadata"], [40, 4, 1, "", "response_str"]], "core.types.Conversation": [[40, 2, 1, "", "append_dialog_turn"], [40, 4, 1, "", "created_at"], [40, 2, 1, "", "delete_dialog_turn"], [40, 4, 1, "", "dialog_turns"], [40, 4, 1, "", "dialog_turns_input"], [40, 2, 1, "", "get_chat_history_str"], [40, 2, 1, "", "get_dialog_turns"], [40, 2, 1, "", "get_next_order"], [40, 4, 1, "", "id"], [40, 4, 1, "", "metadata"], [40, 4, 1, "", "name"], [40, 2, 1, "", "update_dialog_turn"], [40, 4, 1, "", "user_id"]], "core.types.DialogTurn": [[40, 4, 1, "", "assistant_response"], [40, 4, 1, "", "assistant_response_timestamp"], [40, 4, 1, "", "conversation_id"], [40, 4, 1, "", "id"], [40, 4, 1, "", "metadata"], [40, 4, 1, "", "order"], [40, 2, 1, "", "set_assistant_response"], [40, 2, 1, "", "set_user_query"], [40, 4, 1, "", "user_id"], [40, 4, 1, "", "user_query"], [40, 4, 1, "", "user_query_timestamp"], [40, 4, 1, "", "vector"]], "core.types.Document": [[40, 4, 1, "", "estimated_num_tokens"], [40, 2, 1, "", "from_dict"], [40, 4, 1, "", "id"], [40, 4, 1, "", "meta_data"], [40, 4, 1, "", "order"], [40, 4, 1, "", "parent_doc_id"], [40, 4, 1, "", "score"], [40, 4, 1, "", "text"], [40, 4, 1, "", "vector"]], "core.types.EmbedderOutput": [[40, 4, 1, "", "data"], [40, 5, 1, "", "embedding_dim"], [40, 4, 1, "", "error"], [40, 4, 1, "", "input"], [40, 5, 1, "", "is_normalized"], [40, 5, 1, "", "length"], [40, 4, 1, "", "model"], [40, 4, 1, "", "raw_response"], [40, 4, 1, "", "usage"]], "core.types.Embedding": [[40, 4, 1, "", "embedding"], [40, 4, 1, "", "index"]], "core.types.Function": [[40, 4, 1, "", "args"], [40, 4, 1, "", "kwargs"], [40, 4, 1, "", "name"], [40, 4, 1, "", "thought"]], "core.types.FunctionDefinition": [[40, 2, 1, "", "fn_schema_str"], [40, 4, 1, "", "func_desc"], [40, 4, 1, "", "func_name"], [40, 4, 1, "", "func_parameters"]], "core.types.FunctionExpression": [[40, 4, 1, "", "action"], [40, 2, 1, "", "from_function"], [40, 4, 1, "", "thought"]], "core.types.FunctionOutput": [[40, 4, 1, "", "error"], [40, 4, 1, "", "input"], [40, 4, 1, "", "name"], [40, 4, 1, "", "output"], [40, 4, 1, "", "parsed_input"]], "core.types.GeneratorOutput": [[40, 4, 1, "", "data"], [40, 4, 1, "", "error"], [40, 4, 1, "", "raw_response"], [40, 4, 1, "", "usage"]], "core.types.ModelClientType": [[40, 4, 1, "", "TRANSFORMERS"]], "core.types.ModelType": [[40, 4, 1, "", "EMBEDDER"], [40, 4, 1, "", "LLM"], [40, 4, 1, "", "RERANKER"], [40, 4, 1, "", "UNDEFINED"]], "core.types.RetrieverOutput": [[40, 4, 1, "", "doc_indices"], [40, 4, 1, "", "doc_scores"], [40, 4, 1, "", "documents"], [40, 4, 1, "", "query"]], "core.types.StepOutput": [[40, 4, 1, "", "action"], [40, 4, 1, "", "fun_args"], [40, 4, 1, "", "fun_kwargs"], [40, 4, 1, "", "fun_name"], [40, 4, 1, "", "observation"], [40, 4, 1, "", "step"], [40, 4, 1, "", "thought"]], "core.types.TokenLogProb": [[40, 4, 1, "", "logprob"], [40, 4, 1, "", "token"]], "core.types.Usage": [[40, 4, 1, "", "prompt_tokens"], [40, 4, 1, "", "total_tokens"]], "core.types.UserQuery": [[40, 4, 1, "", "metadata"], [40, 4, 1, "", "query_str"]], "eval": [[42, 0, 0, "-", "answer_match_acc"], [43, 0, 0, "-", "llm_as_judge"], [44, 0, 0, "-", "retriever_recall"], [45, 0, 0, "-", "retriever_relevance"]], "eval.answer_match_acc": [[42, 1, 1, "", "AnswerMatchAcc"]], "eval.answer_match_acc.AnswerMatchAcc": [[42, 2, 1, "", "compute"]], "eval.llm_as_judge": [[43, 1, 1, "", "DefaultLLMJudge"], [43, 1, 1, "", "LLMasJudge"]], "eval.llm_as_judge.DefaultLLMJudge": [[43, 2, 1, "", "call"]], "eval.llm_as_judge.LLMasJudge": [[43, 2, 1, "", "compute"]], "eval.retriever_recall": [[44, 1, 1, "", "RetrieverRecall"]], "eval.retriever_recall.RetrieverRecall": [[44, 2, 1, "", "compute"]], "eval.retriever_relevance": [[45, 1, 1, "", "RetrieverRelevance"]], "eval.retriever_relevance.RetrieverRelevance": [[45, 2, 1, "", "compute"]], "optim": [[49, 0, 0, "-", "few_shot_optimizer"], [50, 0, 0, "-", "llm_augment"], [51, 0, 0, "-", "llm_optimizer"], [52, 0, 0, "-", "optimizer"], [53, 0, 0, "-", "sampler"]], "optim.few_shot_optimizer": [[49, 1, 1, "", "BootstrapFewShot"]], "optim.few_shot_optimizer.BootstrapFewShot": [[49, 2, 1, "", "augment_samples"], [49, 2, 1, "", "init"], [49, 2, 1, "", "propose"], [49, 2, 1, "", "random_replace"], [49, 2, 1, "", "reset"], [49, 2, 1, "", "reset_parameter"], [49, 2, 1, "", "update_parameter"]], "optim.llm_augment": [[50, 1, 1, "", "LLMAugmenter"]], "optim.llm_augment.LLMAugmenter": [[50, 2, 1, "", "call"]], "optim.llm_optimizer": [[51, 1, 1, "", "Instruction"], [51, 1, 1, "", "LLMOptimizer"]], "optim.llm_optimizer.Instruction": [[51, 4, 1, "", "gts"], [51, 4, 1, "", "responses"], [51, 4, 1, "", "score"], [51, 4, 1, "", "text"]], "optim.llm_optimizer.LLMOptimizer": [[51, 2, 1, "", "propose"], [51, 2, 1, "", "reset"], [51, 2, 1, "", "reset_parameter"], [51, 2, 1, "", "update_parameter"]], "optim.optimizer": [[52, 1, 1, "", "Optimizer"]], "optim.optimizer.Optimizer": [[52, 2, 1, "", "state_dict"], [52, 2, 1, "", "step"]], "optim.sampler": [[53, 1, 1, "", "ClassSampler"], [53, 1, 1, "", "RandomSampler"], [53, 1, 1, "", "Sample"], [53, 1, 1, "", "Sampler"]], "optim.sampler.ClassSampler": [[53, 2, 1, "", "call"], [53, 2, 1, "", "random_replace"], [53, 2, 1, "", "random_sample"]], "optim.sampler.RandomSampler": [[53, 2, 1, "", "call"], [53, 4, 1, "", "dataset"], [53, 2, 1, "", "random_replace"], [53, 2, 1, "", "random_sample"]], "optim.sampler.Sample": [[53, 4, 1, "", "data"], [53, 4, 1, "", "index"], [53, 2, 1, "", "to_dict"]], "optim.sampler.Sampler": [[53, 2, 1, "", "call"], [53, 2, 1, "", "random_replace"]], "tracing": [[55, 0, 0, "-", "decorators"], [56, 0, 0, "-", "generator_call_logger"], [57, 0, 0, "-", "generator_state_logger"]], "tracing.decorators": [[55, 3, 1, "", "trace_generator_call"], [55, 3, 1, "", "trace_generator_states"]], "tracing.generator_call_logger": [[56, 1, 1, "", "GeneratorCallLogger"], [56, 1, 1, "", "GeneratorCallRecord"]], "tracing.generator_call_logger.GeneratorCallLogger": [[56, 5, 1, "", "generator_names_to_files"], [56, 2, 1, "", "get_calls"], [56, 2, 1, "", "get_log_location"], [56, 2, 1, "", "load"], [56, 2, 1, "", "load_meta_data"], [56, 2, 1, "", "log_call"], [56, 2, 1, "", "register_generator"], [56, 2, 1, "", "save_meta_data"]], "tracing.generator_call_logger.GeneratorCallRecord": [[56, 4, 1, "", "model_kwargs"], [56, 4, 1, "", "output"], [56, 4, 1, "", "prompt_kwargs"], [56, 4, 1, "", "time_stamp"]], "tracing.generator_state_logger": [[57, 1, 1, "", "GeneratorStateLogger"], [57, 1, 1, "", "GeneratorStatesRecord"]], "tracing.generator_state_logger.GeneratorStateLogger": [[57, 5, 1, "", "generator_names"], [57, 2, 1, "", "get_log_location"], [57, 2, 1, "", "load"], [57, 2, 1, "", "log_prompt"], [57, 2, 1, "", "save"]], "tracing.generator_state_logger.GeneratorStatesRecord": [[57, 4, 1, "", "prompt_states"], [57, 4, 1, "", "time_stamp"]], "utils": [[59, 0, 0, "-", "config"], [60, 0, 0, "-", "file_io"], [61, 0, 0, "-", "lazy_import"], [62, 0, 0, "-", "logger"], [63, 0, 0, "-", "registry"], [64, 0, 0, "-", "serialization"]], "utils.config": [[59, 3, 1, "", "new_component"], [59, 3, 1, "", "new_components_from_config"]], "utils.file_io": [[60, 3, 1, "", "append_to_jsonl"], [60, 3, 1, "", "load"], [60, 3, 1, "", "load_json"], [60, 3, 1, "", "load_jsonl"], [60, 3, 1, "", "load_pickle"], [60, 3, 1, "", "save"], [60, 3, 1, "", "save_json"], [60, 3, 1, "", "save_pickle"], [60, 3, 1, "", "write_list_to_jsonl"]], "utils.lazy_import": [[61, 1, 1, "", "LazyImport"], [61, 1, 1, "", "OptionalPackages"], [61, 3, 1, "", "safe_import"]], "utils.lazy_import.OptionalPackages": [[61, 4, 1, "", "ANTHROPIC"], [61, 4, 1, "", "COHERE"], [61, 4, 1, "", "FAISS"], [61, 4, 1, "", "GOOGLE_GENERATIVEAI"], [61, 4, 1, "", "GROQ"], [61, 4, 1, "", "OPENAI"], [61, 4, 1, "", "PGVECTOR"], [61, 4, 1, "", "SQLALCHEMY"], [61, 4, 1, "", "TORCH"], [61, 4, 1, "", "TRANSFORMERS"]], "utils.logger": [[62, 3, 1, "", "enable_library_logging"], [62, 3, 1, "", "get_current_script_and_line"], [62, 3, 1, "", "get_logger"], [62, 3, 1, "", "printc"]], "utils.registry": [[63, 1, 1, "", "EntityMapping"]], "utils.registry.EntityMapping": [[63, 2, 1, "", "get"], [63, 2, 1, "", "get_all"], [63, 2, 1, "", "register"]], "utils.serialization": [[64, 1, 1, "", "ObjectTypes"], [64, 3, 1, "", "check_object"], [64, 3, 1, "", "default"], [64, 3, 1, "", "deserialize"], [64, 3, 1, "", "serialize"], [64, 3, 1, "", "to_dict"]], "utils.serialization.ObjectTypes": [[64, 4, 1, "", "CLASS"], [64, 4, 1, "", "INSTANCE"], [64, 4, 1, "", "TYPE"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "property", "Python property"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute", "5": "py:property", "6": "py:data"}, "terms": {"": [2, 4, 7, 8, 11, 13, 15, 22, 26, 30, 33, 34, 35, 36, 53, 62, 66, 70, 71, 72, 74, 75, 76, 77, 78, 80, 81, 88, 91, 92, 93, 94, 98, 103, 105], "0": [2, 8, 13, 15, 22, 25, 26, 27, 31, 32, 40, 42, 43, 44, 45, 51, 66, 70, 72, 74, 76, 77, 84, 90, 91, 92, 93, 94, 97, 100], "00": [74, 75], "0001": 31, "00016600126": 76, "00018637415": 76, "0003912348": 76, "00045548353": 76, "00063306844": 76, "00093111617": 76, "0009763892": 76, "001149847": 76, "001270235": 76, "001274437": 76, "0013953627": 76, "0015121206": 76, "0016585035": 76, "0017067948": 76, "0017369769": 76, "0018af12": 74, "002240922": 76, "0023736332": 76, "0024688914": 76, "0025802834": 76, "0027390209": 76, "002749016": 76, "0027831418": 76, "0032514224": 76, "0032596611": 76, "0035554452": 76, "0035945757": 76, "004110795": 76, "0042391727": 76, "00427709": 76, "004391488": 76, "0045538875": 76, "0048683644": 76, "005190901": 76, "005429781": 76, "0055172783": 76, "0059066266": 76, "0060756463": 76, "0065862634": 76, "006953944": 76, "007086745": 76, "0072255824": 76, "0073946016": 76, "007424784": 76, "0076722763": 76, "008243256": 76, "008804435": 76, "00888027": 76, "00918361": 76, "0092658885": 76, "009380581": 76, "009410762": 76, "009845384": 76, "0098876385": 76, "0099192085": 76, "00z": 74, "010159277": 76, "010340369": 76, "01047317": 76, "010648226": 76, "010723059": 76, "011026398": 76, "01102852": 76, "011178068": 76, "011329738": 76, "011336377": 76, "011663412": 76, "0118985": 76, "012314276": 76, "012414178": 76, "012519513": 76, "012596182": 76, "012740267": 76, "01283127": 76, "012846436": 76, "013225611": 76, "013376684": 76, "013642286": 76, "013799232": 76, "014256966": 76, "014401053": 76, "0144541375": 76, "014545139": 76, "014752985": 76, "014813349": 76, "01541699": 76, "015417241": 76, "015500659": 76, "015549791": 76, "015742956": 76, "015791247": 76, "015851611": 76, "01600117": 76, "016137673": 76, "016201723": 76, "016310379": 76, "016319677": 76, "016503545": 76, "016853655": 76, "017123526": 76, "017179621": 76, "017199362": 76, "01721584": 76, "017252058": 76, "017384859": 76, "0175027": 76, "017819481": 76, "017942544": 76, "018185215": 76, "01821555": 76, "018579558": 76, "019038836": 76, "019186236": 76, "019337907": 76, "01965455": 76, "01t12": 74, "01z": 74, "020113317": 76, "020202424": 76, "020318555": 76, "02047543": 76, "020702936": 76, "02072903": 76, "020733269": 76, "020777322": 76, "02094634": 76, "02170693": 76, "021855626": 76, "022022463": 76, "022083132": 76, "022370934": 76, "022491662": 76, "022583641": 76, "022795979": 76, "022917315": 76, "023175154": 76, "02349366": 76, "02435818": 76, "024447458": 76, "024479514": 76, "02448e3fd394": 74, "02449575": 76, "024570517": 76, "024691852": 76, "024773424": 76, "02479802": 76, "024821715": 76, "0249183": 76, "024919357": 76, "024995193": 76, "025014881": 76, "025159756": 76, "025237864": 76, "025283365": 76, "025304629": 76, "025344033": 76, "0253592": 76, "025449503": 76, "025763396": 76, "025811687": 76, "025829377": 76, "026026547": 76, "02642089": 76, "02646639": 76, "026527058": 76, "026560202": 76, "026845565": 76, "02686073": 76, "027526028": 76, "027646756": 76, "027719192": 76, "02781625": 76, "02787692": 76, "027888212": 76, "028250396": 76, "028274542": 76, "028392596": 76, "028419416": 76, "028588437": 76, "028709164": 76, "028711103": 76, "028999276": 76, "029023057": 76, "029095493": 76, "029393617": 76, "029454285": 76, "029578406": 76, "02959079": 76, "029819863": 76, "02t15": 78, "02z": 74, "030351067": 76, "030515974": 76, "030561475": 76, "030737398": 76, "031122655": 76, "031425994": 76, "03148666": 76, "031992972": 76, "032282718": 76, "03250003": 76, "03254835": 76, "03288636": 76, "032958794": 76, "033031233": 76, "033200253": 76, "033320982": 76, "03374": 77, "03409": 51, "03414193": 76, "034190223": 76, "034338057": 76, "03438339": 76, "034398723": 76, "034489725": 76, "034673136": 76, "034793064": 76, "035096403": 76, "03520434": 76, "035276778": 76, "03530092": 76, "035399742": 76, "0354458": 76, "035460413": 76, "03567275": 76, "03575969": 76, "035794087": 76, "035945754": 76, "036188427": 76, "036249094": 76, "03629": [0, 12, 69], "03648406": 76, "036582768": 76, "03718945": 76, "037280865": 76, "037715487": 76, "03773546": 76, "037787925": 76, "03828147": 76, "038294982": 76, "03841571": 76, "038463477": 76, "038898624": 76, "039161157": 76, "03934316": 76, "03940383": 76, "03940568": 76, "039555497": 76, "039792012": 76, "039828505": 76, "039919507": 76, "03t16": 78, "03z": 74, "04": 75, "040178344": 76, "040274926": 76, "04090271": 76, "041820247": 76, "041868538": 76, "042224888": 76, "042285554": 76, "042497892": 76, "042649563": 76, "042810217": 76, "0428619": 76, "042922568": 76, "042952903": 76, "043104574": 76, "04352925": 76, "04363117": 76, "043776043": 76, "043802254": 76, "043893255": 76, "044017497": 76, "0442831": 76, "044408932": 76, "0445487": 76, "044596992": 76, "04500747": 76, "045128196": 76, "045200635": 76, "045318954": 76, "04537962": 76, "045409955": 76, "045500956": 76, "045755986": 76, "046214752": 76, "046380643": 76, "046842538": 76, "047301304": 76, "04732545": 76, "04735133": 76, "04744618": 76, "048018675": 76, "048170548": 76, "048242986": 76, "04844335": 76, "048534352": 76, "04865569": 76, "04874669": 76, "04882248": 76, "0491107": 76, "049112227": 76, "049257103": 76, "049474705": 76, "04964343": 76, "04988489": 76, "04it": 74, "05011172": 76, "050126344": 76, "050688066": 76, "050995983": 84, "05133363": 76, "051385745": 76, "051749755": 76, "05202276": 76, "052057996": 76, "052106287": 76, "05220287": 76, "052417103": 76, "053175453": 76, "05331357": 76, "05338779": 76, "05369113": 76, "05408623": 76, "054115806": 76, "054617435": 76, "054762308": 76, "055341803": 76, "055390093": 76, "055631552": 76, "055824716": 76, "05584484": 76, "05606617": 76, "056500793": 76, "056549083": 76, "057031997": 76, "057118867": 76, "057209868": 76, "05794953": 76, "057968218": 76, "05877048": 76, "059393916": 76, "059543144": 76, "059977766": 76, "06": 78, "060026057": 76, "06033427": 76, "060455605": 76, "060750425": 76, "060758945": 76, "060940947": 76, "06109262": 76, "06205429": 76, "062150873": 76, "062199164": 76, "062427312": 76, "06244062": 76, "0625372": 76, "062609315": 76, "06335816": 76, "063458666": 76, "06351934": 76, "06358001": 76, "06424735": 76, "06430802": 76, "06437227": 76, "06527871": 76, "065521374": 76, "065724425": 76, "06596588": 76, "06615905": 76, "066492066": 76, "06691674": 76, "067159414": 76, "06782676": 76, "06799412": 76, "06842874": 76, "06881507": 76, "069404125": 76, "06978089": 76, "06995014": 76, "06ea7cea": 74, "070553556": 76, "07061748": 76, "0708433": 76, "0708916": 76, "07113305": 76, "07158817": 76, "07185742": 76, "07249819": 76, "07261953": 76, "07296812": 76, "07298353": 76, "074030526": 76, "07407882": 76, "07456173": 76, "07486424": 76, "07510691": 76, "07595626": 76, "07597": 4, "076138265": 76, "07654167": 76, "07736263": 76, "077507496": 76, "07753363": 76, "077776305": 76, "07794212": 76, "0780387": 76, "078569904": 76, "078763075": 76, "07881136": 76, "079110995": 76, "07989968": 76, "08088789": 76, "08103276": 76, "08112934": 76, "081225924": 76, "08199859": 76, "08256907": 76, "08275107": 76, "08277125": 76, "082872406": 76, "083054416": 76, "08317575": 76, "083539754": 76, "083600424": 76, "083737075": 76, "08397853": 76, "0841717": 76, "08426777": 76, "08432844": 76, "084389105": 76, "08494435": 76, "08523846": 76, "085717015": 76, "085905805": 76, "08651248": 76, "08658626": 76, "08663": 91, "08669449": 76, "08774": 77, "08851453": 76, "08861449": 76, "08880766": 76, "088952534": 76, "08962861": 76, "09": 74, "090455905": 76, "09081991": 76, "09100191": 76, "091183916": 76, "091244586": 76, "09148726": 76, "09172993": 76, "09199488": 76, "09209394": 76, "09213976": 76, "092639945": 76, "0935402": 76, "09354997": 76, "09382995": 76, "09433865": 76, "0946509": 76, "09503723": 76, "09614793": 76, "09634069": 76, "09793471": 76, "09925275": 76, "099495426": 76, "0d16": [2, 13, 15, 93], "0d95cc65e6ef": 76, "0th": 92, "0x104970220": 94, "0x104970400": 94, "0x105e3b920": 94, "0x105e3bc40": 94, "0x1062a2840": 94, "0x106d691c0": 94, "0x10fb26f20": 74, "0x11742eca0": 94, "0x117b98360": 94, "0x14d9d3f60": 94, "0x14d9e4040": 94, "0x14d9e40e0": 94, "0x14d9e4180": 94, "0x14d9e4220": 94, "0x14d9e4360": 94, "1": [0, 2, 4, 6, 7, 8, 9, 11, 12, 13, 15, 22, 25, 26, 27, 29, 30, 35, 37, 40, 42, 43, 44, 45, 51, 59, 61, 64, 66, 70, 72, 74, 75, 77, 78, 81, 84, 88, 90, 91, 93, 96, 100, 103, 105], "10": [0, 12, 53, 62, 74, 80, 91, 94, 96, 100, 105], "100": [6, 29, 40, 59, 74, 75, 76, 77, 84, 92, 100], "1000": [2, 13, 15, 75, 98], "100156106": 76, "10046611": 76, "10054244": 76, "10064811": 76, "10204348": 76, "10205": 74, "10210415": 76, "1024": 81, "102407485": 76, "102468155": 76, "10289283": 76, "1029535": 76, "103074834": 76, "104888655": 76, "10519821": 76, "10580489": 76, "106168896": 76, "106957585": 76, "10762493": 76, "10875195": 76, "10950564": 76, "11": [7, 75, 91], "111386344": 76, "11155285": 76, "11164943": 76, "11174601": 76, "1124177": 76, "11396741": 76, "11423773": 76, "11496575": 76, "11532976": 76, "1156331": 76, "115995646": 76, "11618881": 76, "11686489": 76, "11802388": 76, "11903": 7, "12": [77, 97], "121821225": 76, "12218524": 76, "122670576": 76, "122853": 76, "123": [34, 40], "127": 66, "128": 100, "12936": 92, "12it": 74, "13": 92, "13125569": 76, "13164201": 76, "13225": 92, "1328": 92, "13395482": 76, "13516818": 76, "13577485": 76, "13985154": 76, "13ac": 92, "14": 84, "14545332": 76, "14796448": 76, "15": [66, 76, 77, 92], "150": 4, "151683837681807": 91, "15d838c4": 92, "163da9868ea4": [2, 13, 15, 93], "16574481": 76, "17": 92, "17654371": 76, "17761531": 76, "17933443": 76, "17e7": 92, "18041": 77, "18089913": 76, "18447268": 76, "19306852": 76, "196ec25d39c4": 76, "19736": 77, "1976": [44, 45, 77], "1997": 69, "1998": [44, 45, 77], "1dfe96ccb65f": 92, "2": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 20, 22, 25, 26, 27, 30, 32, 35, 37, 40, 42, 43, 44, 59, 64, 66, 70, 72, 74, 75, 76, 77, 81, 84, 88, 90, 91, 93, 96, 103, 105], "20": 72, "200": [2, 13, 15, 59, 92], "2014": [8, 22], "2020": [77, 81], "2021": [74, 77], "2023": [0, 7, 12, 77], "2024": [77, 78], "20240229": 81, "20417552": 76, "21": [78, 92], "2104": 91, "2107": 77, "21549304": 84, "2167": 74, "21f0385d": 74, "22": 94, "2201": 7, "2210": [0, 12, 69], "223220": 78, "2303": 77, "2309": [4, 51], "2310": 77, "2329ffa8d4b6": 74, "2375": 92, "2402": 77, "24047995": 84, "24366009": 84, "24it": 74, "25": [8, 22, 25, 91, 92, 100, 105], "256": [29, 59, 74, 75, 76, 91, 92], "26": 97, "27": 90, "27cc": 74, "28": [44, 45], "29": [44, 45], "2971": 92, "2a78": 74, "2e25ae5336c8": [2, 13, 15, 93], "2e6f4452827b": 74, "2e8e63041698": 74, "2ed0196b0c81": 92, "2f": 94, "2it": 74, "3": [7, 8, 22, 26, 27, 29, 31, 32, 37, 40, 42, 43, 44, 59, 64, 66, 70, 72, 74, 75, 76, 77, 81, 84, 88, 90, 91, 93, 96, 100, 103, 105], "30": [25, 97], "32": 100, "3333333333333333": 77, "33437008": 84, "353b738c1b71": 74, "37": 78, "37041178": 84, "37e1d8ff0526": 74, "37it": 74, "38": 77, "382": 92, "3927": [2, 13, 15, 93], "3rd": [25, 91], "4": [31, 40, 66, 77, 90, 91, 94, 96, 103, 105], "40": 80, "400": 59, "405a": 74, "4077": 74, "40f0": [2, 13, 15, 93], "4206": 74, "4248": [2, 13, 15, 93], "435b": 74, "439037e58842": 92, "43a4": 74, "43f5": 74, "44": 78, "442f": 74, "4499fa22525d": 92, "44a8aa37": [2, 13, 15, 93], "45": [77, 78], "4509756": 84, "456": 34, "4568096570283078": 91, "45efa517": 74, "4667": 74, "46it": 74, "4780": [74, 92], "483b": 74, "4870": 74, "48ce": 74, "49": 92, "4917": 76, "493d": 74, "4972": 92, "49b5": [2, 13, 15, 93], "49ff": 74, "4bd0": 74, "4c00": 92, "4c39": 92, "4c92": 92, "4cc5": 92, "4ce3": 76, "4dde": 92, "4df0": 92, "4dfa": 92, "4e24": 74, "4e69": 92, "4eb4": 74, "4f5f": 74, "4f88": [2, 13, 15, 93], "4o": 91, "5": [2, 7, 8, 10, 13, 15, 22, 26, 30, 31, 32, 70, 72, 74, 77, 81, 84, 90, 91, 92, 93, 94, 97, 100, 103, 105], "50": [1, 13, 14, 74, 92, 94], "512": 84, "5166601493236314": 91, "518a": 74, "5316efd58d58": 74, "5343238380789569": 91, "55": 78, "557cc52b": 92, "56": 78, "569a": 74, "582859": 78, "59it": 75, "5ba2": 76, "6": [7, 53, 74, 77, 84, 91, 92, 94, 103], "6060606060606061": 45, "609": 74, "6175549": 84, "6229580777634034": [8, 22], "6294762236217233": 91, "63072": 74, "64": 100, "64987b2b": 74, "6666666666666666": 94, "68ae": 92, "6bd772b9": 92, "7": [90, 91, 103], "70b": 90, "72": 94, "724": 92, "7335e34ee0c6": 74, "73c12be3": 74, "741": 92, "75": [8, 22, 91], "756148": 78, "765794": 78, "768": 75, "7749403119087219": 77, "7749999761581421": 91, "7790170272403408": 91, "7844": 74, "7853187918663025": 77, "78917586": 76, "7959791421890259": 77, "79it": 74, "7a17ed45": 74, "7a4f86892556": 74, "7b": 4, "7de4b00a": 92, "8": [8, 22, 84, 91, 92, 97], "80": 66, "800": [2, 13, 15], "8000": 66, "803030303030303": 45, "8031794089550072": 91, "8109999895095825": 91, "8119999766349792": 91, "8169999718666077": 91, "8192": [26, 90, 100], "840021aa1953": 74, "844a": 92, "8678": 74, "8762": 92, "87e0": 74, "882e": 92, "88b4": 92, "8b": [26, 100], "8b0d": 74, "8bc3": 74, "8c3e": 74, "8e52": 74, "8f78": 92, "9": [90, 91, 92], "90": 80, "910e984cdb65": 74, "9122": 74, "9216": 100, "922c0f8a4efb": 92, "93922b619293": 74, "9419728517532349": 77, "9435ed755e20": 74, "9498793313012154": 91, "9670": 74, "9696708": 91, "9701269": 91, "97db": [2, 13, 15, 93], "98742366": 91, "991f": 92, "9950029253959656": 91, "99520767": 91, "9994476437568665": 91, "9994490742683411": 91, "9996004700660706": 91, "9a424d4c": 74, "9bae": 92, "9c14": 76, "9ca4": [2, 13, 15, 93], "9cd745effb43": 92, "A": [2, 6, 7, 10, 13, 15, 22, 25, 26, 29, 31, 34, 40, 43, 63, 69, 74, 76, 77, 84, 90, 91, 92, 94], "And": [11, 31, 32, 72, 81, 88, 92, 94, 98], "As": [26, 27, 70, 72, 74, 76, 88, 91, 94, 100, 105], "At": [11, 90], "But": [78, 81, 91, 92, 94], "By": [32, 75, 78, 93, 94], "For": [0, 2, 6, 7, 11, 12, 13, 15, 20, 25, 33, 43, 66, 70, 74, 75, 77, 79, 84, 90, 91, 92, 93, 94, 98, 103, 105], "If": [2, 4, 6, 9, 13, 15, 20, 22, 25, 26, 29, 31, 39, 40, 53, 56, 62, 66, 70, 74, 75, 77, 80, 81, 88, 91, 92, 93, 94, 98, 105], "In": [27, 31, 35, 40, 69, 70, 72, 74, 76, 78, 80, 84, 88, 90, 92, 93, 94, 103, 105], "It": [1, 2, 3, 4, 7, 8, 11, 13, 14, 15, 17, 22, 26, 27, 33, 40, 42, 49, 53, 62, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 100, 103, 105], "Its": [74, 91], "No": [30, 43, 91, 92, 98], "Not": [3, 17], "On": [70, 100], "One": 57, "Or": [91, 94, 97], "Such": [26, 37], "The": [1, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15, 20, 22, 24, 25, 26, 27, 29, 31, 32, 33, 35, 36, 38, 40, 41, 43, 44, 45, 47, 51, 53, 56, 57, 59, 60, 61, 62, 64, 66, 69, 70, 72, 74, 75, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 98, 99, 100, 103, 105], "Then": [2, 13, 15, 66, 74, 76, 84, 90, 92, 93, 94], "There": [0, 4, 9, 12, 22, 80, 81, 91], "These": [2, 15, 41, 47, 66, 76, 79, 88, 91, 92, 93, 94, 103], "To": [8, 22, 36, 37, 66, 70, 72, 75, 77, 78, 79, 88, 90, 91, 92, 94, 97, 98, 103, 105], "Will": 99, "With": [31, 36, 74, 76, 84, 90, 92, 100], "_": [8, 22, 91], "__call__": [38, 72, 79, 84], "__dict__": [25, 27, 74], "__doc__": 91, "__init__": [8, 22, 26, 72, 75, 78, 84, 91, 94, 100], "__main__": 94, "__name__": [64, 84], "__repr__": 72, "_acal": [4, 33], "_api_kei": 84, "_call": [4, 33, 56, 84], "_coarse_labels_desc": 70, "_combine_input_and_model_kwarg": 84, "_compon": 78, "_compute_single_item": 43, "_extra_repr": [72, 75], "_field_typ": 51, "_generator_names_to_fil": 56, "_init_async_cli": 84, "_init_sync_cli": 84, "_is_async": 94, "_missing_typ": 51, "_paramet": 78, "_template_str": 78, "_trace_map": 57, "a2acf8ba4c27": 74, "a2b7": 92, "a595": 92, "a958": 74, "aa81": 74, "aaa8": 74, "ab": [0, 4, 7, 12, 51, 69, 91], "ab64": 74, "aba9": 74, "abbrevi": 70, "abc": 74, "abda": 92, "abil": [69, 74, 77], "abl": [70, 91], "about": [41, 47, 66, 81], "abov": [11, 72, 78, 80, 81, 84, 88, 91, 94], "absolut": 92, "abstract": [6, 33, 53, 70, 71, 79, 80, 84, 100], "abstract_algebra": 77, "ac": [8, 22], "ac78": 76, "academ": 77, "acal": [26, 29, 30, 32, 33, 36, 72, 79, 84, 91, 94, 100], "acc_list": 42, "access": [9, 11, 22, 26, 27, 39, 69, 77, 90, 91, 94, 97], "accomplish": 79, "accord": [2, 8, 13, 15, 22, 103], "accordingli": 78, "accumul": 92, "accur": 91, "accuraci": [11, 42, 77, 80, 103], "acetaminophen": 72, "achiam": 77, "achiev": [7, 30, 70, 80, 94], "acm": 77, "across": [31, 70, 77, 94, 105], "act": [69, 76, 90], "action": [11, 40, 90], "activ": [40, 98], "actual": [9, 22, 31, 78, 91, 93], "ad": [8, 22, 26, 27, 31, 34, 40, 72, 74, 78, 91, 92, 94, 98], "adapt": [8, 22, 43, 75, 77, 94, 98, 100], "adc9": 92, "add": [0, 6, 7, 8, 12, 20, 22, 26, 27, 29, 31, 40, 62, 66, 70, 72, 74, 75, 79, 81, 84, 90, 94, 97, 98], "add_compon": 26, "add_llm_as_fallback": [0, 12], "add_missing_right_brac": [31, 37], "add_missing_right_bracket": [31, 37], "add_on": 72, "add_point": 94, "addit": [0, 8, 12, 22, 31, 40, 72, 75, 84, 90, 94], "addition": [4, 9, 22, 33, 75, 77, 91, 94], "additional_context": [39, 94], "additon": 38, "addonecompon": 72, "address": 80, "adjust": 80, "adpat": 78, "advanc": [72, 81], "advis": 25, "ae99": 74, "afbd": 74, "afc": [2, 13, 15, 93], "affect": [70, 75], "after": [8, 22, 25, 27, 29, 32, 35, 37, 66, 70, 76, 81, 90, 91, 92, 94], "afternoon": 92, "afun": 26, "ag": [25, 105], "again": [76, 91, 92], "agenda": 69, "agent": [11, 30, 40, 77, 80, 81, 88, 94, 98, 100], "agnost": [81, 84], "ahead": [70, 79], "ai": [72, 95, 98], "aim": [77, 80, 92], "al": 77, "algorithm": 92, "alia": [26, 40], "align": [2, 13, 15, 66, 93], "all": [4, 6, 11, 25, 26, 27, 30, 33, 35, 36, 39, 40, 51, 59, 62, 64, 66, 70, 72, 74, 75, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 97, 98, 100, 105], "all_gt_answ": [42, 103], "all_gt_context": [44, 45, 103], "all_pred_answ": [42, 103], "all_quest": 103, "all_retrieved_context": [44, 45, 103], "allevi": [72, 91], "allow": [25, 26, 31, 40, 56, 70, 72, 74, 80, 88, 90, 91, 92, 98, 100, 103], "allowi": 74, "almost": [80, 81, 91], "along": [9, 22, 25, 27, 32, 62, 66, 70, 72, 74, 78, 84, 91], "alpha": 92, "alreadi": [7, 8, 11, 22, 26, 40, 70, 91, 94], "also": [2, 6, 7, 8, 13, 15, 20, 22, 26, 29, 30, 31, 38, 40, 70, 72, 74, 77, 80, 88, 90, 91, 92, 93, 94, 105], "although": [8, 22, 90, 91, 92], "alwai": [6, 11, 20, 25, 27, 51, 74, 78, 93, 94], "amount": 74, "an": [0, 3, 4, 6, 12, 17, 20, 25, 26, 29, 30, 31, 32, 34, 35, 36, 40, 43, 49, 59, 61, 64, 69, 70, 72, 74, 75, 76, 77, 78, 80, 84, 88, 91, 92, 94, 97, 99, 103, 105], "analysi": [2, 13, 15, 77, 92, 93], "analyz": [90, 92], "ancestor": 62, "andrew": [8, 22], "angel": 81, "ani": [0, 2, 4, 6, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 43, 50, 51, 53, 56, 57, 59, 60, 64, 70, 72, 74, 75, 78, 79, 80, 84, 88, 91, 92, 94, 98, 100], "anoth": [9, 22, 35, 53, 69, 78, 91, 92, 98], "ansi": 62, "answer": [0, 6, 7, 11, 12, 20, 42, 43, 70, 72, 77, 90, 91, 94, 98, 103, 105], "answer_match_acc": [46, 103], "answermacthevalu": [77, 103], "answermatchacc": 42, "anthrop": [61, 81, 84, 97], "anthropic_api_kei": 97, "anthropic_cli": 84, "anthropicapicli": 84, "anyth": [6, 20, 80, 88, 94], "ap": [77, 78], "api": [4, 5, 7, 19, 24, 26, 29, 33, 36, 40, 41, 66, 76, 77, 79, 80, 81, 90, 96, 98, 100], "api_kei": [59, 84], "api_kwarg": [4, 33, 84], "api_respons": [5, 19], "apicli": 33, "apidoc": 66, "apidocoutdir": 66, "app": [40, 62], "app_log_filenam": 62, "appear": [34, 92], "append": [26, 27, 60, 74, 84, 94, 103], "append_dialog_turn": 40, "append_to_jsonl": 60, "appl": [43, 44, 45, 77, 92], "appli": [2, 13, 15, 27, 29, 31, 32, 35, 74, 75, 76, 91, 92, 93], "applic": [2, 3, 13, 15, 17, 25, 37, 69, 70, 74, 77, 79, 80, 91, 92, 93, 100, 104, 105], "application_nam": 98, "apply_transform": [27, 74], "approach": [2, 13, 15, 72, 76, 90, 92], "appropri": [72, 77], "ar": [0, 2, 4, 6, 8, 11, 12, 13, 15, 20, 22, 26, 27, 31, 34, 35, 39, 40, 41, 47, 56, 61, 62, 66, 69, 70, 72, 74, 75, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 104, 105], "arena": 77, "arg": [6, 11, 25, 26, 30, 31, 33, 36, 39, 40, 52, 53, 90, 94], "argument": [0, 4, 11, 12, 25, 26, 30, 31, 32, 33, 35, 40, 53, 59, 75, 76, 78, 84, 88, 90, 91, 92, 93, 94], "aris": 77, "arithmet": 40, "around": [38, 71], "arr": 94, "arrai": [31, 91, 94], "arriv": 7, "articul": 98, "arxiv": [0, 4, 7, 12, 51, 69, 77, 91], "asdict": [31, 70], "ask": [9, 22, 40, 43, 70, 74, 78, 88, 90, 91, 94, 95, 98], "aspect": 77, "aspirin": 72, "assert": [25, 75, 84], "assess": [77, 103], "assign": [2, 13, 15, 26, 34, 76], "assist": [3, 6, 17, 20, 35, 40, 72, 74, 78, 81, 88, 100, 103], "assistant_respons": [40, 74], "assistant_response_timestamp": [40, 74], "assistantrespons": [40, 74], "assit": 88, "assum": [27, 40, 74], "assumpt": 81, "ast": [31, 40], "async": [26, 29, 30, 32, 33, 36, 39, 84, 91, 94, 100], "async_cli": 84, "async_function_1": 30, "async_function_2": 30, "async_tool_1": 30, "async_tool_2": 30, "asynccal": 40, "asynchron": [30, 72], "asyncio": [30, 94], "asyncopenai": 84, "atmospher": 92, "atom": [74, 91], "attach": 92, "attention_mask": [4, 84], "attribut": [9, 10, 22, 26, 27, 34, 35, 36, 55, 59, 70, 72, 74, 78, 91, 94], "audio": 91, "augement": 91, "augment": [50, 77, 92, 103], "augment_sampl": 49, "auto": [26, 72, 78, 80, 84, 88], "autodoc": 66, "autom": [77, 80], "automat": [29, 34, 66, 72, 78, 90, 94, 98], "automodel": 84, "autonom": [69, 80], "autoreset": 62, "autotoken": 84, "avail": [11, 40, 77, 94, 97, 103], "available_funct": 94, "averag": [8, 22, 42, 44, 45, 103], "average_idf": [8, 22], "average_pool": [4, 84], "average_tim": 90, "avg_acc": 42, "avg_judg": [43, 103], "avg_recal": [44, 103], "avg_relev": [45, 103], "avgdl": [8, 22, 91], "avoid": [8, 22, 26, 66, 72, 74, 75, 91], "aw": 92, "await": [0, 12, 30, 39, 40, 94, 100], "awar": [9, 22, 92], "award": 105, "awlai": 94, "b": [8, 11, 22, 40, 90, 91, 92, 94], "b0d98c1b": 92, "b2dbdf2f": 74, "b3e9": 74, "b4c312bed365": 92, "b6c6": 74, "b81f": 92, "baai": [4, 91], "back": [6, 8, 20, 22, 27, 59, 64, 70, 76], "backslash": 11, "backtick": [6, 20, 31, 94], "backward": 26, "bad": 92, "ball": 7, "banana": 92, "bank": 77, "bare": [71, 88, 100], "basd": 91, "base": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 56, 57, 61, 63, 64, 69, 70, 71, 72, 75, 77, 80, 84, 90, 92, 94, 100, 103, 105], "base_class": 25, "base_data_class": [41, 70, 92, 103, 105], "basedataclass": 104, "basic": [41, 47, 80, 92], "batch": [2, 13, 15, 29, 40, 74, 75, 76, 84, 91], "batch_dict": 84, "batch_embedd": [74, 75], "batch_siz": [1, 2, 13, 14, 15, 29, 59, 74, 75, 76, 92], "batchembedd": [29, 74], "batchembedderinputtyp": 29, "batchembedderoutputtyp": 29, "bbc3": 92, "bc0ff7f6": 74, "bcbc6ff9": 74, "bdbd": 74, "beauti": [8, 22], "becaus": [2, 13, 15, 80, 84, 90, 93, 105], "becom": [77, 91, 92], "been": [40, 74, 91], "befor": [2, 13, 15, 37, 43, 44, 45, 72, 74, 75, 77, 79, 90, 91, 92, 93, 105], "beforehand": 92, "begin": [62, 80, 98], "begin_of_text": [81, 88], "behavior": [92, 94], "behind": [6, 20, 79, 81], "beij": 43, "being": [70, 79, 80, 94], "belong": 69, "below": [77, 91, 94], "benchmark": [7, 77, 90, 100], "benef": 91, "benefit": [40, 72, 74, 91], "bert": 77, "bertscor": 77, "besid": [26, 69, 74, 78, 88, 90, 92, 105], "best": [8, 22, 72, 91, 92, 98], "beta": [4, 94], "better": [2, 13, 15, 25, 50, 51, 66, 70, 72, 90, 91, 92, 94, 105], "between": [2, 11, 13, 15, 33, 80, 91, 92, 93, 98], "beyond": [2, 15, 80, 94], "bge": [4, 91], "bi": 91, "bias": [26, 72], "bigger": [8, 22], "bit": [30, 70], "black": 62, "bland": 92, "block": [25, 30, 31, 41, 47, 62, 72, 79, 80, 91, 98, 100], "blow": 78, "blue": 62, "bm25": [8, 22, 74, 91, 92], "bm25_index": [8, 22], "bm25_retriev": [22, 91], "bm25retriev": [8, 22, 92], "bonjour": 78, "bool": [0, 1, 4, 6, 8, 12, 13, 14, 22, 26, 27, 30, 31, 34, 35, 36, 37, 38, 40, 43, 53, 55, 62, 74, 75, 84], "boolean": [0, 6, 12, 91], "booleanoutputpars": 6, "boost": [74, 91], "bootstrapfewshot": 49, "border": [2, 13, 15, 92, 93], "bore": 80, "both": [2, 8, 15, 22, 26, 30, 39, 40, 60, 66, 70, 74, 77, 78, 79, 91, 94, 103, 105], "boundari": [25, 40, 61, 64], "box": [80, 91], "brace": 31, "bracket": 31, "break": [2, 13, 15, 80, 92, 93], "bridg": [4, 33], "brittl": 80, "broad": 77, "broader": 66, "browser": [66, 90], "budget": [2, 13, 15, 93], "bui": 7, "build": [8, 10, 22, 31, 36, 41, 47, 70, 72, 91, 92, 98, 100, 103, 104], "build_index": 103, "build_index_from_docu": [8, 9, 10, 22, 36, 74, 91, 92], "build_info_from_docu": 92, "builder": 35, "built": [8, 10, 22, 31, 36, 79, 90, 91, 92, 94, 97], "busi": 80, "c": [8, 22, 26], "c4e4": 74, "c4e5": 76, "c5431397": 74, "c77c98ac260f": 74, "c8fc": 74, "ca": 94, "ca0af45b": [2, 13, 15, 93], "cach": [4, 74, 84], "cai": 77, "calcul": [76, 92], "call": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 43, 50, 53, 56, 60, 62, 64, 72, 74, 75, 76, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 98, 100, 103], "call_async_funct": 30, "callabl": [0, 8, 9, 10, 12, 22, 25, 26, 27, 30, 31, 36, 39, 40, 53, 74], "callbackmanag": 98, "can": [0, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 17, 20, 22, 25, 26, 27, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45, 51, 53, 57, 59, 61, 63, 66, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 95, 97, 98, 100, 103, 105], "candid": 91, "cannot": [77, 98], "cansof": 7, "cantain": 26, "capabl": [24, 30, 47, 77, 94], "capit": [25, 31, 70, 75, 78, 84, 88], "captur": 31, "carbon": [74, 91], "card": 88, "carefulli": 98, "carri": 94, "case": [3, 9, 17, 22, 25, 27, 72, 74, 79, 80, 88, 90, 91, 92, 94, 98, 105], "cat": 92, "categor": [25, 84, 91], "caus": 72, "caution": 30, "cd": 66, "cdot": [8, 22], "celsiu": 94, "center": [71, 78, 79], "certain": [4, 31, 105], "chain": [7, 40, 70, 72, 74, 75, 79, 90, 91], "challeng": [80, 91], "chanc": [9, 22, 80], "chang": [57, 62, 74, 77, 78, 80, 91], "charact": [66, 92], "chat": [4, 28, 33, 74, 78, 84, 88], "chat_histori": [28, 74, 78], "chat_history_str": [28, 74, 78, 88], "chatbot": [74, 77, 79, 80], "chatcompletiontokenlogprob": 40, "cheapest": 91, "check": [2, 11, 13, 15, 27, 31, 33, 34, 35, 40, 53, 70, 72, 74, 76, 77, 84, 90, 91, 92, 93, 94, 98, 102, 105], "check_object": 64, "checker": 70, "chen": 77, "child": [26, 92], "children": 26, "china": [43, 75], "chip": 4, "choic": 77, "choos": [8, 22, 36, 92, 94], "chunk": [1, 2, 13, 14, 15, 74, 75, 79, 91, 92, 98], "chunk_overlap": [2, 13, 15, 93], "chunk_siz": [2, 13, 15, 93], "citi": 94, "cl": [31, 70], "cl100k_base": [2, 13, 15, 38], "clariti": [66, 80, 100], "class": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 56, 57, 59, 61, 63, 64, 70, 72, 74, 75, 78, 80, 84, 90, 94, 98, 99, 100, 103, 105], "class_index": 70, "class_inst": 25, "class_nam": [25, 70], "classes": 105, "classic": 80, "classif": [77, 80, 99], "classifi": [70, 99], "classmethod": [8, 22, 25, 26, 27, 29, 32, 35, 36, 40, 63, 70], "classsampl": 53, "claud": 81, "clean": 92, "clean_up_tokenization_spac": 4, "clear": [79, 90, 98], "client": [0, 4, 5, 9, 10, 12, 19, 22, 29, 32, 33, 43, 78, 79, 80, 81, 84], "climat": [74, 91], "clone": [66, 98], "close": [31, 80, 91, 92], "closest": 92, "cloth": 91, "cloud": [3, 17, 84, 91], "co": [4, 75, 91], "coarse_label": [53, 70], "code": [2, 6, 13, 15, 25, 31, 40, 51, 62, 74, 75, 77, 78, 79, 80, 84, 88, 91, 92, 93, 94, 98, 100, 103], "coher": [61, 81, 91, 97], "cohere_api_kei": 97, "cohere_cli": 91, "cohereapicli": [10, 22, 91], "collabor": 95, "collect": [40, 78], "color": 62, "colorama": 62, "colored_print": 62, "com": [66, 88, 91, 94], "combat": [74, 91], "combin": [31, 32, 35, 76, 80, 91, 94, 98], "combine_kwarg": [31, 32], "come": [74, 84, 98, 100], "command": 62, "comment": 88, "commit": 98, "common": [44, 45, 77, 91, 92], "commonli": [2, 6, 15, 76, 77, 92], "commun": [30, 33, 84, 96, 98], "compact": [40, 94], "compar": [6, 8, 20, 22, 31, 42, 51, 74, 75, 93], "comparison": [72, 91, 94, 98], "compat": [72, 84], "complet": [0, 3, 4, 12, 17, 30, 31, 32, 33, 51, 66, 69, 84, 90], "complex": [6, 20, 31, 70, 77, 92, 98], "complic": [7, 88, 94], "compon": [27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 49, 50, 59, 61, 63, 64, 66, 69, 70, 71, 74, 75, 76, 77, 78, 84, 88, 90, 91, 92, 93, 94, 97, 100, 103, 105], "componenet": [26, 59], "component1": 26, "component2": 26, "component3": 26, "component4": 26, "component_config": [29, 32], "component_nam": [29, 32], "compos": [35, 81], "compose_model_kwarg": 31, "compose_prompt_kwarg": 35, "comprehens": 77, "comput": [42, 43, 44, 45, 70, 77, 80, 91, 92, 103], "compute_context_relev": 103, "compute_context_relevance_single_queri": 77, "compute_judg": 103, "compute_match_acc": 103, "compute_recal": 103, "compute_recall_single_queri": 77, "con": [74, 91], "concaten": 92, "concept": [70, 72], "concis": [70, 72], "conclus": 103, "concurr": 94, "condit": [27, 88, 90], "condition": [18, 88], "condition_fn": 74, "conf": 66, "confer": 77, "config": [26, 29, 32, 62, 75, 103], "configur": [2, 13, 15, 26, 29, 31, 32, 59, 62, 63, 66, 76, 80, 92, 93, 97, 100, 103], "confus": [26, 70, 72, 98], "consid": [25, 26, 77, 91, 92, 93], "consin": 91, "consist": [6, 35, 40, 66, 105], "consol": 62, "constant": [8, 22, 31], "constantli": 70, "constraint": 93, "construct": [59, 103], "constructor": [26, 75], "contain": [2, 8, 11, 13, 15, 22, 26, 30, 31, 34, 40, 42, 43, 66, 74, 75, 78, 90, 92, 94, 98, 103, 105], "content": [74, 81, 84, 91, 92, 93, 96, 99, 101, 105], "contex": [28, 78], "context": [2, 13, 15, 25, 26, 28, 30, 31, 35, 39, 44, 45, 72, 74, 77, 78, 79, 80, 90, 92, 93, 94, 98, 103], "context_map": [31, 40, 94], "context_str": [28, 35, 78, 88, 94, 103], "contextu": [77, 103], "continu": [74, 88, 92], "contrari": 100, "contravari": 91, "contribut": [68, 74, 91, 98], "contributor": [66, 98], "control": [2, 13, 15, 40, 62, 66, 70, 74, 80, 81, 88, 92, 93, 98, 105], "conv1": [72, 100], "conv2": [72, 100], "conv2d": [72, 100], "conveni": [72, 90], "convent": [6, 20, 70, 94], "conver": 74, "convers": [3, 17, 40, 74, 88, 90, 91, 94, 95], "conversation_histori": 91, "conversation_id": 40, "convert": [4, 25, 26, 31, 33, 40, 64, 70, 72, 74, 76, 81, 84, 91, 92, 94, 98], "convert_inputs_to_api_kwarg": [4, 33, 84], "convert_schema_to_signatur": 31, "cookbook": [91, 98, 105], "copi": [1, 13, 14, 26, 75, 76, 84, 98], "core": [2, 6, 13, 15, 56, 70, 72, 74, 75, 76, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "corpu": [8, 22, 92], "correct": [34, 77, 103], "correctli": [27, 66, 70], "corresbond": 66, "correspond": [2, 13, 15, 31, 77, 90, 92, 93, 103], "cosin": [77, 92], "cost": 91, "cot": 7, "cotgener": 7, "cotgeneratorwithjsonoutput": 7, "could": [31, 40], "count": 38, "count_token": 38, "counter": 72, "cours": [77, 78], "cover": [3, 17, 70, 74, 91, 94, 98, 105], "coverag": 91, "covert": 94, "cpu": 97, "creat": [2, 4, 13, 15, 25, 26, 27, 29, 30, 32, 35, 40, 59, 70, 72, 74, 75, 76, 78, 81, 84, 88, 90, 91, 92, 93, 94, 99, 103, 105], "create_embedding_respons": 40, "create_from_dict": 25, "created_at": 40, "creation": 50, "criterion": [2, 13, 15, 88, 93], "critic": [2, 13, 15, 62], "cross": 91, "crucial": [24, 47, 70, 74, 77, 88, 91, 92], "crud": [27, 74], "ctrl": 90, "cumul": 92, "current": [26, 27, 49, 51, 62, 74, 75, 78, 84, 90, 91, 94, 97], "custom": [2, 6, 9, 13, 15, 22, 31, 62, 64, 70, 75, 77, 79, 80, 84, 90, 92, 98, 103], "custom_asdict": [31, 70], "customiz": [71, 90, 92, 100], "cut": 91, "cutoff": 92, "cyan": 62, "d": [6, 8, 20, 22], "d19a": 74, "dai": [8, 22, 44, 45], "dan": 77, "data": [1, 2, 3, 6, 9, 13, 14, 15, 17, 20, 22, 25, 26, 27, 29, 31, 32, 34, 35, 40, 50, 53, 60, 64, 72, 75, 76, 78, 80, 84, 90, 92, 93, 94, 98, 99, 100, 103, 105], "data_class": [6, 20, 94], "data_class_for_yaml": [6, 20], "data_compon": [13, 76, 92], "data_dict": 25, "data_process": [24, 74, 76, 79, 93], "data_transform": 74, "databas": [36, 40, 79, 92, 103], "dataclass": [6, 20, 25, 31, 40, 49, 50, 51, 56, 57, 64, 71, 74, 75, 78, 79, 91, 94, 100, 105], "dataclass_obj_from_dict": 31, "dataclassformattyp": [6, 20, 25, 70], "dataformat": 40, "datapiplin": 74, "dataset": [53, 74, 77, 90, 99, 103], "date": 66, "datetim": 40, "db": [41, 74, 79, 91, 92], "db2": 27, "deal": [74, 91], "debug": [62, 74, 79, 80], "decid": [0, 4, 12, 25, 33, 70, 77, 90, 91, 94, 98], "decis": [77, 90], "decod": [38, 90], "decor": [25, 26, 60, 70, 72, 78], "decreas": 75, "decreaseembeddingdim": 75, "decreat": 75, "dedupl": [1, 13, 14], "deepcopi": 75, "deeper": 100, "deepmind": 51, "def": [6, 20, 26, 30, 31, 40, 70, 72, 74, 75, 78, 84, 88, 90, 91, 92, 94, 100], "defaul": 78, "default": [0, 4, 6, 7, 8, 9, 10, 11, 12, 20, 22, 25, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 43, 51, 56, 57, 60, 62, 64, 70, 72, 74, 78, 81, 91, 92, 94, 105], "default_factori": [25, 51, 70], "default_lightrag_system_prompt": [28, 32, 35, 88], "default_llm_evaluator_prompt": 103, "default_model_kwarg": 31, "default_num_shot": 53, "default_prompt_templ": [41, 88], "default_react_agent_system_prompt": [0, 12], "defaultllmjudg": [43, 78], "defens": 79, "defin": [2, 13, 15, 25, 36, 61, 72, 84, 90, 91, 92, 93, 103, 105], "definit": [2, 13, 15, 30, 39, 40, 88, 90, 91, 93, 94], "del": 26, "delet": [26, 27, 74], "delete_dialog_turn": 40, "delibr": 94, "demo": [72, 80], "demonstr": [4, 43, 75, 76, 90, 91, 94, 99, 105], "denomin": [8, 22], "denot": 81, "depend": [2, 8, 9, 15, 22, 31, 40, 66, 72, 81, 90, 92, 98, 103, 105], "deriv": 94, "desc": [25, 28, 51, 70, 78, 91, 105], "descend": 26, "describ": [25, 30, 94, 105], "descript": [6, 11, 20, 25, 31, 40, 70, 74, 77, 79, 88, 90, 92, 94, 98, 103, 105], "deseri": [64, 70, 72, 80, 88, 91], "design": [25, 26, 30, 33, 37, 40, 53, 71, 72, 74, 75, 79, 84, 90, 92, 93], "desir": [6, 20, 77, 78, 88], "destin": [26, 80], "detail": [2, 13, 15, 24, 25, 32, 41, 43, 47, 66, 67, 70, 72, 74, 77, 84, 90, 94, 105], "determin": [2, 13, 15, 72, 77, 90], "develop": [2, 9, 13, 15, 22, 66, 71, 74, 76, 78, 79, 80, 81, 88, 90, 91, 92, 93, 98, 100, 105], "devic": 4, "df68": 74, "diagram": [81, 88], "dialog": [40, 74], "dialog_turn": [40, 74], "dialog_turn_db": 74, "dialog_turns_as_docu": 74, "dialog_turns_input": 40, "dialogturn": [27, 40, 91], "dict": [0, 4, 6, 7, 9, 10, 12, 20, 22, 25, 26, 27, 29, 31, 32, 33, 35, 37, 39, 40, 43, 50, 51, 53, 56, 57, 59, 60, 63, 64, 70, 74, 84, 94, 105], "dict_exampl": 70, "dict_factori": 31, "dictionari": [2, 6, 13, 15, 20, 25, 26, 29, 31, 32, 35, 40, 59, 60, 64, 70, 74, 92, 93, 94, 105], "did": [49, 74, 78, 88, 91, 94, 100, 105], "differ": [3, 8, 17, 22, 27, 40, 53, 72, 75, 78, 79, 80, 81, 84, 88, 90, 91, 93, 94, 98, 100, 104], "differen": 91, "differenti": [37, 91], "difficult": 94, "dim": 84, "dimens": [29, 40, 59, 74, 75, 76, 84, 91, 92], "dimension": 70, "diminish": [8, 22], "dir": [78, 84], "direct": [26, 66, 72, 92], "directionli": 30, "directli": [2, 13, 15, 31, 40, 43, 53, 66, 70, 72, 74, 75, 88, 91, 93, 94, 98], "directori": [33, 56, 57, 62, 66, 78, 97, 98], "disabl": 90, "disappoint": 91, "disclos": [81, 88], "discord": 95, "discuss": [95, 105], "disk": 91, "disrupt": [74, 91], "distil": 80, "distilbert": 77, "divers": [77, 91], "divid": [8, 11, 22, 77, 90, 92, 94, 103], "divis": [2, 8, 13, 15, 22], "do": [3, 6, 17, 20, 25, 31, 40, 53, 62, 70, 74, 76, 80, 84, 88, 90, 91, 92, 94, 98, 100], "doc": [2, 4, 10, 13, 15, 22, 26, 36, 40, 66, 70, 72, 74, 75, 76, 88, 91, 92, 93, 94], "doc1": [2, 13, 15, 92, 93], "doc2": 92, "doc_index": [74, 92], "doc_indic": [8, 22, 40, 74, 91], "doc_len": 91, "doc_list": 103, "doc_qa": 26, "doc_scor": [8, 22, 40, 91, 92], "docqa": [26, 72], "docstr": [11, 94], "doctest": 66, "doctor": [6, 20, 26, 72], "document": [1, 2, 4, 8, 9, 10, 13, 14, 15, 22, 24, 27, 36, 38, 40, 41, 47, 67, 68, 75, 76, 78, 79, 91, 94, 96, 98, 101, 103], "document_indic": 92, "document_map_func": [8, 9, 10, 22, 36, 91], "document_splitt": [59, 92], "documents_embed": 91, "documentsplitt": [40, 59, 74, 76, 92], "dodger": 81, "doe": [1, 7, 13, 14, 25, 27, 33, 43, 59, 84, 91, 92, 103, 105], "doesn": 90, "domain": 77, "domest": 92, "don": [6, 8, 22, 81, 92, 98], "done": [70, 90], "dont": [74, 81, 98], "dorianbrown": [8, 22, 91], "dotenv": [76, 90, 92, 97], "dotenv_path": [76, 90, 92], "doubl": [11, 94], "doubt": [80, 91], "download": 98, "downsid": [74, 91], "downstream": 75, "drink": 72, "driven": 92, "drop": 93, "dropout1": 100, "dropout2": 100, "dropout2d": 100, "due": [77, 91, 94], "dummi": 98, "dump": [31, 94], "dumper": 31, "duplic": 53, "dure": [2, 13, 15, 74, 75, 76, 78, 91, 92, 93, 97, 105], "dynam": [25, 90], "dynamicdataclassfactori": 25, "dynamicoutput": 25, "e": [2, 9, 11, 13, 15, 22, 53, 66, 81, 84, 93, 94, 103], "e3b48bcc": 74, "e3f04c8b": 92, "e4850140": 92, "e539": 92, "e636facc": 74, "e7b617b2": [2, 13, 15, 93], "each": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 20, 22, 24, 25, 26, 40, 42, 44, 45, 47, 53, 56, 57, 61, 70, 74, 75, 76, 79, 80, 90, 91, 92, 93, 94, 103], "ear": 78, "earth": 43, "eas": [40, 70, 79, 80], "easi": [80, 88, 90, 98, 100], "easier": [90, 94], "easili": [72, 74, 75, 77, 79, 88, 91, 94, 98, 100, 105], "eat": 92, "ec0fc247ac8b": [2, 13, 15, 93], "ec910402": 74, "economi": [74, 91], "ecosystem": [74, 91], "edit": [66, 78], "effcient": 25, "effect": [8, 22, 47, 69, 74, 76, 91, 92], "effici": [40, 90, 93, 94, 105], "effort": [27, 70, 79], "eg": 61, "eiffel": 78, "either": [0, 12, 31, 33, 40, 70, 75, 78, 79, 84, 91, 98], "el": 74, "electr": [74, 91], "electron": [74, 91], "element": [6, 20, 35, 94], "elif": [84, 94], "els": [78, 84, 90, 92, 94], "emb": [2, 15, 75, 92], "embed": [1, 2, 4, 5, 13, 14, 15, 19, 29, 33, 40, 59, 74, 75, 76, 77, 79, 84, 91, 92, 93], "embedd": [1, 4, 13, 14, 26, 33, 40, 41, 59, 74, 79, 84, 91, 98], "embedder_config": 29, "embedder_response_processor": 92, "embedder_transform": 74, "embedderoutput": [4, 5, 19, 29, 33, 40, 74, 84], "embedderoutputtyp": 40, "embedderrespons": [76, 92], "embedding_dim": [40, 75], "emiss": [74, 91], "emit": 25, "emphas": [66, 105], "emploi": 77, "empti": [9, 11, 22, 27], "en": [4, 8, 22, 75, 88, 91], "enabl": [32, 62, 76, 90, 92, 100], "enable_consol": 62, "enable_fil": 62, "enable_library_log": 62, "encapsul": 90, "enclos": [6, 20, 94], "encod": [2, 13, 15, 38, 91], "encoding_format": [29, 59, 74, 75, 76, 84, 91, 92], "encourag": [2, 15, 32, 84], "end": [11, 26, 27, 31, 66, 70, 74, 79, 80, 81, 99, 100], "end_header_id": [81, 88], "end_of_text": [81, 88], "end_tim": [30, 94], "endfor": [11, 35, 88, 91, 94], "endif": [11, 28, 35, 78, 88, 94, 105], "energi": [74, 91], "enforc": [34, 74, 78], "engag": [70, 95], "engin": [26, 72, 78, 80, 88, 98, 100], "english": 91, "enhanc": [62, 72, 79, 90, 105], "enhance_queri": 72, "enhancequerycompon": 72, "enjoi": 98, "enough": 80, "enssenti": 105, "ensur": [4, 11, 25, 29, 31, 35, 66, 70, 72, 75, 76, 79, 81, 91, 92, 97], "entir": 91, "entiti": [59, 63, 70, 80, 90], "entity_cl": 63, "entity_config": 59, "entity_nam": 59, "entity_st": 59, "entitymap": 63, "enum": [25, 40, 61, 64, 84, 94], "enumer": [26, 94], "env": [75, 76, 90, 91, 92, 97, 98], "environ": [2, 15, 31, 35, 66, 69, 74, 75, 76, 84, 90, 91, 92, 96, 98], "environment": [74, 91], "eot_id": [81, 88], "epilon": [8, 22], "epsilon": [8, 22, 91], "equal": [4, 43, 91], "equival": [26, 31, 74, 94], "error": [4, 9, 22, 25, 31, 33, 40, 61, 62, 70, 75, 78, 84, 90, 94], "error_messag": [40, 78], "error_onli": 55, "escap": 11, "especi": [1, 2, 11, 13, 14, 15, 25, 57, 72, 75, 77, 81, 91, 92, 93], "espeic": 91, "essenc": 98, "essenti": [41, 47, 74, 78, 90, 91], "establish": 98, "estimated_num_token": [40, 74, 76, 92], "et": 77, "etc": [6, 20, 26, 27, 31, 53, 75, 77, 91, 92, 98], "eval": [26, 30, 31, 39, 40, 46, 77, 78, 94, 99, 103], "evalu": [26, 31, 40, 42, 43, 44, 45, 72, 78, 79, 80, 91, 104], "evaluate_ast_nod": 31, "even": [2, 6, 13, 15, 31, 70, 72, 75, 78, 80, 88, 91, 93, 94], "event": 30, "eventu": [70, 91], "ever": 84, "everi": [27, 80, 98], "eviron": 90, "exact": [2, 13, 15, 77, 92, 93, 103], "exact_match": [42, 103], "exactli": [7, 26, 42, 91, 103], "exam": 77, "examin": [8, 22], "exampl": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 42, 43, 44, 45, 49, 53, 59, 62, 66, 72, 74, 75, 76, 77, 78, 81, 84, 88, 90, 91, 92, 94, 97, 98, 99, 100, 103, 105], "example1": [76, 92], "example2": 92, "example3": 92, "example4": 92, "example_funct": 31, "example_json": [25, 70], "example_str": 70, "example_yaml": [25, 70], "examples_prompt": 35, "examples_str": [28, 35, 78, 88], "examples_templ": 35, "excel": 100, "except": [2, 13, 15, 33, 75, 84, 94], "exclud": [6, 20, 25, 26, 31, 32, 39, 40, 70, 74, 94], "exclude_field": [6, 20], "excludetyp": 70, "exclus": 70, "execlud": 94, "execut": [2, 11, 13, 15, 30, 31, 39, 90, 93, 94], "execute_func": [39, 94], "execute_func_expr": [39, 94], "execute_func_expr_via_ev": [39, 94], "execute_func_expr_via_sandbox": [39, 94], "exist": [35, 70, 80, 90, 91, 100], "exmplari": 4, "expand": 98, "expans": [1, 14, 91], "expect": [8, 10, 11, 22, 27, 31, 34, 36, 37], "expens": 91, "experi": [3, 8, 17, 22, 27, 74, 80, 92], "explain": [74, 90, 92, 98, 103], "explan": [8, 22], "explicitli": [25, 34], "explor": 47, "expr": [39, 94], "express": [30, 31, 39, 40, 94], "extend": [2, 15, 27, 30, 74, 75, 94, 98], "extens": [26, 66, 98], "extern": [64, 76, 77, 90, 91], "extra": 92, "extract": [2, 6, 13, 15, 20, 31, 37, 53, 90, 93, 98, 103], "extract_dataclass_typ": 31, "extract_json_str": 31, "extract_list_str": 31, "extract_yaml_str": 31, "ey": 78, "f": [1, 2, 8, 13, 14, 15, 22, 26, 30, 60, 72, 75, 76, 77, 84, 88, 90, 91, 92, 94, 103, 105], "f1": 77, "f1be8330c167": 92, "f2d0f52a": 92, "f2eddc77": 74, "f513": 74, "f89e0955e3a3": 92, "f98f": 74, "face": [29, 32, 66, 75, 77, 78], "facebookresearch": 91, "facet": 91, "facilit": [90, 93], "fact": [78, 90], "factor": [8, 22], "factori": [25, 27, 40, 56, 57], "factual": 91, "fahrenheit": 94, "fail": [9, 22, 40, 74, 75, 78, 80, 90, 94], "failur": [11, 75], "fair": 77, "faiss": [61, 91, 92, 97], "faiss_query_result": 92, "faiss_retriev": [74, 91, 92], "faissretriev": [59, 74, 92], "fall": 72, "fallback": [0, 12], "fals": [1, 4, 6, 13, 14, 20, 25, 26, 27, 31, 36, 38, 40, 43, 53, 62, 78, 94, 103], "famili": 69, "fantast": [76, 92], "far": 74, "farm": [74, 91], "fast": [8, 22, 92], "faster": 91, "fc1": 100, "fc2": 100, "fd11f12958b3": 74, "fdbc447d": 76, "fdc2429b": 92, "feasibl": 70, "featur": [30, 66, 77, 81, 94, 100], "feburari": [44, 45], "fed": [94, 103], "fetch": [9, 22, 27, 74, 92, 103], "fetch_item": 27, "fetch_transformed_item": 27, "fetched_dialog_turn": 74, "fever": 90, "few": [7, 25, 49, 53, 70, 77, 88, 90, 91, 94, 105], "field": [6, 8, 20, 22, 25, 29, 31, 32, 39, 40, 50, 51, 70, 74, 75, 76, 81, 91, 92, 94, 105], "field_nam": 25, "field_valu": 25, "fieldtyp": 31, "file": [3, 4, 8, 17, 22, 26, 27, 29, 36, 56, 57, 60, 62, 66, 70, 75, 76, 78, 84, 91, 97, 98, 103], "file_io": 72, "file_path": 56, "filenam": [55, 56, 57, 62], "filepath": [26, 27, 57, 74], "filesystem": 27, "fill": [8, 22, 32, 35, 50, 98], "filter": [88, 91, 92, 98], "final": [0, 8, 11, 12, 22, 35, 40, 74, 76, 77, 88, 90, 91, 92, 94, 103], "final_model_kwarg": 84, "final_prompt": 88, "find": [38, 74, 75, 76, 90, 91, 92, 97], "fine": [40, 92], "finish": [11, 90], "first": [2, 11, 13, 15, 27, 31, 34, 74, 76, 77, 79, 81, 84, 90, 91, 92, 93, 94, 103], "fit": [25, 29, 40, 74, 79, 93], "fix_json_escaped_single_quot": 31, "fix_json_missing_comma": 31, "flat": 43, "flexibl": [27, 31, 40, 70, 72, 80, 84, 88, 90, 92, 94, 98, 105], "flexibli": 79, "float": [4, 6, 8, 20, 22, 29, 31, 40, 42, 44, 45, 49, 51, 53, 59, 74, 75, 76, 84, 91, 92, 94], "flow": [74, 90, 91, 105], "fn": [30, 31, 90, 94], "fn_schema_str": [11, 40, 90], "fnew": 92, "focu": [74, 90, 92], "focus": 79, "folder": [66, 98], "follow": [2, 5, 6, 9, 11, 15, 19, 20, 22, 25, 26, 32, 62, 66, 70, 75, 77, 78, 80, 81, 88, 91, 92, 94, 97, 98, 103, 105], "food": 92, "footprint": [74, 91], "forc": 66, "fork": 66, "form": [2, 13, 15, 40, 70, 74, 88, 91, 93, 100], "format": [2, 4, 6, 8, 11, 13, 15, 20, 22, 25, 26, 28, 30, 32, 33, 36, 37, 40, 59, 62, 64, 66, 74, 75, 78, 79, 81, 84, 88, 90, 91, 100, 103, 105], "format_chat_history_str": 74, "format_class_str": [25, 70], "format_example_str": [25, 70], "format_instruct": [6, 20, 94], "format_str": 25, "format_typ": [6, 20, 25, 70], "formula": 92, "forward": [26, 38, 72, 100], "fossil": [74, 91], "found": [31, 43, 44, 45, 61, 66, 74, 77, 91, 103], "foundament": 72, "foundat": [41, 47], "four": [33, 72, 91, 94], "frac": [8, 22], "framework": [24, 47, 90, 98], "franc": [25, 31, 70, 78, 84, 88], "francisco": 94, "franklin": 69, "free": [74, 91], "frequenc": [8, 22, 92], "frequent": [8, 22], "fresh": 91, "friendli": 92, "from": [1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 19, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 51, 53, 56, 59, 60, 62, 66, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 99, 100, 103, 105], "from_config": [26, 29, 32, 91], "from_default": 90, "from_dict": [6, 8, 20, 22, 25, 26, 35, 36, 40, 70, 88, 91, 94, 105], "from_dict_to_json": 31, "from_dict_to_yaml": 31, "from_funct": [40, 94], "from_json": [25, 70], "from_json_to_dict": 31, "from_pretrain": 84, "from_yaml": [25, 70], "from_yaml_to_dict": 31, "frustrat": [78, 80], "fsspec": 74, "fuel": [74, 91], "full": [40, 80, 91, 98, 100, 103], "fullwiki": 103, "fun": [26, 40, 78, 98], "fun_arg": 40, "fun_compon": [26, 72], "fun_expr": 40, "fun_kwarg": 40, "fun_nam": 40, "fun_to_compon": [26, 72], "func": [31, 39, 40, 94], "func_desc": [40, 94], "func_expr": 94, "func_nam": [40, 94], "func_output": 94, "func_paramet": [40, 94], "func_pars": 94, "func_tool": [41, 94], "funciton": 94, "funcnam": 94, "funcompon": 26, "function": [0, 1, 2, 4, 5, 8, 10, 11, 12, 13, 14, 15, 22, 24, 25, 26, 27, 30, 33, 35, 37, 39, 40, 41, 47, 59, 62, 63, 70, 72, 74, 75, 77, 78, 79, 80, 90, 91, 92, 93, 98, 103, 105], "function_arg": 94, "function_definit": [39, 94], "function_expr": [31, 94], "function_nam": [62, 94], "function_respons": 94, "function_to_cal": 94, "functiondefinit": [30, 39, 40, 94], "functionexpress": [30, 39, 40], "functionoutput": [30, 39, 40, 94], "functiontool": [0, 12, 30, 39, 90, 100], "fundament": [80, 98, 100], "further": [2, 13, 15, 29, 70, 72, 75, 78, 91, 93, 98], "futur": [2, 13, 15, 69, 75, 80, 91, 93, 98], "fuzzi": [77, 91, 103], "fuzzy_match": [42, 103], "g": [2, 9, 11, 13, 15, 22, 53, 66, 81, 84, 93, 94, 103], "ga": [74, 91], "game": 74, "gap": [33, 80], "gase": [74, 91], "gather": [30, 88, 94], "genai": 80, "genear": 91, "gener": [0, 2, 6, 7, 12, 13, 15, 20, 25, 26, 27, 31, 33, 34, 36, 37, 40, 43, 49, 50, 51, 53, 56, 57, 60, 66, 69, 70, 72, 74, 75, 76, 77, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "generate_function_call_expression_from_cal": [31, 94], "generate_readable_key_for_funct": 31, "generated_text": 77, "generativeai": [61, 97], "generator2": 78, "generator2_cal": 78, "generator_2": 78, "generator_2_cal": 78, "generator_cal": 78, "generator_call_logg": [54, 78], "generator_evalu": 103, "generator_nam": 57, "generator_names_to_fil": 56, "generator_state_logg": [54, 78], "generator_state_trac": [57, 78], "generatorcalllogg": [56, 78], "generatorcallrecord": 56, "generatoroutput": [9, 22, 32, 40, 56, 74, 92], "generatorstatelogg": [57, 78], "generatorstatesrecord": 57, "get": [2, 8, 11, 13, 15, 22, 25, 26, 27, 31, 35, 36, 40, 43, 56, 62, 63, 70, 74, 77, 84, 88, 90, 91, 92, 93, 94, 103, 105], "get_al": 63, "get_cal": 56, "get_chat_history_str": 40, "get_current_script_and_lin": 62, "get_current_weath": 94, "get_data_class_schema": [31, 105], "get_data_key_fun": 53, "get_dataclass_schema": 31, "get_default_log_config": 62, "get_dialog_turn": 40, "get_fun_schema": [30, 31, 94], "get_jinja2_environ": 35, "get_log_loc": [56, 57], "get_logg": 62, "get_model_arg": 40, "get_next_ord": 40, "get_prompt_vari": 35, "get_string_token": 38, "get_subcompon": 26, "get_supporting_sent": 103, "get_top_k_indices_scor": 31, "get_transformed_data": 27, "get_transformer_kei": 27, "get_type_schema": 31, "getenv": 84, "git": [66, 98], "github": [66, 95, 102], "give": [72, 74, 80, 91, 94], "given": [8, 22, 26, 31, 36, 50, 57, 59, 79, 81, 90, 91, 92, 94, 103], "go": [78, 80, 90, 91, 98, 100], "goal": [90, 93, 94, 100], "goe": 80, "good": [8, 22, 70, 72, 74, 77, 92, 94], "googl": [43, 44, 45, 51, 61, 66, 76, 77, 84, 88, 97], "google_api_kei": 97, "google_cli": 84, "google_generativeai": 61, "googlegenaicli": [61, 84], "got": 91, "gpt": [26, 31, 32, 72, 74, 77, 81, 84, 91, 92, 94], "gpt3": 7, "gpt_model_kwarg": 92, "graesser": 69, "graph": 92, "gre": 77, "great": [2, 13, 15, 70, 76, 77, 78, 79, 80, 92], "green": 62, "greenhous": [74, 91], "greet": 40, "groq": [61, 84, 97], "groq_api_kei": 97, "groq_client": 84, "groqapicli": [26, 84, 90, 92, 100], "ground": [42, 43, 44, 45, 51, 74, 77, 91, 98, 103], "group": 40, "grow": 92, "growth": [74, 91], "gt": [51, 91], "gt_answer": [42, 43], "gt_context": [44, 45, 77], "gt_context_sentence_list": 103, "gte": [4, 75, 84], "gu": 93, "guarante": [6, 66], "guid": [66, 68, 77, 90, 92, 94], "guidelin": [67, 77], "guo": 77, "ha": [7, 10, 22, 25, 27, 31, 36, 44, 45, 53, 57, 62, 64, 70, 71, 74, 77, 91, 92, 93, 94, 97, 98, 100, 103, 105], "had": [76, 92], "halluci": 91, "hand": [77, 78, 91], "handi": 88, "handl": [4, 9, 22, 25, 26, 31, 33, 70, 74, 75, 78, 79, 84, 90, 91, 94, 105], "hard": 80, "harri": 105, "hash": 51, "hashcod": 77, "have": [6, 7, 8, 11, 20, 22, 25, 26, 29, 33, 40, 53, 66, 70, 72, 74, 75, 76, 77, 78, 79, 81, 88, 90, 91, 92, 94, 97, 98, 100, 103], "hazard": [74, 91], "he": [7, 105], "headach": 72, "heavi": 80, "hello": [2, 8, 13, 15, 22, 27, 34, 40, 62, 81, 92, 93], "helm": 77, "help": [1, 2, 6, 7, 13, 14, 15, 20, 25, 30, 35, 61, 70, 72, 74, 78, 79, 80, 81, 88, 91, 93, 94, 100, 103], "helper": [1, 5, 14, 19, 26, 35, 59, 72, 91], "henc": [90, 105], "hendryck": 77, "here": [2, 4, 11, 13, 15, 33, 40, 53, 70, 72, 74, 77, 78, 81, 84, 88, 90, 91, 92, 93, 94, 96, 97, 98, 101, 105], "hero": [80, 100], "hf_token": 97, "hi": [40, 105], "hierarchi": [79, 100], "high": [80, 91, 98], "higher": [41, 47, 51, 80, 91, 92], "highest": 92, "highli": [2, 15, 27, 78, 80, 84, 98], "hint": [11, 31, 70, 94], "histor": 74, "histori": [11, 28, 40, 57, 74, 78, 88, 90, 91], "hobbi": 92, "hold": 40, "homepag": [8, 22], "hook": 98, "hop": 90, "host": 91, "hotpot_qa": 103, "hotpotqa": [77, 90, 103], "how": [2, 4, 7, 8, 9, 13, 15, 22, 25, 32, 40, 43, 47, 70, 72, 74, 75, 79, 81, 84, 88, 90, 91, 92, 94, 100, 103, 104, 105], "howev": [2, 15, 72, 74, 80, 81, 88, 91, 94], "html": [2, 13, 15, 66, 70, 91, 93], "http": [0, 4, 7, 8, 12, 22, 51, 66, 69, 70, 75, 88, 91, 94], "hub": [4, 77], "hug": 77, "hug_tran": 77, "huggingfac": [4, 70, 75, 84, 91], "huggingfaceh4": 4, "human": [70, 77, 91], "humanev": 77, "humor": 78, "hundr": 91, "hydrat": 72, "hydro": [74, 91], "hypernetwork": 98, "hyperparmet": 91, "hypothesi": 90, "i": [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 50, 51, 53, 56, 57, 59, 60, 61, 62, 66, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 91, 92, 93, 94, 96, 97, 100, 101, 103, 105], "ibuprofen": 72, "icl": [49, 53, 80], "id": [2, 13, 15, 38, 40, 74, 76, 92, 93], "idea": 95, "ideal": [2, 13, 15, 88, 93], "identifi": [31, 57, 92], "idf": [8, 22, 74, 91, 92], "idf_vers": 77, "idx": [26, 92, 94], "igh": 93, "ik": [2, 13, 15], "illustr": [2, 13, 15, 90, 93], "imag": [75, 91], "immedi": 26, "impact": [2, 6, 8, 13, 15, 22, 53, 74, 90, 91, 92], "implement": [0, 2, 3, 4, 8, 13, 15, 17, 22, 33, 36, 75, 77, 84, 91, 92, 93, 103, 105], "implicitli": 34, "import": [2, 6, 8, 13, 15, 20, 22, 25, 26, 30, 31, 35, 61, 62, 70, 72, 74, 75, 76, 77, 78, 79, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 105], "import_path": 61, "importerror": 61, "impress": 77, "improv": [8, 22, 49, 77, 78, 91, 92, 93], "inabl": 31, "inc": 66, "includ": [2, 3, 8, 13, 15, 17, 22, 25, 26, 27, 31, 36, 40, 59, 66, 72, 74, 79, 88, 90, 91, 92, 93, 94, 98, 103, 105], "includng": 98, "incomplet": 31, "incorpor": 77, "incorrect": 34, "increa": 74, "increas": [8, 22, 74, 91, 92], "increasingli": 77, "incress": 94, "indent": [6, 20, 31], "index": [2, 4, 8, 9, 10, 11, 15, 22, 27, 35, 36, 40, 53, 66, 74, 75, 84, 88, 91, 92, 94, 103], "index_kei": [36, 91], "indexflatip": 92, "indic": [9, 22, 25, 31, 91, 92], "infanc": 80, "infer": [4, 34, 40, 75, 77, 78], "infer_bge_reranker_bas": 4, "infer_gte_base_embed": [4, 84], "influenc": [8, 22, 77, 92], "info": 62, "inform": [25, 38, 41, 47, 72, 90, 91, 92, 98, 102, 105], "infrastructur": [74, 91], "ingest": [2, 15, 98], "ingestionpipelin": 98, "inherit": [33, 74, 91, 98], "init": [49, 51, 62], "init_async_cli": [33, 84], "init_llm_cli": 4, "init_model": [4, 84], "init_reranker_cli": 4, "init_sync_cli": [4, 33, 84], "initi": [4, 8, 9, 10, 11, 22, 33, 35, 36, 49, 53, 62, 74, 77, 84, 88, 90, 91, 92, 94, 103, 105], "initvar": 40, "inmemoryfaissretriev": 91, "inner": 92, "input": [0, 1, 4, 6, 8, 9, 10, 12, 13, 14, 20, 22, 25, 26, 29, 31, 32, 33, 36, 37, 38, 40, 50, 70, 74, 75, 76, 77, 78, 79, 81, 84, 88, 91, 92, 93, 94, 98, 105], "input_data_obj": 50, "input_str": [11, 26, 28, 72, 74, 78, 88, 91, 92, 94, 100], "input_text": 4, "insert": 27, "insid": [2, 11, 13, 15, 92, 93], "instal": [18, 61, 62, 66, 74, 75, 91, 96, 98], "install_messag": 61, "instanc": [6, 7, 20, 25, 26, 31, 32, 35, 64, 76, 77, 92, 94, 98, 103, 105], "instanti": [26, 59, 70], "instead": [2, 13, 15, 25, 26, 31, 43, 70, 72, 74, 75, 80, 92, 93, 94, 98], "instruct": [6, 7, 9, 11, 20, 22, 25, 51, 70, 77, 92, 94, 98, 105], "instructur": 94, "int": [0, 1, 2, 4, 8, 9, 10, 12, 13, 14, 15, 22, 25, 27, 29, 31, 34, 36, 38, 40, 49, 53, 62, 70, 74, 75, 90, 91, 94, 105], "int_param": 34, "integ": [6, 20, 34], "integr": [2, 4, 5, 13, 15, 18, 19, 47, 74, 75, 79, 80, 84, 90, 91, 98, 100], "intellig": 77, "intend": 66, "intent": 77, "interact": [11, 24, 25, 40, 47, 70, 79, 80, 90, 94, 100, 105], "interchang": 94, "interest": [74, 77], "interfac": [6, 30, 31, 33, 72, 75, 76, 78, 79, 80, 84], "intergr": [80, 84, 91], "interleav": [81, 90], "intermedi": [74, 90], "intern": [25, 47, 61, 64, 77, 80, 84, 90, 94], "interpret": [2, 13, 15], "introduc": [2, 13, 15, 93], "introduct": 104, "intuit": [2, 13, 15, 93], "invers": [8, 22, 92], "invest": [74, 91], "investig": 105, "invok": [25, 31], "involv": [77, 92], "io": [26, 29, 36], "irrelev": 91, "is_dataclass_inst": 31, "is_key_in_templ": 35, "is_norm": [31, 40, 75], "is_pick": 72, "is_pickl": 26, "is_potential_dataclass": 31, "is_running_in_event_loop": 30, "isinst": 84, "issu": 66, "item": [27, 74, 94], "item1": 37, "item2": 37, "iter": [26, 34, 80, 90, 92, 100], "itertool": 92, "its": [2, 8, 13, 15, 22, 26, 31, 34, 36, 40, 56, 57, 59, 69, 70, 72, 74, 80, 88, 90, 91, 92, 93, 94, 98, 103], "itself": [3, 17, 26, 31, 32, 35, 60, 80, 81, 88, 92], "jan": 7, "jinja": [88, 98], "jinja2": [35, 79, 98, 105], "jinja2_template_exampl": 88, "job": [74, 91], "john": [11, 25, 105], "join": [11, 74, 90, 94, 95, 103], "joke": 105, "joke_exampl": 105, "jokeoutput": 105, "josh": 77, "json": [2, 6, 7, 8, 11, 13, 15, 20, 22, 25, 31, 37, 39, 40, 56, 57, 59, 60, 64, 70, 72, 78, 90, 91, 93, 94, 98, 100, 103, 105], "json_definit": [39, 94], "json_obj": 37, "json_pars": 37, "json_signatur": 70, "json_signature_exclud": 70, "json_str": [25, 31, 37, 70], "jsonl": [56, 60, 78], "jsonoutputpars": [6, 20, 94], "jsonpars": [0, 12, 37, 90, 103], "judg": [43, 77, 78, 103], "judgement": [43, 77, 103], "judgement_list": [43, 103], "judgement_queri": [43, 103], "jump": 98, "just": [4, 74, 84, 94, 98], "k": [9, 10, 22, 92], "k1": [8, 22, 91, 92], "keep": [25, 27, 70, 74, 81, 91, 92, 93, 105], "kei": [7, 11, 25, 26, 27, 31, 35, 36, 37, 40, 69, 70, 74, 75, 76, 88, 90, 91, 92, 94, 96, 98, 105], "kept": [2, 13, 15], "keyword": [11, 31, 35, 40, 88, 91, 94], "kind": 98, "kmp_duplicate_lib_ok": 92, "knock": [74, 91], "know": [78, 80, 81, 94], "knowledg": [80, 90, 91, 94, 103], "known": [69, 70, 91], "kw_onli": 51, "kwarg": [0, 4, 6, 8, 9, 10, 11, 12, 22, 26, 29, 30, 31, 32, 33, 35, 36, 40, 43, 52, 53, 84, 88, 90, 91, 94], "l": [4, 93], "label": [25, 31, 53, 70, 91, 98], "lack": [88, 91], "lambda": [26, 53, 74, 91], "land": [74, 91], "landscap": 91, "languag": [2, 8, 13, 15, 22, 66, 69, 77, 81, 90, 98, 100], "larg": [29, 69, 74, 77, 91, 92, 93, 100], "larger": [29, 92], "last": [2, 13, 15, 27, 74, 91, 94], "last_hidden_st": [4, 84], "later": [27, 32, 70, 74, 91, 92, 94], "latest": 90, "layer": 80, "lazi": 61, "lazy_import": [40, 97], "lazyimport": [40, 61], "lead": [9, 22, 51, 53, 74, 91], "leap": [44, 45], "learn": [26, 72, 75, 77, 79, 80, 84, 91, 93, 95, 98, 103], "least": 31, "left": [8, 22], "legal": 77, "len": [74, 92, 94, 103], "length": [2, 8, 13, 15, 22, 27, 40, 74, 75, 92, 93, 94], "lengthi": 98, "lengthier": [8, 22, 92], "less": [6, 8, 20, 22, 40, 70, 75, 91, 92, 94, 100], "let": [7, 18, 70, 72, 74, 78, 88, 90, 91, 92, 94, 103], "level": [41, 47, 62, 71, 90, 94, 98, 100], "leverag": [2, 15, 31, 36, 66, 70, 74, 90, 91, 92, 93, 94, 103], "leverg": [8, 22, 36], "li": [70, 72, 74, 75, 78, 84, 88, 91, 94, 99], "lib": 62, "librari": [2, 13, 15, 25, 27, 32, 43, 61, 62, 70, 71, 72, 77, 78, 79, 80, 81, 84, 91, 93, 98, 100], "lickabl": 92, "life": 77, "lifecyl": 94, "lifestyl": 72, "lift": 80, "light": [74, 91, 100], "light_rag": 98, "lightrag": [2, 4, 6, 8, 13, 15, 22, 24, 25, 26, 27, 28, 33, 35, 40, 41, 47, 56, 61, 62, 66, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 91, 93, 95, 96, 100, 103, 105], "lightrag_default_prompt_arg": 88, "lightweight": 70, "like": [2, 13, 15, 25, 27, 31, 33, 40, 62, 70, 72, 74, 75, 76, 78, 80, 81, 84, 90, 91, 92, 93, 98, 100, 105], "limit": [66, 74, 77, 79, 91, 92, 93, 94], "line": [62, 66, 78, 79, 80, 98], "line_numb": 62, "linear": 100, "link": 66, "list": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13, 14, 15, 20, 22, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 51, 53, 55, 56, 60, 70, 72, 74, 75, 77, 81, 84, 91, 92, 94, 97, 103], "list_output_format_templ": [6, 20], "list_pars": 37, "listoutputpars": [6, 20], "listpars": [9, 22, 37, 91, 92], "liter": [2, 13, 15, 31, 40, 62, 91], "liu": 77, "llama": [2, 15, 88], "llama3": [26, 81, 88, 90, 100], "llama_index": 98, "llamaindex": [2, 15, 98], "llm": [0, 3, 4, 9, 11, 12, 17, 22, 25, 26, 30, 32, 37, 40, 43, 50, 51, 69, 72, 74, 78, 79, 84, 90, 92, 93, 94, 98, 100, 103, 104, 105], "llm_as_judg": [46, 78], "llm_augment": 49, "llm_evalu": [43, 103], "llm_judg": [43, 103], "llm_kwarg": 74, "llm_model_kwarg": 90, "llm_optim": 78, "llm_query_indic": 92, "llm_query_output": 92, "llm_retriev": [78, 91, 92], "llm_tool": 90, "llmasjudg": [43, 77, 103], "llmasretriev": 91, "llmaugment": 50, "llmoptim": [51, 78], "llmretriev": [9, 22, 78, 91, 92], "llmretrieveroutputtyp": [9, 22], "lo": 81, "load": [8, 22, 25, 26, 27, 36, 49, 51, 56, 57, 59, 60, 66, 74, 77, 84, 90, 91, 94, 96, 103, 105], "load_dataset": [77, 103], "load_dotenv": [76, 90, 92, 97], "load_from_fil": [8, 22, 36, 91], "load_from_pickl": 26, "load_index": 92, "load_json": 60, "load_jsonl": 60, "load_meta_data": 56, "load_metr": 77, "load_pickl": 60, "load_stat": [27, 74], "load_state_dict": [26, 72], "load_state_pickl": 26, "loaded_exampl": 105, "local": [3, 4, 17, 26, 33, 66, 78, 79, 84, 91, 94], "local_db": 27, "local_db_load": 27, "local_embedd": 75, "local_embedder_256": 75, "local_item_db": 27, "localdb": [3, 17, 27, 40, 74], "locat": [66, 70, 91, 94], "lock": 98, "log": [8, 22, 56, 57, 60, 62, 74, 78, 80, 84, 99], "log_cal": 56, "log_prompt": 57, "logger": 78, "logger_metadata": 78, "logic": [4, 33, 77, 80, 92], "logprob": [40, 91], "long": [2, 13, 15, 74, 78, 79, 91, 92, 93], "longest": 91, "look": [31, 70, 74, 75, 78, 88, 90, 91, 92, 99], "lookup": 90, "loop": [11, 30, 35, 77, 88, 91, 94], "lose": [78, 98], "lost": [27, 91], "lot": [37, 77, 92], "love": 92, "lower": [80, 92, 94], "lru_cach": 84, "lstrip_block": 88, "luna": 92, "m": [40, 66, 78], "m1": 4, "macbook": 4, "made": [27, 70, 79], "magenta": 62, "mai": [2, 15, 72, 81], "main": [27, 35, 53, 66, 72, 76, 91, 98], "mainli": [40, 61, 70, 74, 80, 92, 98], "maintain": [2, 13, 15, 25, 66, 70, 92], "major": 66, "make": [6, 20, 27, 33, 47, 66, 70, 74, 77, 78, 84, 90, 91, 94, 97, 98, 105], "makefil": 66, "manag": [2, 15, 27, 28, 36, 39, 40, 50, 59, 72, 74, 76, 84, 90, 92, 93, 94, 105], "mani": [7, 88, 91, 94], "manipul": [90, 98], "manner": 90, "manual": [26, 59, 66, 72, 78, 80, 98, 99], "manufactur": [74, 91], "map": [2, 10, 13, 15, 22, 26, 27, 31, 36, 60, 64, 70, 74, 91, 93, 94], "map_dialogturn_to_docu": 74, "map_fn": [27, 74], "map_to_docu": 74, "mapper_setup": [27, 74], "mappingproxi": 51, "mar": [0, 12], "mark": [70, 77], "markdown": [2, 13, 15, 93], "marshmallow": [25, 70], "massiv": 77, "match": [8, 22, 26, 31, 42, 70, 77, 92, 103], "match_acc_list": 103, "materi": [74, 91], "mathemat": 77, "matrix": 70, "matter": [30, 70, 74], "max": [30, 90], "max_length": [4, 84], "max_step": [0, 12, 90], "max_token": [81, 84], "maxim": [80, 88], "maximum": [0, 2, 11, 12, 13, 15, 71, 81, 92, 93, 100], "mayb": 98, "md": [98, 99], "me": [88, 91], "mean": [2, 13, 15, 27, 53, 80, 81, 90, 92, 93, 94], "meant": 66, "meanwhil": 92, "measur": [8, 22, 77, 92], "mechan": 84, "medata": 25, "medic": [72, 77], "member": [26, 95], "memo": 26, "memoi": 79, "memori": [27, 29, 40, 74, 75, 79, 80, 92, 93, 94], "meng": 77, "mere": 92, "merg": [2, 13, 15, 93, 98], "messag": [11, 40, 61, 75, 78, 81, 84, 88], "meta": [81, 88, 92], "meta_data": [2, 13, 15, 40, 74, 76, 92, 93, 103], "metadata": [6, 11, 20, 25, 30, 31, 40, 51, 70, 74, 78, 90, 91, 105], "methd": 36, "method": [2, 4, 6, 8, 13, 15, 20, 22, 25, 26, 27, 33, 35, 36, 38, 43, 53, 64, 70, 72, 74, 75, 77, 78, 79, 84, 88, 91, 94, 100], "metric": [42, 43, 44, 45, 77, 91, 103], "middl": 91, "might": [4, 7, 9, 22, 26, 27, 30, 70, 74, 75, 91, 92, 94], "million": 91, "mimic": 7, "mimick": 70, "mind": [78, 80], "minim": [3, 17, 80], "minimum": [11, 71, 88, 100], "minut": 96, "mislead": [11, 25, 105], "miss": [25, 31, 50, 91, 94], "misunderstand": 92, "mmlu": 77, "mode": [26, 79, 98], "modecli": 76, "model": [0, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15, 17, 18, 19, 22, 26, 27, 29, 31, 32, 33, 40, 43, 50, 59, 69, 72, 76, 77, 78, 79, 80, 81, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "model_cli": [0, 7, 9, 10, 12, 22, 24, 26, 29, 32, 41, 43, 50, 51, 59, 61, 72, 74, 75, 76, 79, 84, 90, 91, 92, 94, 100, 103], "model_kwarg": [0, 4, 7, 9, 10, 12, 22, 26, 29, 31, 32, 33, 40, 43, 50, 51, 56, 59, 72, 74, 75, 76, 78, 84, 90, 91, 92, 94, 100, 103], "model_nam": [4, 59, 84], "model_typ": [4, 26, 29, 32, 33, 40, 72, 77, 84], "modelcli": [0, 4, 7, 9, 10, 12, 22, 26, 29, 32, 33, 40, 43, 50, 51, 72, 75, 78, 79, 91, 100], "modelclienttyp": [40, 74, 91, 94], "modeltyp": [4, 26, 29, 32, 33, 40, 72, 84, 91], "modif": 72, "modifi": [1, 13, 14], "modoel": 74, "modubl": 26, "modul": [9, 25, 26, 31, 37, 40, 61, 64, 66, 70, 72, 74, 79, 91, 98, 100, 103], "modular": 100, "module_nam": 61, "moment": 80, "monitor": [74, 98], "month": [44, 45], "monument": 78, "moon": 77, "more": [2, 7, 8, 11, 13, 15, 22, 25, 26, 31, 37, 38, 39, 40, 43, 50, 66, 67, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 90, 91, 92, 93, 94, 98, 100, 102, 103, 105], "moreov": 90, "most": [6, 72, 78, 79, 81, 88, 91, 92], "mostli": [25, 91], "move": [2, 13, 15, 79, 91, 93], "movi": [76, 92], "mp": 4, "much": [72, 78, 91, 92], "mulitpl": [1, 14], "multi": [70, 75, 81, 90, 98], "multifacet": 77, "multipl": [0, 12, 27, 53, 56, 57, 59, 69, 74, 75, 90, 91, 94, 98], "multipli": [90, 94], "multitask": 77, "multple_function_call_templ": 94, "must": [11, 26, 27, 84], "my_db": 27, "my_funct": 26, "my_function_compon": 26, "my_inst": [25, 105], "myfunctioncompon": 26, "myoutput": [25, 105], "mypi": 70, "n": [2, 6, 8, 13, 15, 20, 22, 28, 37, 74, 78, 84, 92, 94], "n_________": 74, "nadd": 94, "name": [11, 25, 26, 27, 30, 31, 38, 40, 51, 56, 57, 59, 60, 61, 62, 63, 64, 70, 72, 74, 77, 78, 80, 90, 91, 92, 94, 98, 103, 105], "named_children": 26, "named_compon": 26, "named_paramet": [26, 72], "nanswer": 78, "nativ": [70, 88], "natur": [2, 13, 15, 31, 77], "navig": 66, "nd": 91, "ndarrai": [31, 91, 94], "ndivid": 94, "necessari": [4, 66, 92, 94, 97, 98, 103], "need": [0, 2, 4, 6, 8, 12, 13, 15, 22, 25, 26, 29, 30, 33, 37, 39, 40, 61, 62, 70, 74, 75, 80, 84, 88, 91, 92, 93, 94, 98, 103], "neg": [8, 22, 42, 92], "nest": [6, 20, 25, 26, 31, 40, 70, 79], "net": 100, "neutral": [42, 98], "new": [0, 2, 12, 13, 15, 27, 31, 51, 66, 74, 75, 77, 90, 91, 92, 94, 98], "new_compon": 59, "new_components_from_config": 59, "new_dim": 75, "new_embed": 75, "new_turn": 74, "next": [11, 26, 76, 77, 81, 84, 88, 90, 92, 94, 103], "nget": 94, "nkei": 37, "nlg": 77, "nlp": [2, 13, 15, 76, 80, 92, 93], "nlu": 77, "nmultipli": 94, "nn": [26, 72, 100], "nnew": 92, "nnone": 94, "nnow": 78, "node": 31, "nois": 92, "non": [2, 13, 15], "none": [0, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 17, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 43, 49, 50, 51, 53, 55, 56, 57, 60, 61, 62, 64, 70, 74, 76, 84, 91, 92, 93, 94], "nonetyp": 40, "nonsens": [92, 93], "noqa": [97, 100], "normal": [8, 22, 31, 40, 70, 75, 84, 92], "normalize_np_arrai": 31, "normalize_vector": [31, 75], "nosql": 91, "note": [4, 6, 7, 8, 22, 25, 26, 31, 36, 40, 62, 72, 74, 79, 90, 91, 94, 98, 103], "notebook": [90, 91], "noth": 90, "notic": 81, "notimplementederror": [84, 91], "now": [4, 7, 26, 70, 74, 75, 76, 78, 88, 90, 91, 92, 94, 98], "np": [91, 94], "nsearch": 94, "nsum": 94, "nthe": 78, "null": [74, 78], "num": 53, "num_class": 53, "num_doc": 103, "num_row": 77, "num_shot": [49, 53], "number": [0, 2, 8, 10, 12, 13, 15, 22, 38, 44, 45, 62, 75, 76, 77, 90, 92, 93, 94, 103], "numer": [70, 76, 91, 92], "numpi": [75, 91, 94], "numpy_sum": 94, "nyou": 28, "nz": [8, 22], "o": [64, 66, 84, 92], "o200k_bas": 92, "obj": [26, 31, 60, 64], "object": [2, 4, 6, 13, 15, 20, 25, 26, 31, 35, 37, 39, 40, 42, 43, 44, 45, 50, 51, 52, 56, 57, 60, 61, 63, 64, 70, 76, 90, 92, 93, 94], "objecttyp": [64, 94], "observ": [11, 40, 80, 90], "obtain": [76, 77], "occur": [8, 22, 75], "occurr": 92, "off": [84, 91], "offer": [74, 84, 91, 98, 100, 105], "offici": 100, "often": [8, 22, 40, 74, 75, 84, 88, 91, 93], "okapi": 92, "okapi_bm25": [8, 22, 91], "old_dim": 75, "old_embed": 75, "onc": [77, 91, 92], "one": [1, 4, 11, 14, 30, 31, 62, 75, 78, 81, 88, 90, 91, 92, 94], "ones": [92, 93], "onli": [6, 8, 11, 20, 22, 25, 26, 27, 29, 31, 32, 39, 40, 43, 59, 61, 70, 72, 74, 75, 78, 80, 84, 88, 90, 91, 92, 94, 98, 105], "open": [66, 77, 98, 103], "openai": [4, 5, 19, 33, 40, 61, 74, 76, 81, 84, 91, 92, 94, 97, 98, 105], "openai_api_kei": [75, 84, 97], "openai_cli": [61, 75, 84, 103], "openaicli": [4, 26, 29, 32, 33, 59, 61, 72, 74, 75, 76, 84, 90, 91, 92, 103], "oper": [1, 13, 14, 25, 27, 29, 40, 41, 47, 70, 74, 91, 92, 105], "operand": 94, "opinion": 98, "opro": 51, "opt": 88, "optim": [8, 22, 34, 70, 72, 74, 78, 91, 92, 98, 100], "option": [0, 2, 4, 6, 8, 9, 10, 12, 13, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 38, 40, 43, 56, 57, 60, 61, 62, 70, 72, 74, 84, 91, 93, 94, 96, 100, 105], "optional_packag": 61, "optionalpackag": [61, 97], "opu": 81, "orang": 92, "orchestr": [29, 30, 32, 49, 74, 75, 76, 78, 79, 88], "ord_docu": 74, "order": [2, 13, 15, 25, 26, 35, 40, 70, 74, 75, 80, 92, 93], "ordereddict": [26, 40], "org": [0, 4, 7, 8, 12, 22, 51, 69, 70, 91], "org_docu": 74, "organ": [66, 74, 92, 98], "origin": [2, 13, 15, 27, 70, 74, 76, 91, 92], "orpo": 51, "oss": 98, "otago": [8, 22], "other": [2, 6, 11, 13, 15, 20, 26, 31, 37, 40, 59, 64, 66, 70, 72, 75, 77, 78, 79, 80, 91, 94, 95, 98, 105], "othersi": 26, "otherwis": [26, 40, 93], "our": [18, 25, 26, 32, 43, 53, 66, 67, 70, 72, 74, 75, 78, 79, 81, 84, 88, 90, 91, 92, 94, 95, 96, 97, 98, 100, 101, 103], "ourselv": 98, "out": [70, 77, 78, 80, 84, 90, 91, 92, 94, 98], "outcom": [2, 13, 15], "outer": 70, "outlin": [24, 47, 77, 90], "outperform": 90, "output": [2, 5, 7, 8, 9, 11, 13, 15, 19, 20, 22, 25, 26, 28, 29, 30, 31, 32, 37, 40, 43, 49, 50, 53, 56, 62, 70, 72, 74, 76, 78, 79, 81, 84, 88, 90, 91, 92, 93, 98, 103, 105], "output_1": 91, "output_2": 91, "output_3": 91, "output_data_class": 94, "output_data_obj": 50, "output_format": [28, 78, 94, 105], "output_format_str": [6, 28, 78, 88, 94], "output_pars": [24, 94], "output_processor": [0, 6, 7, 9, 12, 20, 22, 29, 32, 49, 75, 76, 90, 91, 92, 94, 103], "output_str": 78, "outputformat": 70, "outputpars": [6, 20, 79, 94, 100], "outstand": 105, "over": [26, 30, 69, 72, 88, 92, 98, 100], "overal": [25, 77, 80, 90, 94], "overflow": 75, "overhead": 30, "overlap": [2, 13, 15, 70, 92, 93], "overpr": 92, "overrid": [76, 90, 92], "overview": [74, 77], "overwrit": 25, "own": [2, 15, 25, 26, 31, 36, 56, 69, 70, 75, 77, 84, 91, 98, 103], "p": 84, "p1": 94, "p2": 94, "packag": [61, 66, 70, 76, 91, 92, 96, 98, 100], "pad": 84, "page": [2, 13, 15, 66, 90, 92, 93], "paid": 78, "pain": 72, "pair": 91, "paitesanshi": 69, "palletsproject": 88, "panel": [74, 91], "paper": [4, 8, 22, 77, 90, 91], "paragraph": 92, "parallel": 69, "param": [26, 31, 34, 44, 72], "paramet": [2, 4, 6, 8, 9, 10, 11, 13, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 35, 36, 38, 40, 42, 43, 45, 49, 51, 56, 57, 59, 60, 61, 62, 64, 70, 72, 79, 90, 92, 94, 98, 103], "parent": 92, "parent_doc_id": [2, 13, 15, 40, 74, 92, 93], "pari": [78, 84, 94], "pars": [4, 5, 6, 7, 19, 20, 30, 31, 32, 33, 37, 39, 40, 78, 79, 84, 90, 94], "parse_chat_complet": [4, 33, 84], "parse_embedding_respons": [4, 5, 18, 19, 33, 84], "parse_func_expr": [39, 94], "parse_function_call_expr": [31, 94], "parse_json_str_to_obj": 31, "parse_yaml_str_to_obj": 31, "parsed_input": [40, 94], "parser": [6, 20, 90, 92, 94], "part": [31, 69, 79, 88, 91, 92, 104], "parti": [25, 62, 91], "particip": 95, "particl": [74, 91], "particulai": 77, "particular": [29, 33, 36, 72, 78, 79, 100], "particularli": 92, "pass": [8, 10, 22, 26, 29, 31, 32, 35, 40, 43, 70, 72, 75, 81, 84, 88, 90, 91, 92, 94], "passag": [2, 13, 15, 92, 93], "past": [40, 88], "path": [8, 22, 36, 57, 61, 77, 79, 103], "path_to_html_output": 66, "pattern": [5, 19, 26, 30, 31, 40], "pdf": [2, 8, 13, 15, 22, 93], "pdfminer": [2, 13, 15, 93], "per": 40, "percent": 88, "perform": [27, 43, 49, 50, 53, 74, 75, 77, 78, 80, 88, 90, 91, 92, 93, 98, 103], "perhap": 78, "period": [2, 13, 15, 93], "perplex": 77, "persist": [3, 8, 17, 22, 27, 36, 40, 72, 74, 91], "persit": 74, "person": [25, 105], "pgvector": [61, 91, 97], "phase": 92, "philosophi": [71, 79], "phoenix": 98, "photon": [74, 91], "phrase": 91, "pickabl": 72, "pickl": [26, 27, 60, 74, 91], "picklabl": [26, 27], "pickle_to_fil": 26, "piec": [2, 13, 15, 92], "pip": [61, 62, 66, 97], "pipelin": [3, 4, 17, 26, 27, 59, 72, 75, 77, 80, 91, 100, 104], "pkl": [27, 59, 74], "place": [34, 94], "placehold": 88, "plai": [24, 33, 47, 74, 81, 88, 91, 92], "plain": 93, "plan": [79, 84, 90, 97], "plann": 69, "planner": [0, 12], "platform": [77, 94, 95], "pleas": [2, 6, 13, 15, 20, 25, 30, 32, 43, 61, 62, 66, 67, 72, 75, 77, 84, 90, 91, 92, 93, 94, 98, 102, 105], "plenti": 72, "plot": 71, "plug": [33, 98], "poetri": [66, 98], "point": [2, 13, 15, 70, 93, 94, 103], "pollut": [74, 91], "pool": 91, "pop": [27, 74], "popular": [69, 77, 92], "posit": [11, 26, 31, 40, 42, 62, 74, 76, 91, 92, 94], "possibl": 70, "post": [9, 22, 79, 91], "postgr": 91, "postgres_retriev": 22, "postgresql": 91, "postprocessor": 98, "potenti": [11, 31, 70, 81, 90, 93], "power": [74, 91, 100], "powershel": 62, "practic": [91, 92, 98], "practis": [72, 91], "pre": [74, 77, 98], "precis": [77, 91], "pred_answ": [42, 43], "predefin": 31, "predict": [25, 32, 40, 42, 43, 70, 77, 78, 81, 88, 103], "prefer": [11, 91, 94], "prefix": [25, 26, 31, 88, 105], "prepar": [9, 22, 74, 76, 91, 92, 94], "prepend": 26, "preprint": 77, "preprocess": [2, 15, 38, 92], "prescript": 72, "presenc": [8, 22], "preserv": 70, "preset": [0, 7, 12, 32, 35, 88, 92], "preset_prompt_kwarg": [6, 7, 20, 32, 35, 78, 90, 91, 92, 103], "pretti": 91, "prevent": [2, 13, 15, 92, 93], "previou": [11, 26, 51, 74, 90, 92, 93, 103], "previous": [26, 35, 91], "principl": 98, "print": [2, 6, 8, 13, 15, 20, 22, 25, 26, 30, 31, 35, 37, 40, 62, 70, 72, 74, 75, 76, 77, 84, 88, 90, 91, 92, 93, 94, 103, 105], "print_prompt": [32, 35, 74], "print_prompt_templ": 35, "printc": 62, "printout": [72, 74, 88, 91, 94], "prior": 62, "priorit": 91, "pro": [74, 91], "prob": 91, "probab": 91, "probabl": [91, 92], "problem": [90, 91, 94, 98], "procesor": 75, "process": [2, 7, 9, 11, 13, 15, 22, 27, 29, 37, 40, 66, 70, 72, 74, 75, 76, 77, 78, 79, 80, 88, 90, 91, 92, 93, 94, 98, 103], "process_queri": 94, "processor": [6, 20, 29, 32, 40, 49, 78, 79], "produc": [74, 91, 103], "product": [2, 15, 74, 75, 77, 80, 91, 92], "production": 98, "profess": 91, "profil": [91, 92], "program": 70, "programmat": [79, 88], "prohibit": 66, "project": [47, 56, 57, 66, 75, 78, 95, 96, 97, 101], "project_nam": [55, 56, 57], "prompt": [0, 6, 9, 11, 12, 20, 22, 25, 26, 28, 32, 35, 40, 50, 57, 62, 70, 72, 74, 78, 79, 80, 81, 84, 90, 91, 92, 94, 98, 99, 100, 103, 105], "prompt_build": [41, 88, 94, 103, 105], "prompt_kwarg": [0, 12, 32, 35, 56, 72, 74, 78, 88, 94], "prompt_stat": [57, 78], "prompt_templ": 105, "prompt_token": [40, 84], "prompt_vari": [26, 72, 78, 88, 91, 100], "promt_kwarg": [0, 12], "properli": 105, "properti": [27, 31, 39, 40, 56, 57, 70, 75, 90, 94], "propetriari": 81, "propos": [49, 51], "proprietari": [88, 98], "protocol": [33, 77, 79, 91], "provid": [2, 9, 11, 13, 15, 18, 22, 24, 25, 26, 31, 33, 34, 35, 41, 47, 51, 56, 62, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 98, 100, 103, 105], "proxim": 91, "pt": 84, "publish": [0, 7, 12], "pull": 66, "punchlin": 105, "punctuat": [2, 13, 15, 93], "purpos": [2, 13, 15, 72, 74, 93, 103], "purposli": 26, "pursuit": 69, "push": 66, "put": [70, 72, 75, 80, 91, 98], "py": [40, 66, 98, 103], "pydant": [25, 70], "pydata_sphinx_them": 66, "pypdf2": [2, 13, 15, 93], "python": [2, 6, 11, 13, 15, 20, 25, 31, 37, 40, 66, 70, 77, 88, 93, 97, 98], "pytorch": [25, 26, 53, 66, 70, 72, 80, 100, 105], "q": [7, 8, 22, 90], "q_i": [8, 22], "qa": 26, "qualiti": [66, 77, 78, 103], "qualnam": [25, 40, 61, 64], "quantit": 77, "queri": [0, 1, 4, 6, 8, 9, 11, 12, 14, 20, 22, 26, 40, 42, 43, 44, 45, 69, 72, 75, 77, 78, 84, 88, 90, 91, 92, 94, 100, 103], "query_1": 91, "query_1_short": 91, "query_1_token": 91, "query_1_word": 91, "query_2": 91, "query_2_short": 91, "query_or_queri": [9, 22, 92], "query_str": [40, 74], "question": [2, 6, 7, 13, 15, 20, 25, 31, 43, 70, 72, 77, 78, 90, 93, 95, 98, 103, 105], "quick": [39, 90, 92], "quickli": [74, 91, 98], "quit": [88, 91], "quot": [11, 94], "r": [11, 26, 35, 66, 72, 84, 88, 91, 94, 100, 103, 105], "rag": [69, 77, 90, 91, 92, 98, 100, 104], "rag_hotpotqa": 103, "raga": 77, "rais": [2, 13, 15, 25, 31, 61, 70, 75, 84, 91], "random": [37, 53], "random_replac": [49, 53], "random_sampl": 53, "randomli": 53, "randomsampl": 53, "rang": [40, 43, 51, 53, 70, 77, 91, 92, 94, 103], "rank": [8, 10, 22, 92], "rank_bm25": [8, 22, 91], "rare": [8, 22], "rate": 94, "rather": [70, 75, 88], "ratio": [44, 45, 92, 103], "raw": [2, 8, 11, 15, 22, 40, 70, 78, 88, 94], "raw_respons": [9, 22, 40, 75, 78, 84, 94], "re": [90, 91], "reach": [8, 22, 88, 90], "react": [11, 69], "reactag": [0, 12, 69, 79, 90], "read": [11, 81, 88, 90, 98, 105], "readabl": 66, "readi": [91, 92, 94], "readili": 77, "readm": [66, 98, 99], "real": [2, 13, 15, 74, 91, 93, 95, 100], "realli": [74, 84, 90], "realtion": 91, "reason": [6, 8, 20, 22, 69, 70, 77, 79, 90, 91, 92], "reattach": [2, 13, 15], "rebuilt": 59, "recal": [44, 77, 91, 103], "recall_list": [44, 103], "receiv": [76, 81, 92], "recogn": 98, "recognit": 80, "recommend": [77, 97], "recomnend": 53, "recomput": 91, "reconstruct": [59, 70], "reconstructed_from_json": 70, "reconstructed_from_yaml": 70, "record": [40, 56, 74, 92], "recreat": 59, "recurs": [26, 31, 72], "red": 62, "reduc": [74, 91], "refer": [0, 2, 4, 8, 12, 13, 15, 22, 25, 26, 32, 43, 66, 77, 90, 92, 93, 105], "reference_text": 77, "reflect": [2, 13, 15, 93], "regardless": 94, "regex": 31, "regist": [27, 56, 63, 74, 84], "register_compon": 26, "register_gener": 56, "register_paramet": [26, 72], "register_transform": [27, 74], "regress": 88, "regular": 26, "reimplement": 91, "reiniti": [9, 22, 91], "rel": [8, 22], "relat": [40, 91, 92], "relationship": 92, "relax": 72, "relev": [9, 22, 44, 45, 74, 75, 77, 78, 79, 81, 91, 92, 94, 103], "relevance_list": [45, 103], "reli": [25, 80, 92, 94, 100], "relianc": [74, 91], "reliev": 72, "reload": 74, "reloaded_dialog_turn_db": 74, "relu": 72, "remain": [66, 76, 91], "rememb": 11, "remov": [27, 66, 74], "remove_dupl": 26, "remove_stop_word": 38, "remove_transform": [27, 74], "render": [35, 88], "renered_prompt": 94, "renew": [74, 91], "renewab": 74, "repeat": 93, "replac": [0, 12, 53], "repo": 98, "reponse_embedder_output": 84, "report": 77, "repositori": [66, 98, 102], "repr": 51, "repr_str": 75, "repres": [25, 26, 31, 34, 70, 74, 88, 91, 92, 94, 100, 103], "represent": [25, 35, 40, 64, 76, 77, 92], "represent_ordereddict": 31, "request": 90, "requir": [6, 9, 18, 20, 22, 25, 27, 31, 32, 34, 37, 40, 42, 66, 70, 74, 78, 81, 84, 88, 90, 91, 92, 94, 103, 105], "required_field": [25, 31, 70], "requires_opt": 34, "requr": 94, "rerank": [4, 10, 22, 40, 98], "reranker_retriev": 91, "rerankerretriev": [10, 22, 91], "research": [74, 75, 77, 80, 88, 90, 91, 92, 98], "reset": [0, 8, 9, 10, 12, 22, 27, 36, 49, 51, 74], "reset_index": [8, 9, 10, 22, 36, 92], "reset_paramet": [49, 51], "resolv": [31, 105], "resourc": [66, 90, 91], "respect": [31, 76], "respond": [88, 94], "respons": [0, 4, 5, 6, 9, 12, 19, 22, 32, 33, 40, 51, 72, 74, 75, 78, 81, 84, 90, 91, 92, 94, 103], "response_str": [40, 74], "response_text": 84, "rest": [33, 72, 81, 88, 92], "restor": [8, 22, 25, 27, 36, 91], "restored_data": 25, "restored_dialog_turn_db": 74, "restructuredtext": 66, "result": [2, 8, 11, 15, 22, 26, 30, 31, 32, 40, 43, 62, 71, 76, 77, 78, 79, 80, 91, 92, 93, 94, 100], "result1": 94, "result1someth": 94, "result2": 94, "result2someth": 94, "retri": [4, 33, 84], "retriev": [1, 2, 3, 13, 14, 15, 17, 26, 31, 40, 44, 45, 72, 74, 76, 77, 78, 79, 80, 84, 88, 93, 94, 98, 100, 103], "retrieved_context": [44, 45, 77], "retriever2": [8, 22], "retriever_1": 91, "retriever_evalu": [77, 103], "retriever_output": [1, 14], "retriever_output_to_context_str": [1, 13, 14], "retriever_recal": 46, "retriever_relev": 46, "retrieverdocumentstyp": [10, 22, 91], "retrieverdocumenttyp": [8, 9, 10, 22, 36, 40, 91], "retrieverevalu": [77, 103], "retrieveroutput": [1, 8, 9, 10, 14, 22, 36, 40, 74, 91, 92], "retrieveroutputtocontextstr": [1, 13, 14], "retrieveroutputtyp": [9, 22, 91], "retrieverqueriestyp": 91, "retrieverquerytyp": [36, 40, 91], "retrieverrecal": 44, "retrieverrelev": 45, "retrieverstrqueriestyp": [9, 22, 91], "retrieverstrquerytyp": 91, "return": [2, 6, 8, 9, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 38, 40, 42, 43, 44, 45, 59, 60, 62, 64, 70, 72, 74, 75, 79, 84, 88, 90, 91, 92, 93, 94, 100], "return_logg": 62, "return_tensor": 84, "review": [66, 76, 77, 92], "right": [8, 22, 31, 78, 80, 91], "rigid": 98, "robust": [11, 77, 100], "roger": 7, "role": [11, 24, 25, 47, 74, 81, 84, 88, 90, 91, 98, 105], "root": [62, 97], "roug": 77, "row": 40, "rst": 66, "rule": [2, 13, 15, 80, 93], "run": [0, 4, 12, 30, 66, 72, 74, 75, 76, 78, 90, 94, 97, 98, 105], "run_async_function_cal": 94, "run_sync_and_async_mix": 30, "run_sync_and_async_mix_without_wait": 30, "runtim": [35, 97], "safe": [31, 61], "safe_import": 61, "safe_load": 103, "sai": [70, 78, 91], "same": [7, 9, 22, 26, 27, 38, 40, 42, 53, 62, 70, 74, 75, 84, 88, 90, 91, 92, 98, 100], "sampl": [49, 53, 103], "sampler": 49, "san": 94, "sandbox": [30, 31, 39, 94], "sandbox_exec": [30, 31], "sandbox_execut": 94, "sat": 77, "satur": [8, 22, 92], "save": [8, 22, 25, 27, 36, 40, 56, 57, 60, 62, 72, 74, 75, 78, 91], "save_dir": [55, 56, 57, 62], "save_index": 92, "save_json": [60, 72], "save_meta_data": 56, "save_pickl": 60, "save_st": [27, 74], "save_to_fil": [8, 22, 36, 91], "scale": [91, 92], "scarecrow": 105, "scene": 81, "schema": [6, 20, 25, 31, 40, 70, 94, 105], "schmea": 70, "scope": [2, 15], "score": [2, 8, 9, 13, 15, 22, 31, 40, 43, 51, 74, 76, 77, 92, 93], "script": [62, 103], "script_nam": 62, "sdk": [4, 18, 40, 78, 91, 97, 100], "seamless": 90, "seamlessli": 91, "searal": 72, "search": [76, 77, 90, 91, 92, 94], "search_reranking_with_cross": 91, "searial": 72, "second": [30, 31, 44, 45, 78, 84, 91, 92, 93, 94], "secret": 81, "section": [24, 41, 47, 66, 74, 81, 88, 90, 94], "sector": [74, 91], "see": [2, 4, 7, 13, 15, 33, 67, 70, 71, 72, 74, 76, 81, 88, 90, 91, 92, 93, 94, 98, 100], "seek": [88, 98], "seen": 74, "segment": [2, 13, 15, 93], "select": [53, 77, 103, 105], "self": [6, 20, 26, 31, 32, 70, 72, 75, 78, 84, 91, 94, 100], "semant": [74, 76, 91], "send": [88, 91], "sens": [69, 77, 78], "sensit": [25, 70, 80, 91, 100], "sensor": 91, "sent": 88, "sentenc": [2, 13, 15, 90, 92, 93, 103], "sentiment": [2, 13, 15, 76, 77, 92, 93], "separ": [2, 13, 15, 33, 66, 88, 93, 98], "seq": [26, 72], "sequenc": [1, 8, 9, 10, 13, 14, 22, 29, 36, 53, 72, 74, 79, 84, 90, 91], "sequenti": [0, 12, 26, 38, 69, 74, 75, 79, 90, 103], "seral": [70, 80], "sercur": 94, "seri": [2, 4, 13, 15, 81, 92, 93], "serial": [25, 26, 35, 60, 70, 72, 79, 88, 91, 105], "serializ": 27, "serv": [41, 47, 72], "server": 66, "servic": 92, "session": 40, "session_id": [40, 74], "set": [0, 2, 4, 8, 9, 12, 13, 15, 22, 26, 31, 32, 35, 43, 62, 66, 74, 75, 76, 79, 84, 90, 91, 92, 93, 96, 99, 103, 105], "set_assistant_respons": 40, "set_user_queri": 40, "setup": [27, 74, 75, 76, 78, 91, 97, 98, 105], "setup_env": [75, 84, 97, 100], "seven": 88, "sever": [72, 77], "shallow": 26, "shape": 80, "share": [2, 15, 95, 98], "shell": 98, "shift": [2, 13, 15, 92, 93], "shorten": 66, "shorter": [91, 92, 93], "shorthair": 92, "shot": [7, 25, 49, 53, 88, 90, 91, 99, 105], "should": [2, 4, 6, 9, 13, 15, 20, 22, 25, 26, 27, 29, 33, 40, 51, 57, 72, 75, 78, 88, 91, 92, 93, 94, 98, 105], "show": [6, 20, 40, 66, 72, 76, 90, 91, 92, 94, 98, 103, 105], "showcas": 91, "shown": 94, "signal": 92, "signatur": [25, 70, 94, 105], "signature_json": [6, 20, 25, 70], "signature_yaml": [6, 20, 25, 70], "signific": [74, 91, 92], "significantli": [8, 22, 74, 91], "signitur": 105, "similar": [31, 40, 75, 76, 77, 88, 90, 91, 92, 100], "similaritypostprocessor": 98, "similarli": [70, 78, 98], "simpl": [6, 11, 20, 53, 74, 75, 76, 78, 88, 91], "simple_prompt": 88, "simpleqa": [78, 100], "simpler": 105, "simplest": 94, "simpli": [31, 49, 69, 70, 75, 91], "simplifi": [74, 75, 78, 80, 90, 91, 94], "simplili": 94, "simul": [30, 90, 91, 92], "singl": [27, 29, 40, 43, 59, 74, 75, 77, 78, 81, 88, 90, 91, 94, 105], "site": 66, "situat": [69, 75], "size": [2, 13, 15, 29, 75, 91, 92, 93], "skim": 91, "skip": 53, "skip_special_token": 4, "sleep": [30, 92, 94], "slide": [2, 13, 15, 92, 93], "slightli": 94, "small": [29, 59, 74, 75, 76, 84, 91, 92], "small_tool_manag": 94, "smaller": [2, 13, 15, 75, 79, 91, 92, 93], "smallest": [2, 13, 15, 93], "smell": 92, "smooth": 100, "snippet": [40, 66, 77, 94, 103], "so": [31, 38, 40, 69, 70, 74, 80, 81, 84, 90, 91, 93], "softwar": 80, "solar": [74, 91], "solut": [80, 92, 98, 100], "solv": [11, 90, 98, 105], "some": [9, 22, 37, 53, 70, 74, 77, 78, 88, 91, 98], "someth": 94, "sometim": [43, 70, 98], "sort": 35, "sort_kei": [25, 31], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 19, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 66, 74, 90, 91, 92, 98], "space": [2, 6, 13, 15, 20, 76, 90, 92, 93], "span": 77, "speak": [94, 98], "spec": 40, "speciaf": 103, "special": [24, 47, 81, 88], "specif": [4, 10, 11, 22, 24, 30, 32, 33, 34, 36, 39, 40, 43, 47, 70, 77, 84, 88, 90, 91, 103], "specifc": 40, "specifi": [2, 13, 15, 25, 34, 40, 70, 88, 91, 92, 93, 94], "spectrum": 77, "speed": [91, 92], "spend": 80, "sphinx": 66, "split": [1, 2, 8, 13, 14, 15, 22, 66, 74, 76, 79, 91, 93, 99], "split_and_emb": 74, "split_bi": [2, 13, 15, 59, 74, 76, 92, 93], "split_funct": 92, "split_length": [59, 74, 76, 92], "split_overlap": [59, 74, 76, 92], "split_text": [2, 13, 15], "split_text_by_token_fn": 92, "split_text_by_word_fn": [8, 22, 91], "split_text_by_word_fn_then_lower_token": [8, 22, 91], "split_text_token": 8, "splitted_doc": [2, 13, 15, 76, 92, 93], "splitter": [2, 13, 15, 74, 76, 79, 91], "splitter_config": 74, "splitter_set": 92, "sql": [37, 74, 91], "sqlalchemi": [61, 74, 91, 97], "staff": 92, "stage": [75, 90, 91, 98], "stai": [72, 98], "standar": [72, 80], "standard": [4, 6, 20, 25, 30, 33, 40, 75, 79, 84, 91, 94, 98, 105], "star": 77, "start": [0, 7, 11, 12, 25, 40, 61, 64, 75, 92, 94, 103], "start_header_id": [81, 88], "start_tim": [30, 94], "starter": 51, "state": [8, 9, 10, 22, 25, 26, 27, 36, 57, 59, 72, 74, 78, 79, 80, 91, 92, 94], "state_dict": [26, 52, 72], "static": [25, 70], "statu": 70, "step": [0, 2, 7, 11, 12, 13, 15, 28, 40, 51, 52, 69, 75, 77, 78, 88, 90, 91, 92, 93, 103], "step_histori": 11, "stepoutput": [40, 90], "steps_str": [28, 78, 88], "still": [66, 74, 80, 91, 92, 93, 94], "stop": 88, "storag": [2, 3, 15, 17, 27, 59, 74, 91], "store": [2, 15, 26, 27, 32, 56, 57, 70, 74, 76, 78, 91, 92], "str": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 64, 70, 72, 74, 75, 84, 91, 92, 93, 94, 105], "str_param": 34, "straightforward": 90, "strateg": 90, "streamlin": [25, 94, 105], "stress": 72, "strict": 26, "string": [0, 6, 7, 9, 11, 12, 20, 22, 25, 31, 32, 34, 35, 37, 38, 40, 42, 43, 44, 45, 64, 66, 78, 79, 81, 88, 90, 91, 92, 94, 98, 103], "string_pars": [6, 41, 92, 103], "structu": 70, "structur": [2, 4, 11, 13, 15, 25, 26, 31, 33, 40, 53, 70, 72, 74, 75, 78, 79, 84, 91, 93, 94, 100, 105], "stuck": 93, "style": 66, "subclass": [4, 6, 7, 8, 22, 25, 26, 33, 36, 40, 70, 71, 72, 75, 78, 79, 84, 88, 91, 94, 100], "subcompon": [26, 72], "subcomponn": 72, "subject": 77, "submit": 92, "subqueri": [11, 90], "subquest": 11, "subsequ": 90, "subset": 103, "substanti": [74, 91], "substitut": 88, "subtract": 90, "success": 94, "successfulli": 94, "sudden": [2, 13, 15, 92, 93], "suggest": [8, 22, 90, 92], "suitabl": [2, 15], "sum": 94, "sum_": [8, 22], "summar": [77, 80, 98], "summari": 105, "sunlight": [74, 91], "super": [26, 70, 72, 75, 78, 84, 100], "support": [2, 7, 13, 15, 25, 30, 31, 32, 39, 40, 62, 64, 70, 75, 81, 84, 91, 92, 93, 94, 97, 100, 103, 105], "support_model": 4, "support_model_list": 84, "supporting_fact": 103, "suppos": 91, "sure": [6, 20, 70, 91, 94, 97, 105], "survei": [69, 77], "sustain": [74, 91], "switch": [9, 22, 75, 78, 84, 91, 98, 100], "sy": [11, 26, 28, 72, 74, 88, 91, 94, 100], "sylphai": 66, "sync": [4, 26, 30, 33, 39, 40, 84, 94], "sync_client": 84, "sync_function_1": 30, "sync_function_2": 30, "sync_tool_1": 30, "sync_tool_2": 30, "syncapicli": 4, "synchron": [30, 72], "syntax": 88, "system": [11, 28, 33, 35, 40, 41, 47, 69, 74, 77, 81, 84, 88, 90, 92, 98], "system_prompt": 26, "system_tim": 74, "t": [2, 6, 8, 13, 15, 22, 26, 27, 31, 34, 35, 40, 81, 88, 90, 92, 93, 98], "t0": 90, "t2d": [91, 92], "t_co": [40, 53], "tabl": [74, 91, 92], "take": [0, 2, 11, 12, 13, 15, 30, 69, 76, 81, 88, 90, 91, 93, 94, 98, 100], "taken": 94, "task": [0, 2, 7, 11, 12, 13, 15, 26, 28, 30, 32, 43, 51, 59, 60, 72, 74, 75, 77, 78, 79, 80, 88, 90, 91, 92, 94, 99, 103, 105], "task_context_str": 50, "task_desc_str": [6, 7, 20, 28, 35, 78, 88, 92, 103], "task_input_dataclass": 49, "task_output_dataclass": 49, "team": 100, "technic": [66, 77, 94], "techniqu": [72, 91], "technologi": [74, 77, 91], "temperatur": [31, 32, 84, 90, 92, 94], "templat": [6, 7, 20, 26, 28, 32, 35, 43, 66, 72, 90, 91, 92, 94, 100, 105], "template_doc": [26, 72], "tenni": 7, "tensor": [4, 25, 26, 70, 72, 105], "term": [8, 22, 92], "termin": 90, "terribl": 92, "test": [4, 6, 26, 27, 77, 91, 97, 98, 99, 100], "test_input_4": 37, "testcod": 66, "text": [2, 8, 13, 15, 22, 27, 29, 31, 35, 37, 38, 40, 51, 59, 62, 70, 74, 75, 76, 77, 79, 80, 84, 88, 90, 91, 98, 103], "text_splitt": [13, 76, 92, 93], "text_splitter_set": [76, 92], "textsearch": 91, "textsplitt": [2, 13, 15, 74, 91], "than": [6, 11, 20, 25, 26, 29, 51, 70, 71, 72, 75, 80, 90, 91, 93, 94, 100, 105], "thank": 40, "theater": 92, "thei": [26, 27, 34, 74, 80, 81, 90, 91, 92, 105], "them": [8, 22, 25, 26, 36, 37, 40, 44, 45, 66, 72, 74, 76, 80, 81, 88, 91, 94, 98, 100, 103, 105], "theme": 66, "themselv": 69, "thenlper": [4, 75, 84], "therefor": 90, "thi": [2, 3, 4, 6, 7, 9, 11, 13, 15, 17, 22, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 40, 42, 43, 44, 45, 47, 59, 62, 63, 66, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 105], "thing": [33, 80, 84], "think": [7, 98], "third": [62, 91], "those": 81, "though": [6, 84, 88, 91], "thought": [6, 7, 11, 20, 40, 70, 90, 94], "thoughtact": [6, 20], "three": [32, 75, 76, 78, 80, 81, 94, 98], "through": [40, 66, 74, 76, 77, 78, 90, 91, 92, 98, 103], "thu": [40, 75, 88, 103], "tiktoken": [2, 13, 15, 38], "time": [11, 30, 53, 69, 76, 80, 88, 90, 91, 92, 94, 95], "time_stamp": [56, 57, 78], "timeout": 31, "timestamp": [40, 62], "titl": [40, 74, 91, 92, 103], "to_dict": [8, 22, 25, 26, 34, 35, 36, 53, 64, 70, 72, 88, 91, 94], "to_dict_class": [25, 64], "to_embed": [59, 76], "to_json": [25, 40, 70, 94, 105], "to_json_exampl": 25, "to_json_obj": [25, 70], "to_json_signatur": [25, 70, 94, 105], "to_schema": [25, 70], "to_schema_str": [25, 70], "to_thread": 30, "to_yaml": [25, 40, 70, 74, 94, 105], "to_yaml_exampl": 25, "to_yaml_obj": [25, 70], "to_yaml_signatur": [25, 70, 105], "toctre": 66, "todai": [8, 22], "todo": [11, 81], "toembed": [1, 13, 14, 59, 74, 76, 92], "toembedderrespons": [76, 92], "togeth": [72, 74, 75, 76, 79, 88, 98], "token": [2, 6, 8, 13, 15, 20, 22, 25, 40, 41, 45, 74, 79, 81, 84, 88, 91, 92, 93, 94, 103, 105], "tokenlogprob": 40, "tokyo": 94, "tol": 31, "tolist": [4, 84], "too": [72, 74, 91, 92, 100], "took": 11, "tool": [0, 11, 12, 28, 30, 37, 39, 40, 69, 77, 78, 79, 80, 81, 88, 90, 94, 98, 100], "tool_1": 30, "tool_cal": 94, "tool_help": 90, "tool_manag": 94, "toolmanag": [39, 100], "toolnam": [11, 90], "tools_str": [28, 78, 88], "top": [8, 9, 10, 22, 26, 70, 72, 80, 90, 91, 92, 100], "top_k": [8, 9, 10, 22, 31, 36, 59, 74, 92], "top_k_docu": 74, "topic": 100, "torch": [4, 53, 61, 72, 100], "torchmetr": 77, "total": [8, 22, 44, 45, 77, 91, 94, 103], "total_docu": 91, "total_token": [40, 84], "tower": 78, "trace": [90, 99], "trace_generator_cal": [55, 60, 78], "trace_generator_error": 78, "trace_generator_st": [55, 78], "track": [40, 57, 72, 74, 78, 91, 98], "tradit": 92, "trag": 93, "train": [26, 32, 53, 72, 77, 79, 81, 88, 99, 103], "trainabl": 32, "trainable_param": 32, "trainer": 80, "transact": 77, "transfom": 74, "transform": [1, 4, 8, 13, 14, 22, 27, 40, 61, 74, 75, 76, 79, 84, 91, 92, 93, 97, 98], "transformed_item": [27, 74], "transformer_setup": [27, 74], "transformercli": 84, "transformerembedd": [4, 84], "transformerllm": 4, "transformerrerank": 4, "transformers_cli": [75, 84, 91], "transformerscli": [4, 10, 22, 75, 84, 91], "transit": 100, "translat": [77, 80], "transpar": [25, 70, 72, 80, 98], "treat": [92, 94], "treatment": 72, "trec": 99, "trec_data": 25, "trec_data_dict": 31, "trec_data_list": [25, 31], "trecdata": [25, 31, 70], "trecdata2": 70, "trecdatalist": [25, 31], "tredatalist": 25, "tree": 26, "trend": 92, "trim_block": 88, "tripl": [6, 20, 31, 94], "true": [0, 4, 6, 8, 12, 20, 22, 26, 27, 31, 34, 37, 40, 43, 51, 53, 55, 62, 70, 74, 75, 76, 77, 84, 88, 90, 91, 92, 94, 103, 105], "truncat": 84, "truth": [42, 43, 44, 45, 51, 74, 77, 91, 103], "try": [80, 84, 94], "tuna": 92, "tune": 92, "tupl": [26, 31, 42, 44, 45, 53, 61, 62], "turbo": [26, 31, 32, 72, 74, 81, 84, 91, 92, 94], "turn": [40, 74, 76, 90], "turn_db": [3, 17], "tutori": [66, 72, 77, 90, 92, 93, 103, 105], "two": [4, 6, 7, 11, 27, 53, 60, 62, 71, 74, 75, 78, 84, 90, 91, 94, 100], "txt": 66, "type": [2, 4, 6, 8, 9, 10, 11, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 33, 34, 36, 41, 42, 43, 44, 45, 51, 53, 56, 59, 61, 62, 63, 64, 66, 70, 72, 74, 75, 76, 78, 84, 90, 92, 94, 103, 105], "type_hint": 31, "type_obj": 31, "typeerror": [2, 13, 15, 25, 34], "typevar": 91, "typic": [70, 72, 77, 78, 84, 98], "u": [27, 70, 74, 76, 88, 91, 94], "ultim": 80, "unabl": 90, "unbias": 77, "uncas": 77, "uncased_l5_no": 77, "uncontrol": 98, "undefin": [4, 33, 40, 84], "underli": 72, "understand": [4, 33, 47, 74, 77, 79, 84, 90, 91, 92, 94, 98], "unexpect": 77, "unifi": [25, 72, 74, 78], "union": [4, 8, 22, 31, 40, 44, 45, 84, 91], "uniqu": [26, 40, 57, 72, 80, 90, 98], "unit": [2, 13, 15, 40, 75, 92, 93, 94], "unknown": 94, "unless": 27, "unlik": [90, 92], "unmodifi": 76, "unsupport": [31, 94], "until": 88, "up": [0, 9, 12, 22, 31, 40, 47, 66, 70, 75, 76, 79, 80, 90, 91, 92, 96, 98, 99, 100, 105], "upcom": 72, "updat": [34, 35, 49, 57, 66, 90, 94], "update_default_model_kwarg": [29, 32], "update_dialog_turn": 40, "update_paramet": [49, 51], "update_prompt_kwarg": 35, "update_valu": 34, "us": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 43, 49, 50, 51, 53, 57, 59, 60, 61, 62, 63, 66, 69, 70, 72, 74, 76, 77, 78, 79, 80, 81, 88, 90, 92, 94, 97, 98, 99, 100, 103, 105], "usag": [2, 6, 11, 13, 15, 20, 40, 66, 74, 76, 84, 90, 91], "use_cas": [98, 99, 103], "use_llm_as_fallback": [0, 12], "use_token": [8, 22, 91], "user": [0, 3, 6, 8, 9, 11, 12, 17, 18, 20, 22, 26, 28, 29, 31, 32, 40, 51, 66, 69, 70, 72, 74, 75, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 100], "user_id": [40, 74], "user_queri": [40, 74], "user_query_timestamp": [40, 74], "user_tim": 74, "userqueri": [40, 74], "usual": 78, "util": [2, 13, 15, 18, 40, 53, 72, 75, 77, 79, 84, 90, 92, 93, 97, 100], "uuid": 40, "uuid4": 40, "v": [11, 31, 80], "v3": 91, "valid": [6, 11, 20, 31, 37, 94], "validate_data": 31, "valu": [6, 8, 22, 25, 31, 34, 37, 40, 42, 44, 45, 50, 61, 64, 70, 94], "valueerror": [2, 13, 15, 31, 84], "varaibl": 88, "vari": [7, 81], "variabl": [31, 32, 35, 40, 75, 84, 88, 94, 96, 98], "varieti": 77, "variou": [24, 31, 47, 66, 72, 78, 90, 91, 95, 103, 104], "ve": 105, "vector": [2, 13, 15, 40, 59, 74, 75, 76, 91, 92, 93], "vectorizer_set": [76, 92], "vectorstor": 92, "vendor": 98, "verbos": 70, "veri": [8, 22, 93, 98], "verif": 90, "version": [27, 60, 62, 66, 90, 91, 97], "via": [29, 30, 33, 34, 39, 69, 70, 72, 75, 76, 77, 79, 80, 84, 92, 94], "video": 91, "view": [66, 94], "visit": [78, 90], "visual": [72, 75, 88, 100], "vote": 77, "vouch": 98, "wa": [25, 81, 92, 105], "wai": [4, 7, 25, 27, 39, 70, 72, 74, 75, 84, 91, 92, 93, 94, 98], "walk": 103, "wand": 92, "want": [6, 20, 25, 29, 40, 70, 75, 80, 88, 91, 94, 98, 100, 105], "warn": [32, 62, 66], "wast": [74, 91], "watch": [76, 92], "water": [72, 78, 80], "we": [2, 11, 13, 15, 18, 25, 26, 27, 31, 32, 33, 35, 37, 38, 40, 57, 60, 66, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "weather": 94, "web": [66, 77], "weight": [8, 22, 26, 49, 72], "weights_per_class": [49, 53], "welcom": [47, 92], "well": [6, 26, 27, 69, 71, 74, 80, 88, 90, 91, 105], "what": [9, 11, 22, 25, 31, 69, 70, 72, 74, 75, 76, 78, 84, 88, 91, 92, 93, 94, 105], "when": [1, 8, 11, 14, 22, 25, 27, 29, 34, 35, 40, 49, 61, 74, 75, 76, 77, 78, 81, 88, 90, 91, 92, 93, 94, 98, 105], "whenev": 84, "where": [2, 13, 15, 40, 62, 74, 78, 80, 81, 88, 91, 92, 94, 98], "whether": [0, 8, 12, 22, 27, 31, 36, 75], "which": [0, 2, 4, 8, 9, 12, 13, 15, 22, 25, 27, 29, 30, 33, 40, 51, 53, 62, 69, 70, 72, 74, 75, 77, 78, 79, 81, 88, 90, 91, 92, 93, 94, 98, 103], "while": [31, 70, 74, 79, 80, 91], "white": 62, "who": [6, 20, 36, 79, 81, 91, 100], "whole": [26, 40, 79, 91, 103], "why": [11, 40, 72, 74, 75, 79, 84, 91, 98, 105], "wide": [70, 77, 80, 91, 92], "wider": 100, "wiki": [8, 22, 90, 91], "wikidata": 88, "wikipedia": [8, 22, 88, 90, 91], "win": 105, "wind": [74, 91], "window": [2, 13, 15, 62, 91, 92, 93], "within": [25, 26, 31, 66, 69, 79, 92, 100], "without": [7, 9, 22, 25, 30, 31, 37, 40, 62, 74, 81, 88, 91, 92, 94, 98, 100], "won": [40, 81, 93], "word": [2, 8, 13, 15, 22, 38, 59, 74, 76, 77, 81, 88, 91, 92, 93], "work": [2, 13, 15, 26, 27, 30, 31, 72, 74, 76, 78, 79, 88, 91, 92, 105], "workflow": [79, 90], "world": [2, 8, 13, 15, 22, 27, 40, 74, 78, 80, 81, 92, 93, 94, 98, 100], "world2": 27, "world3": 27, "world4": 27, "wors": 78, "would": [62, 72, 76, 78, 88, 90, 91, 92], "wrap": [1, 13, 14, 26, 30, 31, 38, 70, 94], "wrapper": 94, "write": [4, 31, 60, 62, 67, 68, 72, 77, 84, 88, 94, 98], "write_list_to_jsonl": 60, "written": 60, "www": [8, 22, 91], "x": [8, 22, 26, 31, 53, 72, 88, 91, 92, 94, 100], "x0c": 92, "xb": 92, "xiaoyi": 93, "xq": 92, "xx": 94, "y": [31, 94], "yaml": [6, 20, 25, 31, 37, 39, 40, 70, 94, 103, 105], "yaml_definit": [39, 94], "yaml_format_instruct": [6, 20], "yaml_obj": 37, "yaml_output_format": [6, 20], "yaml_output_format_templ": [6, 20], "yaml_pars": [6, 20, 37], "yaml_signatur": 70, "yaml_str": [6, 20, 25, 31, 37, 70], "yamloutputpars": [6, 20], "yamlpars": [6, 20, 37], "yang": 77, "ye": [43, 91, 98], "year": [44, 45], "yellow": 62, "yet": [4, 32], "yield": [8, 22, 26, 92], "yin": [70, 72, 74, 75, 78, 84, 88, 91, 94], "yml": 31, "you": [1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43, 59, 62, 66, 70, 72, 74, 75, 76, 77, 78, 79, 81, 84, 88, 91, 92, 93, 94, 95, 97, 98, 100, 103, 105], "your": [2, 6, 8, 11, 15, 20, 22, 25, 26, 32, 40, 43, 47, 59, 62, 66, 70, 72, 74, 75, 76, 77, 78, 80, 84, 91, 92, 93, 94, 97, 98, 103, 105], "your_api_kei": 59, "your_api_key_if_you_use_anthrop": 97, "your_api_key_if_you_use_coher": 97, "your_api_key_if_you_use_googl": 97, "your_api_key_if_you_use_groq": 97, "your_api_key_if_you_use_hf": 97, "your_api_key_if_you_use_openai": 97, "yourself": [59, 84, 91, 97], "yupeng": 77, "zephyr": 4, "zero": [8, 22, 91, 99], "zip": 92, "zishan": 77}, "titles": ["components.agent.react", "components.data_process.data_components", "components.data_process.text_splitter", "components.memory.memory", "components.model_client.transformers_client", "components.model_client.utils", "components.output_parsers.outputs", "components.reasoning.chain_of_thought", "components.retriever.bm25_retriever", "components.retriever.llm_retriever", "components.retriever.reranker_retriever", "DEFAULT_REACT_AGENT_SYSTEM_PROMPT", "components.agent", "components.data_process", "components.data_process.data_components", "components.data_process.text_splitter", "components.memory", "components.memory.memory", "components.model_client", "components.model_client.utils", "components.output_parsers", "components.reasoning", "components.retriever", "components.retriever.postgres_retriever", "Components", "core.base_data_class", "core.component", "core.db", "core.default_prompt_template", "core.embedder", "core.func_tool", "core.functional", "core.generator", "core.model_client", "core.parameter", "core.prompt_builder", "core.retriever", "core.string_parser", "core.tokenizer", "core.tool_manager", "core.types", "Core", "eval.answer_match_acc", "eval.llm_as_judge", "eval.retriever_recall", "eval.retriever_relevance", "Evaluation", "API Reference", "Optimizer", "optim.few_shot_optimizer", "optim.llm_augment", "optim.llm_optimizer", "optim.optimizer", "optim.sampler", "Tracing", "tracing.decorators", "tracing.generator_call_logger", "tracing.generator_state_logger", "Utils", "utils.config", "utils.file_io", "utils.lazy_import", "utils.logger", "utils.registry", "utils.serialization", "utils.setup_env", "Contribute to Document", "LightRAG Contribution Guide", "For Contributors", "Agent", "DataClass", "Class Hierarchy", "Component", "Data Pipeline", "Data & RAG", "Embedder", "Embedder", "LLM Evaluation", "Generator", "Tutorials", "Design Philosophy", "Introduction", "Logging", "Logging & Tracing", "ModelClient", "Optimizer", "OutputParser", "Parameter", "Prompt", "RAG application", "ReAct Agent", "Retriever", "Retriever", "Text Splitter", "Function calls", "Community", "Get Started", "Installation", "Introduction", "LightRAG in 10 minutes", "Introduction", "Resources", "Resources", "Evaluating a RAG Pipeline", "Use Cases", "Introduction to BaseDataClass", "<no title>"], "titleterms": {"": 90, "1": [80, 92, 94, 97], "10": 99, "2": [80, 92, 94, 97], "3": [80, 92, 94, 97], "4": 97, "For": 68, "In": 91, "With": 91, "action": [70, 75, 91, 94], "ad": 66, "agent": [0, 12, 24, 69, 79, 90], "an": 90, "answer_match_acc": 42, "api": [47, 69, 70, 72, 74, 75, 78, 84, 88, 91, 94, 97], "applat": 81, "applic": [88, 89, 98], "author": [70, 72, 74, 75, 77, 78, 84, 88, 91, 93, 94], "base": [79, 91], "base_data_class": 25, "basedataclass": 105, "batchembedd": 75, "bm25_retriev": 8, "bm25retriev": 91, "both": 100, "build": [66, 79, 80], "call": 94, "case": 104, "chain_of_thought": 7, "chang": 66, "chat": 81, "chunk": 93, "class": [71, 79, 88, 91], "client": [24, 41], "cloud": 74, "code": 66, "commit": 66, "commun": 95, "complet": 81, "compon": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 41, 47, 72, 79], "config": 59, "configur": 79, "context": [88, 91], "contribut": [66, 67], "contributor": 68, "control": 100, "core": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 47], "custom": 93, "data": [24, 41, 70, 73, 74, 79, 81, 88, 91], "data_compon": [1, 14], "data_process": [1, 2, 13, 14, 15], "databas": [74, 91], "dataclass": 70, "dataset": [70, 79], "db": 27, "decor": [54, 55], "deep": [80, 90], "default": 88, "default_prompt_templ": 28, "default_react_agent_system_prompt": 11, "describ": 70, "design": [70, 80, 88, 91, 94], "detail": 93, "dialogturn": 74, "directli": 84, "dive": 90, "do": 81, "docstr": 66, "document": [66, 74, 92, 93], "doe": 93, "embed": 41, "embedd": [29, 75, 76, 92], "embedderoutput": 75, "end": [94, 98], "environ": 97, "essenti": 79, "eval": [42, 43, 44, 45], "evalu": [46, 47, 77, 103], "evaul": 79, "exampl": [70, 93], "experiment": 78, "faissretriev": 91, "few_shot_optim": 49, "file": 74, "file_io": 60, "flow": [81, 88], "format": [70, 94], "foundat": 98, "from": 70, "func_tool": 30, "funcompon": 72, "function": [31, 94], "functionexpress": 94, "functiontool": 94, "gener": [32, 41, 78], "generator_call_logg": 56, "generator_state_logg": 57, "generatorinact": 78, "generatoroutput": 78, "get": 96, "graph": 74, "guid": 67, "handl": 41, "hierarchi": 71, "how": [77, 93, 98], "i": [90, 98], "implement": 90, "infer": 84, "instal": 97, "instanc": 70, "instead": [81, 91], "integr": 93, "introduct": [81, 90, 98, 100, 105], "jinja2": 88, "kei": 97, "lazy_import": 61, "lightrag": [67, 81, 90, 92, 94, 97, 98, 99], "llm": [70, 77, 80, 81, 88, 91], "llm_as_judg": 43, "llm_augment": 50, "llm_optim": 51, "llm_retriev": 9, "load": [70, 97], "local": [74, 75], "localdb": 91, "log": [79, 82, 83], "logger": [54, 58, 62], "memori": [3, 16, 17, 91], "minut": 99, "model": [24, 41, 74, 75, 84], "model_cli": [4, 5, 18, 19, 33], "modelcli": 84, "need": [81, 90], "openai": 75, "optim": [47, 48, 49, 50, 51, 52, 53, 79, 80, 85], "option": [92, 97], "other": 93, "our": 80, "output": [6, 24, 75, 94], "output_pars": [6, 20], "outputpars": 86, "over": 80, "overview": [24, 41, 46, 54, 58, 93], "packag": 97, "parallel": 94, "paramet": [34, 41, 87], "pars": 70, "parser": 24, "part": 98, "pattern": 91, "philosophi": 80, "pipelin": [73, 74, 79, 103], "postgres_retriev": 23, "postgresretriev": 91, "practic": 80, "previou": 81, "principl": 80, "process": 24, "processor": 75, "product": 100, "prompt": [41, 88], "prompt_build": 35, "protocol": 84, "qualiti": 80, "quantiti": 80, "quick": 94, "rag": [74, 79, 89, 103], "react": [0, 90], "read": 74, "reason": [7, 21], "refer": [47, 69, 70, 72, 74, 75, 78, 84, 88, 91, 94], "registri": 63, "rerank": 91, "reranker_retriev": 10, "research": 100, "resourc": [81, 101, 102], "retriev": [8, 9, 10, 22, 23, 24, 36, 41, 91, 92], "retriever_recal": 44, "retriever_relev": 45, "sampler": 53, "scope": 94, "score": 91, "sdk": 84, "sequenti": 72, "serial": [58, 64], "set": 97, "setup": 66, "setup_env": [58, 65], "show": 70, "showmanship": 80, "simplic": 100, "souc": 66, "split": 92, "splitter": [92, 93], "standard": 66, "start": [96, 98], "storag": 79, "string": 70, "string_pars": 37, "structur": [81, 98], "submodul": [12, 13, 16, 18, 20, 21, 22], "suggest": 74, "templat": [41, 88], "test": 66, "text": [81, 92, 93], "text_splitt": [2, 15], "textsplitt": 93, "threshold": 91, "tip": 93, "togeth": 91, "token": 38, "tool_manag": 39, "toolmanag": 94, "top_k": 91, "trace": [47, 54, 55, 56, 57, 78, 79, 83], "train": 78, "trainer": 79, "transformers_cli": 4, "tutori": 79, "type": [40, 91, 93], "understand": 80, "unit": 100, "up": 97, "us": [75, 84, 91, 93, 104], "util": [5, 19, 41, 47, 58, 59, 60, 61, 62, 63, 64, 65], "variabl": 97, "walkthrough": 94, "we": 81, "what": [77, 90, 98], "where": 77, "why": [81, 88, 90], "work": [70, 93], "workflow": 80, "write": [66, 74], "you": 90}}) \ No newline at end of file +Search.setIndex({"alltitles": {"1. Document Splitter": [[92, "document-splitter"]], "1. FunctionTool": [[94, "functiontool"]], "1. Install LightRAG": [[97, "install-lightrag"]], "2. Embedder": [[92, "embedder"]], "2. Set up API keys": [[97, "set-up-api-keys"]], "2. ToolManager": [[94, "toolmanager"]], "3. Function Call end-to-end": [[94, "function-call-end-to-end"]], "3. LightRAG Retrievers": [[92, "lightrag-retrievers"]], "3. Load environment variables": [[97, "load-environment-variables"]], "4. Install Optional Packages": [[97, "install-optional-packages"]], "API Reference": [[47, "api-reference"]], "API References": [[69, null], [70, null], [74, null], [88, null], [91, null], [94, null]], "API reference": [[72, null], [75, null], [78, null], [84, null]], "Adding Documentation Tests": [[66, "adding-documentation-tests"]], "Agent": [[69, "agent"]], "Agent Essentials": [[79, "agent-essentials"]], "Agents": [[24, "agents"]], "Author": [[70, null], [72, null], [74, null], [75, null], [77, null], [78, null], [84, null], [88, null], [91, null], [93, null], [94, null]], "BM25Retriever": [[91, "bm25retriever"]], "Base classes": [[79, "base-classes"]], "BatchEmbedder": [[75, "batchembedder"]], "Building": [[79, "building"]], "Chunking Example Detailed": [[93, "id2"]], "Class Hierarchy": [[71, "class-hierarchy"]], "Cloud database": [[74, "cloud-database"]], "Commit Changes": [[66, "commit-changes"]], "Community": [[95, "community"]], "Component": [[41, "component"], [72, "component"], [72, "id1"]], "Components": [[24, "components"], [47, "components"]], "Context": [[88, "context"], [91, "context"]], "Contribute to Document": [[66, "contribute-to-document"]], "Controllability": [[100, "controllability"]], "Core": [[41, "core"], [47, "core"]], "Customization Tips": [[93, "customization-tips"]], "DEFAULT_REACT_AGENT_SYSTEM_PROMPT": [[11, "default-react-agent-system-prompt"]], "Data & RAG": [[74, "data-rag"]], "Data Flow & LightRAG structure": [[81, "data-flow-lightrag-structure"]], "Data Flow in LLM applications": [[88, "data-flow-in-llm-applications"]], "Data Handling": [[41, "data-handling"]], "Data Models": [[74, "data-models"]], "Data Pipeline": [[73, "data-pipeline"], [74, "data-pipeline"]], "Data Pipeline and Storage": [[79, "data-pipeline-and-storage"]], "Data Process": [[24, "data-process"]], "DataClass": [[70, "dataclass"]], "DataClass in Action": [[70, "dataclass-in-action"]], "Datasets and Evaulation": [[79, null]], "Decorators": [[54, "decorators"]], "Default Prompt Template": [[88, "default-prompt-template"]], "Describe the data format to LLMs": [[70, "describe-the-data-format-to-llms"]], "Describing the Data Format": [[70, "describing-the-data-format"]], "Design": [[70, "design"], [88, "design"]], "Design Philosophy": [[80, "design-philosophy"]], "Design pattern": [[91, "design-pattern"]], "DialogTurn": [[74, "dialogturn"]], "Document": [[74, "document"]], "Embedder": [[75, "embedder"], [76, "embedder"]], "Embedder in Action": [[75, "embedder-in-action"]], "EmbedderOutput": [[75, "embedderoutput"]], "Embedding and Retrieval": [[41, "embedding-and-retrieval"]], "End-to-end applications": [[98, "end-to-end-applications"]], "Evaluating a RAG Pipeline": [[103, "evaluating-a-rag-pipeline"]], "Evaluation": [[46, "evaluation"], [47, "evaluation"]], "Evaluator": [[46, "evaluator"]], "For Contributors": [[68, "for-contributors"]], "Foundation": [[98, "foundation"]], "FunComponent": [[72, "funcomponent"]], "Function Call in Action": [[94, "function-call-in-action"]], "Function Output Format": [[94, "function-output-format"]], "Function calls": [[94, "function-calls"]], "FunctionExpression Output Format": [[94, "functionexpression-output-format"]], "Generation and Utilities": [[41, "generation-and-utilities"]], "Generator": [[78, "generator"]], "GeneratorInAction": [[78, "generatorinaction"]], "GeneratorOutput": [[78, "generatoroutput"]], "Get Started": [[96, "get-started"]], "Graph database": [[74, "graph-database"]], "How does it work": [[93, "how-does-it-work"]], "How to evaluate?": [[77, "how-to-evaluate"]], "How to start?": [[98, "how-to-start"]], "How to use it": [[93, "how-to-use-it"]], "In-memory FAISSRetriever": [[91, "in-memory-faissretriever"]], "Installation": [[97, "installation"]], "Integration with Other Document Types": [[93, "integration-with-other-document-types"]], "Introduction": [[81, "introduction"], [90, "introduction"], [98, "introduction"], [100, "introduction"]], "Introduction to BaseDataClass": [[105, "introduction-to-basedataclass"]], "Introduction to LLM applations": [[81, "introduction-to-llm-applations"]], "LLM Evaluation": [[77, "llm-evaluation"]], "LLM as Retriever": [[91, "llm-as-retriever"]], "LightRAG": [[98, "lightrag"]], "LightRAG Contribution Guide": [[67, "lightrag-contribution-guide"]], "LightRAG Scope and Design": [[94, "lightrag-scope-and-design"]], "LightRAG in 10 minutes": [[99, "lightrag-in-10-minutes"]], "LightRAG\u2019s Implementation": [[90, "lightrag-s-implementation"]], "Load data from dataset as example": [[70, "load-data-from-dataset-as-example"]], "Local database": [[74, "local-database"]], "Logger": [[58, "logger"]], "Loggers": [[54, "loggers"]], "Logging": [[82, "logging"]], "Logging & Tracing": [[83, "logging-tracing"]], "Logging & Tracing & Configurations": [[79, "logging-tracing-configurations"]], "Model Client": [[41, "model-client"]], "Model Clients": [[24, "model-clients"]], "Model Inference SDKs": [[84, "model-inference-sdks"]], "ModelClient": [[84, "modelclient"]], "ModelClient Protocol": [[84, "modelclient-protocol"]], "Optimizer": [[47, "optimizer"], [48, "optimizer"], [85, "optimizer"]], "Optimizer & Trainer": [[79, null]], "Optimizing": [[79, "optimizing"]], "Our deep understanding of LLM workflow": [[80, "our-deep-understanding-of-llm-workflow"]], "Output Parsers": [[24, "output-parsers"]], "OutputParser": [[86, "outputparser"]], "Overview": [[24, "overview"], [41, "overview"], [46, "overview"], [54, "overview"], [58, "overview"]], "Parallel Function Calls": [[94, "parallel-function-calls"]], "Parameter": [[87, "parameter"]], "Parameters": [[41, "parameters"]], "PostgresRetriever": [[91, "postgresretriever"]], "Principle 1: Quality over Quantity": [[80, "principle-1-quality-over-quantity"]], "Principle 2: Optimizing over Building": [[80, "principle-2-optimizing-over-building"]], "Principle 3: Practicality over Showmanship": [[80, "principle-3-practicality-over-showmanship"]], "Prompt": [[88, "prompt"]], "Prompt class": [[88, "prompt-class"]], "Prompts and Templates": [[41, "prompts-and-templates"]], "Quick Walkthrough": [[94, "quick-walkthrough"]], "RAG Essentials": [[79, "rag-essentials"]], "RAG application": [[89, "rag-application"]], "RAG components": [[79, "rag-components"]], "ReAct Agent": [[90, "react-agent"]], "ReAct Agent Deep Dive": [[90, "react-agent-deep-dive"]], "References": [[69, null], [70, null], [75, null], [88, null], [91, null], [94, null]], "Reranker as Retriever": [[91, "reranker-as-retriever"]], "Resources": [[81, "resources"], [101, "resources"], [102, "resources"]], "Retriever": [[91, "retriever"], [92, "retriever"]], "Retriever Base Class": [[91, "retriever-base-class"]], "Retriever Data Types": [[91, "retriever-data-types"]], "Retriever in Action": [[91, "retriever-in-action"]], "Retrievers": [[24, "retrievers"]], "Sequential": [[72, "sequential"]], "Serialization": [[58, "serialization"]], "Setup & Build Documentation": [[66, "setup-build-documentation"]], "Setup_env": [[58, "setup-env"]], "Show data examples & parse string to data instance": [[70, "show-data-examples-parse-string-to-data-instance"]], "Simplicity": [[100, "simplicity"]], "Souce Code Docstring Standard": [[66, "souce-code-docstring-standard"]], "Structure": [[98, "structure"]], "Submodules": [[12, "submodules"], [13, "submodules"], [16, "submodules"], [18, "submodules"], [20, "submodules"], [21, "submodules"], [22, "submodules"]], "Suggestion on File reading and writing": [[74, "suggestion-on-file-reading-and-writing"]], "Text Splitter": [[93, "text-splitter"]], "Text Splitting Options": [[92, "id4"]], "TextSplitter Overview": [[93, "textsplitter-overview"]], "Tracing": [[47, "tracing"], [54, "tracing"], [78, "tracing"]], "Training [Experimental]": [[78, "training-experimental"]], "Tutorials": [[79, "tutorials"]], "Unites both Research and Production": [[100, "unites-both-research-and-production"]], "Use Cases": [[104, "use-cases"]], "Use Local Model": [[75, "use-local-model"]], "Use ModelClient directly": [[84, "use-modelclient-directly"]], "Use OpenAI API": [[75, "use-openai-api"]], "Use Output Processors": [[75, "use-output-processors"]], "Use Score Threshold instead of top_k": [[91, "use-score-threshold-instead-of-top-k"]], "Use together with Database": [[91, "use-together-with-database"]], "Utils": [[47, "utils"], [58, "utils"]], "What is LightRAG?": [[98, "what-is-lightrag"]], "What is an agent and why you need it?": [[90, "what-is-an-agent-and-why-you-need-it"]], "What is not part of LightRAG?": [[98, "what-is-not-part-of-lightrag"]], "What to evaluate?": [[77, "what-to-evaluate"]], "Where to evaluate?": [[77, "where-to-evaluate"]], "Why Jinja2?": [[88, "why-jinja2"]], "Why do we need chat completion instead of the previous text completion?": [[81, "why-do-we-need-chat-completion-instead-of-the-previous-text-completion"]], "With LocalDB": [[91, "with-localdb"]], "Work with Data Instance": [[70, "work-with-data-instance"]], "Writing Documentation": [[66, "writing-documentation"]], "components.agent": [[12, "components-agent"]], "components.agent.react": [[0, "module-components.agent.react"]], "components.data_process": [[13, "components-data-process"]], "components.data_process.data_components": [[1, "module-components.data_process.data_components"], [14, "module-components.data_process.data_components"]], "components.data_process.text_splitter": [[2, "module-components.data_process.text_splitter"], [15, "module-components.data_process.text_splitter"]], "components.memory": [[16, "components-memory"]], "components.memory.memory": [[3, "module-components.memory.memory"], [17, "module-components.memory.memory"]], "components.model_client": [[18, "components-model-client"]], "components.model_client.transformers_client": [[4, "module-components.model_client.transformers_client"]], "components.model_client.utils": [[5, "module-components.model_client.utils"], [19, "module-components.model_client.utils"]], "components.output_parsers": [[20, "components-output-parsers"]], "components.output_parsers.outputs": [[6, "module-components.output_parsers.outputs"]], "components.reasoning": [[21, "components-reasoning"]], "components.reasoning.chain_of_thought": [[7, "module-components.reasoning.chain_of_thought"]], "components.retriever": [[22, "components-retriever"]], "components.retriever.bm25_retriever": [[8, "module-components.retriever.bm25_retriever"]], "components.retriever.llm_retriever": [[9, "module-components.retriever.llm_retriever"]], "components.retriever.postgres_retriever": [[23, "components-retriever-postgres-retriever"]], "components.retriever.reranker_retriever": [[10, "module-components.retriever.reranker_retriever"]], "core.base_data_class": [[25, "module-core.base_data_class"]], "core.component": [[26, "module-core.component"]], "core.db": [[27, "module-core.db"]], "core.default_prompt_template": [[28, "module-core.default_prompt_template"]], "core.embedder": [[29, "module-core.embedder"]], "core.func_tool": [[30, "module-core.func_tool"]], "core.functional": [[31, "module-core.functional"]], "core.generator": [[32, "module-core.generator"]], "core.model_client": [[33, "module-core.model_client"]], "core.parameter": [[34, "module-core.parameter"]], "core.prompt_builder": [[35, "module-core.prompt_builder"]], "core.retriever": [[36, "module-core.retriever"]], "core.string_parser": [[37, "module-core.string_parser"]], "core.tokenizer": [[38, "module-core.tokenizer"]], "core.tool_manager": [[39, "module-core.tool_manager"]], "core.types": [[40, "module-core.types"]], "eval.answer_match_acc": [[42, "module-eval.answer_match_acc"]], "eval.llm_as_judge": [[43, "module-eval.llm_as_judge"]], "eval.retriever_recall": [[44, "module-eval.retriever_recall"]], "eval.retriever_relevance": [[45, "module-eval.retriever_relevance"]], "optim.few_shot_optimizer": [[49, "module-optim.few_shot_optimizer"]], "optim.llm_augment": [[50, "module-optim.llm_augment"]], "optim.llm_optimizer": [[51, "module-optim.llm_optimizer"]], "optim.optimizer": [[52, "module-optim.optimizer"]], "optim.sampler": [[53, "module-optim.sampler"]], "tracing.decorators": [[55, "module-tracing.decorators"]], "tracing.generator_call_logger": [[56, "module-tracing.generator_call_logger"]], "tracing.generator_state_logger": [[57, "module-tracing.generator_state_logger"]], "utils.config": [[59, "module-utils.config"]], "utils.file_io": [[60, "module-utils.file_io"]], "utils.lazy_import": [[61, "module-utils.lazy_import"]], "utils.logger": [[62, "module-utils.logger"]], "utils.registry": [[63, "module-utils.registry"]], "utils.serialization": [[64, "module-utils.serialization"]], "utils.setup_env": [[65, "utils-setup-env"]]}, "docnames": ["apis/components/_autosummary/components.agent.react", "apis/components/_autosummary/components.data_process.data_components", "apis/components/_autosummary/components.data_process.text_splitter", "apis/components/_autosummary/components.memory.memory", "apis/components/_autosummary/components.model_client.transformers_client", "apis/components/_autosummary/components.model_client.utils", "apis/components/_autosummary/components.output_parsers.outputs", "apis/components/_autosummary/components.reasoning.chain_of_thought", "apis/components/_autosummary/components.retriever.bm25_retriever", "apis/components/_autosummary/components.retriever.llm_retriever", "apis/components/_autosummary/components.retriever.reranker_retriever", "apis/components/agent_prompt", "apis/components/components.agent", "apis/components/components.data_process", "apis/components/components.data_process.data_components", "apis/components/components.data_process.text_splitter", "apis/components/components.memory", "apis/components/components.memory.memory", "apis/components/components.model_client", "apis/components/components.model_client.utils", "apis/components/components.output_parsers", "apis/components/components.reasoning", "apis/components/components.retriever", "apis/components/components.retriever.postgres_retriever", "apis/components/index", "apis/core/core.base_data_class", "apis/core/core.component", "apis/core/core.db", "apis/core/core.default_prompt_template", "apis/core/core.embedder", "apis/core/core.func_tool", "apis/core/core.functional", "apis/core/core.generator", "apis/core/core.model_client", "apis/core/core.parameter", "apis/core/core.prompt_builder", "apis/core/core.retriever", "apis/core/core.string_parser", "apis/core/core.tokenizer", "apis/core/core.tool_manager", "apis/core/core.types", "apis/core/index", "apis/eval/eval.answer_match_acc", "apis/eval/eval.llm_as_judge", "apis/eval/eval.retriever_recall", "apis/eval/eval.retriever_relevance", "apis/eval/index", "apis/index", "apis/optim/index", "apis/optim/optim.few_shot_optimizer", "apis/optim/optim.llm_augment", "apis/optim/optim.llm_optimizer", "apis/optim/optim.optimizer", "apis/optim/optim.sampler", "apis/tracing/index", "apis/tracing/tracing.decorators", "apis/tracing/tracing.generator_call_logger", "apis/tracing/tracing.generator_state_logger", "apis/utils/index", "apis/utils/utils.config", "apis/utils/utils.file_io", "apis/utils/utils.lazy_import", "apis/utils/utils.logger", "apis/utils/utils.registry", "apis/utils/utils.serialization", "apis/utils/utils.setup_env", "contributor/contribute_to_document", "contributor/contribution_guide", "contributor/index", "developer_notes/agent", "developer_notes/base_data_class", "developer_notes/class_hierarchy", "developer_notes/component", "developer_notes/data_pipeline", "developer_notes/db", "developer_notes/embedder", "developer_notes/embedder_xy", "developer_notes/evaluation", "developer_notes/generator", "developer_notes/index", "developer_notes/lightrag_design_philosophy", "developer_notes/llm_intro", "developer_notes/logging", "developer_notes/logging_tracing", "developer_notes/model_client", "developer_notes/optimizer", "developer_notes/output_parsers", "developer_notes/parameter", "developer_notes/prompt", "developer_notes/rag", "developer_notes/react_agent_xy", "developer_notes/retriever", "developer_notes/retriever_xy", "developer_notes/text_splitter", "developer_notes/tool_helper", "get_started/community", "get_started/index", "get_started/installation", "get_started/introduction", "get_started/lightrag_in_10_mins", "index", "resources/index", "resources/resources", "tutorials/eval_a_rag", "tutorials/index", "tutorials/introduction_to_basedataclass", "tutorials/logging"], "envversion": {"nbsphinx": 4, "sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["apis/components/_autosummary/components.agent.react.rst", "apis/components/_autosummary/components.data_process.data_components.rst", "apis/components/_autosummary/components.data_process.text_splitter.rst", "apis/components/_autosummary/components.memory.memory.rst", "apis/components/_autosummary/components.model_client.transformers_client.rst", "apis/components/_autosummary/components.model_client.utils.rst", "apis/components/_autosummary/components.output_parsers.outputs.rst", "apis/components/_autosummary/components.reasoning.chain_of_thought.rst", "apis/components/_autosummary/components.retriever.bm25_retriever.rst", "apis/components/_autosummary/components.retriever.llm_retriever.rst", "apis/components/_autosummary/components.retriever.reranker_retriever.rst", "apis/components/agent_prompt.rst", "apis/components/components.agent.rst", "apis/components/components.data_process.rst", "apis/components/components.data_process.data_components.rst", "apis/components/components.data_process.text_splitter.rst", "apis/components/components.memory.rst", "apis/components/components.memory.memory.rst", "apis/components/components.model_client.rst", "apis/components/components.model_client.utils.rst", "apis/components/components.output_parsers.rst", "apis/components/components.reasoning.rst", "apis/components/components.retriever.rst", "apis/components/components.retriever.postgres_retriever.rst", "apis/components/index.rst", "apis/core/core.base_data_class.rst", "apis/core/core.component.rst", "apis/core/core.db.rst", "apis/core/core.default_prompt_template.rst", "apis/core/core.embedder.rst", "apis/core/core.func_tool.rst", "apis/core/core.functional.rst", "apis/core/core.generator.rst", "apis/core/core.model_client.rst", "apis/core/core.parameter.rst", "apis/core/core.prompt_builder.rst", "apis/core/core.retriever.rst", "apis/core/core.string_parser.rst", "apis/core/core.tokenizer.rst", "apis/core/core.tool_manager.rst", "apis/core/core.types.rst", "apis/core/index.rst", "apis/eval/eval.answer_match_acc.rst", "apis/eval/eval.llm_as_judge.rst", "apis/eval/eval.retriever_recall.rst", "apis/eval/eval.retriever_relevance.rst", "apis/eval/index.rst", "apis/index.rst", "apis/optim/index.rst", "apis/optim/optim.few_shot_optimizer.rst", "apis/optim/optim.llm_augment.rst", "apis/optim/optim.llm_optimizer.rst", "apis/optim/optim.optimizer.rst", "apis/optim/optim.sampler.rst", "apis/tracing/index.rst", "apis/tracing/tracing.decorators.rst", "apis/tracing/tracing.generator_call_logger.rst", "apis/tracing/tracing.generator_state_logger.rst", "apis/utils/index.rst", "apis/utils/utils.config.rst", "apis/utils/utils.file_io.rst", "apis/utils/utils.lazy_import.rst", "apis/utils/utils.logger.rst", "apis/utils/utils.registry.rst", "apis/utils/utils.serialization.rst", "apis/utils/utils.setup_env.rst", "contributor/contribute_to_document.rst", "contributor/contribution_guide.rst", "contributor/index.rst", "developer_notes/agent.rst", "developer_notes/base_data_class.rst", "developer_notes/class_hierarchy.rst", "developer_notes/component.rst", "developer_notes/data_pipeline.rst", "developer_notes/db.rst", "developer_notes/embedder.rst", "developer_notes/embedder_xy.rst", "developer_notes/evaluation.rst", "developer_notes/generator.rst", "developer_notes/index.rst", "developer_notes/lightrag_design_philosophy.rst", "developer_notes/llm_intro.rst", "developer_notes/logging.rst", "developer_notes/logging_tracing.rst", "developer_notes/model_client.rst", "developer_notes/optimizer.rst", "developer_notes/output_parsers.rst", "developer_notes/parameter.rst", "developer_notes/prompt.rst", "developer_notes/rag.rst", "developer_notes/react_agent_xy.rst", "developer_notes/retriever.rst", "developer_notes/retriever_xy.rst", "developer_notes/text_splitter.rst", "developer_notes/tool_helper.rst", "get_started/community.rst", "get_started/index.rst", "get_started/installation.rst", "get_started/introduction.rst", "get_started/lightrag_in_10_mins.rst", "index.rst", "resources/index.rst", "resources/resources.rst", "tutorials/eval_a_rag.rst", "tutorials/index.rst", "tutorials/introduction_to_basedataclass.rst", "tutorials/logging.rst"], "indexentries": {"acall() (component method)": [[26, "core.component.Component.acall", false]], "acall() (embedder method)": [[29, "core.embedder.Embedder.acall", false]], "acall() (functiontool method)": [[30, "core.func_tool.FunctionTool.acall", false]], "acall() (generator method)": [[32, "core.generator.Generator.acall", false]], "acall() (modelclient method)": [[33, "core.model_client.ModelClient.acall", false]], "acall() (retriever method)": [[36, "core.retriever.Retriever.acall", false]], "action (functionexpression attribute)": [[40, "core.types.FunctionExpression.action", false]], "action (stepoutput attribute)": [[40, "core.types.StepOutput.action", false]], "add() (localdb method)": [[27, "core.db.LocalDB.add", false]], "add_component() (component method)": [[26, "core.component.Component.add_component", false]], "answermatchacc (class in eval.answer_match_acc)": [[42, "eval.answer_match_acc.AnswerMatchAcc", false]], "anthropic (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.ANTHROPIC", false]], "append() (sequential method)": [[26, "core.component.Sequential.append", false]], "append_dialog_turn() (conversation method)": [[40, "core.types.Conversation.append_dialog_turn", false]], "append_to_jsonl() (in module utils.file_io)": [[60, "utils.file_io.append_to_jsonl", false]], "args (function attribute)": [[40, "core.types.Function.args", false]], "assistant_response (dialogturn attribute)": [[40, "core.types.DialogTurn.assistant_response", false]], "assistant_response_timestamp (dialogturn attribute)": [[40, "core.types.DialogTurn.assistant_response_timestamp", false]], "assistantresponse (class in core.types)": [[40, "core.types.AssistantResponse", false]], "augment_samples() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.augment_samples", false]], "average_pool() (in module components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.average_pool", false]], "batchembedder (class in core.embedder)": [[29, "core.embedder.BatchEmbedder", false]], "bm25retriever (class in components.retriever)": [[22, "components.retriever.BM25Retriever", false]], "bm25retriever (class in components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.BM25Retriever", false]], "booleanoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.BooleanOutputParser", false]], "bootstrapfewshot (class in optim.few_shot_optimizer)": [[49, "optim.few_shot_optimizer.BootstrapFewShot", false]], "build_index_from_documents() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.build_index_from_documents", false], [22, "components.retriever.BM25Retriever.build_index_from_documents", false]], "build_index_from_documents() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.build_index_from_documents", false], [22, "components.retriever.LLMRetriever.build_index_from_documents", false]], "build_index_from_documents() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.build_index_from_documents", false], [22, "components.retriever.RerankerRetriever.build_index_from_documents", false]], "build_index_from_documents() (retriever method)": [[36, "core.retriever.Retriever.build_index_from_documents", false]], "call() (batchembedder method)": [[29, "core.embedder.BatchEmbedder.call", false]], "call() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.call", false], [22, "components.retriever.BM25Retriever.call", false]], "call() (booleanoutputparser method)": [[6, "components.output_parsers.outputs.BooleanOutputParser.call", false]], "call() (classsampler method)": [[53, "optim.sampler.ClassSampler.call", false]], "call() (component method)": [[26, "core.component.Component.call", false]], "call() (defaultllmjudge method)": [[43, "eval.llm_as_judge.DefaultLLMJudge.call", false]], "call() (embedder method)": [[29, "core.embedder.Embedder.call", false]], "call() (funcomponent method)": [[26, "core.component.FunComponent.call", false]], "call() (functiontool method)": [[30, "core.func_tool.FunctionTool.call", false]], "call() (generator method)": [[32, "core.generator.Generator.call", false]], "call() (jsonoutputparser method)": [[6, "components.output_parsers.outputs.JsonOutputParser.call", false], [20, "components.output_parsers.JsonOutputParser.call", false]], "call() (jsonparser method)": [[37, "core.string_parser.JsonParser.call", false]], "call() (listoutputparser method)": [[6, "components.output_parsers.outputs.ListOutputParser.call", false], [20, "components.output_parsers.ListOutputParser.call", false]], "call() (llmaugmenter method)": [[50, "optim.llm_augment.LLMAugmenter.call", false]], "call() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.call", false], [22, "components.retriever.LLMRetriever.call", false]], "call() (modelclient method)": [[33, "core.model_client.ModelClient.call", false]], "call() (outputparser method)": [[6, "components.output_parsers.outputs.OutputParser.call", false]], "call() (prompt method)": [[35, "core.prompt_builder.Prompt.call", false]], "call() (randomsampler method)": [[53, "optim.sampler.RandomSampler.call", false]], "call() (reactagent method)": [[0, "components.agent.react.ReActAgent.call", false], [12, "components.agent.ReActAgent.call", false]], "call() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.call", false], [22, "components.retriever.RerankerRetriever.call", false]], "call() (retriever method)": [[36, "core.retriever.Retriever.call", false]], "call() (sampler method)": [[53, "optim.sampler.Sampler.call", false]], "call() (sequential method)": [[26, "core.component.Sequential.call", false]], "call() (textsplitter method)": [[2, "components.data_process.text_splitter.TextSplitter.call", false], [13, "components.data_process.TextSplitter.call", false], [15, "components.data_process.text_splitter.TextSplitter.call", false]], "call() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.call", false]], "call() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.call", false]], "call() (yamloutputparser method)": [[6, "components.output_parsers.outputs.YamlOutputParser.call", false], [20, "components.output_parsers.YamlOutputParser.call", false]], "call() (yamlparser method)": [[37, "core.string_parser.YamlParser.call", false]], "check_object() (in module utils.serialization)": [[64, "utils.serialization.check_object", false]], "children() (component method)": [[26, "core.component.Component.children", false]], "class (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.CLASS", false]], "classsampler (class in optim.sampler)": [[53, "optim.sampler.ClassSampler", false]], "cohere (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.COHERE", false]], "component (class in core.component)": [[26, "core.component.Component", false]], "components() (component method)": [[26, "core.component.Component.components", false]], "components.agent": [[12, "module-components.agent", false]], "components.agent.react": [[0, "module-components.agent.react", false]], "components.data_process": [[13, "module-components.data_process", false]], "components.data_process.data_components": [[1, "module-components.data_process.data_components", false], [14, "module-components.data_process.data_components", false]], "components.data_process.text_splitter": [[2, "module-components.data_process.text_splitter", false], [15, "module-components.data_process.text_splitter", false]], "components.memory": [[16, "module-components.memory", false]], "components.memory.memory": [[3, "module-components.memory.memory", false], [17, "module-components.memory.memory", false]], "components.model_client": [[18, "module-components.model_client", false]], "components.model_client.transformers_client": [[4, "module-components.model_client.transformers_client", false]], "components.model_client.utils": [[5, "module-components.model_client.utils", false], [19, "module-components.model_client.utils", false]], "components.output_parsers": [[20, "module-components.output_parsers", false]], "components.output_parsers.outputs": [[6, "module-components.output_parsers.outputs", false]], "components.reasoning": [[21, "module-components.reasoning", false]], "components.reasoning.chain_of_thought": [[7, "module-components.reasoning.chain_of_thought", false]], "components.retriever": [[22, "module-components.retriever", false]], "components.retriever.bm25_retriever": [[8, "module-components.retriever.bm25_retriever", false]], "components.retriever.llm_retriever": [[9, "module-components.retriever.llm_retriever", false]], "components.retriever.reranker_retriever": [[10, "module-components.retriever.reranker_retriever", false]], "compose_model_kwargs() (in module core.functional)": [[31, "core.functional.compose_model_kwargs", false]], "compose_prompt_kwargs() (prompt method)": [[35, "core.prompt_builder.Prompt.compose_prompt_kwargs", false]], "compute() (answermatchacc method)": [[42, "eval.answer_match_acc.AnswerMatchAcc.compute", false]], "compute() (llmasjudge method)": [[43, "eval.llm_as_judge.LLMasJudge.compute", false]], "compute() (retrieverrecall method)": [[44, "eval.retriever_recall.RetrieverRecall.compute", false]], "compute() (retrieverrelevance method)": [[45, "eval.retriever_relevance.RetrieverRelevance.compute", false]], "conversation (class in core.types)": [[40, "core.types.Conversation", false]], "conversation_id (dialogturn attribute)": [[40, "core.types.DialogTurn.conversation_id", false]], "convert_inputs_to_api_kwargs() (modelclient method)": [[33, "core.model_client.ModelClient.convert_inputs_to_api_kwargs", false]], "convert_inputs_to_api_kwargs() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.convert_inputs_to_api_kwargs", false]], "convert_schema_to_signature() (in module core.functional)": [[31, "core.functional.convert_schema_to_signature", false]], "core.base_data_class": [[25, "module-core.base_data_class", false]], "core.component": [[26, "module-core.component", false]], "core.db": [[27, "module-core.db", false]], "core.default_prompt_template": [[28, "module-core.default_prompt_template", false]], "core.embedder": [[29, "module-core.embedder", false]], "core.func_tool": [[30, "module-core.func_tool", false]], "core.functional": [[31, "module-core.functional", false]], "core.generator": [[32, "module-core.generator", false]], "core.model_client": [[33, "module-core.model_client", false]], "core.parameter": [[34, "module-core.parameter", false]], "core.prompt_builder": [[35, "module-core.prompt_builder", false]], "core.retriever": [[36, "module-core.retriever", false]], "core.string_parser": [[37, "module-core.string_parser", false]], "core.tokenizer": [[38, "module-core.tokenizer", false]], "core.tool_manager": [[39, "module-core.tool_manager", false]], "core.types": [[40, "module-core.types", false]], "cotgenerator (class in components.reasoning.chain_of_thought)": [[7, "components.reasoning.chain_of_thought.CoTGenerator", false]], "cotgeneratorwithjsonoutput (class in components.reasoning.chain_of_thought)": [[7, "components.reasoning.chain_of_thought.CoTGeneratorWithJsonOutput", false]], "count_tokens() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.count_tokens", false]], "create_from_dict() (dynamicdataclassfactory static method)": [[25, "core.base_data_class.DynamicDataClassFactory.create_from_dict", false]], "created_at (conversation attribute)": [[40, "core.types.Conversation.created_at", false]], "custom_asdict() (in module core.functional)": [[31, "core.functional.custom_asdict", false]], "data (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.data", false]], "data (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.data", false]], "data (sample attribute)": [[53, "optim.sampler.Sample.data", false]], "dataclass (class in core.base_data_class)": [[25, "core.base_data_class.DataClass", false]], "dataclass_obj_from_dict() (in module core.functional)": [[31, "core.functional.dataclass_obj_from_dict", false]], "dataclassformattype (class in core.base_data_class)": [[25, "core.base_data_class.DataClassFormatType", false]], "dataset (randomsampler attribute)": [[53, "optim.sampler.RandomSampler.dataset", false]], "decode() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.decode", false]], "default() (in module utils.serialization)": [[64, "utils.serialization.default", false]], "default_lightrag_system_prompt (in module core.default_prompt_template)": [[28, "core.default_prompt_template.DEFAULT_LIGHTRAG_SYSTEM_PROMPT", false]], "defaultllmjudge (class in eval.llm_as_judge)": [[43, "eval.llm_as_judge.DefaultLLMJudge", false]], "delete() (localdb method)": [[27, "core.db.LocalDB.delete", false]], "delete_dialog_turn() (conversation method)": [[40, "core.types.Conversation.delete_dialog_turn", false]], "deserialize() (in module utils.serialization)": [[64, "utils.serialization.deserialize", false]], "dialog_turns (conversation attribute)": [[40, "core.types.Conversation.dialog_turns", false]], "dialog_turns_input (conversation attribute)": [[40, "core.types.Conversation.dialog_turns_input", false]], "dialogturn (class in core.types)": [[40, "core.types.DialogTurn", false]], "doc_indices (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.doc_indices", false]], "doc_scores (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.doc_scores", false]], "document (class in core.types)": [[40, "core.types.Document", false]], "documents (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.documents", false]], "dynamicdataclassfactory (class in core.base_data_class)": [[25, "core.base_data_class.DynamicDataClassFactory", false]], "embedder (class in core.embedder)": [[29, "core.embedder.Embedder", false]], "embedder (modeltype attribute)": [[40, "core.types.ModelType.EMBEDDER", false]], "embedderoutput (class in core.types)": [[40, "core.types.EmbedderOutput", false]], "embedderoutputtype (in module core.types)": [[40, "core.types.EmbedderOutputType", false]], "embedding (class in core.types)": [[40, "core.types.Embedding", false]], "embedding (embedding attribute)": [[40, "core.types.Embedding.embedding", false]], "embedding_dim (embedderoutput property)": [[40, "core.types.EmbedderOutput.embedding_dim", false]], "enable_library_logging() (in module utils.logger)": [[62, "utils.logger.enable_library_logging", false]], "encode() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.encode", false]], "entitymapping (class in utils.registry)": [[63, "utils.registry.EntityMapping", false]], "error (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.error", false]], "error (functionoutput attribute)": [[40, "core.types.FunctionOutput.error", false]], "error (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.error", false]], "estimated_num_tokens (document attribute)": [[40, "core.types.Document.estimated_num_tokens", false]], "eval() (component method)": [[26, "core.component.Component.eval", false]], "eval.answer_match_acc": [[42, "module-eval.answer_match_acc", false]], "eval.llm_as_judge": [[43, "module-eval.llm_as_judge", false]], "eval.retriever_recall": [[44, "module-eval.retriever_recall", false]], "eval.retriever_relevance": [[45, "module-eval.retriever_relevance", false]], "evaluate_ast_node() (in module core.functional)": [[31, "core.functional.evaluate_ast_node", false]], "example_json (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.EXAMPLE_JSON", false]], "example_yaml (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.EXAMPLE_YAML", false]], "execute() (functiontool method)": [[30, "core.func_tool.FunctionTool.execute", false]], "execute_func() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func", false]], "execute_func_expr() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr", false]], "execute_func_expr_via_eval() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr_via_eval", false]], "execute_func_expr_via_sandbox() (toolmanager method)": [[39, "core.tool_manager.ToolManager.execute_func_expr_via_sandbox", false]], "extend() (localdb method)": [[27, "core.db.LocalDB.extend", false]], "extract_dataclass_type() (in module core.functional)": [[31, "core.functional.extract_dataclass_type", false]], "extract_json_str() (in module core.functional)": [[31, "core.functional.extract_json_str", false]], "extract_list_str() (in module core.functional)": [[31, "core.functional.extract_list_str", false]], "extract_yaml_str() (in module core.functional)": [[31, "core.functional.extract_yaml_str", false]], "faiss (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.FAISS", false]], "fetch_items() (localdb method)": [[27, "core.db.LocalDB.fetch_items", false]], "fetch_transformed_items() (localdb method)": [[27, "core.db.LocalDB.fetch_transformed_items", false]], "fix_json_escaped_single_quotes() (in module core.functional)": [[31, "core.functional.fix_json_escaped_single_quotes", false]], "fix_json_missing_commas() (in module core.functional)": [[31, "core.functional.fix_json_missing_commas", false]], "fn_schema_str() (functiondefinition method)": [[40, "core.types.FunctionDefinition.fn_schema_str", false]], "format_class_str() (dataclass class method)": [[25, "core.base_data_class.DataClass.format_class_str", false]], "format_example_str() (dataclass method)": [[25, "core.base_data_class.DataClass.format_example_str", false]], "format_instructions() (booleanoutputparser method)": [[6, "components.output_parsers.outputs.BooleanOutputParser.format_instructions", false]], "format_instructions() (jsonoutputparser method)": [[6, "components.output_parsers.outputs.JsonOutputParser.format_instructions", false], [20, "components.output_parsers.JsonOutputParser.format_instructions", false]], "format_instructions() (listoutputparser method)": [[6, "components.output_parsers.outputs.ListOutputParser.format_instructions", false], [20, "components.output_parsers.ListOutputParser.format_instructions", false]], "format_instructions() (outputparser method)": [[6, "components.output_parsers.outputs.OutputParser.format_instructions", false]], "format_instructions() (yamloutputparser method)": [[6, "components.output_parsers.outputs.YamlOutputParser.format_instructions", false], [20, "components.output_parsers.YamlOutputParser.format_instructions", false]], "from_config() (component class method)": [[26, "core.component.Component.from_config", false]], "from_config() (embedder class method)": [[29, "core.embedder.Embedder.from_config", false]], "from_config() (generator class method)": [[32, "core.generator.Generator.from_config", false]], "from_dict() (component class method)": [[26, "core.component.Component.from_dict", false]], "from_dict() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_dict", false]], "from_dict() (document class method)": [[40, "core.types.Document.from_dict", false]], "from_dict() (prompt class method)": [[35, "core.prompt_builder.Prompt.from_dict", false]], "from_dict_to_json() (in module core.functional)": [[31, "core.functional.from_dict_to_json", false]], "from_dict_to_yaml() (in module core.functional)": [[31, "core.functional.from_dict_to_yaml", false]], "from_function() (functionexpression class method)": [[40, "core.types.FunctionExpression.from_function", false]], "from_json() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_json", false]], "from_json_to_dict() (in module core.functional)": [[31, "core.functional.from_json_to_dict", false]], "from_yaml() (dataclass class method)": [[25, "core.base_data_class.DataClass.from_yaml", false]], "from_yaml_to_dict() (in module core.functional)": [[31, "core.functional.from_yaml_to_dict", false]], "fun_args (stepoutput attribute)": [[40, "core.types.StepOutput.fun_args", false]], "fun_kwargs (stepoutput attribute)": [[40, "core.types.StepOutput.fun_kwargs", false]], "fun_name (stepoutput attribute)": [[40, "core.types.StepOutput.fun_name", false]], "fun_to_component() (in module core.component)": [[26, "core.component.fun_to_component", false]], "func_desc (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_desc", false]], "func_name (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_name", false]], "func_parameters (functiondefinition attribute)": [[40, "core.types.FunctionDefinition.func_parameters", false]], "funcomponent (class in core.component)": [[26, "core.component.FunComponent", false]], "function (class in core.types)": [[40, "core.types.Function", false]], "function_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.function_definitions", false]], "functiondefinition (class in core.types)": [[40, "core.types.FunctionDefinition", false]], "functionexpression (class in core.types)": [[40, "core.types.FunctionExpression", false]], "functionoutput (class in core.types)": [[40, "core.types.FunctionOutput", false]], "functiontool (class in core.func_tool)": [[30, "core.func_tool.FunctionTool", false]], "generate_function_call_expression_from_callable() (in module core.functional)": [[31, "core.functional.generate_function_call_expression_from_callable", false]], "generate_readable_key_for_function() (in module core.functional)": [[31, "core.functional.generate_readable_key_for_function", false]], "generator (class in core.generator)": [[32, "core.generator.Generator", false]], "generator_names (generatorstatelogger property)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.generator_names", false]], "generator_names_to_files (generatorcalllogger property)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.generator_names_to_files", false]], "generatorcalllogger (class in tracing.generator_call_logger)": [[56, "tracing.generator_call_logger.GeneratorCallLogger", false]], "generatorcallrecord (class in tracing.generator_call_logger)": [[56, "tracing.generator_call_logger.GeneratorCallRecord", false]], "generatoroutput (class in core.types)": [[40, "core.types.GeneratorOutput", false]], "generatorstatelogger (class in tracing.generator_state_logger)": [[57, "tracing.generator_state_logger.GeneratorStateLogger", false]], "generatorstatesrecord (class in tracing.generator_state_logger)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord", false]], "get() (entitymapping class method)": [[63, "utils.registry.EntityMapping.get", false]], "get_all() (entitymapping class method)": [[63, "utils.registry.EntityMapping.get_all", false]], "get_calls() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.get_calls", false]], "get_chat_history_str() (conversation method)": [[40, "core.types.Conversation.get_chat_history_str", false]], "get_current_script_and_line() (in module utils.logger)": [[62, "utils.logger.get_current_script_and_line", false]], "get_dataclass_schema() (in module core.functional)": [[31, "core.functional.get_dataclass_schema", false]], "get_dialog_turns() (conversation method)": [[40, "core.types.Conversation.get_dialog_turns", false]], "get_fun_schema() (in module core.functional)": [[31, "core.functional.get_fun_schema", false]], "get_jinja2_environment() (in module core.prompt_builder)": [[35, "core.prompt_builder.get_jinja2_environment", false]], "get_log_location() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.get_log_location", false]], "get_log_location() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.get_log_location", false]], "get_logger() (in module utils.logger)": [[62, "utils.logger.get_logger", false]], "get_model_args() (in module core.types)": [[40, "core.types.get_model_args", false]], "get_next_order() (conversation method)": [[40, "core.types.Conversation.get_next_order", false]], "get_prompt_variables() (prompt method)": [[35, "core.prompt_builder.Prompt.get_prompt_variables", false]], "get_string_tokens() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.get_string_tokens", false]], "get_subcomponent() (component method)": [[26, "core.component.Component.get_subcomponent", false]], "get_top_k_indices_scores() (in module core.functional)": [[31, "core.functional.get_top_k_indices_scores", false]], "get_transformed_data() (localdb method)": [[27, "core.db.LocalDB.get_transformed_data", false]], "get_transformer_keys() (localdb method)": [[27, "core.db.LocalDB.get_transformer_keys", false]], "get_type_schema() (in module core.functional)": [[31, "core.functional.get_type_schema", false]], "google_generativeai (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.GOOGLE_GENERATIVEAI", false]], "groq (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.GROQ", false]], "gts (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.gts", false]], "id (conversation attribute)": [[40, "core.types.Conversation.id", false]], "id (dialogturn attribute)": [[40, "core.types.DialogTurn.id", false]], "id (document attribute)": [[40, "core.types.Document.id", false]], "index (embedding attribute)": [[40, "core.types.Embedding.index", false]], "index (sample attribute)": [[53, "optim.sampler.Sample.index", false]], "index_keys (retriever attribute)": [[36, "core.retriever.Retriever.index_keys", false]], "indexed (retriever attribute)": [[36, "core.retriever.Retriever.indexed", false]], "infer_bge_reranker_base() (transformerreranker method)": [[4, "components.model_client.transformers_client.TransformerReranker.infer_bge_reranker_base", false]], "infer_gte_base_embedding() (transformerembedder method)": [[4, "components.model_client.transformers_client.TransformerEmbedder.infer_gte_base_embedding", false]], "init() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.init", false]], "init_async_client() (modelclient method)": [[33, "core.model_client.ModelClient.init_async_client", false]], "init_llm_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_llm_client", false]], "init_model() (transformerembedder method)": [[4, "components.model_client.transformers_client.TransformerEmbedder.init_model", false]], "init_model() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.init_model", false]], "init_model() (transformerreranker method)": [[4, "components.model_client.transformers_client.TransformerReranker.init_model", false]], "init_reranker_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_reranker_client", false]], "init_sync_client() (modelclient method)": [[33, "core.model_client.ModelClient.init_sync_client", false]], "init_sync_client() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.init_sync_client", false]], "input (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.input", false]], "input (functionoutput attribute)": [[40, "core.types.FunctionOutput.input", false]], "instance (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.INSTANCE", false]], "instruction (class in optim.llm_optimizer)": [[51, "optim.llm_optimizer.Instruction", false]], "is_dataclass_instance() (in module core.functional)": [[31, "core.functional.is_dataclass_instance", false]], "is_key_in_template() (prompt method)": [[35, "core.prompt_builder.Prompt.is_key_in_template", false]], "is_normalized (embedderoutput property)": [[40, "core.types.EmbedderOutput.is_normalized", false]], "is_normalized() (in module core.functional)": [[31, "core.functional.is_normalized", false]], "is_picklable() (component method)": [[26, "core.component.Component.is_picklable", false]], "is_potential_dataclass() (in module core.functional)": [[31, "core.functional.is_potential_dataclass", false]], "is_running_in_event_loop() (in module core.func_tool)": [[30, "core.func_tool.is_running_in_event_loop", false]], "items (localdb attribute)": [[27, "core.db.LocalDB.items", false]], "json_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.json_definitions", false]], "jsonoutputparser (class in components.output_parsers)": [[20, "components.output_parsers.JsonOutputParser", false]], "jsonoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.JsonOutputParser", false]], "jsonparser (class in core.string_parser)": [[37, "core.string_parser.JsonParser", false]], "kwargs (function attribute)": [[40, "core.types.Function.kwargs", false]], "lazyimport (class in utils.lazy_import)": [[61, "utils.lazy_import.LazyImport", false]], "length (embedderoutput property)": [[40, "core.types.EmbedderOutput.length", false]], "length (localdb property)": [[27, "core.db.LocalDB.length", false]], "listoutputparser (class in components.output_parsers)": [[20, "components.output_parsers.ListOutputParser", false]], "listoutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.ListOutputParser", false]], "listparser (class in core.string_parser)": [[37, "core.string_parser.ListParser", false]], "llm (modeltype attribute)": [[40, "core.types.ModelType.LLM", false]], "llmasjudge (class in eval.llm_as_judge)": [[43, "eval.llm_as_judge.LLMasJudge", false]], "llmaugmenter (class in optim.llm_augment)": [[50, "optim.llm_augment.LLMAugmenter", false]], "llmoptimizer (class in optim.llm_optimizer)": [[51, "optim.llm_optimizer.LLMOptimizer", false]], "llmretriever (class in components.retriever)": [[22, "components.retriever.LLMRetriever", false]], "llmretriever (class in components.retriever.llm_retriever)": [[9, "components.retriever.llm_retriever.LLMRetriever", false]], "load() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.load", false]], "load() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.load", false]], "load() (in module utils.file_io)": [[60, "utils.file_io.load", false]], "load() (localdb method)": [[27, "core.db.LocalDB.load", false]], "load_from_file() (bm25retriever class method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.load_from_file", false], [22, "components.retriever.BM25Retriever.load_from_file", false]], "load_from_file() (retriever class method)": [[36, "core.retriever.Retriever.load_from_file", false]], "load_from_pickle() (component class method)": [[26, "core.component.Component.load_from_pickle", false]], "load_json() (in module utils.file_io)": [[60, "utils.file_io.load_json", false]], "load_jsonl() (in module utils.file_io)": [[60, "utils.file_io.load_jsonl", false]], "load_meta_data() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.load_meta_data", false]], "load_pickle() (in module utils.file_io)": [[60, "utils.file_io.load_pickle", false]], "load_state() (localdb class method)": [[27, "core.db.LocalDB.load_state", false]], "load_state_dict() (component method)": [[26, "core.component.Component.load_state_dict", false]], "load_state_pickle() (component class method)": [[26, "core.component.Component.load_state_pickle", false]], "localdb (class in core.db)": [[27, "core.db.LocalDB", false]], "log_call() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.log_call", false]], "log_prompt() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.log_prompt", false]], "logprob (tokenlogprob attribute)": [[40, "core.types.TokenLogProb.logprob", false]], "mapper_setups (localdb attribute)": [[27, "core.db.LocalDB.mapper_setups", false]], "memory (class in components.memory.memory)": [[3, "components.memory.memory.Memory", false], [17, "components.memory.memory.Memory", false]], "meta_data (document attribute)": [[40, "core.types.Document.meta_data", false]], "metadata (assistantresponse attribute)": [[40, "core.types.AssistantResponse.metadata", false]], "metadata (conversation attribute)": [[40, "core.types.Conversation.metadata", false]], "metadata (dialogturn attribute)": [[40, "core.types.DialogTurn.metadata", false]], "metadata (userquery attribute)": [[40, "core.types.UserQuery.metadata", false]], "model (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.model", false]], "model_client (embedder attribute)": [[29, "core.embedder.Embedder.model_client", false]], "model_client (generator attribute)": [[32, "core.generator.Generator.model_client", false]], "model_kwargs (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.model_kwargs", false]], "model_type (embedder attribute)": [[29, "core.embedder.Embedder.model_type", false]], "model_type (generator attribute)": [[32, "core.generator.Generator.model_type", false]], "modelclient (class in core.model_client)": [[33, "core.model_client.ModelClient", false]], "modelclienttype (class in core.types)": [[40, "core.types.ModelClientType", false]], "models (transformerembedder attribute)": [[4, "components.model_client.transformers_client.TransformerEmbedder.models", false]], "models (transformerllm attribute)": [[4, "components.model_client.transformers_client.TransformerLLM.models", false]], "models (transformerreranker attribute)": [[4, "components.model_client.transformers_client.TransformerReranker.models", false]], "modeltype (class in core.types)": [[40, "core.types.ModelType", false]], "module": [[0, "module-components.agent.react", false], [1, "module-components.data_process.data_components", false], [2, "module-components.data_process.text_splitter", false], [3, "module-components.memory.memory", false], [4, "module-components.model_client.transformers_client", false], [5, "module-components.model_client.utils", false], [6, "module-components.output_parsers.outputs", false], [7, "module-components.reasoning.chain_of_thought", false], [8, "module-components.retriever.bm25_retriever", false], [9, "module-components.retriever.llm_retriever", false], [10, "module-components.retriever.reranker_retriever", false], [12, "module-components.agent", false], [13, "module-components.data_process", false], [14, "module-components.data_process.data_components", false], [15, "module-components.data_process.text_splitter", false], [16, "module-components.memory", false], [17, "module-components.memory.memory", false], [18, "module-components.model_client", false], [19, "module-components.model_client.utils", false], [20, "module-components.output_parsers", false], [21, "module-components.reasoning", false], [22, "module-components.retriever", false], [25, "module-core.base_data_class", false], [26, "module-core.component", false], [27, "module-core.db", false], [28, "module-core.default_prompt_template", false], [29, "module-core.embedder", false], [30, "module-core.func_tool", false], [31, "module-core.functional", false], [32, "module-core.generator", false], [33, "module-core.model_client", false], [34, "module-core.parameter", false], [35, "module-core.prompt_builder", false], [36, "module-core.retriever", false], [37, "module-core.string_parser", false], [38, "module-core.tokenizer", false], [39, "module-core.tool_manager", false], [40, "module-core.types", false], [42, "module-eval.answer_match_acc", false], [43, "module-eval.llm_as_judge", false], [44, "module-eval.retriever_recall", false], [45, "module-eval.retriever_relevance", false], [49, "module-optim.few_shot_optimizer", false], [50, "module-optim.llm_augment", false], [51, "module-optim.llm_optimizer", false], [52, "module-optim.optimizer", false], [53, "module-optim.sampler", false], [55, "module-tracing.decorators", false], [56, "module-tracing.generator_call_logger", false], [57, "module-tracing.generator_state_logger", false], [59, "module-utils.config", false], [60, "module-utils.file_io", false], [61, "module-utils.lazy_import", false], [62, "module-utils.logger", false], [63, "module-utils.registry", false], [64, "module-utils.serialization", false]], "name (conversation attribute)": [[40, "core.types.Conversation.name", false]], "name (function attribute)": [[40, "core.types.Function.name", false]], "name (functionoutput attribute)": [[40, "core.types.FunctionOutput.name", false]], "name (localdb attribute)": [[27, "core.db.LocalDB.name", false]], "named_children() (component method)": [[26, "core.component.Component.named_children", false]], "named_components() (component method)": [[26, "core.component.Component.named_components", false]], "named_parameters() (component method)": [[26, "core.component.Component.named_parameters", false]], "new_component() (in module utils.config)": [[59, "utils.config.new_component", false]], "new_components_from_config() (in module utils.config)": [[59, "utils.config.new_components_from_config", false]], "normalize_np_array() (in module core.functional)": [[31, "core.functional.normalize_np_array", false]], "normalize_vector() (in module core.functional)": [[31, "core.functional.normalize_vector", false]], "objecttypes (class in utils.serialization)": [[64, "utils.serialization.ObjectTypes", false]], "observation (stepoutput attribute)": [[40, "core.types.StepOutput.observation", false]], "openai (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.OPENAI", false]], "optim.few_shot_optimizer": [[49, "module-optim.few_shot_optimizer", false]], "optim.llm_augment": [[50, "module-optim.llm_augment", false]], "optim.llm_optimizer": [[51, "module-optim.llm_optimizer", false]], "optim.optimizer": [[52, "module-optim.optimizer", false]], "optim.sampler": [[53, "module-optim.sampler", false]], "optimizer (class in optim.optimizer)": [[52, "optim.optimizer.Optimizer", false]], "optionalpackages (class in utils.lazy_import)": [[61, "utils.lazy_import.OptionalPackages", false]], "order (dialogturn attribute)": [[40, "core.types.DialogTurn.order", false]], "order (document attribute)": [[40, "core.types.Document.order", false]], "output (functionoutput attribute)": [[40, "core.types.FunctionOutput.output", false]], "output (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.output", false]], "output_processors (embedder attribute)": [[29, "core.embedder.Embedder.output_processors", false]], "outputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.OutputParser", false]], "parameter (class in core.parameter)": [[34, "core.parameter.Parameter", false]], "parameters() (component method)": [[26, "core.component.Component.parameters", false]], "parent_doc_id (document attribute)": [[40, "core.types.Document.parent_doc_id", false]], "parse_chat_completion() (modelclient method)": [[33, "core.model_client.ModelClient.parse_chat_completion", false]], "parse_chat_completion() (transformerllm method)": [[4, "components.model_client.transformers_client.TransformerLLM.parse_chat_completion", false]], "parse_embedding_response() (in module components.model_client.utils)": [[5, "components.model_client.utils.parse_embedding_response", false], [19, "components.model_client.utils.parse_embedding_response", false]], "parse_embedding_response() (modelclient method)": [[33, "core.model_client.ModelClient.parse_embedding_response", false]], "parse_embedding_response() (transformersclient method)": [[4, "components.model_client.transformers_client.TransformersClient.parse_embedding_response", false]], "parse_func_expr() (toolmanager method)": [[39, "core.tool_manager.ToolManager.parse_func_expr", false]], "parse_function_call_expr() (in module core.functional)": [[31, "core.functional.parse_function_call_expr", false]], "parse_json_str_to_obj() (in module core.functional)": [[31, "core.functional.parse_json_str_to_obj", false]], "parse_yaml_str_to_obj() (in module core.functional)": [[31, "core.functional.parse_yaml_str_to_obj", false]], "parsed_input (functionoutput attribute)": [[40, "core.types.FunctionOutput.parsed_input", false]], "pgvector (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.PGVECTOR", false]], "pickle_to_file() (component method)": [[26, "core.component.Component.pickle_to_file", false]], "preprocess() (tokenizer method)": [[38, "core.tokenizer.Tokenizer.preprocess", false]], "print_prompt() (generator method)": [[32, "core.generator.Generator.print_prompt", false]], "print_prompt() (prompt method)": [[35, "core.prompt_builder.Prompt.print_prompt", false]], "print_prompt_template() (prompt method)": [[35, "core.prompt_builder.Prompt.print_prompt_template", false]], "printc() (in module utils.logger)": [[62, "utils.logger.printc", false]], "prompt (class in core.prompt_builder)": [[35, "core.prompt_builder.Prompt", false]], "prompt_kwargs (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.prompt_kwargs", false]], "prompt_states (generatorstatesrecord attribute)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord.prompt_states", false]], "prompt_tokens (usage attribute)": [[40, "core.types.Usage.prompt_tokens", false]], "propose() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.propose", false]], "propose() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.propose", false]], "query (retrieveroutput attribute)": [[40, "core.types.RetrieverOutput.query", false]], "query_str (userquery attribute)": [[40, "core.types.UserQuery.query_str", false]], "random_replace() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.random_replace", false]], "random_replace() (classsampler method)": [[53, "optim.sampler.ClassSampler.random_replace", false]], "random_replace() (randomsampler method)": [[53, "optim.sampler.RandomSampler.random_replace", false]], "random_replace() (sampler method)": [[53, "optim.sampler.Sampler.random_replace", false]], "random_sample() (classsampler method)": [[53, "optim.sampler.ClassSampler.random_sample", false]], "random_sample() (randomsampler method)": [[53, "optim.sampler.RandomSampler.random_sample", false]], "randomsampler (class in optim.sampler)": [[53, "optim.sampler.RandomSampler", false]], "raw_response (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.raw_response", false]], "raw_response (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.raw_response", false]], "reactagent (class in components.agent)": [[12, "components.agent.ReActAgent", false]], "reactagent (class in components.agent.react)": [[0, "components.agent.react.ReActAgent", false]], "register() (entitymapping class method)": [[63, "utils.registry.EntityMapping.register", false]], "register_component() (component method)": [[26, "core.component.Component.register_component", false]], "register_generator() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.register_generator", false]], "register_parameter() (component method)": [[26, "core.component.Component.register_parameter", false]], "register_transformer() (localdb method)": [[27, "core.db.LocalDB.register_transformer", false]], "represent_ordereddict() (in module core.functional)": [[31, "core.functional.represent_ordereddict", false]], "required_field() (in module core.base_data_class)": [[25, "core.base_data_class.required_field", false]], "reranker (modeltype attribute)": [[40, "core.types.ModelType.RERANKER", false]], "rerankerretriever (class in components.retriever)": [[22, "components.retriever.RerankerRetriever", false]], "rerankerretriever (class in components.retriever.reranker_retriever)": [[10, "components.retriever.reranker_retriever.RerankerRetriever", false]], "reset() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.reset", false]], "reset() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.reset", false]], "reset() (localdb method)": [[27, "core.db.LocalDB.reset", false]], "reset() (reactagent method)": [[0, "components.agent.react.ReActAgent.reset", false], [12, "components.agent.ReActAgent.reset", false]], "reset_index() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.reset_index", false], [22, "components.retriever.BM25Retriever.reset_index", false]], "reset_index() (llmretriever method)": [[9, "components.retriever.llm_retriever.LLMRetriever.reset_index", false], [22, "components.retriever.LLMRetriever.reset_index", false]], "reset_index() (rerankerretriever method)": [[10, "components.retriever.reranker_retriever.RerankerRetriever.reset_index", false], [22, "components.retriever.RerankerRetriever.reset_index", false]], "reset_index() (retriever method)": [[36, "core.retriever.Retriever.reset_index", false]], "reset_parameter() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.reset_parameter", false]], "reset_parameter() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.reset_parameter", false]], "response_str (assistantresponse attribute)": [[40, "core.types.AssistantResponse.response_str", false]], "responses (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.responses", false]], "retriever (class in core.retriever)": [[36, "core.retriever.Retriever", false]], "retriever_output_to_context_str() (in module components.data_process.data_components)": [[1, "components.data_process.data_components.retriever_output_to_context_str", false], [14, "components.data_process.data_components.retriever_output_to_context_str", false]], "retrieveroutput (class in core.types)": [[40, "core.types.RetrieverOutput", false]], "retrieveroutputtocontextstr (class in components.data_process)": [[13, "components.data_process.RetrieverOutputToContextStr", false]], "retrieveroutputtocontextstr (class in components.data_process.data_components)": [[1, "components.data_process.data_components.RetrieverOutputToContextStr", false], [14, "components.data_process.data_components.RetrieverOutputToContextStr", false]], "retrieverrecall (class in eval.retriever_recall)": [[44, "eval.retriever_recall.RetrieverRecall", false]], "retrieverrelevance (class in eval.retriever_relevance)": [[45, "eval.retriever_relevance.RetrieverRelevance", false]], "safe_import() (in module utils.lazy_import)": [[61, "utils.lazy_import.safe_import", false]], "sample (class in optim.sampler)": [[53, "optim.sampler.Sample", false]], "sampler (class in optim.sampler)": [[53, "optim.sampler.Sampler", false]], "sandbox_exec() (in module core.functional)": [[31, "core.functional.sandbox_exec", false]], "save() (generatorstatelogger method)": [[57, "tracing.generator_state_logger.GeneratorStateLogger.save", false]], "save() (in module utils.file_io)": [[60, "utils.file_io.save", false]], "save_json() (in module utils.file_io)": [[60, "utils.file_io.save_json", false]], "save_meta_data() (generatorcalllogger method)": [[56, "tracing.generator_call_logger.GeneratorCallLogger.save_meta_data", false]], "save_pickle() (in module utils.file_io)": [[60, "utils.file_io.save_pickle", false]], "save_state() (localdb method)": [[27, "core.db.LocalDB.save_state", false]], "save_to_file() (bm25retriever method)": [[8, "components.retriever.bm25_retriever.BM25Retriever.save_to_file", false], [22, "components.retriever.BM25Retriever.save_to_file", false]], "save_to_file() (retriever method)": [[36, "core.retriever.Retriever.save_to_file", false]], "schema (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SCHEMA", false]], "score (document attribute)": [[40, "core.types.Document.score", false]], "score (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.score", false]], "sequential (class in core.component)": [[26, "core.component.Sequential", false]], "serialize() (in module utils.serialization)": [[64, "utils.serialization.serialize", false]], "set_assistant_response() (dialogturn method)": [[40, "core.types.DialogTurn.set_assistant_response", false]], "set_user_query() (dialogturn method)": [[40, "core.types.DialogTurn.set_user_query", false]], "signature_json (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SIGNATURE_JSON", false]], "signature_yaml (dataclassformattype attribute)": [[25, "core.base_data_class.DataClassFormatType.SIGNATURE_YAML", false]], "split_text() (textsplitter method)": [[2, "components.data_process.text_splitter.TextSplitter.split_text", false], [13, "components.data_process.TextSplitter.split_text", false], [15, "components.data_process.text_splitter.TextSplitter.split_text", false]], "split_text_by_word_fn() (in module components.retriever)": [[22, "components.retriever.split_text_by_word_fn", false]], "split_text_by_word_fn() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_by_word_fn", false]], "split_text_by_word_fn_then_lower_tokenized() (in module components.retriever)": [[22, "components.retriever.split_text_by_word_fn_then_lower_tokenized", false]], "split_text_by_word_fn_then_lower_tokenized() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_by_word_fn_then_lower_tokenized", false]], "split_text_tokenized() (in module components.retriever.bm25_retriever)": [[8, "components.retriever.bm25_retriever.split_text_tokenized", false]], "sqlalchemy (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.SQLALCHEMY", false]], "state_dict() (component method)": [[26, "core.component.Component.state_dict", false]], "state_dict() (optimizer method)": [[52, "optim.optimizer.Optimizer.state_dict", false]], "step (stepoutput attribute)": [[40, "core.types.StepOutput.step", false]], "step() (optimizer method)": [[52, "optim.optimizer.Optimizer.step", false]], "stepoutput (class in core.types)": [[40, "core.types.StepOutput", false]], "support_models (transformersclient attribute)": [[4, "components.model_client.transformers_client.TransformersClient.support_models", false]], "text (document attribute)": [[40, "core.types.Document.text", false]], "text (instruction attribute)": [[51, "optim.llm_optimizer.Instruction.text", false]], "textsplitter (class in components.data_process)": [[13, "components.data_process.TextSplitter", false]], "textsplitter (class in components.data_process.text_splitter)": [[2, "components.data_process.text_splitter.TextSplitter", false], [15, "components.data_process.text_splitter.TextSplitter", false]], "thought (function attribute)": [[40, "core.types.Function.thought", false]], "thought (functionexpression attribute)": [[40, "core.types.FunctionExpression.thought", false]], "thought (stepoutput attribute)": [[40, "core.types.StepOutput.thought", false]], "time_stamp (generatorcallrecord attribute)": [[56, "tracing.generator_call_logger.GeneratorCallRecord.time_stamp", false]], "time_stamp (generatorstatesrecord attribute)": [[57, "tracing.generator_state_logger.GeneratorStatesRecord.time_stamp", false]], "to_dict() (component method)": [[26, "core.component.Component.to_dict", false]], "to_dict() (dataclass method)": [[25, "core.base_data_class.DataClass.to_dict", false]], "to_dict() (in module utils.serialization)": [[64, "utils.serialization.to_dict", false]], "to_dict() (parameter method)": [[34, "core.parameter.Parameter.to_dict", false]], "to_dict() (prompt method)": [[35, "core.prompt_builder.Prompt.to_dict", false]], "to_dict() (sample method)": [[53, "optim.sampler.Sample.to_dict", false]], "to_dict_class() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_dict_class", false]], "to_json() (dataclass method)": [[25, "core.base_data_class.DataClass.to_json", false]], "to_json_obj() (dataclass method)": [[25, "core.base_data_class.DataClass.to_json_obj", false]], "to_json_signature() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_json_signature", false]], "to_schema() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_schema", false]], "to_schema_str() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_schema_str", false]], "to_yaml() (dataclass method)": [[25, "core.base_data_class.DataClass.to_yaml", false]], "to_yaml_obj() (dataclass method)": [[25, "core.base_data_class.DataClass.to_yaml_obj", false]], "to_yaml_signature() (dataclass class method)": [[25, "core.base_data_class.DataClass.to_yaml_signature", false]], "toembeddings (class in components.data_process)": [[13, "components.data_process.ToEmbeddings", false]], "toembeddings (class in components.data_process.data_components)": [[1, "components.data_process.data_components.ToEmbeddings", false], [14, "components.data_process.data_components.ToEmbeddings", false]], "token (tokenlogprob attribute)": [[40, "core.types.TokenLogProb.token", false]], "tokenizer (class in core.tokenizer)": [[38, "core.tokenizer.Tokenizer", false]], "tokenlogprob (class in core.types)": [[40, "core.types.TokenLogProb", false]], "toolmanager (class in core.tool_manager)": [[39, "core.tool_manager.ToolManager", false]], "torch (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.TORCH", false]], "total_tokens (usage attribute)": [[40, "core.types.Usage.total_tokens", false]], "trace_generator_call() (in module tracing.decorators)": [[55, "tracing.decorators.trace_generator_call", false]], "trace_generator_states() (in module tracing.decorators)": [[55, "tracing.decorators.trace_generator_states", false]], "tracing.decorators": [[55, "module-tracing.decorators", false]], "tracing.generator_call_logger": [[56, "module-tracing.generator_call_logger", false]], "tracing.generator_state_logger": [[57, "module-tracing.generator_state_logger", false]], "train() (component method)": [[26, "core.component.Component.train", false]], "training (component attribute)": [[26, "core.component.Component.training", false]], "transform() (localdb method)": [[27, "core.db.LocalDB.transform", false]], "transformed_items (localdb attribute)": [[27, "core.db.LocalDB.transformed_items", false]], "transformer_setups (localdb attribute)": [[27, "core.db.LocalDB.transformer_setups", false]], "transformerembedder (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerEmbedder", false]], "transformerllm (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerLLM", false]], "transformerreranker (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformerReranker", false]], "transformers (modelclienttype attribute)": [[40, "core.types.ModelClientType.TRANSFORMERS", false]], "transformers (optionalpackages attribute)": [[61, "utils.lazy_import.OptionalPackages.TRANSFORMERS", false]], "transformersclient (class in components.model_client.transformers_client)": [[4, "components.model_client.transformers_client.TransformersClient", false]], "type (objecttypes attribute)": [[64, "utils.serialization.ObjectTypes.TYPE", false]], "undefined (modeltype attribute)": [[40, "core.types.ModelType.UNDEFINED", false]], "update_default_model_kwargs() (embedder method)": [[29, "core.embedder.Embedder.update_default_model_kwargs", false]], "update_default_model_kwargs() (generator method)": [[32, "core.generator.Generator.update_default_model_kwargs", false]], "update_dialog_turn() (conversation method)": [[40, "core.types.Conversation.update_dialog_turn", false]], "update_parameter() (bootstrapfewshot method)": [[49, "optim.few_shot_optimizer.BootstrapFewShot.update_parameter", false]], "update_parameter() (llmoptimizer method)": [[51, "optim.llm_optimizer.LLMOptimizer.update_parameter", false]], "update_prompt_kwargs() (prompt method)": [[35, "core.prompt_builder.Prompt.update_prompt_kwargs", false]], "update_value() (parameter method)": [[34, "core.parameter.Parameter.update_value", false]], "usage (class in core.types)": [[40, "core.types.Usage", false]], "usage (embedderoutput attribute)": [[40, "core.types.EmbedderOutput.usage", false]], "usage (generatoroutput attribute)": [[40, "core.types.GeneratorOutput.usage", false]], "user_id (conversation attribute)": [[40, "core.types.Conversation.user_id", false]], "user_id (dialogturn attribute)": [[40, "core.types.DialogTurn.user_id", false]], "user_query (dialogturn attribute)": [[40, "core.types.DialogTurn.user_query", false]], "user_query_timestamp (dialogturn attribute)": [[40, "core.types.DialogTurn.user_query_timestamp", false]], "userquery (class in core.types)": [[40, "core.types.UserQuery", false]], "utils.config": [[59, "module-utils.config", false]], "utils.file_io": [[60, "module-utils.file_io", false]], "utils.lazy_import": [[61, "module-utils.lazy_import", false]], "utils.logger": [[62, "module-utils.logger", false]], "utils.registry": [[63, "module-utils.registry", false]], "utils.serialization": [[64, "module-utils.serialization", false]], "validate_data() (in module core.functional)": [[31, "core.functional.validate_data", false]], "vector (dialogturn attribute)": [[40, "core.types.DialogTurn.vector", false]], "vector (document attribute)": [[40, "core.types.Document.vector", false]], "write_list_to_jsonl() (in module utils.file_io)": [[60, "utils.file_io.write_list_to_jsonl", false]], "yaml_definitions (toolmanager property)": [[39, "core.tool_manager.ToolManager.yaml_definitions", false]], "yamloutputparser (class in components.output_parsers)": [[20, "components.output_parsers.YamlOutputParser", false]], "yamloutputparser (class in components.output_parsers.outputs)": [[6, "components.output_parsers.outputs.YamlOutputParser", false]], "yamlparser (class in core.string_parser)": [[37, "core.string_parser.YamlParser", false]]}, "objects": {"components": [[12, 0, 0, "-", "agent"], [13, 0, 0, "-", "data_process"], [16, 0, 0, "-", "memory"], [18, 0, 0, "-", "model_client"], [20, 0, 0, "-", "output_parsers"], [21, 0, 0, "-", "reasoning"], [22, 0, 0, "-", "retriever"]], "components.agent": [[12, 1, 1, "", "ReActAgent"], [0, 0, 0, "-", "react"]], "components.agent.ReActAgent": [[12, 2, 1, "", "call"], [12, 2, 1, "", "reset"]], "components.agent.react": [[0, 1, 1, "", "ReActAgent"]], "components.agent.react.ReActAgent": [[0, 2, 1, "", "call"], [0, 2, 1, "", "reset"]], "components.data_process": [[13, 1, 1, "", "RetrieverOutputToContextStr"], [13, 1, 1, "", "TextSplitter"], [13, 1, 1, "", "ToEmbeddings"], [14, 0, 0, "-", "data_components"], [15, 0, 0, "-", "text_splitter"]], "components.data_process.TextSplitter": [[13, 2, 1, "", "call"], [13, 2, 1, "", "split_text"]], "components.data_process.data_components": [[14, 1, 1, "", "RetrieverOutputToContextStr"], [14, 1, 1, "", "ToEmbeddings"], [14, 3, 1, "", "retriever_output_to_context_str"]], "components.data_process.text_splitter": [[15, 1, 1, "", "TextSplitter"]], "components.data_process.text_splitter.TextSplitter": [[15, 2, 1, "", "call"], [15, 2, 1, "", "split_text"]], "components.memory": [[17, 0, 0, "-", "memory"]], "components.memory.memory": [[17, 1, 1, "", "Memory"]], "components.model_client": [[4, 0, 0, "-", "transformers_client"], [19, 0, 0, "-", "utils"]], "components.model_client.transformers_client": [[4, 1, 1, "", "TransformerEmbedder"], [4, 1, 1, "", "TransformerLLM"], [4, 1, 1, "", "TransformerReranker"], [4, 1, 1, "", "TransformersClient"], [4, 3, 1, "", "average_pool"]], "components.model_client.transformers_client.TransformerEmbedder": [[4, 2, 1, "", "infer_gte_base_embedding"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"]], "components.model_client.transformers_client.TransformerLLM": [[4, 2, 1, "", "call"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"], [4, 2, 1, "", "parse_chat_completion"]], "components.model_client.transformers_client.TransformerReranker": [[4, 2, 1, "", "infer_bge_reranker_base"], [4, 2, 1, "", "init_model"], [4, 4, 1, "", "models"]], "components.model_client.transformers_client.TransformersClient": [[4, 2, 1, "", "call"], [4, 2, 1, "", "convert_inputs_to_api_kwargs"], [4, 2, 1, "", "init_llm_client"], [4, 2, 1, "", "init_reranker_client"], [4, 2, 1, "", "init_sync_client"], [4, 2, 1, "", "parse_embedding_response"], [4, 4, 1, "", "support_models"]], "components.model_client.utils": [[19, 3, 1, "", "parse_embedding_response"]], "components.output_parsers": [[20, 1, 1, "", "JsonOutputParser"], [20, 1, 1, "", "ListOutputParser"], [20, 1, 1, "", "YamlOutputParser"], [6, 0, 0, "-", "outputs"]], "components.output_parsers.JsonOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.ListOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.YamlOutputParser": [[20, 2, 1, "", "call"], [20, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs": [[6, 1, 1, "", "BooleanOutputParser"], [6, 1, 1, "", "JsonOutputParser"], [6, 1, 1, "", "ListOutputParser"], [6, 1, 1, "", "OutputParser"], [6, 1, 1, "", "YamlOutputParser"]], "components.output_parsers.outputs.BooleanOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.JsonOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.ListOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.OutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.output_parsers.outputs.YamlOutputParser": [[6, 2, 1, "", "call"], [6, 2, 1, "", "format_instructions"]], "components.reasoning": [[7, 0, 0, "-", "chain_of_thought"]], "components.reasoning.chain_of_thought": [[7, 1, 1, "", "CoTGenerator"], [7, 1, 1, "", "CoTGeneratorWithJsonOutput"]], "components.retriever": [[22, 1, 1, "", "BM25Retriever"], [22, 1, 1, "", "LLMRetriever"], [22, 1, 1, "", "RerankerRetriever"], [8, 0, 0, "-", "bm25_retriever"], [9, 0, 0, "-", "llm_retriever"], [10, 0, 0, "-", "reranker_retriever"], [22, 3, 1, "", "split_text_by_word_fn"], [22, 3, 1, "", "split_text_by_word_fn_then_lower_tokenized"]], "components.retriever.BM25Retriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "load_from_file"], [22, 2, 1, "", "reset_index"], [22, 2, 1, "", "save_to_file"]], "components.retriever.LLMRetriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "reset_index"]], "components.retriever.RerankerRetriever": [[22, 2, 1, "", "build_index_from_documents"], [22, 2, 1, "", "call"], [22, 2, 1, "", "reset_index"]], "components.retriever.bm25_retriever": [[8, 1, 1, "", "BM25Retriever"], [8, 3, 1, "", "split_text_by_word_fn"], [8, 3, 1, "", "split_text_by_word_fn_then_lower_tokenized"], [8, 3, 1, "", "split_text_tokenized"]], "components.retriever.bm25_retriever.BM25Retriever": [[8, 2, 1, "", "build_index_from_documents"], [8, 2, 1, "", "call"], [8, 2, 1, "", "load_from_file"], [8, 2, 1, "", "reset_index"], [8, 2, 1, "", "save_to_file"]], "components.retriever.llm_retriever": [[9, 1, 1, "", "LLMRetriever"]], "components.retriever.llm_retriever.LLMRetriever": [[9, 2, 1, "", "build_index_from_documents"], [9, 2, 1, "", "call"], [9, 2, 1, "", "reset_index"]], "components.retriever.reranker_retriever": [[10, 1, 1, "", "RerankerRetriever"]], "components.retriever.reranker_retriever.RerankerRetriever": [[10, 2, 1, "", "build_index_from_documents"], [10, 2, 1, "", "call"], [10, 2, 1, "", "reset_index"]], "core": [[25, 0, 0, "-", "base_data_class"], [26, 0, 0, "-", "component"], [27, 0, 0, "-", "db"], [28, 0, 0, "-", "default_prompt_template"], [29, 0, 0, "-", "embedder"], [30, 0, 0, "-", "func_tool"], [31, 0, 0, "-", "functional"], [32, 0, 0, "-", "generator"], [33, 0, 0, "-", "model_client"], [34, 0, 0, "-", "parameter"], [35, 0, 0, "-", "prompt_builder"], [36, 0, 0, "-", "retriever"], [37, 0, 0, "-", "string_parser"], [38, 0, 0, "-", "tokenizer"], [39, 0, 0, "-", "tool_manager"], [40, 0, 0, "-", "types"]], "core.base_data_class": [[25, 1, 1, "", "DataClass"], [25, 1, 1, "", "DataClassFormatType"], [25, 1, 1, "", "DynamicDataClassFactory"], [25, 3, 1, "", "required_field"]], "core.base_data_class.DataClass": [[25, 2, 1, "", "format_class_str"], [25, 2, 1, "", "format_example_str"], [25, 2, 1, "", "from_dict"], [25, 2, 1, "", "from_json"], [25, 2, 1, "", "from_yaml"], [25, 2, 1, "", "to_dict"], [25, 2, 1, "", "to_dict_class"], [25, 2, 1, "", "to_json"], [25, 2, 1, "", "to_json_obj"], [25, 2, 1, "", "to_json_signature"], [25, 2, 1, "", "to_schema"], [25, 2, 1, "", "to_schema_str"], [25, 2, 1, "", "to_yaml"], [25, 2, 1, "", "to_yaml_obj"], [25, 2, 1, "", "to_yaml_signature"]], "core.base_data_class.DataClassFormatType": [[25, 4, 1, "", "EXAMPLE_JSON"], [25, 4, 1, "", "EXAMPLE_YAML"], [25, 4, 1, "", "SCHEMA"], [25, 4, 1, "", "SIGNATURE_JSON"], [25, 4, 1, "", "SIGNATURE_YAML"]], "core.base_data_class.DynamicDataClassFactory": [[25, 2, 1, "", "create_from_dict"]], "core.component": [[26, 1, 1, "", "Component"], [26, 1, 1, "", "FunComponent"], [26, 1, 1, "", "Sequential"], [26, 3, 1, "", "fun_to_component"]], "core.component.Component": [[26, 2, 1, "", "acall"], [26, 2, 1, "", "add_component"], [26, 2, 1, "", "call"], [26, 2, 1, "", "children"], [26, 2, 1, "", "components"], [26, 2, 1, "", "eval"], [26, 2, 1, "", "from_config"], [26, 2, 1, "", "from_dict"], [26, 2, 1, "", "get_subcomponent"], [26, 2, 1, "", "is_picklable"], [26, 2, 1, "", "load_from_pickle"], [26, 2, 1, "", "load_state_dict"], [26, 2, 1, "", "load_state_pickle"], [26, 2, 1, "", "named_children"], [26, 2, 1, "", "named_components"], [26, 2, 1, "", "named_parameters"], [26, 2, 1, "", "parameters"], [26, 2, 1, "", "pickle_to_file"], [26, 2, 1, "", "register_component"], [26, 2, 1, "", "register_parameter"], [26, 2, 1, "", "state_dict"], [26, 2, 1, "", "to_dict"], [26, 2, 1, "", "train"], [26, 4, 1, "", "training"]], "core.component.FunComponent": [[26, 2, 1, "", "call"]], "core.component.Sequential": [[26, 2, 1, "", "append"], [26, 2, 1, "", "call"]], "core.db": [[27, 1, 1, "", "LocalDB"]], "core.db.LocalDB": [[27, 2, 1, "", "add"], [27, 2, 1, "", "delete"], [27, 2, 1, "", "extend"], [27, 2, 1, "", "fetch_items"], [27, 2, 1, "", "fetch_transformed_items"], [27, 2, 1, "", "get_transformed_data"], [27, 2, 1, "", "get_transformer_keys"], [27, 4, 1, "", "items"], [27, 5, 1, "", "length"], [27, 2, 1, "", "load"], [27, 2, 1, "", "load_state"], [27, 4, 1, "", "mapper_setups"], [27, 4, 1, "", "name"], [27, 2, 1, "", "register_transformer"], [27, 2, 1, "", "reset"], [27, 2, 1, "", "save_state"], [27, 2, 1, "", "transform"], [27, 4, 1, "", "transformed_items"], [27, 4, 1, "", "transformer_setups"]], "core.default_prompt_template": [[28, 6, 1, "", "DEFAULT_LIGHTRAG_SYSTEM_PROMPT"]], "core.embedder": [[29, 1, 1, "", "BatchEmbedder"], [29, 1, 1, "", "Embedder"]], "core.embedder.BatchEmbedder": [[29, 2, 1, "", "call"]], "core.embedder.Embedder": [[29, 2, 1, "", "acall"], [29, 2, 1, "", "call"], [29, 2, 1, "", "from_config"], [29, 4, 1, "", "model_client"], [29, 4, 1, "", "model_type"], [29, 4, 1, "", "output_processors"], [29, 2, 1, "", "update_default_model_kwargs"]], "core.func_tool": [[30, 1, 1, "", "FunctionTool"], [30, 3, 1, "", "is_running_in_event_loop"]], "core.func_tool.FunctionTool": [[30, 2, 1, "", "acall"], [30, 2, 1, "", "call"], [30, 2, 1, "", "execute"]], "core.functional": [[31, 3, 1, "", "compose_model_kwargs"], [31, 3, 1, "", "convert_schema_to_signature"], [31, 3, 1, "", "custom_asdict"], [31, 3, 1, "", "dataclass_obj_from_dict"], [31, 3, 1, "", "evaluate_ast_node"], [31, 3, 1, "", "extract_dataclass_type"], [31, 3, 1, "", "extract_json_str"], [31, 3, 1, "", "extract_list_str"], [31, 3, 1, "", "extract_yaml_str"], [31, 3, 1, "", "fix_json_escaped_single_quotes"], [31, 3, 1, "", "fix_json_missing_commas"], [31, 3, 1, "", "from_dict_to_json"], [31, 3, 1, "", "from_dict_to_yaml"], [31, 3, 1, "", "from_json_to_dict"], [31, 3, 1, "", "from_yaml_to_dict"], [31, 3, 1, "", "generate_function_call_expression_from_callable"], [31, 3, 1, "", "generate_readable_key_for_function"], [31, 3, 1, "", "get_dataclass_schema"], [31, 3, 1, "", "get_fun_schema"], [31, 3, 1, "", "get_top_k_indices_scores"], [31, 3, 1, "", "get_type_schema"], [31, 3, 1, "", "is_dataclass_instance"], [31, 3, 1, "", "is_normalized"], [31, 3, 1, "", "is_potential_dataclass"], [31, 3, 1, "", "normalize_np_array"], [31, 3, 1, "", "normalize_vector"], [31, 3, 1, "", "parse_function_call_expr"], [31, 3, 1, "", "parse_json_str_to_obj"], [31, 3, 1, "", "parse_yaml_str_to_obj"], [31, 3, 1, "", "represent_ordereddict"], [31, 3, 1, "", "sandbox_exec"], [31, 3, 1, "", "validate_data"]], "core.generator": [[32, 1, 1, "", "Generator"]], "core.generator.Generator": [[32, 2, 1, "", "acall"], [32, 2, 1, "", "call"], [32, 2, 1, "", "from_config"], [32, 4, 1, "", "model_client"], [32, 4, 1, "", "model_type"], [32, 2, 1, "", "print_prompt"], [32, 2, 1, "", "update_default_model_kwargs"]], "core.model_client": [[33, 1, 1, "", "ModelClient"]], "core.model_client.ModelClient": [[33, 2, 1, "", "acall"], [33, 2, 1, "", "call"], [33, 2, 1, "", "convert_inputs_to_api_kwargs"], [33, 2, 1, "", "init_async_client"], [33, 2, 1, "", "init_sync_client"], [33, 2, 1, "", "parse_chat_completion"], [33, 2, 1, "", "parse_embedding_response"]], "core.parameter": [[34, 1, 1, "", "Parameter"]], "core.parameter.Parameter": [[34, 2, 1, "", "to_dict"], [34, 2, 1, "", "update_value"]], "core.prompt_builder": [[35, 1, 1, "", "Prompt"], [35, 3, 1, "", "get_jinja2_environment"]], "core.prompt_builder.Prompt": [[35, 2, 1, "", "call"], [35, 2, 1, "", "compose_prompt_kwargs"], [35, 2, 1, "", "from_dict"], [35, 2, 1, "", "get_prompt_variables"], [35, 2, 1, "", "is_key_in_template"], [35, 2, 1, "", "print_prompt"], [35, 2, 1, "", "print_prompt_template"], [35, 2, 1, "", "to_dict"], [35, 2, 1, "", "update_prompt_kwargs"]], "core.retriever": [[36, 1, 1, "", "Retriever"]], "core.retriever.Retriever": [[36, 2, 1, "", "acall"], [36, 2, 1, "", "build_index_from_documents"], [36, 2, 1, "", "call"], [36, 4, 1, "", "index_keys"], [36, 4, 1, "", "indexed"], [36, 2, 1, "", "load_from_file"], [36, 2, 1, "", "reset_index"], [36, 2, 1, "", "save_to_file"]], "core.string_parser": [[37, 1, 1, "", "JsonParser"], [37, 1, 1, "", "ListParser"], [37, 1, 1, "", "YamlParser"]], "core.string_parser.JsonParser": [[37, 2, 1, "", "call"]], "core.string_parser.YamlParser": [[37, 2, 1, "", "call"]], "core.tokenizer": [[38, 1, 1, "", "Tokenizer"]], "core.tokenizer.Tokenizer": [[38, 2, 1, "", "count_tokens"], [38, 2, 1, "", "decode"], [38, 2, 1, "", "encode"], [38, 2, 1, "", "get_string_tokens"], [38, 2, 1, "", "preprocess"]], "core.tool_manager": [[39, 1, 1, "", "ToolManager"]], "core.tool_manager.ToolManager": [[39, 2, 1, "", "execute_func"], [39, 2, 1, "", "execute_func_expr"], [39, 2, 1, "", "execute_func_expr_via_eval"], [39, 2, 1, "", "execute_func_expr_via_sandbox"], [39, 5, 1, "", "function_definitions"], [39, 5, 1, "", "json_definitions"], [39, 2, 1, "", "parse_func_expr"], [39, 5, 1, "", "yaml_definitions"]], "core.types": [[40, 1, 1, "", "AssistantResponse"], [40, 1, 1, "", "Conversation"], [40, 1, 1, "", "DialogTurn"], [40, 1, 1, "", "Document"], [40, 1, 1, "", "EmbedderOutput"], [40, 4, 1, "", "EmbedderOutputType"], [40, 1, 1, "", "Embedding"], [40, 1, 1, "", "Function"], [40, 1, 1, "", "FunctionDefinition"], [40, 1, 1, "", "FunctionExpression"], [40, 1, 1, "", "FunctionOutput"], [40, 1, 1, "", "GeneratorOutput"], [40, 1, 1, "", "ModelClientType"], [40, 1, 1, "", "ModelType"], [40, 1, 1, "", "RetrieverOutput"], [40, 1, 1, "", "StepOutput"], [40, 1, 1, "", "TokenLogProb"], [40, 1, 1, "", "Usage"], [40, 1, 1, "", "UserQuery"], [40, 3, 1, "", "get_model_args"]], "core.types.AssistantResponse": [[40, 4, 1, "", "metadata"], [40, 4, 1, "", "response_str"]], "core.types.Conversation": [[40, 2, 1, "", "append_dialog_turn"], [40, 4, 1, "", "created_at"], [40, 2, 1, "", "delete_dialog_turn"], [40, 4, 1, "", "dialog_turns"], [40, 4, 1, "", "dialog_turns_input"], [40, 2, 1, "", "get_chat_history_str"], [40, 2, 1, "", "get_dialog_turns"], [40, 2, 1, "", "get_next_order"], [40, 4, 1, "", "id"], [40, 4, 1, "", "metadata"], [40, 4, 1, "", "name"], [40, 2, 1, "", "update_dialog_turn"], [40, 4, 1, "", "user_id"]], "core.types.DialogTurn": [[40, 4, 1, "", "assistant_response"], [40, 4, 1, "", "assistant_response_timestamp"], [40, 4, 1, "", "conversation_id"], [40, 4, 1, "", "id"], [40, 4, 1, "", "metadata"], [40, 4, 1, "", "order"], [40, 2, 1, "", "set_assistant_response"], [40, 2, 1, "", "set_user_query"], [40, 4, 1, "", "user_id"], [40, 4, 1, "", "user_query"], [40, 4, 1, "", "user_query_timestamp"], [40, 4, 1, "", "vector"]], "core.types.Document": [[40, 4, 1, "", "estimated_num_tokens"], [40, 2, 1, "", "from_dict"], [40, 4, 1, "", "id"], [40, 4, 1, "", "meta_data"], [40, 4, 1, "", "order"], [40, 4, 1, "", "parent_doc_id"], [40, 4, 1, "", "score"], [40, 4, 1, "", "text"], [40, 4, 1, "", "vector"]], "core.types.EmbedderOutput": [[40, 4, 1, "", "data"], [40, 5, 1, "", "embedding_dim"], [40, 4, 1, "", "error"], [40, 4, 1, "", "input"], [40, 5, 1, "", "is_normalized"], [40, 5, 1, "", "length"], [40, 4, 1, "", "model"], [40, 4, 1, "", "raw_response"], [40, 4, 1, "", "usage"]], "core.types.Embedding": [[40, 4, 1, "", "embedding"], [40, 4, 1, "", "index"]], "core.types.Function": [[40, 4, 1, "", "args"], [40, 4, 1, "", "kwargs"], [40, 4, 1, "", "name"], [40, 4, 1, "", "thought"]], "core.types.FunctionDefinition": [[40, 2, 1, "", "fn_schema_str"], [40, 4, 1, "", "func_desc"], [40, 4, 1, "", "func_name"], [40, 4, 1, "", "func_parameters"]], "core.types.FunctionExpression": [[40, 4, 1, "", "action"], [40, 2, 1, "", "from_function"], [40, 4, 1, "", "thought"]], "core.types.FunctionOutput": [[40, 4, 1, "", "error"], [40, 4, 1, "", "input"], [40, 4, 1, "", "name"], [40, 4, 1, "", "output"], [40, 4, 1, "", "parsed_input"]], "core.types.GeneratorOutput": [[40, 4, 1, "", "data"], [40, 4, 1, "", "error"], [40, 4, 1, "", "raw_response"], [40, 4, 1, "", "usage"]], "core.types.ModelClientType": [[40, 4, 1, "", "TRANSFORMERS"]], "core.types.ModelType": [[40, 4, 1, "", "EMBEDDER"], [40, 4, 1, "", "LLM"], [40, 4, 1, "", "RERANKER"], [40, 4, 1, "", "UNDEFINED"]], "core.types.RetrieverOutput": [[40, 4, 1, "", "doc_indices"], [40, 4, 1, "", "doc_scores"], [40, 4, 1, "", "documents"], [40, 4, 1, "", "query"]], "core.types.StepOutput": [[40, 4, 1, "", "action"], [40, 4, 1, "", "fun_args"], [40, 4, 1, "", "fun_kwargs"], [40, 4, 1, "", "fun_name"], [40, 4, 1, "", "observation"], [40, 4, 1, "", "step"], [40, 4, 1, "", "thought"]], "core.types.TokenLogProb": [[40, 4, 1, "", "logprob"], [40, 4, 1, "", "token"]], "core.types.Usage": [[40, 4, 1, "", "prompt_tokens"], [40, 4, 1, "", "total_tokens"]], "core.types.UserQuery": [[40, 4, 1, "", "metadata"], [40, 4, 1, "", "query_str"]], "eval": [[42, 0, 0, "-", "answer_match_acc"], [43, 0, 0, "-", "llm_as_judge"], [44, 0, 0, "-", "retriever_recall"], [45, 0, 0, "-", "retriever_relevance"]], "eval.answer_match_acc": [[42, 1, 1, "", "AnswerMatchAcc"]], "eval.answer_match_acc.AnswerMatchAcc": [[42, 2, 1, "", "compute"]], "eval.llm_as_judge": [[43, 1, 1, "", "DefaultLLMJudge"], [43, 1, 1, "", "LLMasJudge"]], "eval.llm_as_judge.DefaultLLMJudge": [[43, 2, 1, "", "call"]], "eval.llm_as_judge.LLMasJudge": [[43, 2, 1, "", "compute"]], "eval.retriever_recall": [[44, 1, 1, "", "RetrieverRecall"]], "eval.retriever_recall.RetrieverRecall": [[44, 2, 1, "", "compute"]], "eval.retriever_relevance": [[45, 1, 1, "", "RetrieverRelevance"]], "eval.retriever_relevance.RetrieverRelevance": [[45, 2, 1, "", "compute"]], "optim": [[49, 0, 0, "-", "few_shot_optimizer"], [50, 0, 0, "-", "llm_augment"], [51, 0, 0, "-", "llm_optimizer"], [52, 0, 0, "-", "optimizer"], [53, 0, 0, "-", "sampler"]], "optim.few_shot_optimizer": [[49, 1, 1, "", "BootstrapFewShot"]], "optim.few_shot_optimizer.BootstrapFewShot": [[49, 2, 1, "", "augment_samples"], [49, 2, 1, "", "init"], [49, 2, 1, "", "propose"], [49, 2, 1, "", "random_replace"], [49, 2, 1, "", "reset"], [49, 2, 1, "", "reset_parameter"], [49, 2, 1, "", "update_parameter"]], "optim.llm_augment": [[50, 1, 1, "", "LLMAugmenter"]], "optim.llm_augment.LLMAugmenter": [[50, 2, 1, "", "call"]], "optim.llm_optimizer": [[51, 1, 1, "", "Instruction"], [51, 1, 1, "", "LLMOptimizer"]], "optim.llm_optimizer.Instruction": [[51, 4, 1, "", "gts"], [51, 4, 1, "", "responses"], [51, 4, 1, "", "score"], [51, 4, 1, "", "text"]], "optim.llm_optimizer.LLMOptimizer": [[51, 2, 1, "", "propose"], [51, 2, 1, "", "reset"], [51, 2, 1, "", "reset_parameter"], [51, 2, 1, "", "update_parameter"]], "optim.optimizer": [[52, 1, 1, "", "Optimizer"]], "optim.optimizer.Optimizer": [[52, 2, 1, "", "state_dict"], [52, 2, 1, "", "step"]], "optim.sampler": [[53, 1, 1, "", "ClassSampler"], [53, 1, 1, "", "RandomSampler"], [53, 1, 1, "", "Sample"], [53, 1, 1, "", "Sampler"]], "optim.sampler.ClassSampler": [[53, 2, 1, "", "call"], [53, 2, 1, "", "random_replace"], [53, 2, 1, "", "random_sample"]], "optim.sampler.RandomSampler": [[53, 2, 1, "", "call"], [53, 4, 1, "", "dataset"], [53, 2, 1, "", "random_replace"], [53, 2, 1, "", "random_sample"]], "optim.sampler.Sample": [[53, 4, 1, "", "data"], [53, 4, 1, "", "index"], [53, 2, 1, "", "to_dict"]], "optim.sampler.Sampler": [[53, 2, 1, "", "call"], [53, 2, 1, "", "random_replace"]], "tracing": [[55, 0, 0, "-", "decorators"], [56, 0, 0, "-", "generator_call_logger"], [57, 0, 0, "-", "generator_state_logger"]], "tracing.decorators": [[55, 3, 1, "", "trace_generator_call"], [55, 3, 1, "", "trace_generator_states"]], "tracing.generator_call_logger": [[56, 1, 1, "", "GeneratorCallLogger"], [56, 1, 1, "", "GeneratorCallRecord"]], "tracing.generator_call_logger.GeneratorCallLogger": [[56, 5, 1, "", "generator_names_to_files"], [56, 2, 1, "", "get_calls"], [56, 2, 1, "", "get_log_location"], [56, 2, 1, "", "load"], [56, 2, 1, "", "load_meta_data"], [56, 2, 1, "", "log_call"], [56, 2, 1, "", "register_generator"], [56, 2, 1, "", "save_meta_data"]], "tracing.generator_call_logger.GeneratorCallRecord": [[56, 4, 1, "", "model_kwargs"], [56, 4, 1, "", "output"], [56, 4, 1, "", "prompt_kwargs"], [56, 4, 1, "", "time_stamp"]], "tracing.generator_state_logger": [[57, 1, 1, "", "GeneratorStateLogger"], [57, 1, 1, "", "GeneratorStatesRecord"]], "tracing.generator_state_logger.GeneratorStateLogger": [[57, 5, 1, "", "generator_names"], [57, 2, 1, "", "get_log_location"], [57, 2, 1, "", "load"], [57, 2, 1, "", "log_prompt"], [57, 2, 1, "", "save"]], "tracing.generator_state_logger.GeneratorStatesRecord": [[57, 4, 1, "", "prompt_states"], [57, 4, 1, "", "time_stamp"]], "utils": [[59, 0, 0, "-", "config"], [60, 0, 0, "-", "file_io"], [61, 0, 0, "-", "lazy_import"], [62, 0, 0, "-", "logger"], [63, 0, 0, "-", "registry"], [64, 0, 0, "-", "serialization"]], "utils.config": [[59, 3, 1, "", "new_component"], [59, 3, 1, "", "new_components_from_config"]], "utils.file_io": [[60, 3, 1, "", "append_to_jsonl"], [60, 3, 1, "", "load"], [60, 3, 1, "", "load_json"], [60, 3, 1, "", "load_jsonl"], [60, 3, 1, "", "load_pickle"], [60, 3, 1, "", "save"], [60, 3, 1, "", "save_json"], [60, 3, 1, "", "save_pickle"], [60, 3, 1, "", "write_list_to_jsonl"]], "utils.lazy_import": [[61, 1, 1, "", "LazyImport"], [61, 1, 1, "", "OptionalPackages"], [61, 3, 1, "", "safe_import"]], "utils.lazy_import.OptionalPackages": [[61, 4, 1, "", "ANTHROPIC"], [61, 4, 1, "", "COHERE"], [61, 4, 1, "", "FAISS"], [61, 4, 1, "", "GOOGLE_GENERATIVEAI"], [61, 4, 1, "", "GROQ"], [61, 4, 1, "", "OPENAI"], [61, 4, 1, "", "PGVECTOR"], [61, 4, 1, "", "SQLALCHEMY"], [61, 4, 1, "", "TORCH"], [61, 4, 1, "", "TRANSFORMERS"]], "utils.logger": [[62, 3, 1, "", "enable_library_logging"], [62, 3, 1, "", "get_current_script_and_line"], [62, 3, 1, "", "get_logger"], [62, 3, 1, "", "printc"]], "utils.registry": [[63, 1, 1, "", "EntityMapping"]], "utils.registry.EntityMapping": [[63, 2, 1, "", "get"], [63, 2, 1, "", "get_all"], [63, 2, 1, "", "register"]], "utils.serialization": [[64, 1, 1, "", "ObjectTypes"], [64, 3, 1, "", "check_object"], [64, 3, 1, "", "default"], [64, 3, 1, "", "deserialize"], [64, 3, 1, "", "serialize"], [64, 3, 1, "", "to_dict"]], "utils.serialization.ObjectTypes": [[64, 4, 1, "", "CLASS"], [64, 4, 1, "", "INSTANCE"], [64, 4, 1, "", "TYPE"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "property", "Python property"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute", "5": "py:property", "6": "py:data"}, "terms": {"": [2, 4, 7, 8, 11, 13, 15, 22, 26, 30, 33, 34, 35, 36, 53, 62, 66, 70, 71, 72, 74, 75, 76, 77, 78, 80, 81, 88, 91, 92, 93, 94, 98, 103, 105], "0": [2, 8, 13, 15, 22, 25, 26, 27, 31, 32, 40, 42, 43, 44, 45, 51, 66, 70, 72, 74, 76, 77, 84, 90, 91, 92, 93, 94, 97, 100], "00": [74, 75], "0001": 31, "00016600126": 76, "00018637415": 76, "0003912348": 76, "00045548353": 76, "00063306844": 76, "00093111617": 76, "0009763892": 76, "001149847": 76, "001270235": 76, "001274437": 76, "0013953627": 76, "0015121206": 76, "0016585035": 76, "0017067948": 76, "0017369769": 76, "0018af12": 74, "002240922": 76, "0023736332": 76, "0024688914": 76, "0025802834": 76, "0027390209": 76, "002749016": 76, "0027831418": 76, "0032514224": 76, "0032596611": 76, "0035554452": 76, "0035945757": 76, "004110795": 76, "0042391727": 76, "00427709": 76, "004391488": 76, "0045538875": 76, "0048683644": 76, "005190901": 76, "005429781": 76, "0055172783": 76, "0059066266": 76, "0060756463": 76, "0065862634": 76, "006953944": 76, "007086745": 76, "0072255824": 76, "0073946016": 76, "007424784": 76, "0076722763": 76, "008243256": 76, "008804435": 76, "00888027": 76, "00918361": 76, "0092658885": 76, "009380581": 76, "009410762": 76, "009845384": 76, "0098876385": 76, "0099192085": 76, "00z": 74, "010159277": 76, "010340369": 76, "01047317": 76, "010648226": 76, "010723059": 76, "011026398": 76, "01102852": 76, "011178068": 76, "011329738": 76, "011336377": 76, "011663412": 76, "0118985": 76, "012314276": 76, "012414178": 76, "012519513": 76, "012596182": 76, "012740267": 76, "01283127": 76, "012846436": 76, "013225611": 76, "013376684": 76, "013642286": 76, "013799232": 76, "014256966": 76, "014401053": 76, "0144541375": 76, "014545139": 76, "014752985": 76, "014813349": 76, "01541699": 76, "015417241": 76, "015500659": 76, "015549791": 76, "015742956": 76, "015791247": 76, "015851611": 76, "01600117": 76, "016137673": 76, "016201723": 76, "016310379": 76, "016319677": 76, "016503545": 76, "016853655": 76, "017123526": 76, "017179621": 76, "017199362": 76, "01721584": 76, "017252058": 76, "017384859": 76, "0175027": 76, "017819481": 76, "017942544": 76, "018185215": 76, "01821555": 76, "018579558": 76, "019038836": 76, "019186236": 76, "019337907": 76, "01965455": 76, "01t12": 74, "01z": 74, "020113317": 76, "020202424": 76, "020318555": 76, "02047543": 76, "020702936": 76, "02072903": 76, "020733269": 76, "020777322": 76, "02094634": 76, "02170693": 76, "021855626": 76, "022022463": 76, "022083132": 76, "022370934": 76, "022491662": 76, "022583641": 76, "022795979": 76, "022917315": 76, "023175154": 76, "02349366": 76, "02435818": 76, "024447458": 76, "024479514": 76, "02448e3fd394": 74, "02449575": 76, "024570517": 76, "024691852": 76, "024773424": 76, "02479802": 76, "024821715": 76, "0249183": 76, "024919357": 76, "024995193": 76, "025014881": 76, "025159756": 76, "025237864": 76, "025283365": 76, "025304629": 76, "025344033": 76, "0253592": 76, "025449503": 76, "025763396": 76, "025811687": 76, "025829377": 76, "026026547": 76, "02642089": 76, "02646639": 76, "026527058": 76, "026560202": 76, "026845565": 76, "02686073": 76, "027526028": 76, "027646756": 76, "027719192": 76, "02781625": 76, "02787692": 76, "027888212": 76, "028250396": 76, "028274542": 76, "028392596": 76, "028419416": 76, "028588437": 76, "028709164": 76, "028711103": 76, "028999276": 76, "029023057": 76, "029095493": 76, "029393617": 76, "029454285": 76, "029578406": 76, "02959079": 76, "029819863": 76, "02t15": 78, "02z": 74, "030351067": 76, "030515974": 76, "030561475": 76, "030737398": 76, "031122655": 76, "031425994": 76, "03148666": 76, "031992972": 76, "032282718": 76, "03250003": 76, "03254835": 76, "03288636": 76, "032958794": 76, "033031233": 76, "033200253": 76, "033320982": 76, "03374": 77, "03409": 51, "03414193": 76, "034190223": 76, "034338057": 76, "03438339": 76, "034398723": 76, "034489725": 76, "034673136": 76, "034793064": 76, "035096403": 76, "03520434": 76, "035276778": 76, "03530092": 76, "035399742": 76, "0354458": 76, "035460413": 76, "03567275": 76, "03575969": 76, "035794087": 76, "035945754": 76, "036188427": 76, "036249094": 76, "03629": [0, 12, 69], "03648406": 76, "036582768": 76, "03718945": 76, "037280865": 76, "037715487": 76, "03773546": 76, "037787925": 76, "03828147": 76, "038294982": 76, "03841571": 76, "038463477": 76, "038898624": 76, "039161157": 76, "03934316": 76, "03940383": 76, "03940568": 76, "039555497": 76, "039792012": 76, "039828505": 76, "039919507": 76, "03t16": 78, "03z": 74, "04": 75, "040178344": 76, "040274926": 76, "04090271": 76, "041820247": 76, "041868538": 76, "042224888": 76, "042285554": 76, "042497892": 76, "042649563": 76, "042810217": 76, "0428619": 76, "042922568": 76, "042952903": 76, "043104574": 76, "04352925": 76, "04363117": 76, "043776043": 76, "043802254": 76, "043893255": 76, "044017497": 76, "0442831": 76, "044408932": 76, "0445487": 76, "044596992": 76, "04500747": 76, "045128196": 76, "045200635": 76, "045318954": 76, "04537962": 76, "045409955": 76, "045500956": 76, "045755986": 76, "046214752": 76, "046380643": 76, "046842538": 76, "047301304": 76, "04732545": 76, "04735133": 76, "04744618": 76, "048018675": 76, "048170548": 76, "048242986": 76, "04844335": 76, "048534352": 76, "04865569": 76, "04874669": 76, "04882248": 76, "0491107": 76, "049112227": 76, "049257103": 76, "049474705": 76, "04964343": 76, "04988489": 76, "04it": 74, "05011172": 76, "050126344": 76, "050688066": 76, "050995983": 84, "05133363": 76, "051385745": 76, "051749755": 76, "05202276": 76, "052057996": 76, "052106287": 76, "05220287": 76, "052417103": 76, "053175453": 76, "05331357": 76, "05338779": 76, "05369113": 76, "05408623": 76, "054115806": 76, "054617435": 76, "054762308": 76, "055341803": 76, "055390093": 76, "055631552": 76, "055824716": 76, "05584484": 76, "05606617": 76, "056500793": 76, "056549083": 76, "057031997": 76, "057118867": 76, "057209868": 76, "05794953": 76, "057968218": 76, "05877048": 76, "059393916": 76, "059543144": 76, "059977766": 76, "06": 78, "060026057": 76, "06033427": 76, "060455605": 76, "060750425": 76, "060758945": 76, "060940947": 76, "06109262": 76, "06205429": 76, "062150873": 76, "062199164": 76, "062427312": 76, "06244062": 76, "0625372": 76, "062609315": 76, "06335816": 76, "063458666": 76, "06351934": 76, "06358001": 76, "06424735": 76, "06430802": 76, "06437227": 76, "06527871": 76, "065521374": 76, "065724425": 76, "06596588": 76, "06615905": 76, "066492066": 76, "06691674": 76, "067159414": 76, "06782676": 76, "06799412": 76, "06842874": 76, "06881507": 76, "069404125": 76, "06978089": 76, "06995014": 76, "06ea7cea": 74, "070553556": 76, "07061748": 76, "0708433": 76, "0708916": 76, "07113305": 76, "07158817": 76, "07185742": 76, "07249819": 76, "07261953": 76, "07296812": 76, "07298353": 76, "074030526": 76, "07407882": 76, "07456173": 76, "07486424": 76, "07510691": 76, "07595626": 76, "07597": 4, "076138265": 76, "07654167": 76, "07736263": 76, "077507496": 76, "07753363": 76, "077776305": 76, "07794212": 76, "0780387": 76, "078569904": 76, "078763075": 76, "07881136": 76, "079110995": 76, "07989968": 76, "08088789": 76, "08103276": 76, "08112934": 76, "081225924": 76, "08199859": 76, "08256907": 76, "08275107": 76, "08277125": 76, "082872406": 76, "083054416": 76, "08317575": 76, "083539754": 76, "083600424": 76, "083737075": 76, "08397853": 76, "0841717": 76, "08426777": 76, "08432844": 76, "084389105": 76, "08494435": 76, "08523846": 76, "085717015": 76, "085905805": 76, "08651248": 76, "08658626": 76, "08663": 91, "08669449": 76, "08774": 77, "08851453": 76, "08861449": 76, "08880766": 76, "088952534": 76, "08962861": 76, "09": 74, "090455905": 76, "09081991": 76, "09100191": 76, "091183916": 76, "091244586": 76, "09148726": 76, "09172993": 76, "09199488": 76, "09209394": 76, "09213976": 76, "092639945": 76, "0935402": 76, "09354997": 76, "09382995": 76, "09433865": 76, "0946509": 76, "09503723": 76, "09614793": 76, "09634069": 76, "09793471": 76, "09925275": 76, "099495426": 76, "0d16": [2, 13, 15, 93], "0d95cc65e6ef": 76, "0th": 92, "0x104970220": 94, "0x104970400": 94, "0x105e3b920": 94, "0x105e3bc40": 94, "0x1062a2840": 94, "0x106d691c0": 94, "0x10fb26f20": 74, "0x11742eca0": 94, "0x117b98360": 94, "0x14d9d3f60": 94, "0x14d9e4040": 94, "0x14d9e40e0": 94, "0x14d9e4180": 94, "0x14d9e4220": 94, "0x14d9e4360": 94, "1": [0, 2, 4, 6, 7, 8, 9, 11, 12, 13, 15, 22, 25, 26, 27, 29, 30, 35, 37, 40, 42, 43, 44, 45, 51, 59, 61, 64, 66, 70, 72, 74, 75, 77, 78, 81, 84, 88, 90, 91, 93, 96, 100, 103, 105], "10": [0, 12, 53, 62, 74, 80, 91, 94, 96, 100, 105], "100": [6, 29, 40, 59, 74, 75, 76, 77, 84, 92, 100], "1000": [2, 13, 15, 75, 98], "100156106": 76, "10046611": 76, "10054244": 76, "10064811": 76, "10204348": 76, "10205": 74, "10210415": 76, "1024": 81, "102407485": 76, "102468155": 76, "10289283": 76, "1029535": 76, "103074834": 76, "104888655": 76, "10519821": 76, "10580489": 76, "106168896": 76, "106957585": 76, "10762493": 76, "10875195": 76, "10950564": 76, "11": [7, 75, 91], "111386344": 76, "11155285": 76, "11164943": 76, "11174601": 76, "1124177": 76, "11396741": 76, "11423773": 76, "11496575": 76, "11532976": 76, "1156331": 76, "115995646": 76, "11618881": 76, "11686489": 76, "11802388": 76, "11903": 7, "12": [77, 97], "121821225": 76, "12218524": 76, "122670576": 76, "122853": 76, "123": [34, 40], "127": 66, "128": 100, "12936": 92, "12it": 74, "13": 92, "13125569": 76, "13164201": 76, "13225": 92, "1328": 92, "13395482": 76, "13516818": 76, "13577485": 76, "13985154": 76, "13ac": 92, "14": 84, "14545332": 76, "14796448": 76, "15": [66, 76, 77, 92], "150": 4, "151683837681807": 91, "15d838c4": 92, "163da9868ea4": [2, 13, 15, 93], "16574481": 76, "17": 92, "17654371": 76, "17761531": 76, "17933443": 76, "17e7": 92, "18041": 77, "18089913": 76, "18447268": 76, "19306852": 76, "196ec25d39c4": 76, "19736": 77, "1976": [44, 45, 77], "1997": 69, "1998": [44, 45, 77], "1dfe96ccb65f": 92, "2": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 20, 22, 25, 26, 27, 30, 32, 35, 37, 40, 42, 43, 44, 59, 64, 66, 70, 72, 74, 75, 76, 77, 81, 84, 88, 90, 91, 93, 96, 103, 105], "20": 72, "200": [2, 13, 15, 59, 92], "2014": [8, 22], "2020": [77, 81], "2021": [74, 77], "2023": [0, 7, 12, 77], "2024": [77, 78], "20240229": 81, "20417552": 76, "21": [78, 92], "2104": 91, "2107": 77, "21549304": 84, "2167": 74, "21f0385d": 74, "22": 94, "2201": 7, "2210": [0, 12, 69], "223220": 78, "2303": 77, "2309": [4, 51], "2310": 77, "2329ffa8d4b6": 74, "2375": 92, "2402": 77, "24047995": 84, "24366009": 84, "24it": 74, "25": [8, 22, 25, 91, 92, 100, 105], "256": [29, 59, 74, 75, 76, 91, 92], "26": 97, "27": 90, "27cc": 74, "28": [44, 45], "29": [44, 45], "2971": 92, "2a78": 74, "2e25ae5336c8": [2, 13, 15, 93], "2e6f4452827b": 74, "2e8e63041698": 74, "2ed0196b0c81": 92, "2f": 94, "2it": 74, "3": [7, 8, 22, 26, 27, 29, 31, 32, 37, 40, 42, 43, 44, 59, 64, 66, 70, 72, 74, 75, 76, 77, 81, 84, 88, 90, 91, 93, 96, 100, 103, 105], "30": [25, 97], "32": 100, "3333333333333333": 77, "33437008": 84, "353b738c1b71": 74, "37": 78, "37041178": 84, "37e1d8ff0526": 74, "37it": 74, "38": 77, "382": 92, "3927": [2, 13, 15, 93], "3rd": [25, 91], "4": [31, 40, 66, 77, 90, 91, 94, 96, 103, 105], "40": 80, "400": 59, "405a": 74, "4077": 74, "40f0": [2, 13, 15, 93], "4206": 74, "4248": [2, 13, 15, 93], "435b": 74, "439037e58842": 92, "43a4": 74, "43f5": 74, "44": 78, "442f": 74, "4499fa22525d": 92, "44a8aa37": [2, 13, 15, 93], "45": [77, 78], "4509756": 84, "456": 34, "4568096570283078": 91, "45efa517": 74, "4667": 74, "46it": 74, "4780": [74, 92], "483b": 74, "4870": 74, "48ce": 74, "49": 92, "4917": 76, "493d": 74, "4972": 92, "49b5": [2, 13, 15, 93], "49ff": 74, "4bd0": 74, "4c00": 92, "4c39": 92, "4c92": 92, "4cc5": 92, "4ce3": 76, "4dde": 92, "4df0": 92, "4dfa": 92, "4e24": 74, "4e69": 92, "4eb4": 74, "4f5f": 74, "4f88": [2, 13, 15, 93], "4o": 91, "5": [2, 7, 8, 10, 13, 15, 22, 26, 30, 31, 32, 70, 72, 74, 77, 81, 84, 90, 91, 92, 93, 94, 97, 100, 103, 105], "50": [1, 13, 14, 74, 92, 94], "512": 84, "5166601493236314": 91, "518a": 74, "5316efd58d58": 74, "5343238380789569": 91, "55": 78, "557cc52b": 92, "56": 78, "569a": 74, "582859": 78, "59it": 75, "5ba2": 76, "6": [7, 53, 74, 77, 84, 91, 92, 94, 103], "6060606060606061": 45, "609": 74, "6175549": 84, "6229580777634034": [8, 22], "6294762236217233": 91, "63072": 74, "64": 100, "64987b2b": 74, "6666666666666666": 94, "68ae": 92, "6bd772b9": 92, "7": [90, 91, 103], "70b": 90, "72": 94, "724": 92, "7335e34ee0c6": 74, "73c12be3": 74, "741": 92, "75": [8, 22, 91], "756148": 78, "765794": 78, "768": 75, "7749403119087219": 77, "7749999761581421": 91, "7790170272403408": 91, "7844": 74, "7853187918663025": 77, "78917586": 76, "7959791421890259": 77, "79it": 74, "7a17ed45": 74, "7a4f86892556": 74, "7b": 4, "7de4b00a": 92, "8": [8, 22, 84, 91, 92, 97], "80": 66, "800": [2, 13, 15], "8000": 66, "803030303030303": 45, "8031794089550072": 91, "8109999895095825": 91, "8119999766349792": 91, "8169999718666077": 91, "8192": [26, 90, 100], "840021aa1953": 74, "844a": 92, "8678": 74, "8762": 92, "87e0": 74, "882e": 92, "88b4": 92, "8b": [26, 100], "8b0d": 74, "8bc3": 74, "8c3e": 74, "8e52": 74, "8f78": 92, "9": [90, 91, 92], "90": 80, "910e984cdb65": 74, "9122": 74, "9216": 100, "922c0f8a4efb": 92, "93922b619293": 74, "9419728517532349": 77, "9435ed755e20": 74, "9498793313012154": 91, "9670": 74, "9696708": 91, "9701269": 91, "97db": [2, 13, 15, 93], "98742366": 91, "991f": 92, "9950029253959656": 91, "99520767": 91, "9994476437568665": 91, "9994490742683411": 91, "9996004700660706": 91, "9a424d4c": 74, "9bae": 92, "9c14": 76, "9ca4": [2, 13, 15, 93], "9cd745effb43": 92, "A": [2, 6, 7, 10, 13, 15, 22, 25, 26, 29, 31, 34, 40, 43, 63, 69, 74, 76, 77, 84, 90, 91, 92, 94], "And": [11, 31, 32, 72, 81, 88, 92, 94, 98], "As": [26, 27, 70, 72, 74, 76, 88, 91, 94, 100, 105], "At": [11, 90], "But": [78, 81, 91, 92, 94], "By": [32, 75, 78, 93, 94], "For": [0, 2, 6, 7, 11, 12, 13, 15, 20, 25, 33, 43, 66, 70, 74, 75, 77, 79, 84, 90, 91, 92, 93, 94, 98, 103, 105], "If": [2, 4, 6, 9, 13, 15, 20, 22, 25, 26, 29, 31, 39, 40, 53, 56, 62, 66, 70, 74, 75, 77, 80, 81, 88, 91, 92, 93, 94, 98, 105], "In": [27, 31, 35, 40, 69, 70, 72, 74, 76, 78, 80, 84, 88, 90, 92, 93, 94, 103, 105], "It": [1, 2, 3, 4, 7, 8, 11, 13, 14, 15, 17, 22, 26, 27, 33, 40, 42, 49, 53, 62, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 100, 103, 105], "Its": [74, 91], "No": [30, 43, 91, 92, 98], "Not": [3, 17], "On": [70, 100], "One": 57, "Or": [91, 94, 97], "Such": [26, 37], "The": [1, 2, 4, 6, 7, 8, 10, 11, 13, 14, 15, 20, 22, 24, 25, 26, 27, 29, 31, 32, 33, 35, 36, 38, 40, 41, 43, 44, 45, 47, 51, 53, 56, 57, 59, 60, 61, 62, 64, 66, 69, 70, 72, 74, 75, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 98, 99, 100, 103, 105], "Then": [2, 13, 15, 66, 74, 76, 84, 90, 92, 93, 94], "There": [0, 4, 9, 12, 22, 80, 81, 91], "These": [2, 15, 41, 47, 66, 76, 79, 88, 91, 92, 93, 94, 103], "To": [8, 22, 36, 37, 66, 70, 72, 75, 77, 78, 79, 88, 90, 91, 92, 94, 97, 98, 103, 105], "Will": 99, "With": [31, 36, 74, 76, 84, 90, 92, 100], "_": [8, 22, 91], "__call__": [38, 72, 79, 84], "__dict__": [25, 27, 74], "__doc__": 91, "__init__": [8, 22, 26, 72, 75, 78, 84, 91, 94, 100], "__main__": 94, "__name__": [64, 84], "__repr__": 72, "_acal": [4, 33], "_api_kei": 84, "_call": [4, 33, 56, 84], "_coarse_labels_desc": 70, "_combine_input_and_model_kwarg": 84, "_compon": 78, "_compute_single_item": 43, "_extra_repr": [72, 75], "_field_typ": 51, "_generator_names_to_fil": 56, "_init_async_cli": 84, "_init_sync_cli": 84, "_is_async": 94, "_missing_typ": 51, "_paramet": 78, "_template_str": 78, "_trace_map": 57, "a2acf8ba4c27": 74, "a2b7": 92, "a595": 92, "a958": 74, "aa81": 74, "aaa8": 74, "ab": [0, 4, 7, 12, 51, 69, 91], "ab64": 74, "aba9": 74, "abbrevi": 70, "abc": 74, "abda": 92, "abil": [69, 74, 77], "abl": [70, 91], "about": [41, 47, 66, 81], "abov": [11, 72, 78, 80, 81, 84, 88, 91, 94], "absolut": 92, "abstract": [6, 33, 53, 70, 71, 79, 80, 84, 100], "abstract_algebra": 77, "ac": [8, 22], "ac78": 76, "academ": 77, "acal": [26, 29, 30, 32, 33, 36, 72, 79, 84, 91, 94, 100], "acc_list": 42, "access": [9, 11, 22, 26, 27, 39, 69, 77, 90, 91, 94, 97], "accomplish": 79, "accord": [2, 8, 13, 15, 22, 103], "accordingli": 78, "accumul": 92, "accur": 91, "accuraci": [11, 42, 77, 80, 103], "acetaminophen": 72, "achiam": 77, "achiev": [7, 30, 70, 80, 94], "acm": 77, "across": [31, 70, 77, 94, 105], "act": [69, 76, 90], "action": [11, 40, 90], "activ": [40, 98], "actual": [9, 22, 31, 78, 91, 93], "ad": [8, 22, 26, 27, 31, 34, 40, 72, 74, 78, 91, 92, 94, 98], "adapt": [8, 22, 43, 75, 77, 94, 98, 100], "adc9": 92, "add": [0, 6, 7, 8, 12, 20, 22, 26, 27, 29, 31, 40, 62, 66, 70, 72, 74, 75, 79, 81, 84, 90, 94, 97, 98], "add_compon": 26, "add_llm_as_fallback": [0, 12], "add_missing_right_brac": [31, 37], "add_missing_right_bracket": [31, 37], "add_on": 72, "add_point": 94, "addit": [0, 8, 12, 22, 31, 40, 72, 75, 84, 90, 94], "addition": [4, 9, 22, 33, 75, 77, 91, 94], "additional_context": [39, 94], "additon": 38, "addonecompon": 72, "address": 80, "adjust": 80, "adpat": 78, "advanc": [72, 81], "advis": 25, "ae99": 74, "afbd": 74, "afc": [2, 13, 15, 93], "affect": [70, 75], "after": [8, 22, 25, 27, 29, 32, 35, 37, 66, 70, 76, 81, 90, 91, 92, 94], "afternoon": 92, "afun": 26, "ag": [25, 105], "again": [76, 91, 92], "agenda": 69, "agent": [11, 30, 40, 77, 80, 81, 88, 94, 98, 100], "agnost": [81, 84], "ahead": [70, 79], "ai": [72, 95, 98], "aim": [77, 80, 92], "al": 77, "algorithm": 92, "alia": [26, 40], "align": [2, 13, 15, 66, 93], "all": [4, 6, 11, 25, 26, 27, 30, 33, 35, 36, 39, 40, 51, 59, 62, 64, 66, 70, 72, 74, 75, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 97, 98, 100, 105], "all_gt_answ": [42, 103], "all_gt_context": [44, 45, 103], "all_pred_answ": [42, 103], "all_quest": 103, "all_retrieved_context": [44, 45, 103], "allevi": [72, 91], "allow": [25, 26, 31, 40, 56, 70, 72, 74, 80, 88, 90, 91, 92, 98, 100, 103], "allowi": 74, "almost": [80, 81, 91], "along": [9, 22, 25, 27, 32, 62, 66, 70, 72, 74, 78, 84, 91], "alpha": 92, "alreadi": [7, 8, 11, 22, 26, 40, 70, 91, 94], "also": [2, 6, 7, 8, 13, 15, 20, 22, 26, 29, 30, 31, 38, 40, 70, 72, 74, 77, 80, 88, 90, 91, 92, 93, 94, 105], "although": [8, 22, 90, 91, 92], "alwai": [6, 11, 20, 25, 27, 51, 74, 78, 93, 94], "amount": 74, "an": [0, 3, 4, 6, 12, 17, 20, 25, 26, 29, 30, 31, 32, 34, 35, 36, 40, 43, 49, 59, 61, 64, 69, 70, 72, 74, 75, 76, 77, 78, 80, 84, 88, 91, 92, 94, 97, 99, 103, 105], "analysi": [2, 13, 15, 77, 92, 93], "analyz": [90, 92], "ancestor": 62, "andrew": [8, 22], "angel": 81, "ani": [0, 2, 4, 6, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 43, 50, 51, 53, 56, 57, 59, 60, 64, 70, 72, 74, 75, 78, 79, 80, 84, 88, 91, 92, 94, 98, 100], "anoth": [9, 22, 35, 53, 69, 78, 91, 92, 98], "ansi": 62, "answer": [0, 6, 7, 11, 12, 20, 42, 43, 70, 72, 77, 90, 91, 94, 98, 103, 105], "answer_match_acc": [46, 103], "answermacthevalu": [77, 103], "answermatchacc": 42, "anthrop": [61, 81, 84, 97], "anthropic_api_kei": 97, "anthropic_cli": 84, "anthropicapicli": 84, "anyth": [6, 20, 80, 88, 94], "ap": [77, 78], "api": [4, 5, 7, 19, 24, 26, 29, 33, 36, 40, 41, 66, 76, 77, 79, 80, 81, 90, 96, 98, 100], "api_kei": [59, 84], "api_kwarg": [4, 33, 84], "api_respons": [5, 19], "apicli": 33, "apidoc": 66, "apidocoutdir": 66, "app": [40, 62], "app_log_filenam": 62, "appear": [34, 92], "append": [26, 27, 60, 74, 84, 94, 103], "append_dialog_turn": 40, "append_to_jsonl": 60, "appl": [43, 44, 45, 77, 92], "appli": [2, 13, 15, 27, 29, 31, 32, 35, 74, 75, 76, 91, 92, 93], "applic": [2, 3, 13, 15, 17, 25, 37, 69, 70, 74, 77, 79, 80, 91, 92, 93, 100, 104, 105], "application_nam": 98, "apply_transform": [27, 74], "approach": [2, 13, 15, 72, 76, 90, 92], "appropri": [72, 77], "ar": [0, 2, 4, 6, 8, 11, 12, 13, 15, 20, 22, 26, 27, 31, 34, 35, 39, 40, 41, 47, 56, 61, 62, 66, 69, 70, 72, 74, 75, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 104, 105], "arena": 77, "arg": [6, 11, 25, 26, 30, 31, 33, 36, 39, 40, 52, 53, 90, 94], "argument": [0, 4, 11, 12, 25, 26, 30, 31, 32, 33, 35, 40, 53, 59, 75, 76, 78, 84, 88, 90, 91, 92, 93, 94], "aris": 77, "arithmet": 40, "around": [38, 71], "arr": 94, "arrai": [31, 91, 94], "arriv": 7, "articul": 98, "arxiv": [0, 4, 7, 12, 51, 69, 77, 91], "asdict": [31, 70], "ask": [9, 22, 40, 43, 70, 74, 78, 88, 90, 91, 94, 95, 98], "aspect": 77, "aspirin": 72, "assert": [25, 75, 84], "assess": [77, 103], "assign": [2, 13, 15, 26, 34, 76], "assist": [3, 6, 17, 20, 35, 40, 72, 74, 78, 81, 88, 100, 103], "assistant_respons": [40, 74], "assistant_response_timestamp": [40, 74], "assistantrespons": [40, 74], "assit": 88, "assum": [27, 40, 74], "assumpt": 81, "ast": [31, 40], "async": [26, 29, 30, 32, 33, 36, 39, 84, 91, 94, 100], "async_cli": 84, "async_function_1": 30, "async_function_2": 30, "async_tool_1": 30, "async_tool_2": 30, "asynccal": 40, "asynchron": [30, 72], "asyncio": [30, 94], "asyncopenai": 84, "atmospher": 92, "atom": [74, 91], "attach": 92, "attention_mask": [4, 84], "attribut": [9, 10, 22, 26, 27, 34, 35, 36, 55, 59, 70, 72, 74, 78, 91, 94], "audio": 91, "augement": 91, "augment": [50, 77, 92, 103], "augment_sampl": 49, "auto": [26, 72, 78, 80, 84, 88], "autodoc": 66, "autom": [77, 80], "automat": [29, 34, 66, 72, 78, 90, 94, 98], "automodel": 84, "autonom": [69, 80], "autoreset": 62, "autotoken": 84, "avail": [11, 40, 77, 94, 97, 103], "available_funct": 94, "averag": [8, 22, 42, 44, 45, 103], "average_idf": [8, 22], "average_pool": [4, 84], "average_tim": 90, "avg_acc": 42, "avg_judg": [43, 103], "avg_recal": [44, 103], "avg_relev": [45, 103], "avgdl": [8, 22, 91], "avoid": [8, 22, 26, 66, 72, 74, 75, 91], "aw": 92, "await": [0, 12, 30, 39, 40, 94, 100], "awar": [9, 22, 92], "award": 105, "awlai": 94, "b": [8, 11, 22, 40, 90, 91, 92, 94], "b0d98c1b": 92, "b2dbdf2f": 74, "b3e9": 74, "b4c312bed365": 92, "b6c6": 74, "b81f": 92, "baai": [4, 91], "back": [6, 8, 20, 22, 27, 59, 64, 70, 76], "backslash": 11, "backtick": [6, 20, 31, 94], "backward": 26, "bad": 92, "ball": 7, "banana": 92, "bank": 77, "bare": [71, 88, 100], "basd": 91, "base": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 56, 57, 61, 63, 64, 69, 70, 71, 72, 75, 77, 80, 84, 90, 92, 94, 100, 103, 105], "base_class": 25, "base_data_class": [41, 70, 92, 103, 105], "basedataclass": 104, "basic": [41, 47, 80, 92], "batch": [2, 13, 15, 29, 40, 74, 75, 76, 84, 91], "batch_dict": 84, "batch_embedd": [74, 75], "batch_siz": [1, 2, 13, 14, 15, 29, 59, 74, 75, 76, 92], "batchembedd": [29, 74], "batchembedderinputtyp": 29, "batchembedderoutputtyp": 29, "bbc3": 92, "bc0ff7f6": 74, "bcbc6ff9": 74, "bdbd": 74, "beauti": [8, 22], "becaus": [2, 13, 15, 80, 84, 90, 93, 105], "becom": [77, 91, 92], "been": [40, 74, 91], "befor": [2, 13, 15, 37, 43, 44, 45, 72, 74, 75, 77, 79, 90, 91, 92, 93, 105], "beforehand": 92, "begin": [62, 80, 98], "begin_of_text": [81, 88], "behavior": [92, 94], "behind": [6, 20, 79, 81], "beij": 43, "being": [70, 79, 80, 94], "belong": 69, "below": [77, 91, 94], "benchmark": [7, 77, 90, 100], "benef": 91, "benefit": [40, 72, 74, 91], "bert": 77, "bertscor": 77, "besid": [26, 69, 74, 78, 88, 90, 92, 105], "best": [8, 22, 72, 91, 92, 98], "beta": [4, 94], "better": [2, 13, 15, 25, 50, 51, 66, 70, 72, 90, 91, 92, 94, 105], "between": [2, 11, 13, 15, 33, 80, 91, 92, 93, 98], "beyond": [2, 15, 80, 94], "bge": [4, 91], "bi": 91, "bias": [26, 72], "bigger": [8, 22], "bit": [30, 70], "black": 62, "bland": 92, "block": [25, 30, 31, 41, 47, 62, 72, 79, 80, 91, 98, 100], "blow": 78, "blue": 62, "bm25": [8, 22, 74, 91, 92], "bm25_index": [8, 22], "bm25_retriev": [22, 91], "bm25retriev": [8, 22, 92], "bonjour": 78, "bool": [0, 1, 4, 6, 8, 12, 13, 14, 22, 26, 27, 30, 31, 34, 35, 36, 37, 38, 40, 43, 53, 55, 62, 74, 75, 84], "boolean": [0, 6, 12, 91], "booleanoutputpars": 6, "boost": [74, 91], "bootstrapfewshot": 49, "border": [2, 13, 15, 92, 93], "bore": 80, "both": [2, 8, 15, 22, 26, 30, 39, 40, 60, 66, 70, 74, 77, 78, 79, 91, 94, 103, 105], "boundari": [25, 40, 61, 64], "box": [80, 91], "brace": 31, "bracket": 31, "break": [2, 13, 15, 80, 92, 93], "bridg": [4, 33], "brittl": 80, "broad": 77, "broader": 66, "browser": [66, 90], "budget": [2, 13, 15, 93], "bui": 7, "build": [8, 10, 22, 31, 36, 41, 47, 70, 72, 91, 92, 98, 100, 103, 104], "build_index": 103, "build_index_from_docu": [8, 9, 10, 22, 36, 74, 91, 92], "build_info_from_docu": 92, "builder": 35, "built": [8, 10, 22, 31, 36, 79, 90, 91, 92, 94, 97], "busi": 80, "c": [8, 22, 26], "c4e4": 74, "c4e5": 76, "c5431397": 74, "c77c98ac260f": 74, "c8fc": 74, "ca": 94, "ca0af45b": [2, 13, 15, 93], "cach": [4, 74, 84], "cai": 77, "calcul": [76, 92], "call": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 43, 50, 53, 56, 60, 62, 64, 72, 74, 75, 76, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 98, 100, 103], "call_async_funct": 30, "callabl": [0, 8, 9, 10, 12, 22, 25, 26, 27, 30, 31, 36, 39, 40, 53, 74], "callbackmanag": 98, "can": [0, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 17, 20, 22, 25, 26, 27, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45, 51, 53, 57, 59, 61, 63, 66, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 95, 97, 98, 100, 103, 105], "candid": 91, "cannot": [77, 98], "cansof": 7, "cantain": 26, "capabl": [24, 30, 47, 77, 94], "capit": [25, 31, 70, 75, 78, 84, 88], "captur": 31, "carbon": [74, 91], "card": 88, "carefulli": 98, "carri": 94, "case": [3, 9, 17, 22, 25, 27, 72, 74, 79, 80, 88, 90, 91, 92, 94, 98, 105], "cat": 92, "categor": [25, 84, 91], "caus": 72, "caution": 30, "cd": 66, "cdot": [8, 22], "celsiu": 94, "center": [71, 78, 79], "certain": [4, 31, 105], "chain": [7, 40, 70, 72, 74, 75, 79, 90, 91], "challeng": [80, 91], "chanc": [9, 22, 80], "chang": [57, 62, 74, 77, 78, 80, 91], "charact": [66, 92], "chat": [4, 28, 33, 74, 78, 84, 88], "chat_histori": [28, 74, 78], "chat_history_str": [28, 74, 78, 88], "chatbot": [74, 77, 79, 80], "chatcompletiontokenlogprob": 40, "cheapest": 91, "check": [2, 11, 13, 15, 27, 31, 33, 34, 35, 40, 53, 70, 72, 74, 76, 77, 84, 90, 91, 92, 93, 94, 98, 102, 105], "check_object": 64, "checker": 70, "chen": 77, "child": [26, 92], "children": 26, "china": [43, 75], "chip": 4, "choic": 77, "choos": [8, 22, 36, 92, 94], "chunk": [1, 2, 13, 14, 15, 74, 75, 79, 91, 92, 98], "chunk_overlap": [2, 13, 15, 93], "chunk_siz": [2, 13, 15, 93], "citi": 94, "cl": [31, 70], "cl100k_base": [2, 13, 15, 38], "clariti": [66, 80, 100], "class": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 56, 57, 59, 61, 63, 64, 70, 72, 74, 75, 78, 80, 84, 90, 94, 98, 99, 100, 103, 105], "class_index": 70, "class_inst": 25, "class_nam": [25, 70], "classes": 105, "classic": 80, "classif": [77, 80, 99], "classifi": [70, 99], "classmethod": [8, 22, 25, 26, 27, 29, 32, 35, 36, 40, 63, 70], "classsampl": 53, "claud": 81, "clean": 92, "clean_up_tokenization_spac": 4, "clear": [79, 90, 98], "client": [0, 4, 5, 9, 10, 12, 19, 22, 29, 32, 33, 43, 78, 79, 80, 81, 84], "climat": [74, 91], "clone": [66, 98], "close": [31, 80, 91, 92], "closest": 92, "cloth": 91, "cloud": [3, 17, 84, 91], "co": [4, 75, 91], "coarse_label": [53, 70], "code": [2, 6, 13, 15, 25, 31, 40, 51, 62, 74, 75, 77, 78, 79, 80, 84, 88, 91, 92, 93, 94, 98, 100, 103], "coher": [61, 81, 91, 97], "cohere_api_kei": 97, "cohere_cli": 91, "cohereapicli": [10, 22, 91], "collabor": 95, "collect": [40, 78], "color": 62, "colorama": 62, "colored_print": 62, "com": [66, 88, 91, 94], "combat": [74, 91], "combin": [31, 32, 35, 76, 80, 91, 94, 98], "combine_kwarg": [31, 32], "come": [74, 84, 98, 100], "command": 62, "comment": 88, "commit": 98, "common": [44, 45, 77, 91, 92], "commonli": [2, 6, 15, 76, 77, 92], "commun": [30, 33, 84, 96, 98], "compact": [40, 94], "compar": [6, 8, 20, 22, 31, 42, 51, 74, 75, 93], "comparison": [72, 91, 94, 98], "compat": [72, 84], "complet": [0, 3, 4, 12, 17, 30, 31, 32, 33, 51, 66, 69, 84, 90], "complex": [6, 20, 31, 70, 77, 92, 98], "complic": [7, 88, 94], "compon": [27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 49, 50, 59, 61, 63, 64, 66, 69, 70, 71, 74, 75, 76, 77, 78, 84, 88, 90, 91, 92, 93, 94, 97, 100, 103, 105], "componenet": [26, 59], "component1": 26, "component2": 26, "component3": 26, "component4": 26, "component_config": [29, 32], "component_nam": [29, 32], "compos": [35, 81], "compose_model_kwarg": 31, "compose_prompt_kwarg": 35, "comprehens": 77, "comput": [42, 43, 44, 45, 70, 77, 80, 91, 92, 103], "compute_context_relev": 103, "compute_context_relevance_single_queri": 77, "compute_judg": 103, "compute_match_acc": 103, "compute_recal": 103, "compute_recall_single_queri": 77, "con": [74, 91], "concaten": 92, "concept": [70, 72], "concis": [70, 72], "conclus": 103, "concurr": 94, "condit": [27, 88, 90], "condition": [18, 88], "condition_fn": 74, "conf": 66, "confer": 77, "config": [26, 29, 32, 62, 75, 103], "configur": [2, 13, 15, 26, 29, 31, 32, 59, 62, 63, 66, 76, 80, 92, 93, 97, 100, 103], "confus": [26, 70, 72, 98], "consid": [25, 26, 77, 91, 92, 93], "consin": 91, "consist": [6, 35, 40, 66, 105], "consol": 62, "constant": [8, 22, 31], "constantli": 70, "constraint": 93, "construct": [59, 103], "constructor": [26, 75], "contain": [2, 8, 11, 13, 15, 22, 26, 30, 31, 34, 40, 42, 43, 66, 74, 75, 78, 90, 92, 94, 98, 103, 105], "content": [74, 81, 84, 91, 92, 93, 96, 99, 101, 105], "contex": [28, 78], "context": [2, 13, 15, 25, 26, 28, 30, 31, 35, 39, 44, 45, 72, 74, 77, 78, 79, 80, 90, 92, 93, 94, 98, 103], "context_map": [31, 40, 94], "context_str": [28, 35, 78, 88, 94, 103], "contextu": [77, 103], "continu": [74, 88, 92], "contrari": 100, "contravari": 91, "contribut": [68, 74, 91, 98], "contributor": [66, 98], "control": [2, 13, 15, 40, 62, 66, 70, 74, 80, 81, 88, 92, 93, 98, 105], "conv1": [72, 100], "conv2": [72, 100], "conv2d": [72, 100], "conveni": [72, 90], "convent": [6, 20, 70, 94], "conver": 74, "convers": [3, 17, 40, 74, 88, 90, 91, 94, 95], "conversation_histori": 91, "conversation_id": 40, "convert": [4, 25, 26, 31, 33, 40, 64, 70, 72, 74, 76, 81, 84, 91, 92, 94, 98], "convert_inputs_to_api_kwarg": [4, 33, 84], "convert_schema_to_signatur": 31, "cookbook": [91, 98, 105], "copi": [1, 13, 14, 26, 75, 76, 84, 98], "core": [2, 6, 13, 15, 56, 70, 72, 74, 75, 76, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "corpu": [8, 22, 92], "correct": [34, 77, 103], "correctli": [27, 66, 70], "corresbond": 66, "correspond": [2, 13, 15, 31, 77, 90, 92, 93, 103], "cosin": [77, 92], "cost": 91, "cot": 7, "cotgener": 7, "cotgeneratorwithjsonoutput": 7, "could": [31, 40], "count": 38, "count_token": 38, "counter": 72, "cours": [77, 78], "cover": [3, 17, 70, 74, 91, 94, 98, 105], "coverag": 91, "covert": 94, "cpu": 97, "creat": [2, 4, 13, 15, 25, 26, 27, 29, 30, 32, 35, 40, 59, 70, 72, 74, 75, 76, 78, 81, 84, 88, 90, 91, 92, 93, 94, 99, 103, 105], "create_embedding_respons": 40, "create_from_dict": 25, "created_at": 40, "creation": 50, "criterion": [2, 13, 15, 88, 93], "critic": [2, 13, 15, 62], "cross": 91, "crucial": [24, 47, 70, 74, 77, 88, 91, 92], "crud": [27, 74], "ctrl": 90, "cumul": 92, "current": [26, 27, 49, 51, 62, 74, 75, 78, 84, 90, 91, 94, 97], "custom": [2, 6, 9, 13, 15, 22, 31, 62, 64, 70, 75, 77, 79, 80, 84, 90, 92, 98, 103], "custom_asdict": [31, 70], "customiz": [71, 90, 92, 100], "cut": 91, "cutoff": 92, "cyan": 62, "d": [6, 8, 20, 22], "d19a": 74, "dai": [8, 22, 44, 45], "dan": 77, "data": [1, 2, 3, 6, 9, 13, 14, 15, 17, 20, 22, 25, 26, 27, 29, 31, 32, 34, 35, 40, 50, 53, 60, 64, 72, 75, 76, 78, 80, 84, 90, 92, 93, 94, 98, 99, 100, 103, 105], "data_class": [6, 20, 94], "data_class_for_yaml": [6, 20], "data_compon": [13, 76, 92], "data_dict": 25, "data_process": [24, 74, 76, 79, 93], "data_transform": 74, "databas": [36, 40, 79, 92, 103], "dataclass": [6, 20, 25, 31, 40, 49, 50, 51, 56, 57, 64, 71, 74, 75, 78, 79, 91, 94, 100, 105], "dataclass_obj_from_dict": 31, "dataclassformattyp": [6, 20, 25, 70], "dataformat": 40, "datapiplin": 74, "dataset": [53, 74, 77, 90, 99, 103], "date": 66, "datetim": 40, "db": [41, 74, 79, 91, 92], "db2": 27, "deal": [74, 91], "debug": [62, 74, 79, 80], "decid": [0, 4, 12, 25, 33, 70, 77, 90, 91, 94, 98], "decis": [77, 90], "decod": [38, 90], "decor": [25, 26, 60, 70, 72, 78], "decreas": 75, "decreaseembeddingdim": 75, "decreat": 75, "dedupl": [1, 13, 14], "deepcopi": 75, "deeper": 100, "deepmind": 51, "def": [6, 20, 26, 30, 31, 40, 70, 72, 74, 75, 78, 84, 88, 90, 91, 92, 94, 100], "defaul": 78, "default": [0, 4, 6, 7, 8, 9, 10, 11, 12, 20, 22, 25, 27, 28, 29, 31, 32, 33, 34, 35, 36, 38, 43, 51, 56, 57, 60, 62, 64, 70, 72, 74, 78, 81, 91, 92, 94, 105], "default_factori": [25, 51, 70], "default_lightrag_system_prompt": [28, 32, 35, 88], "default_llm_evaluator_prompt": 103, "default_model_kwarg": 31, "default_num_shot": 53, "default_prompt_templ": [41, 88], "default_react_agent_system_prompt": [0, 12], "defaultllmjudg": [43, 78], "defens": 79, "defin": [2, 13, 15, 25, 36, 61, 72, 84, 90, 91, 92, 93, 103, 105], "definit": [2, 13, 15, 30, 39, 40, 88, 90, 91, 93, 94], "del": 26, "delet": [26, 27, 74], "delete_dialog_turn": 40, "delibr": 94, "demo": [72, 80], "demonstr": [4, 43, 75, 76, 90, 91, 94, 99, 105], "denomin": [8, 22], "denot": 81, "depend": [2, 8, 9, 15, 22, 31, 40, 66, 72, 81, 90, 92, 98, 103, 105], "deriv": 94, "desc": [25, 28, 51, 70, 78, 91, 105], "descend": 26, "describ": [25, 30, 94, 105], "descript": [6, 11, 20, 25, 31, 40, 70, 74, 77, 79, 88, 90, 92, 94, 98, 103, 105], "deseri": [64, 70, 72, 80, 88, 91], "design": [25, 26, 30, 33, 37, 40, 53, 71, 72, 74, 75, 79, 84, 90, 92, 93], "desir": [6, 20, 77, 78, 88], "destin": [26, 80], "detail": [2, 13, 15, 24, 25, 32, 41, 43, 47, 66, 67, 70, 72, 74, 77, 84, 90, 94, 105], "determin": [2, 13, 15, 72, 77, 90], "develop": [2, 9, 13, 15, 22, 66, 71, 74, 76, 78, 79, 80, 81, 88, 90, 91, 92, 93, 98, 100, 105], "devic": 4, "df68": 74, "diagram": [81, 88], "dialog": [40, 74], "dialog_turn": [40, 74], "dialog_turn_db": 74, "dialog_turns_as_docu": 74, "dialog_turns_input": 40, "dialogturn": [27, 40, 91], "dict": [0, 4, 6, 7, 9, 10, 12, 20, 22, 25, 26, 27, 29, 31, 32, 33, 35, 37, 39, 40, 43, 50, 51, 53, 56, 57, 59, 60, 63, 64, 70, 74, 84, 94, 105], "dict_exampl": 70, "dict_factori": 31, "dictionari": [2, 6, 13, 15, 20, 25, 26, 29, 31, 32, 35, 40, 59, 60, 64, 70, 74, 92, 93, 94, 105], "did": [49, 74, 78, 88, 91, 94, 100, 105], "differ": [3, 8, 17, 22, 27, 40, 53, 72, 75, 78, 79, 80, 81, 84, 88, 90, 91, 93, 94, 98, 100, 104], "differen": 91, "differenti": [37, 91], "difficult": 94, "dim": 84, "dimens": [29, 40, 59, 74, 75, 76, 84, 91, 92], "dimension": 70, "diminish": [8, 22], "dir": [78, 84], "direct": [26, 66, 72, 92], "directionli": 30, "directli": [2, 13, 15, 31, 40, 43, 53, 66, 70, 72, 74, 75, 88, 91, 93, 94, 98], "directori": [33, 56, 57, 62, 66, 78, 97, 98], "disabl": 90, "disappoint": 91, "disclos": [81, 88], "discord": 95, "discuss": [95, 105], "disk": 91, "disrupt": [74, 91], "distil": 80, "distilbert": 77, "divers": [77, 91], "divid": [8, 11, 22, 77, 90, 92, 94, 103], "divis": [2, 8, 13, 15, 22], "do": [3, 6, 17, 20, 25, 31, 40, 53, 62, 70, 74, 76, 80, 84, 88, 90, 91, 92, 94, 98, 100], "doc": [2, 4, 10, 13, 15, 22, 26, 36, 40, 66, 70, 72, 74, 75, 76, 88, 91, 92, 93, 94], "doc1": [2, 13, 15, 92, 93], "doc2": 92, "doc_index": [74, 92], "doc_indic": [8, 22, 40, 74, 91], "doc_len": 91, "doc_list": 103, "doc_qa": 26, "doc_scor": [8, 22, 40, 91, 92], "docqa": [26, 72], "docstr": [11, 94], "doctest": 66, "doctor": [6, 20, 26, 72], "document": [1, 2, 4, 8, 9, 10, 13, 14, 15, 22, 24, 27, 36, 38, 40, 41, 47, 67, 68, 75, 76, 78, 79, 91, 94, 96, 98, 101, 103], "document_indic": 92, "document_map_func": [8, 9, 10, 22, 36, 91], "document_splitt": [59, 92], "documents_embed": 91, "documentsplitt": [40, 59, 74, 76, 92], "dodger": 81, "doe": [1, 7, 13, 14, 25, 27, 33, 43, 59, 84, 91, 92, 103, 105], "doesn": 90, "domain": 77, "domest": 92, "don": [6, 8, 22, 81, 92, 98], "done": [70, 90], "dont": [74, 81, 98], "dorianbrown": [8, 22, 91], "dotenv": [76, 90, 92, 97], "dotenv_path": [76, 90, 92], "doubl": [11, 94], "doubt": [80, 91], "download": 98, "downsid": [74, 91], "downstream": 75, "drink": 72, "driven": 92, "drop": 93, "dropout1": 100, "dropout2": 100, "dropout2d": 100, "due": [77, 91, 94], "dummi": 98, "dump": [31, 94], "dumper": 31, "duplic": 53, "dure": [2, 13, 15, 74, 75, 76, 78, 91, 92, 93, 97, 105], "dynam": [25, 90], "dynamicdataclassfactori": 25, "dynamicoutput": 25, "e": [2, 9, 11, 13, 15, 22, 53, 66, 81, 84, 93, 94, 103], "e3b48bcc": 74, "e3f04c8b": 92, "e4850140": 92, "e539": 92, "e636facc": 74, "e7b617b2": [2, 13, 15, 93], "each": [0, 2, 4, 6, 7, 8, 11, 12, 13, 15, 20, 22, 24, 25, 26, 40, 42, 44, 45, 47, 53, 56, 57, 61, 70, 74, 75, 76, 79, 80, 90, 91, 92, 93, 94, 103], "ear": 78, "earth": 43, "eas": [40, 70, 79, 80], "easi": [80, 88, 90, 98, 100], "easier": [90, 94], "easili": [72, 74, 75, 77, 79, 88, 91, 94, 98, 100, 105], "eat": 92, "ec0fc247ac8b": [2, 13, 15, 93], "ec910402": 74, "economi": [74, 91], "ecosystem": [74, 91], "edit": [66, 78], "effcient": 25, "effect": [8, 22, 47, 69, 74, 76, 91, 92], "effici": [40, 90, 93, 94, 105], "effort": [27, 70, 79], "eg": 61, "eiffel": 78, "either": [0, 12, 31, 33, 40, 70, 75, 78, 79, 84, 91, 98], "el": 74, "electr": [74, 91], "electron": [74, 91], "element": [6, 20, 35, 94], "elif": [84, 94], "els": [78, 84, 90, 92, 94], "emb": [2, 15, 75, 92], "embed": [1, 2, 4, 5, 13, 14, 15, 19, 29, 33, 40, 59, 74, 75, 76, 77, 79, 84, 91, 92, 93], "embedd": [1, 4, 13, 14, 26, 33, 40, 41, 59, 74, 79, 84, 91, 98], "embedder_config": 29, "embedder_response_processor": 92, "embedder_transform": 74, "embedderoutput": [4, 5, 19, 29, 33, 40, 74, 84], "embedderoutputtyp": 40, "embedderrespons": [76, 92], "embedding_dim": [40, 75], "emiss": [74, 91], "emit": 25, "emphas": [66, 105], "emploi": 77, "empti": [9, 11, 22, 27], "en": [4, 8, 22, 75, 88, 91], "enabl": [32, 62, 76, 90, 92, 100], "enable_consol": 62, "enable_fil": 62, "enable_library_log": 62, "encapsul": 90, "enclos": [6, 20, 94], "encod": [2, 13, 15, 38, 91], "encoding_format": [29, 59, 74, 75, 76, 84, 91, 92], "encourag": [2, 15, 32, 84], "end": [11, 26, 27, 31, 66, 70, 74, 79, 80, 81, 99, 100], "end_header_id": [81, 88], "end_of_text": [81, 88], "end_tim": [30, 94], "endfor": [11, 35, 88, 91, 94], "endif": [11, 28, 35, 78, 88, 94, 105], "energi": [74, 91], "enforc": [34, 74, 78], "engag": [70, 95], "engin": [26, 72, 78, 80, 88, 98, 100], "english": 91, "enhanc": [62, 72, 79, 90, 105], "enhance_queri": 72, "enhancequerycompon": 72, "enjoi": 98, "enough": 80, "enssenti": 105, "ensur": [4, 11, 25, 29, 31, 35, 66, 70, 72, 75, 76, 79, 81, 91, 92, 97], "entir": 91, "entiti": [59, 63, 70, 80, 90], "entity_cl": 63, "entity_config": 59, "entity_nam": 59, "entity_st": 59, "entitymap": 63, "enum": [25, 40, 61, 64, 84, 94], "enumer": [26, 94], "env": [75, 76, 90, 91, 92, 97, 98], "environ": [2, 15, 31, 35, 66, 69, 74, 75, 76, 84, 90, 91, 92, 96, 98], "environment": [74, 91], "eot_id": [81, 88], "epilon": [8, 22], "epsilon": [8, 22, 91], "equal": [4, 43, 91], "equival": [26, 31, 74, 94], "error": [4, 9, 22, 25, 31, 33, 40, 61, 62, 70, 75, 78, 84, 90, 94], "error_messag": [40, 78], "error_onli": 55, "escap": 11, "especi": [1, 2, 11, 13, 14, 15, 25, 57, 72, 75, 77, 81, 91, 92, 93], "espeic": 91, "essenc": 98, "essenti": [41, 47, 74, 78, 90, 91], "establish": 98, "estimated_num_token": [40, 74, 76, 92], "et": 77, "etc": [6, 20, 26, 27, 31, 53, 75, 77, 91, 92, 98], "eval": [26, 30, 31, 39, 40, 46, 77, 78, 94, 99, 103], "evalu": [26, 31, 40, 42, 43, 44, 45, 72, 78, 79, 80, 91, 104], "evaluate_ast_nod": 31, "even": [2, 6, 13, 15, 31, 70, 72, 75, 78, 80, 88, 91, 93, 94], "event": 30, "eventu": [70, 91], "ever": 84, "everi": [27, 80, 98], "eviron": 90, "exact": [2, 13, 15, 77, 92, 93, 103], "exact_match": [42, 103], "exactli": [7, 26, 42, 91, 103], "exam": 77, "examin": [8, 22], "exampl": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 42, 43, 44, 45, 49, 53, 59, 62, 66, 72, 74, 75, 76, 77, 78, 81, 84, 88, 90, 91, 92, 94, 97, 98, 99, 100, 103, 105], "example1": [76, 92], "example2": 92, "example3": 92, "example4": 92, "example_funct": 31, "example_json": [25, 70], "example_str": 70, "example_yaml": [25, 70], "examples_prompt": 35, "examples_str": [28, 35, 78, 88], "examples_templ": 35, "excel": 100, "except": [2, 13, 15, 33, 75, 84, 94], "exclud": [6, 20, 25, 26, 31, 32, 39, 40, 70, 74, 94], "exclude_field": [6, 20], "excludetyp": 70, "exclus": 70, "execlud": 94, "execut": [2, 11, 13, 15, 30, 31, 39, 90, 93, 94], "execute_func": [39, 94], "execute_func_expr": [39, 94], "execute_func_expr_via_ev": [39, 94], "execute_func_expr_via_sandbox": [39, 94], "exist": [35, 70, 80, 90, 91, 100], "exmplari": 4, "expand": 98, "expans": [1, 14, 91], "expect": [8, 10, 11, 22, 27, 31, 34, 36, 37], "expens": 91, "experi": [3, 8, 17, 22, 27, 74, 80, 92], "explain": [74, 90, 92, 98, 103], "explan": [8, 22], "explicitli": [25, 34], "explor": 47, "expr": [39, 94], "express": [30, 31, 39, 40, 94], "extend": [2, 15, 27, 30, 74, 75, 94, 98], "extens": [26, 66, 98], "extern": [64, 76, 77, 90, 91], "extra": 92, "extract": [2, 6, 13, 15, 20, 31, 37, 53, 90, 93, 98, 103], "extract_dataclass_typ": 31, "extract_json_str": 31, "extract_list_str": 31, "extract_yaml_str": 31, "ey": 78, "f": [1, 2, 8, 13, 14, 15, 22, 26, 30, 60, 72, 75, 76, 77, 84, 88, 90, 91, 92, 94, 103, 105], "f1": 77, "f1be8330c167": 92, "f2d0f52a": 92, "f2eddc77": 74, "f513": 74, "f89e0955e3a3": 92, "f98f": 74, "face": [29, 32, 66, 75, 77, 78], "facebookresearch": 91, "facet": 91, "facilit": [90, 93], "fact": [78, 90], "factor": [8, 22], "factori": [25, 27, 40, 56, 57], "factual": 91, "fahrenheit": 94, "fail": [9, 22, 40, 74, 75, 78, 80, 90, 94], "failur": [11, 75], "fair": 77, "faiss": [61, 91, 92, 97], "faiss_query_result": 92, "faiss_retriev": [74, 91, 92], "faissretriev": [59, 74, 92], "fall": 72, "fallback": [0, 12], "fals": [1, 4, 6, 13, 14, 20, 25, 26, 27, 31, 36, 38, 40, 43, 53, 62, 78, 94, 103], "famili": 69, "fantast": [76, 92], "far": 74, "farm": [74, 91], "fast": [8, 22, 92], "faster": 91, "fc1": 100, "fc2": 100, "fd11f12958b3": 74, "fdbc447d": 76, "fdc2429b": 92, "feasibl": 70, "featur": [30, 66, 77, 81, 94, 100], "feburari": [44, 45], "fed": [94, 103], "fetch": [9, 22, 27, 74, 92, 103], "fetch_item": 27, "fetch_transformed_item": 27, "fetched_dialog_turn": 74, "fever": 90, "few": [7, 25, 49, 53, 70, 77, 88, 90, 91, 94, 105], "field": [6, 8, 20, 22, 25, 29, 31, 32, 39, 40, 50, 51, 70, 74, 75, 76, 81, 91, 92, 94, 105], "field_nam": 25, "field_valu": 25, "fieldtyp": 31, "file": [3, 4, 8, 17, 22, 26, 27, 29, 36, 56, 57, 60, 62, 66, 70, 75, 76, 78, 84, 91, 97, 98, 103], "file_io": 72, "file_path": 56, "filenam": [55, 56, 57, 62], "filepath": [26, 27, 57, 74], "filesystem": 27, "fill": [8, 22, 32, 35, 50, 98], "filter": [88, 91, 92, 98], "final": [0, 8, 11, 12, 22, 35, 40, 74, 76, 77, 88, 90, 91, 92, 94, 103], "final_model_kwarg": 84, "final_prompt": 88, "find": [38, 74, 75, 76, 90, 91, 92, 97], "fine": [40, 92], "finish": [11, 90], "first": [2, 11, 13, 15, 27, 31, 34, 74, 76, 77, 79, 81, 84, 90, 91, 92, 93, 94, 103], "fit": [25, 29, 40, 74, 79, 93], "fix_json_escaped_single_quot": 31, "fix_json_missing_comma": 31, "flat": 43, "flexibl": [27, 31, 40, 70, 72, 80, 84, 88, 90, 92, 94, 98, 105], "flexibli": 79, "float": [4, 6, 8, 20, 22, 29, 31, 40, 42, 44, 45, 49, 51, 53, 59, 74, 75, 76, 84, 91, 92, 94], "flow": [74, 90, 91, 105], "fn": [30, 31, 90, 94], "fn_schema_str": [11, 40, 90], "fnew": 92, "focu": [74, 90, 92], "focus": 79, "folder": [66, 98], "follow": [2, 5, 6, 9, 11, 15, 19, 20, 22, 25, 26, 32, 62, 66, 70, 75, 77, 78, 80, 81, 88, 91, 92, 94, 97, 98, 103, 105], "food": 92, "footprint": [74, 91], "forc": 66, "fork": 66, "form": [2, 13, 15, 40, 70, 74, 88, 91, 93, 100], "format": [2, 4, 6, 8, 11, 13, 15, 20, 22, 25, 26, 28, 30, 32, 33, 36, 37, 40, 59, 62, 64, 66, 74, 75, 78, 79, 81, 84, 88, 90, 91, 100, 103, 105], "format_chat_history_str": 74, "format_class_str": [25, 70], "format_example_str": [25, 70], "format_instruct": [6, 20, 94], "format_str": 25, "format_typ": [6, 20, 25, 70], "formula": 92, "forward": [26, 38, 72, 100], "fossil": [74, 91], "found": [31, 43, 44, 45, 61, 66, 74, 77, 91, 103], "foundament": 72, "foundat": [41, 47], "four": [33, 72, 91, 94], "frac": [8, 22], "framework": [24, 47, 90, 98], "franc": [25, 31, 70, 78, 84, 88], "francisco": 94, "franklin": 69, "free": [74, 91], "frequenc": [8, 22, 92], "frequent": [8, 22], "fresh": 91, "friendli": 92, "from": [1, 2, 4, 5, 6, 7, 8, 10, 13, 14, 15, 19, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 51, 53, 56, 59, 60, 62, 66, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 99, 100, 103, 105], "from_config": [26, 29, 32, 91], "from_default": 90, "from_dict": [6, 8, 20, 22, 25, 26, 35, 36, 40, 70, 88, 91, 94, 105], "from_dict_to_json": 31, "from_dict_to_yaml": 31, "from_funct": [40, 94], "from_json": [25, 70], "from_json_to_dict": 31, "from_pretrain": 84, "from_yaml": [25, 70], "from_yaml_to_dict": 31, "frustrat": [78, 80], "fsspec": 74, "fuel": [74, 91], "full": [40, 80, 91, 98, 100, 103], "fullwiki": 103, "fun": [26, 40, 78, 98], "fun_arg": 40, "fun_compon": [26, 72], "fun_expr": 40, "fun_kwarg": 40, "fun_nam": 40, "fun_to_compon": [26, 72], "func": [31, 39, 40, 94], "func_desc": [40, 94], "func_expr": 94, "func_nam": [40, 94], "func_output": 94, "func_paramet": [40, 94], "func_pars": 94, "func_tool": [41, 94], "funciton": 94, "funcnam": 94, "funcompon": 26, "function": [0, 1, 2, 4, 5, 8, 10, 11, 12, 13, 14, 15, 22, 24, 25, 26, 27, 30, 33, 35, 37, 39, 40, 41, 47, 59, 62, 63, 70, 72, 74, 75, 77, 78, 79, 80, 90, 91, 92, 93, 98, 103, 105], "function_arg": 94, "function_definit": [39, 94], "function_expr": [31, 94], "function_nam": [62, 94], "function_respons": 94, "function_to_cal": 94, "functiondefinit": [30, 39, 40, 94], "functionexpress": [30, 39, 40], "functionoutput": [30, 39, 40, 94], "functiontool": [0, 12, 30, 39, 90, 100], "fundament": [80, 98, 100], "further": [2, 13, 15, 29, 70, 72, 75, 78, 91, 93, 98], "futur": [2, 13, 15, 69, 75, 80, 91, 93, 98], "fuzzi": [77, 91, 103], "fuzzy_match": [42, 103], "g": [2, 9, 11, 13, 15, 22, 53, 66, 81, 84, 93, 94, 103], "ga": [74, 91], "game": 74, "gap": [33, 80], "gase": [74, 91], "gather": [30, 88, 94], "genai": 80, "genear": 91, "gener": [0, 2, 6, 7, 12, 13, 15, 20, 25, 26, 27, 31, 33, 34, 36, 37, 40, 43, 49, 50, 51, 53, 56, 57, 60, 66, 69, 70, 72, 74, 75, 76, 77, 79, 80, 81, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "generate_function_call_expression_from_cal": [31, 94], "generate_readable_key_for_funct": 31, "generated_text": 77, "generativeai": [61, 97], "generator2": 78, "generator2_cal": 78, "generator_2": 78, "generator_2_cal": 78, "generator_cal": 78, "generator_call_logg": [54, 78], "generator_evalu": 103, "generator_nam": 57, "generator_names_to_fil": 56, "generator_state_logg": [54, 78], "generator_state_trac": [57, 78], "generatorcalllogg": [56, 78], "generatorcallrecord": 56, "generatoroutput": [9, 22, 32, 40, 56, 74, 92], "generatorstatelogg": [57, 78], "generatorstatesrecord": 57, "get": [2, 8, 11, 13, 15, 22, 25, 26, 27, 31, 35, 36, 40, 43, 56, 62, 63, 70, 74, 77, 84, 90, 91, 92, 93, 94, 103, 105], "get_al": 63, "get_cal": 56, "get_chat_history_str": 40, "get_current_script_and_lin": 62, "get_current_weath": 94, "get_data_class_schema": [31, 105], "get_data_key_fun": 53, "get_dataclass_schema": 31, "get_default_log_config": 62, "get_dialog_turn": 40, "get_fun_schema": [30, 31, 94], "get_jinja2_environ": 35, "get_log_loc": [56, 57], "get_logg": 62, "get_model_arg": 40, "get_next_ord": 40, "get_prompt_vari": 35, "get_string_token": 38, "get_subcompon": 26, "get_supporting_sent": 103, "get_top_k_indices_scor": 31, "get_transformed_data": 27, "get_transformer_kei": 27, "get_type_schema": 31, "getenv": 84, "git": [66, 98], "github": [66, 95, 102], "give": [72, 74, 80, 91, 94], "given": [8, 22, 26, 31, 36, 50, 57, 59, 79, 81, 90, 91, 92, 94, 103], "go": [78, 80, 90, 91, 98, 100], "goal": [90, 93, 94, 100], "goe": 80, "good": [8, 22, 70, 72, 74, 77, 92, 94], "googl": [43, 44, 45, 51, 61, 66, 76, 77, 84, 88, 97], "google_api_kei": 97, "google_cli": 84, "google_generativeai": 61, "googlegenaicli": [61, 84], "got": 91, "gpt": [26, 31, 32, 72, 74, 77, 81, 84, 91, 92, 94], "gpt3": 7, "gpt_model_kwarg": 92, "graesser": 69, "graph": 92, "gre": 77, "great": [2, 13, 15, 70, 76, 77, 78, 79, 80, 92], "green": 62, "greenhous": [74, 91], "greet": 40, "groq": [61, 84, 97], "groq_api_kei": 97, "groq_client": 84, "groqapicli": [26, 84, 90, 92, 100], "ground": [42, 43, 44, 45, 51, 74, 77, 91, 98, 103], "group": 40, "grow": 92, "growth": [74, 91], "gt": [51, 91], "gt_answer": [42, 43], "gt_context": [44, 45, 77], "gt_context_sentence_list": 103, "gte": [4, 75, 84], "gu": 93, "guarante": [6, 66], "guid": [66, 68, 77, 90, 92, 94], "guidelin": [67, 77], "guo": 77, "ha": [7, 10, 22, 25, 27, 31, 36, 44, 45, 53, 57, 62, 64, 70, 71, 74, 77, 91, 92, 93, 94, 97, 98, 100, 103, 105], "had": [76, 92], "halluci": 91, "hand": [77, 78, 91], "handi": 88, "handl": [4, 9, 22, 25, 26, 31, 33, 70, 74, 75, 78, 79, 84, 90, 91, 94, 105], "hard": 80, "harri": 105, "hash": 51, "hashcod": 77, "have": [6, 7, 8, 11, 20, 22, 25, 26, 29, 33, 40, 53, 66, 70, 72, 74, 75, 76, 77, 78, 79, 81, 88, 90, 91, 92, 94, 97, 98, 100, 103], "hazard": [74, 91], "he": [7, 105], "headach": 72, "heavi": 80, "hello": [2, 8, 13, 15, 22, 27, 34, 40, 62, 81, 92, 93], "helm": 77, "help": [1, 2, 6, 7, 13, 14, 15, 20, 25, 30, 35, 61, 70, 72, 74, 78, 79, 80, 81, 88, 91, 93, 94, 100, 103], "helper": [1, 5, 14, 19, 26, 35, 59, 72, 91], "henc": [90, 105], "hendryck": 77, "here": [2, 4, 11, 13, 15, 33, 40, 53, 70, 72, 74, 77, 78, 81, 84, 88, 90, 91, 92, 93, 94, 96, 97, 98, 101, 105], "hero": [80, 100], "hf_token": 97, "hi": [40, 105], "hierarchi": [79, 100], "high": [80, 91, 98], "higher": [41, 47, 51, 80, 91, 92], "highest": 92, "highli": [2, 15, 27, 78, 80, 84, 98], "hint": [11, 31, 70, 94], "histor": 74, "histori": [11, 28, 40, 57, 74, 78, 88, 90, 91], "hobbi": 92, "hold": 40, "homepag": [8, 22], "hook": 98, "hop": 90, "host": 91, "hotpot_qa": 103, "hotpotqa": [77, 90, 103], "how": [2, 4, 7, 8, 9, 13, 15, 22, 25, 32, 40, 43, 47, 70, 72, 74, 75, 79, 81, 84, 88, 90, 91, 92, 94, 100, 103, 104, 105], "howev": [2, 15, 72, 74, 80, 81, 88, 91, 94], "html": [2, 13, 15, 66, 70, 91, 93], "http": [0, 4, 7, 8, 12, 22, 51, 66, 69, 70, 75, 88, 91, 94], "hub": [4, 77], "hug": 77, "hug_tran": 77, "huggingfac": [4, 70, 75, 84, 91], "huggingfaceh4": 4, "human": [70, 77, 91], "humanev": 77, "humor": 78, "hundr": 91, "hydrat": 72, "hydro": [74, 91], "hypernetwork": 98, "hyperparmet": 91, "hypothesi": 90, "i": [0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 50, 51, 53, 56, 57, 59, 60, 61, 62, 66, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 91, 92, 93, 94, 96, 97, 100, 101, 103, 105], "ibuprofen": 72, "icl": [49, 53, 80], "id": [2, 13, 15, 38, 40, 74, 76, 92, 93], "idea": 95, "ideal": [2, 13, 15, 88, 93], "identifi": [31, 57, 92], "idf": [8, 22, 74, 91, 92], "idf_vers": 77, "idx": [26, 92, 94], "igh": 93, "ik": [2, 13, 15], "illustr": [2, 13, 15, 90, 93], "imag": [75, 91], "immedi": 26, "impact": [2, 6, 8, 13, 15, 22, 53, 74, 90, 91, 92], "implement": [0, 2, 3, 4, 8, 13, 15, 17, 22, 33, 36, 75, 77, 84, 91, 92, 93, 103, 105], "implicitli": 34, "import": [2, 6, 8, 13, 15, 20, 22, 25, 26, 30, 31, 35, 61, 62, 70, 72, 74, 75, 76, 77, 78, 79, 81, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 105], "import_path": 61, "importerror": 61, "impress": 77, "improv": [8, 22, 49, 77, 78, 91, 92, 93], "inabl": 31, "inc": 66, "includ": [2, 3, 8, 13, 15, 17, 22, 25, 26, 27, 31, 36, 40, 59, 66, 72, 74, 79, 88, 90, 91, 92, 93, 94, 98, 103, 105], "includng": 98, "incomplet": 31, "incorpor": 77, "incorrect": 34, "increa": 74, "increas": [8, 22, 74, 91, 92], "increasingli": 77, "incress": 94, "indent": [6, 20, 31], "index": [2, 4, 8, 9, 10, 11, 15, 22, 27, 35, 36, 40, 53, 66, 74, 75, 84, 88, 91, 92, 94, 103], "index_kei": [36, 91], "indexflatip": 92, "indic": [9, 22, 25, 31, 91, 92], "infanc": 80, "infer": [4, 34, 40, 75, 77, 78], "infer_bge_reranker_bas": 4, "infer_gte_base_embed": [4, 84], "influenc": [8, 22, 77, 92], "info": 62, "inform": [25, 38, 41, 47, 72, 90, 91, 92, 98, 102, 105], "infrastructur": [74, 91], "ingest": [2, 15, 98], "ingestionpipelin": 98, "inherit": [33, 74, 91, 98], "init": [49, 51, 62], "init_async_cli": [33, 84], "init_llm_cli": 4, "init_model": [4, 84], "init_reranker_cli": 4, "init_sync_cli": [4, 33, 84], "initi": [4, 8, 9, 10, 11, 22, 33, 35, 36, 49, 53, 62, 74, 77, 84, 88, 90, 91, 92, 94, 103, 105], "initvar": 40, "inmemoryfaissretriev": 91, "inner": 92, "input": [0, 1, 4, 6, 8, 9, 10, 12, 13, 14, 20, 22, 25, 26, 29, 31, 32, 33, 36, 37, 38, 40, 50, 70, 74, 75, 76, 77, 78, 79, 81, 84, 88, 91, 92, 93, 94, 98, 105], "input_data_obj": 50, "input_str": [11, 26, 28, 72, 74, 78, 88, 91, 92, 94, 100], "input_text": 4, "insert": 27, "insid": [2, 11, 13, 15, 92, 93], "instal": [18, 61, 62, 66, 74, 75, 91, 96, 98], "install_messag": 61, "instanc": [6, 7, 20, 25, 26, 31, 32, 35, 64, 76, 77, 92, 94, 98, 103, 105], "instanti": [26, 59, 70], "instead": [2, 13, 15, 25, 26, 31, 43, 70, 72, 74, 75, 80, 92, 93, 94, 98], "instruct": [6, 7, 9, 11, 20, 22, 25, 51, 70, 77, 92, 94, 98, 105], "instructur": 94, "int": [0, 1, 2, 4, 8, 9, 10, 12, 13, 14, 15, 22, 25, 27, 29, 31, 34, 36, 38, 40, 49, 53, 62, 70, 74, 75, 90, 91, 94, 105], "int_param": 34, "integ": [6, 20, 34], "integr": [2, 4, 5, 13, 15, 18, 19, 47, 74, 75, 79, 80, 84, 90, 91, 98, 100], "intellig": 77, "intend": 66, "intent": 77, "interact": [11, 24, 25, 40, 47, 70, 79, 80, 90, 94, 100, 105], "interchang": 94, "interest": [74, 77], "interfac": [6, 30, 31, 33, 72, 75, 76, 78, 79, 80, 84], "intergr": [80, 84, 91], "interleav": [81, 90], "intermedi": [74, 90], "intern": [25, 47, 61, 64, 77, 80, 84, 90, 94], "interpret": [2, 13, 15], "introduc": [2, 13, 15, 88, 93], "introduct": 104, "intuit": [2, 13, 15, 93], "invers": [8, 22, 92], "invest": [74, 91], "investig": 105, "invok": [25, 31], "involv": [77, 92], "io": [26, 29, 36], "irrelev": 91, "is_dataclass_inst": 31, "is_key_in_templ": 35, "is_norm": [31, 40, 75], "is_pick": 72, "is_pickl": 26, "is_potential_dataclass": 31, "is_running_in_event_loop": 30, "isinst": 84, "issu": 66, "item": [27, 74, 94], "item1": 37, "item2": 37, "iter": [26, 34, 80, 90, 92, 100], "itertool": 92, "its": [2, 8, 13, 15, 22, 26, 31, 34, 36, 40, 56, 57, 59, 69, 70, 72, 74, 80, 88, 90, 91, 92, 93, 94, 98, 103], "itself": [3, 17, 26, 31, 32, 35, 60, 80, 81, 88, 92], "jan": 7, "jinja": [88, 98], "jinja2": [35, 79, 98, 105], "jinja2_template_exampl": 88, "job": [74, 91], "john": [11, 25, 105], "join": [11, 74, 90, 94, 95, 103], "joke": 105, "joke_exampl": 105, "jokeoutput": 105, "josh": 77, "json": [2, 6, 7, 8, 11, 13, 15, 20, 22, 25, 31, 37, 39, 40, 56, 57, 59, 60, 64, 70, 72, 78, 90, 91, 93, 94, 98, 100, 103, 105], "json_definit": [39, 94], "json_obj": 37, "json_pars": 37, "json_signatur": 70, "json_signature_exclud": 70, "json_str": [25, 31, 37, 70], "jsonl": [56, 60, 78], "jsonoutputpars": [6, 20, 94], "jsonpars": [0, 12, 37, 90, 103], "judg": [43, 77, 78, 103], "judgement": [43, 77, 103], "judgement_list": [43, 103], "judgement_queri": [43, 103], "jump": 98, "just": [4, 74, 84, 94, 98], "k": [9, 10, 22, 92], "k1": [8, 22, 91, 92], "keep": [25, 27, 70, 74, 81, 91, 92, 93, 105], "kei": [7, 11, 25, 26, 27, 31, 35, 36, 37, 40, 69, 70, 74, 75, 76, 90, 91, 92, 94, 96, 98, 105], "kept": [2, 13, 15], "keyword": [11, 31, 35, 40, 88, 91, 94], "kind": 98, "kmp_duplicate_lib_ok": 92, "knock": [74, 91], "know": [78, 80, 81, 94], "knowledg": [80, 90, 91, 94, 103], "known": [69, 70, 91], "kw_onli": 51, "kwarg": [0, 4, 6, 8, 9, 10, 11, 12, 22, 26, 29, 30, 31, 32, 33, 35, 36, 40, 43, 52, 53, 84, 88, 90, 91, 94], "l": [4, 93], "label": [25, 31, 53, 70, 91, 98], "lack": [88, 91], "lambda": [26, 53, 74, 91], "land": [74, 91], "landscap": 91, "languag": [2, 8, 13, 15, 22, 66, 69, 77, 81, 90, 98, 100], "larg": [29, 69, 74, 77, 91, 92, 93, 100], "larger": [29, 92], "last": [2, 13, 15, 27, 74, 91, 94], "last_hidden_st": [4, 84], "later": [27, 32, 70, 74, 91, 92, 94], "latest": 90, "layer": 80, "lazi": 61, "lazy_import": [40, 97], "lazyimport": [40, 61], "lead": [9, 22, 51, 53, 74, 91], "leap": [44, 45], "learn": [26, 72, 75, 77, 79, 80, 84, 91, 93, 95, 98, 103], "least": 31, "left": [8, 22], "legal": 77, "len": [74, 92, 94, 103], "length": [2, 8, 13, 15, 22, 27, 40, 74, 75, 92, 93, 94], "lengthi": 98, "lengthier": [8, 22, 92], "less": [6, 8, 20, 22, 40, 70, 75, 91, 92, 94, 100], "let": [7, 18, 70, 72, 74, 78, 88, 90, 91, 92, 94, 103], "level": [41, 47, 62, 71, 90, 94, 98, 100], "leverag": [2, 15, 31, 36, 66, 70, 74, 90, 91, 92, 93, 94, 103], "leverg": [8, 22, 36], "li": [70, 72, 74, 75, 78, 84, 88, 91, 94, 99], "lib": 62, "librari": [2, 13, 15, 25, 27, 32, 43, 61, 62, 70, 71, 72, 77, 78, 79, 80, 81, 84, 91, 93, 98, 100], "lickabl": 92, "life": 77, "lifecyl": 94, "lifestyl": 72, "lift": 80, "light": [74, 91, 100], "light_rag": 98, "lightrag": [2, 4, 6, 8, 13, 15, 22, 24, 25, 26, 27, 28, 33, 35, 40, 41, 47, 56, 61, 62, 66, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 91, 93, 95, 96, 100, 103, 105], "lightrag_default_prompt_arg": 88, "lightweight": 70, "like": [2, 13, 15, 25, 27, 31, 33, 40, 62, 70, 72, 74, 75, 76, 78, 80, 81, 84, 90, 91, 92, 93, 98, 100, 105], "limit": [66, 74, 77, 79, 91, 92, 93, 94], "line": [62, 66, 78, 79, 80, 98], "line_numb": 62, "linear": 100, "link": 66, "list": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13, 14, 15, 20, 22, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 51, 53, 55, 56, 60, 70, 72, 74, 75, 77, 81, 84, 91, 92, 94, 97, 103], "list_output_format_templ": [6, 20], "list_pars": 37, "listoutputpars": [6, 20], "listpars": [9, 22, 37, 91, 92], "liter": [2, 13, 15, 31, 40, 62, 91], "liu": 77, "llama": [2, 15, 88], "llama3": [26, 81, 88, 90, 100], "llama_index": 98, "llamaindex": [2, 15, 98], "llm": [0, 3, 4, 9, 11, 12, 17, 22, 25, 26, 30, 32, 37, 40, 43, 50, 51, 69, 72, 74, 78, 79, 84, 90, 92, 93, 94, 98, 100, 103, 104, 105], "llm_as_judg": [46, 78], "llm_augment": 49, "llm_evalu": [43, 103], "llm_judg": [43, 103], "llm_kwarg": 74, "llm_model_kwarg": 90, "llm_optim": 78, "llm_query_indic": 92, "llm_query_output": 92, "llm_retriev": [78, 91, 92], "llm_tool": 90, "llmasjudg": [43, 77, 103], "llmasretriev": 91, "llmaugment": 50, "llmoptim": [51, 78], "llmretriev": [9, 22, 78, 91, 92], "llmretrieveroutputtyp": [9, 22], "lo": 81, "load": [8, 22, 25, 26, 27, 36, 49, 51, 56, 57, 59, 60, 66, 74, 77, 84, 90, 91, 94, 96, 103, 105], "load_dataset": [77, 103], "load_dotenv": [76, 90, 92, 97], "load_from_fil": [8, 22, 36, 91], "load_from_pickl": 26, "load_index": 92, "load_json": 60, "load_jsonl": 60, "load_meta_data": 56, "load_metr": 77, "load_pickl": 60, "load_stat": [27, 74], "load_state_dict": [26, 72], "load_state_pickl": 26, "loaded_exampl": 105, "local": [3, 4, 17, 26, 33, 66, 78, 79, 84, 91, 94], "local_db": 27, "local_db_load": 27, "local_embedd": 75, "local_embedder_256": 75, "local_item_db": 27, "localdb": [3, 17, 27, 40, 74], "locat": [66, 70, 91, 94], "lock": 98, "log": [8, 22, 56, 57, 60, 62, 74, 78, 80, 84, 99], "log_cal": 56, "log_prompt": 57, "logger": 78, "logger_metadata": 78, "logic": [4, 33, 77, 80, 92], "logprob": [40, 91], "long": [2, 13, 15, 74, 78, 79, 91, 92, 93], "longest": 91, "look": [31, 70, 74, 75, 78, 88, 90, 91, 92, 99], "lookup": 90, "loop": [11, 30, 35, 77, 88, 91, 94], "lose": [78, 98], "lost": [27, 91], "lot": [37, 77, 92], "love": 92, "lower": [80, 92, 94], "lru_cach": 84, "lstrip_block": 88, "luna": 92, "m": [40, 66, 78], "m1": 4, "macbook": 4, "made": [27, 70, 79], "magenta": 62, "mai": [2, 15, 72, 81], "main": [27, 35, 53, 66, 72, 76, 91, 98], "mainli": [40, 61, 70, 74, 80, 92, 98], "maintain": [2, 13, 15, 25, 66, 70, 92], "major": 66, "make": [6, 20, 27, 33, 47, 66, 70, 74, 77, 78, 84, 88, 90, 91, 94, 97, 98, 105], "makefil": 66, "manag": [2, 15, 27, 28, 36, 39, 40, 50, 59, 72, 74, 76, 84, 90, 92, 93, 94, 105], "mani": [7, 88, 91, 94], "manipul": [90, 98], "manner": 90, "manual": [26, 59, 66, 72, 78, 80, 98, 99], "manufactur": [74, 91], "map": [2, 10, 13, 15, 22, 26, 27, 31, 36, 60, 64, 70, 74, 91, 93, 94], "map_dialogturn_to_docu": 74, "map_fn": [27, 74], "map_to_docu": 74, "mapper_setup": [27, 74], "mappingproxi": 51, "mar": [0, 12], "mark": [70, 77], "markdown": [2, 13, 15, 93], "marshmallow": [25, 70], "massiv": 77, "match": [8, 22, 26, 31, 42, 70, 77, 92, 103], "match_acc_list": 103, "materi": [74, 91], "mathemat": 77, "matrix": 70, "matter": [30, 70, 74], "max": [30, 90], "max_length": [4, 84], "max_step": [0, 12, 90], "max_token": [81, 84], "maxim": [80, 88], "maximum": [0, 2, 11, 12, 13, 15, 71, 81, 92, 93, 100], "mayb": 98, "md": [98, 99], "me": [88, 91], "mean": [2, 13, 15, 27, 53, 80, 81, 90, 92, 93, 94], "meant": 66, "meanwhil": 92, "measur": [8, 22, 77, 92], "mechan": 84, "medata": 25, "medic": [72, 77], "member": [26, 95], "memo": 26, "memoi": 79, "memori": [27, 29, 40, 74, 75, 79, 80, 92, 93, 94], "meng": 77, "mere": 92, "merg": [2, 13, 15, 93, 98], "messag": [11, 40, 61, 75, 78, 81, 84, 88], "meta": [81, 88, 92], "meta_data": [2, 13, 15, 40, 74, 76, 92, 93, 103], "metadata": [6, 11, 20, 25, 30, 31, 40, 51, 70, 74, 78, 90, 91, 105], "methd": 36, "method": [2, 4, 6, 8, 13, 15, 20, 22, 25, 26, 27, 33, 35, 36, 38, 43, 53, 64, 70, 72, 74, 75, 77, 78, 79, 84, 88, 91, 94, 100], "metric": [42, 43, 44, 45, 77, 91, 103], "middl": 91, "might": [4, 7, 9, 22, 26, 27, 30, 70, 74, 75, 91, 92, 94], "million": 91, "mimic": 7, "mimick": 70, "mind": [78, 80], "minim": [3, 17, 80], "minimum": [11, 71, 88, 100], "minut": 96, "mislead": [11, 25, 105], "miss": [25, 31, 50, 91, 94], "misunderstand": 92, "mmlu": 77, "mode": [26, 79, 98], "modecli": 76, "model": [0, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15, 17, 18, 19, 22, 26, 27, 29, 31, 32, 33, 40, 43, 50, 59, 69, 72, 76, 77, 78, 79, 80, 81, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "model_cli": [0, 7, 9, 10, 12, 22, 24, 26, 29, 32, 41, 43, 50, 51, 59, 61, 72, 74, 75, 76, 79, 84, 90, 91, 92, 94, 100, 103], "model_kwarg": [0, 4, 7, 9, 10, 12, 22, 26, 29, 31, 32, 33, 40, 43, 50, 51, 56, 59, 72, 74, 75, 76, 78, 84, 90, 91, 92, 94, 100, 103], "model_nam": [4, 59, 84], "model_typ": [4, 26, 29, 32, 33, 40, 72, 77, 84], "modelcli": [0, 4, 7, 9, 10, 12, 22, 26, 29, 32, 33, 40, 43, 50, 51, 72, 75, 78, 79, 88, 91, 100], "modelclienttyp": [40, 74, 91, 94], "modeltyp": [4, 26, 29, 32, 33, 40, 72, 84, 91], "modif": 72, "modifi": [1, 13, 14], "modoel": 74, "modubl": 26, "modul": [9, 25, 26, 31, 37, 40, 61, 64, 66, 70, 72, 74, 79, 91, 98, 100, 103], "modular": 100, "module_nam": 61, "moment": 80, "monitor": [74, 98], "month": [44, 45], "monument": 78, "moon": 77, "more": [2, 7, 8, 11, 13, 15, 22, 25, 26, 31, 37, 38, 39, 40, 43, 50, 66, 67, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 90, 91, 92, 93, 94, 98, 100, 102, 103, 105], "moreov": 90, "most": [6, 72, 78, 79, 81, 88, 91, 92], "mostli": [25, 91], "move": [2, 13, 15, 79, 91, 93], "movi": [76, 92], "mp": 4, "much": [72, 78, 91, 92], "mulitpl": [1, 14], "multi": [70, 75, 81, 90, 98], "multifacet": 77, "multipl": [0, 12, 27, 53, 56, 57, 59, 69, 74, 75, 90, 91, 94, 98], "multipli": [90, 94], "multitask": 77, "multple_function_call_templ": 94, "must": [11, 26, 27, 84], "my_db": 27, "my_funct": 26, "my_function_compon": 26, "my_inst": [25, 105], "myfunctioncompon": 26, "myoutput": [25, 105], "mypi": 70, "n": [2, 6, 8, 13, 15, 20, 22, 28, 37, 74, 78, 84, 92, 94], "n_________": 74, "nadd": 94, "name": [11, 25, 26, 27, 30, 31, 38, 40, 51, 56, 57, 59, 60, 61, 62, 63, 64, 70, 72, 74, 77, 78, 80, 90, 91, 92, 94, 98, 103, 105], "named_children": 26, "named_compon": 26, "named_paramet": [26, 72], "nanswer": 78, "nativ": [70, 88], "natur": [2, 13, 15, 31, 77], "navig": 66, "nd": 91, "ndarrai": [31, 91, 94], "ndivid": 94, "necessari": [4, 66, 92, 94, 97, 98, 103], "need": [0, 2, 4, 6, 8, 12, 13, 15, 22, 25, 26, 29, 30, 33, 37, 39, 40, 61, 62, 70, 74, 75, 80, 84, 88, 91, 92, 93, 94, 98, 103], "neg": [8, 22, 42, 92], "nest": [6, 20, 25, 26, 31, 40, 70, 79], "net": 100, "neutral": [42, 98], "new": [0, 2, 12, 13, 15, 27, 31, 51, 66, 74, 75, 77, 90, 91, 92, 94, 98], "new_compon": 59, "new_components_from_config": 59, "new_dim": 75, "new_embed": 75, "new_turn": 74, "next": [11, 26, 76, 77, 81, 84, 88, 90, 92, 94, 103], "nget": 94, "nkei": 37, "nlg": 77, "nlp": [2, 13, 15, 76, 80, 92, 93], "nlu": 77, "nmultipli": 94, "nn": [26, 72, 100], "nnew": 92, "nnone": 94, "nnow": 78, "node": 31, "nois": 92, "non": [2, 13, 15], "none": [0, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 17, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 43, 49, 50, 51, 53, 55, 56, 57, 60, 61, 62, 64, 70, 74, 76, 84, 91, 92, 93, 94], "nonetyp": 40, "nonsens": [92, 93], "noqa": [97, 100], "normal": [8, 22, 31, 40, 70, 75, 84, 92], "normalize_np_arrai": 31, "normalize_vector": [31, 75], "nosql": 91, "note": [4, 6, 7, 8, 22, 25, 26, 31, 36, 40, 62, 72, 74, 79, 90, 91, 94, 98, 103], "notebook": [90, 91], "noth": 90, "notic": 81, "notimplementederror": [84, 91], "now": [4, 7, 26, 70, 74, 75, 76, 78, 88, 90, 91, 92, 94, 98], "np": [91, 94], "nsearch": 94, "nsum": 94, "nthe": 78, "null": [74, 78], "num": 53, "num_class": 53, "num_doc": 103, "num_row": 77, "num_shot": [49, 53], "number": [0, 2, 8, 10, 12, 13, 15, 22, 38, 44, 45, 62, 75, 76, 77, 90, 92, 93, 94, 103], "numer": [70, 76, 91, 92], "numpi": [75, 91, 94], "numpy_sum": 94, "nyou": 28, "nz": [8, 22], "o": [64, 66, 84, 92], "o200k_bas": 92, "obj": [26, 31, 60, 64], "object": [2, 4, 6, 13, 15, 20, 25, 26, 31, 35, 37, 39, 40, 42, 43, 44, 45, 50, 51, 52, 56, 57, 60, 61, 63, 64, 70, 76, 90, 92, 93, 94], "objecttyp": [64, 94], "observ": [11, 40, 80, 90], "obtain": [76, 77], "occur": [8, 22, 75], "occurr": 92, "off": [84, 91], "offer": [74, 84, 91, 98, 100, 105], "offici": 100, "often": [8, 22, 40, 74, 75, 84, 88, 91, 93], "okapi": 92, "okapi_bm25": [8, 22, 91], "old_dim": 75, "old_embed": 75, "onc": [77, 91, 92], "one": [1, 4, 11, 14, 30, 31, 62, 75, 78, 81, 88, 90, 91, 92, 94], "ones": [92, 93], "onli": [6, 8, 11, 20, 22, 25, 26, 27, 29, 31, 32, 39, 40, 43, 59, 61, 70, 72, 74, 75, 78, 80, 84, 88, 90, 91, 92, 94, 98, 105], "open": [66, 77, 98, 103], "openai": [4, 5, 19, 33, 40, 61, 74, 76, 81, 84, 91, 92, 94, 97, 98, 105], "openai_api_kei": [75, 84, 97], "openai_cli": [61, 75, 84, 103], "openaicli": [4, 26, 29, 32, 33, 59, 61, 72, 74, 75, 76, 84, 90, 91, 92, 103], "oper": [1, 13, 14, 25, 27, 29, 40, 41, 47, 70, 74, 91, 92, 105], "operand": 94, "opinion": 98, "opro": 51, "opt": 88, "optim": [8, 22, 34, 70, 72, 74, 78, 91, 92, 98, 100], "option": [0, 2, 4, 6, 8, 9, 10, 12, 13, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 38, 40, 43, 56, 57, 60, 61, 62, 70, 72, 74, 84, 91, 93, 94, 96, 100, 105], "optional_packag": 61, "optionalpackag": [61, 97], "opu": 81, "orang": 92, "orchestr": [29, 30, 32, 49, 74, 75, 76, 78, 79, 88], "ord_docu": 74, "order": [2, 13, 15, 25, 26, 35, 40, 70, 74, 75, 80, 92, 93], "ordereddict": [26, 40], "org": [0, 4, 7, 8, 12, 22, 51, 69, 70, 91], "org_docu": 74, "organ": [66, 74, 92, 98], "origin": [2, 13, 15, 27, 70, 74, 76, 91, 92], "orpo": 51, "oss": 98, "otago": [8, 22], "other": [2, 6, 11, 13, 15, 20, 26, 31, 37, 40, 59, 64, 66, 70, 72, 75, 77, 78, 79, 80, 91, 94, 95, 98, 105], "othersi": 26, "otherwis": [26, 40, 93], "our": [18, 25, 26, 32, 43, 53, 66, 67, 70, 72, 74, 75, 78, 79, 81, 84, 88, 90, 91, 92, 94, 95, 96, 97, 98, 100, 101, 103], "ourselv": 98, "out": [70, 77, 78, 80, 84, 90, 91, 92, 94, 98], "outcom": [2, 13, 15], "outer": 70, "outlin": [24, 47, 77, 90], "outperform": 90, "output": [2, 5, 7, 8, 9, 11, 13, 15, 19, 20, 22, 25, 26, 28, 29, 30, 31, 32, 37, 40, 43, 49, 50, 53, 56, 62, 70, 72, 74, 76, 78, 79, 81, 84, 88, 90, 91, 92, 93, 98, 103, 105], "output_1": 91, "output_2": 91, "output_3": 91, "output_data_class": 94, "output_data_obj": 50, "output_format": [28, 78, 94, 105], "output_format_str": [6, 28, 78, 88, 94], "output_pars": [24, 94], "output_processor": [0, 6, 7, 9, 12, 20, 22, 29, 32, 49, 75, 76, 90, 91, 92, 94, 103], "output_str": 78, "outputformat": 70, "outputpars": [6, 20, 79, 94, 100], "outstand": 105, "over": [26, 30, 69, 72, 88, 92, 98, 100], "overal": [25, 77, 80, 90, 94], "overflow": 75, "overhead": 30, "overlap": [2, 13, 15, 70, 92, 93], "overpr": 92, "overrid": [76, 90, 92], "overview": [74, 77], "overwrit": 25, "own": [2, 15, 25, 26, 31, 36, 56, 69, 70, 75, 77, 84, 91, 98, 103], "p": 84, "p1": 94, "p2": 94, "packag": [61, 66, 70, 76, 91, 92, 96, 98, 100], "pad": 84, "page": [2, 13, 15, 66, 90, 92, 93], "paid": 78, "pain": 72, "pair": 91, "paitesanshi": 69, "palletsproject": 88, "panel": [74, 91], "paper": [4, 8, 22, 77, 90, 91], "paragraph": 92, "parallel": 69, "param": [26, 31, 34, 44, 72], "paramet": [2, 4, 6, 8, 9, 10, 11, 13, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 35, 36, 38, 40, 42, 43, 45, 49, 51, 56, 57, 59, 60, 61, 62, 64, 70, 72, 79, 90, 92, 94, 98, 103], "parent": 92, "parent_doc_id": [2, 13, 15, 40, 74, 92, 93], "pari": [78, 84, 94], "pars": [4, 5, 6, 7, 19, 20, 30, 31, 32, 33, 37, 39, 40, 78, 79, 84, 90, 94], "parse_chat_complet": [4, 33, 84], "parse_embedding_respons": [4, 5, 18, 19, 33, 84], "parse_func_expr": [39, 94], "parse_function_call_expr": [31, 94], "parse_json_str_to_obj": 31, "parse_yaml_str_to_obj": 31, "parsed_input": [40, 94], "parser": [6, 20, 90, 92, 94], "part": [31, 69, 79, 88, 91, 92, 104], "parti": [25, 62, 91], "particip": 95, "particl": [74, 91], "particulai": 77, "particular": [29, 33, 36, 72, 78, 79, 100], "particularli": 92, "pass": [8, 10, 22, 26, 29, 31, 32, 35, 40, 43, 70, 72, 75, 81, 84, 88, 90, 91, 92, 94], "passag": [2, 13, 15, 92, 93], "past": [40, 88], "path": [8, 22, 36, 57, 61, 77, 79, 103], "path_to_html_output": 66, "pattern": [5, 19, 26, 30, 31, 40], "pdf": [2, 8, 13, 15, 22, 93], "pdfminer": [2, 13, 15, 93], "per": 40, "percent": 88, "perform": [27, 43, 49, 50, 53, 74, 75, 77, 78, 80, 88, 90, 91, 92, 93, 98, 103], "perhap": 78, "period": [2, 13, 15, 93], "perplex": 77, "persist": [3, 8, 17, 22, 27, 36, 40, 72, 74, 91], "persit": 74, "person": [25, 105], "pgvector": [61, 91, 97], "phase": 92, "philosophi": [71, 79], "phoenix": 98, "photon": [74, 91], "phrase": 91, "pickabl": 72, "pickl": [26, 27, 60, 74, 91], "picklabl": [26, 27], "pickle_to_fil": 26, "piec": [2, 13, 15, 92], "pip": [61, 62, 66, 97], "pipelin": [3, 4, 17, 26, 27, 59, 72, 75, 77, 80, 91, 100, 104], "pkl": [27, 59, 74], "place": [34, 94], "placehold": 88, "plai": [24, 33, 47, 74, 81, 88, 91, 92], "plain": 93, "plan": [79, 84, 90, 97], "plann": 69, "planner": [0, 12], "platform": [77, 94, 95], "pleas": [2, 6, 13, 15, 20, 25, 30, 32, 43, 61, 62, 66, 67, 72, 75, 77, 84, 90, 91, 92, 93, 94, 98, 102, 105], "plenti": 72, "plot": 71, "plug": [33, 98], "poetri": [66, 98], "point": [2, 13, 15, 70, 93, 94, 103], "pollut": [74, 91], "pool": 91, "pop": [27, 74], "popular": [69, 77, 92], "posit": [11, 26, 31, 40, 42, 62, 74, 76, 91, 92, 94], "possibl": 70, "post": [9, 22, 79, 91], "postgr": 91, "postgres_retriev": 22, "postgresql": 91, "postprocessor": 98, "potenti": [11, 31, 70, 81, 90, 93], "power": [74, 91, 100], "powershel": 62, "practic": [91, 92, 98], "practis": [72, 91], "pre": [74, 77, 98], "precis": [77, 91], "pred_answ": [42, 43], "predefin": 31, "predict": [25, 32, 40, 42, 43, 70, 77, 78, 81, 88, 103], "prefer": [11, 91, 94], "prefix": [25, 26, 31, 88, 105], "prepar": [9, 22, 74, 76, 91, 92, 94], "prepend": 26, "preprint": 77, "preprocess": [2, 15, 38, 92], "prescript": 72, "presenc": [8, 22], "preserv": 70, "preset": [0, 7, 12, 32, 35, 88, 92], "preset_prompt_kwarg": [6, 7, 20, 32, 35, 78, 90, 91, 92, 103], "pretti": 91, "prevent": [2, 13, 15, 92, 93], "previou": [11, 26, 51, 74, 90, 92, 93, 103], "previous": [26, 35, 91], "principl": 98, "print": [2, 6, 8, 13, 15, 20, 22, 25, 26, 30, 31, 35, 37, 40, 62, 70, 72, 74, 75, 76, 77, 84, 88, 90, 91, 92, 93, 94, 103, 105], "print_prompt": [32, 35, 74], "print_prompt_templ": 35, "printc": 62, "printout": [72, 74, 88, 91, 94], "prior": 62, "priorit": 91, "pro": [74, 91], "prob": 91, "probab": 91, "probabl": [91, 92], "problem": [90, 91, 94, 98], "procesor": 75, "process": [2, 7, 9, 11, 13, 15, 22, 27, 29, 37, 40, 66, 70, 72, 74, 75, 76, 77, 78, 79, 80, 88, 90, 91, 92, 93, 94, 98, 103], "process_queri": 94, "processor": [6, 20, 29, 32, 40, 49, 78, 79], "produc": [74, 91, 103], "product": [2, 15, 74, 75, 77, 80, 91, 92], "production": 98, "profess": 91, "profil": [91, 92], "program": 70, "programmat": [79, 88], "prohibit": 66, "project": [47, 56, 57, 66, 75, 78, 95, 96, 97, 101], "project_nam": [55, 56, 57], "prompt": [0, 6, 9, 11, 12, 20, 22, 25, 26, 28, 32, 35, 40, 50, 57, 62, 70, 72, 74, 78, 79, 80, 81, 84, 90, 91, 92, 94, 98, 99, 100, 103, 105], "prompt_build": [41, 88, 94, 103, 105], "prompt_kwarg": [0, 12, 32, 35, 56, 72, 74, 78, 88, 94], "prompt_stat": [57, 78], "prompt_templ": 105, "prompt_token": [40, 84], "prompt_vari": [26, 72, 78, 88, 91, 100], "promt_kwarg": [0, 12], "properli": 105, "properti": [27, 31, 39, 40, 56, 57, 70, 75, 90, 94], "propetriari": 81, "propos": [49, 51], "proprietari": [88, 98], "protocol": [33, 77, 79, 91], "provid": [2, 9, 11, 13, 15, 18, 22, 24, 25, 26, 31, 33, 34, 35, 41, 47, 51, 56, 62, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 98, 100, 103, 105], "proxim": 91, "pt": 84, "publish": [0, 7, 12], "pull": 66, "punchlin": 105, "punctuat": [2, 13, 15, 93], "purpos": [2, 13, 15, 72, 74, 93, 103], "purposli": 26, "pursuit": 69, "push": 66, "put": [70, 72, 75, 80, 91, 98], "py": [40, 66, 98, 103], "pydant": [25, 70], "pydata_sphinx_them": 66, "pypdf2": [2, 13, 15, 93], "python": [2, 6, 11, 13, 15, 20, 25, 31, 37, 40, 66, 70, 77, 88, 93, 97, 98], "pytorch": [25, 26, 53, 66, 70, 72, 80, 100, 105], "q": [7, 8, 22, 90], "q_i": [8, 22], "qa": 26, "qualiti": [66, 77, 78, 103], "qualnam": [25, 40, 61, 64], "quantit": 77, "queri": [0, 1, 4, 6, 8, 9, 11, 12, 14, 20, 22, 26, 40, 42, 43, 44, 45, 69, 72, 75, 77, 78, 84, 88, 90, 91, 92, 94, 100, 103], "query_1": 91, "query_1_short": 91, "query_1_token": 91, "query_1_word": 91, "query_2": 91, "query_2_short": 91, "query_or_queri": [9, 22, 92], "query_str": [40, 74], "question": [2, 6, 7, 13, 15, 20, 25, 31, 43, 70, 72, 77, 78, 90, 93, 95, 98, 103, 105], "quick": [39, 90, 92], "quickli": [74, 91, 98], "quit": [88, 91], "quot": [11, 94], "r": [11, 26, 35, 66, 72, 84, 88, 91, 94, 100, 103, 105], "rag": [69, 77, 90, 91, 92, 98, 100, 104], "rag_hotpotqa": 103, "raga": 77, "rais": [2, 13, 15, 25, 31, 61, 70, 75, 84, 91], "random": [37, 53], "random_replac": [49, 53], "random_sampl": 53, "randomli": 53, "randomsampl": 53, "rang": [40, 43, 51, 53, 70, 77, 91, 92, 94, 103], "rank": [8, 10, 22, 92], "rank_bm25": [8, 22, 91], "rare": [8, 22], "rate": 94, "rather": [70, 75], "ratio": [44, 45, 92, 103], "raw": [2, 8, 11, 15, 22, 40, 70, 78, 88, 94], "raw_respons": [9, 22, 40, 75, 78, 84, 94], "re": [90, 91], "reach": [8, 22, 88, 90], "react": [11, 69], "reactag": [0, 12, 69, 79, 90], "read": [11, 81, 88, 90, 98, 105], "readabl": 66, "readi": [91, 92, 94], "readili": 77, "readm": [66, 98, 99], "real": [2, 13, 15, 74, 91, 93, 95, 100], "realiti": 88, "realli": [74, 84, 90], "realtion": 91, "reason": [6, 8, 20, 22, 69, 70, 77, 79, 90, 91, 92], "reattach": [2, 13, 15], "rebuilt": 59, "recal": [44, 77, 91, 103], "recall_list": [44, 103], "receiv": [76, 81, 92], "recogn": 98, "recognit": 80, "recommend": [77, 97], "recomnend": 53, "recomput": 91, "reconstruct": [59, 70], "reconstructed_from_json": 70, "reconstructed_from_yaml": 70, "record": [40, 56, 74, 92], "recreat": 59, "recurs": [26, 31, 72], "red": 62, "reduc": [74, 91], "refer": [0, 2, 4, 8, 12, 13, 15, 22, 25, 26, 32, 43, 66, 77, 90, 92, 93, 105], "reference_text": 77, "reflect": [2, 13, 15, 93], "regardless": 94, "regex": 31, "regist": [27, 56, 63, 74, 84], "register_compon": 26, "register_gener": 56, "register_paramet": [26, 72], "register_transform": [27, 74], "regress": 88, "regular": 26, "reimplement": 91, "reiniti": [9, 22, 91], "rel": [8, 22], "relat": [40, 91, 92], "relationship": 92, "relax": 72, "relev": [9, 22, 44, 45, 74, 75, 77, 78, 79, 81, 91, 92, 94, 103], "relevance_list": [45, 103], "reli": [25, 80, 92, 94, 100], "relianc": [74, 91], "reliev": 72, "reload": 74, "reloaded_dialog_turn_db": 74, "relu": 72, "remain": [66, 76, 91], "rememb": 11, "remov": [27, 66, 74], "remove_dupl": 26, "remove_stop_word": 38, "remove_transform": [27, 74], "render": [35, 88], "renered_prompt": 94, "renew": [74, 91], "renewab": 74, "repeat": 93, "replac": [0, 12, 53], "repo": 98, "reponse_embedder_output": 84, "report": 77, "repositori": [66, 98, 102], "repr": 51, "repr_str": 75, "repres": [25, 26, 31, 34, 70, 74, 88, 91, 92, 94, 100, 103], "represent": [25, 35, 40, 64, 76, 77, 92], "represent_ordereddict": 31, "request": 90, "requir": [6, 9, 18, 20, 22, 25, 27, 31, 32, 34, 37, 40, 42, 66, 70, 74, 78, 81, 84, 88, 90, 91, 92, 94, 103, 105], "required_field": [25, 31, 70], "requires_opt": 34, "requr": 94, "rerank": [4, 10, 22, 40, 98], "reranker_retriev": 91, "rerankerretriev": [10, 22, 91], "research": [74, 75, 77, 80, 88, 90, 91, 92, 98], "reset": [0, 8, 9, 10, 12, 22, 27, 36, 49, 51, 74], "reset_index": [8, 9, 10, 22, 36, 92], "reset_paramet": [49, 51], "resolv": [31, 105], "resourc": [66, 90, 91], "respect": [31, 76], "respond": [88, 94], "respons": [0, 4, 5, 6, 9, 12, 19, 22, 32, 33, 40, 51, 72, 74, 75, 78, 81, 84, 90, 91, 92, 94, 103], "response_str": [40, 74], "response_text": 84, "rest": [33, 72, 81, 88, 92], "restor": [8, 22, 25, 27, 36, 91], "restored_data": 25, "restored_dialog_turn_db": 74, "restructuredtext": 66, "result": [2, 8, 11, 15, 22, 26, 30, 31, 32, 40, 43, 62, 71, 76, 77, 78, 79, 80, 91, 92, 93, 94, 100], "result1": 94, "result1someth": 94, "result2": 94, "result2someth": 94, "retri": [4, 33, 84], "retriev": [1, 2, 3, 13, 14, 15, 17, 26, 31, 40, 44, 45, 72, 74, 76, 77, 78, 79, 80, 84, 88, 93, 94, 98, 100, 103], "retrieved_context": [44, 45, 77], "retriever2": [8, 22], "retriever_1": 91, "retriever_evalu": [77, 103], "retriever_output": [1, 14], "retriever_output_to_context_str": [1, 13, 14], "retriever_recal": 46, "retriever_relev": 46, "retrieverdocumentstyp": [10, 22, 91], "retrieverdocumenttyp": [8, 9, 10, 22, 36, 40, 91], "retrieverevalu": [77, 103], "retrieveroutput": [1, 8, 9, 10, 14, 22, 36, 40, 74, 91, 92], "retrieveroutputtocontextstr": [1, 13, 14], "retrieveroutputtyp": [9, 22, 91], "retrieverqueriestyp": 91, "retrieverquerytyp": [36, 40, 91], "retrieverrecal": 44, "retrieverrelev": 45, "retrieverstrqueriestyp": [9, 22, 91], "retrieverstrquerytyp": 91, "return": [2, 6, 8, 9, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 38, 40, 42, 43, 44, 45, 59, 60, 62, 64, 70, 72, 74, 75, 79, 84, 88, 90, 91, 92, 93, 94, 100], "return_logg": 62, "return_tensor": 84, "review": [66, 76, 77, 92], "right": [8, 22, 31, 78, 80, 91], "rigid": 98, "robust": [11, 77, 100], "roger": 7, "role": [11, 24, 25, 47, 74, 81, 84, 88, 90, 91, 98, 105], "root": [62, 97], "roug": 77, "row": 40, "rst": 66, "rule": [2, 13, 15, 80, 93], "run": [0, 4, 12, 30, 66, 72, 74, 75, 76, 78, 90, 94, 97, 98, 105], "run_async_function_cal": 94, "run_sync_and_async_mix": 30, "run_sync_and_async_mix_without_wait": 30, "runtim": [35, 97], "safe": [31, 61], "safe_import": 61, "safe_load": 103, "sai": [70, 78, 91], "same": [7, 9, 22, 26, 27, 38, 40, 42, 53, 62, 70, 74, 75, 84, 88, 90, 91, 92, 98, 100], "sampl": [49, 53, 103], "sampler": 49, "san": 94, "sandbox": [30, 31, 39, 94], "sandbox_exec": [30, 31], "sandbox_execut": 94, "sat": 77, "satur": [8, 22, 92], "save": [8, 22, 25, 27, 36, 40, 56, 57, 60, 62, 72, 74, 75, 78, 91], "save_dir": [55, 56, 57, 62], "save_index": 92, "save_json": [60, 72], "save_meta_data": 56, "save_pickl": 60, "save_st": [27, 74], "save_to_fil": [8, 22, 36, 91], "scale": [91, 92], "scarecrow": 105, "scene": 81, "schema": [6, 20, 25, 31, 40, 70, 94, 105], "schmea": 70, "scope": [2, 15], "score": [2, 8, 9, 13, 15, 22, 31, 40, 43, 51, 74, 76, 77, 92, 93], "script": [62, 103], "script_nam": 62, "sdk": [4, 18, 40, 78, 91, 97, 100], "seamless": 90, "seamlessli": 91, "searal": 72, "search": [76, 77, 90, 91, 92, 94], "search_reranking_with_cross": 91, "searial": 72, "second": [30, 31, 44, 45, 78, 84, 91, 92, 93, 94], "secret": 81, "section": [24, 41, 47, 66, 74, 81, 88, 90, 94], "sector": [74, 91], "see": [2, 4, 7, 13, 15, 33, 67, 70, 71, 72, 74, 76, 81, 88, 90, 91, 92, 93, 94, 98, 100], "seek": [88, 98], "seen": 74, "segment": [2, 13, 15, 93], "select": [53, 77, 103, 105], "self": [6, 20, 26, 31, 32, 70, 72, 75, 78, 84, 91, 94, 100], "semant": [74, 76, 91], "send": [88, 91], "sens": [69, 77, 78], "sensit": [25, 70, 80, 91, 100], "sensor": 91, "sent": 88, "sentenc": [2, 13, 15, 90, 92, 93, 103], "sentiment": [2, 13, 15, 76, 77, 92, 93], "separ": [2, 13, 15, 33, 66, 88, 93, 98], "seq": [26, 72], "sequenc": [1, 8, 9, 10, 13, 14, 22, 29, 36, 53, 72, 74, 79, 84, 90, 91], "sequenti": [0, 12, 26, 38, 69, 74, 75, 79, 90, 103], "seral": [70, 80], "sercur": 94, "seri": [2, 4, 13, 15, 81, 92, 93], "serial": [25, 26, 35, 60, 70, 72, 79, 88, 91, 105], "serializ": 27, "serv": [41, 47, 72], "server": 66, "servic": 92, "session": 40, "session_id": [40, 74], "set": [0, 2, 4, 8, 9, 12, 13, 15, 22, 26, 31, 32, 35, 43, 62, 66, 74, 75, 76, 79, 84, 90, 91, 92, 93, 96, 99, 103, 105], "set_assistant_respons": 40, "set_user_queri": 40, "setup": [27, 74, 75, 76, 78, 91, 97, 98, 105], "setup_env": [75, 84, 97, 100], "seven": 88, "sever": [72, 77], "shallow": 26, "shape": 80, "share": [2, 15, 95, 98], "shell": 98, "shift": [2, 13, 15, 92, 93], "shorten": 66, "shorter": [91, 92, 93], "shorthair": 92, "shot": [7, 25, 49, 53, 88, 90, 91, 99, 105], "should": [2, 4, 6, 9, 13, 15, 20, 22, 25, 26, 27, 29, 33, 40, 51, 57, 72, 75, 78, 88, 91, 92, 93, 94, 98, 105], "show": [6, 20, 40, 66, 72, 76, 90, 91, 92, 94, 98, 103, 105], "showcas": 91, "shown": 94, "signal": 92, "signatur": [25, 70, 94, 105], "signature_json": [6, 20, 25, 70], "signature_yaml": [6, 20, 25, 70], "signific": [74, 91, 92], "significantli": [8, 22, 74, 91], "signitur": 105, "similar": [31, 40, 75, 76, 77, 88, 90, 91, 92, 100], "similaritypostprocessor": 98, "similarli": [70, 78, 98], "simpl": [6, 11, 20, 53, 74, 75, 76, 78, 88, 91], "simple_prompt": 88, "simpleqa": [78, 100], "simpler": 105, "simplest": 94, "simpli": [31, 49, 69, 70, 75, 91], "simplifi": [74, 75, 78, 80, 90, 91, 94], "simplili": 94, "simul": [30, 90, 91, 92], "singl": [27, 29, 40, 43, 59, 74, 75, 77, 78, 81, 88, 90, 91, 94, 105], "site": 66, "situat": [69, 75], "size": [2, 13, 15, 29, 75, 91, 92, 93], "skim": 91, "skip": 53, "skip_special_token": 4, "sleep": [30, 92, 94], "slide": [2, 13, 15, 92, 93], "slightli": 94, "small": [29, 59, 74, 75, 76, 84, 91, 92], "small_tool_manag": 94, "smaller": [2, 13, 15, 75, 79, 91, 92, 93], "smallest": [2, 13, 15, 93], "smell": 92, "smooth": 100, "snippet": [40, 66, 77, 94, 103], "so": [31, 38, 40, 69, 70, 74, 80, 81, 84, 90, 91, 93], "softwar": 80, "solar": [74, 91], "solut": [80, 92, 98, 100], "solv": [11, 90, 98, 105], "some": [9, 22, 37, 53, 70, 74, 77, 78, 88, 91, 98], "someth": 94, "sometim": [43, 70, 98], "sort": 35, "sort_kei": [25, 31], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 19, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 66, 74, 90, 91, 92, 98], "space": [2, 6, 13, 15, 20, 76, 90, 92, 93], "span": 77, "speak": [94, 98], "spec": 40, "speciaf": 103, "special": [24, 47, 81, 88], "specif": [4, 10, 11, 22, 24, 30, 32, 33, 34, 36, 39, 40, 43, 47, 70, 77, 84, 88, 90, 91, 103], "specifc": 40, "specifi": [2, 13, 15, 25, 34, 40, 70, 88, 91, 92, 93, 94], "spectrum": 77, "speed": [91, 92], "spend": 80, "sphinx": 66, "split": [1, 2, 8, 13, 14, 15, 22, 66, 74, 76, 79, 91, 93, 99], "split_and_emb": 74, "split_bi": [2, 13, 15, 59, 74, 76, 92, 93], "split_funct": 92, "split_length": [59, 74, 76, 92], "split_overlap": [59, 74, 76, 92], "split_text": [2, 13, 15], "split_text_by_token_fn": 92, "split_text_by_word_fn": [8, 22, 91], "split_text_by_word_fn_then_lower_token": [8, 22, 91], "split_text_token": 8, "splitted_doc": [2, 13, 15, 76, 92, 93], "splitter": [2, 13, 15, 74, 76, 79, 91], "splitter_config": 74, "splitter_set": 92, "sql": [37, 74, 91], "sqlalchemi": [61, 74, 91, 97], "staff": 92, "stage": [75, 90, 91, 98], "stai": [72, 98], "standar": [72, 80], "standard": [4, 6, 20, 25, 30, 33, 40, 75, 79, 84, 91, 94, 98, 105], "star": 77, "start": [0, 7, 11, 12, 25, 40, 61, 64, 75, 92, 94, 103], "start_header_id": [81, 88], "start_tim": [30, 94], "starter": 51, "state": [8, 9, 10, 22, 25, 26, 27, 36, 57, 59, 72, 74, 78, 79, 80, 91, 92, 94], "state_dict": [26, 52, 72], "static": [25, 70], "statu": 70, "step": [0, 2, 7, 11, 12, 13, 15, 28, 40, 51, 52, 69, 75, 77, 78, 88, 90, 91, 92, 93, 103], "step_histori": 11, "stepoutput": [40, 90], "steps_str": [28, 78, 88], "still": [66, 74, 80, 91, 92, 93, 94], "stop": 88, "storag": [2, 3, 15, 17, 27, 59, 74, 91], "store": [2, 15, 26, 27, 32, 56, 57, 70, 74, 76, 78, 91, 92], "str": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 22, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 64, 70, 72, 74, 75, 84, 91, 92, 93, 94, 105], "str_param": 34, "straightforward": 90, "strateg": 90, "streamlin": [25, 94, 105], "stress": 72, "strict": 26, "string": [0, 6, 7, 9, 11, 12, 20, 22, 25, 31, 32, 34, 35, 37, 38, 40, 42, 43, 44, 45, 64, 66, 78, 79, 81, 88, 90, 91, 92, 94, 98, 103], "string_pars": [6, 41, 92, 103], "structu": 70, "structur": [2, 4, 11, 13, 15, 25, 26, 31, 33, 40, 53, 70, 72, 74, 75, 78, 79, 84, 91, 93, 94, 100, 105], "stuck": 93, "style": 66, "subclass": [4, 6, 7, 8, 22, 25, 26, 33, 36, 40, 70, 71, 72, 75, 78, 79, 84, 88, 91, 94, 100], "subcompon": [26, 72], "subcomponn": 72, "subject": 77, "submit": 92, "subqueri": [11, 90], "subquest": 11, "subsequ": 90, "subset": 103, "substanti": [74, 91], "substitut": 88, "subtract": 90, "success": 94, "successfulli": 94, "sudden": [2, 13, 15, 92, 93], "suggest": [8, 22, 90, 92], "suitabl": [2, 15], "sum": 94, "sum_": [8, 22], "summar": [77, 80, 98], "summari": 105, "sunlight": [74, 91], "super": [26, 70, 72, 75, 78, 84, 100], "support": [2, 7, 13, 15, 25, 30, 31, 32, 39, 40, 62, 64, 70, 75, 81, 84, 91, 92, 93, 94, 97, 100, 103, 105], "support_model": 4, "support_model_list": 84, "supporting_fact": 103, "suppos": 91, "sure": [6, 20, 70, 91, 94, 97, 105], "survei": [69, 77], "sustain": [74, 91], "switch": [9, 22, 75, 78, 84, 91, 98, 100], "sy": [11, 26, 28, 72, 74, 88, 91, 94, 100], "sylphai": 66, "sync": [4, 26, 30, 33, 39, 40, 84, 94], "sync_client": 84, "sync_function_1": 30, "sync_function_2": 30, "sync_tool_1": 30, "sync_tool_2": 30, "syncapicli": 4, "synchron": [30, 72], "syntax": 88, "system": [11, 28, 33, 35, 40, 41, 47, 69, 74, 77, 81, 84, 88, 90, 92, 98], "system_prompt": 26, "system_tim": 74, "t": [2, 6, 8, 13, 15, 22, 26, 27, 31, 34, 35, 40, 81, 88, 90, 92, 93, 98], "t0": 90, "t2d": [91, 92], "t_co": [40, 53], "tabl": [74, 91, 92], "take": [0, 2, 11, 12, 13, 15, 30, 69, 76, 81, 88, 90, 91, 93, 94, 98, 100], "taken": 94, "task": [0, 2, 7, 11, 12, 13, 15, 26, 28, 30, 32, 43, 51, 59, 60, 72, 74, 75, 77, 78, 79, 80, 88, 90, 91, 92, 94, 99, 103, 105], "task_context_str": 50, "task_desc_str": [6, 7, 20, 28, 35, 78, 88, 92, 103], "task_input_dataclass": 49, "task_output_dataclass": 49, "team": 100, "technic": [66, 77, 94], "techniqu": [72, 91], "technologi": [74, 77, 91], "temperatur": [31, 32, 84, 90, 92, 94], "templat": [6, 7, 20, 26, 28, 32, 35, 43, 66, 72, 90, 91, 92, 94, 100, 105], "template_doc": [26, 72], "tenni": 7, "tensor": [4, 25, 26, 70, 72, 105], "term": [8, 22, 92], "termin": 90, "terribl": 92, "test": [4, 6, 26, 27, 77, 91, 97, 98, 99, 100], "test_input_4": 37, "testcod": 66, "text": [2, 8, 13, 15, 22, 27, 29, 31, 35, 37, 38, 40, 51, 59, 62, 70, 74, 75, 76, 77, 79, 80, 84, 88, 90, 91, 98, 103], "text_splitt": [13, 76, 92, 93], "text_splitter_set": [76, 92], "textsearch": 91, "textsplitt": [2, 13, 15, 74, 91], "than": [6, 11, 20, 25, 26, 29, 51, 70, 71, 72, 75, 80, 90, 91, 93, 94, 100, 105], "thank": 40, "theater": 92, "thei": [26, 27, 34, 74, 80, 81, 90, 91, 92, 105], "them": [8, 22, 25, 26, 36, 37, 40, 44, 45, 66, 72, 74, 76, 80, 81, 88, 91, 94, 98, 100, 103, 105], "theme": 66, "themselv": 69, "thenlper": [4, 75, 84], "therefor": 90, "thi": [2, 3, 4, 6, 7, 9, 11, 13, 15, 17, 22, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 40, 42, 43, 44, 45, 47, 59, 62, 63, 66, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 97, 98, 100, 103, 105], "thing": [33, 80, 84], "think": [7, 98], "third": [62, 91], "those": 81, "though": [6, 84, 88, 91], "thought": [6, 7, 11, 20, 40, 70, 90, 94], "thoughtact": [6, 20], "three": [32, 75, 76, 78, 80, 81, 94, 98], "through": [40, 66, 74, 76, 77, 78, 90, 91, 92, 98, 103], "thu": [40, 75, 88, 103], "tiktoken": [2, 13, 15, 38], "time": [11, 30, 53, 69, 76, 80, 88, 90, 91, 92, 94, 95], "time_stamp": [56, 57, 78], "timeout": 31, "timestamp": [40, 62], "titl": [40, 74, 91, 92, 103], "to_dict": [8, 22, 25, 26, 34, 35, 36, 53, 64, 70, 72, 88, 91, 94], "to_dict_class": [25, 64], "to_embed": [59, 76], "to_json": [25, 40, 70, 94, 105], "to_json_exampl": 25, "to_json_obj": [25, 70], "to_json_signatur": [25, 70, 94, 105], "to_schema": [25, 70], "to_schema_str": [25, 70], "to_thread": 30, "to_yaml": [25, 40, 70, 74, 94, 105], "to_yaml_exampl": 25, "to_yaml_obj": [25, 70], "to_yaml_signatur": [25, 70, 105], "toctre": 66, "todai": [8, 22], "todo": [11, 81], "toembed": [1, 13, 14, 59, 74, 76, 92], "toembedderrespons": [76, 92], "togeth": [72, 74, 75, 76, 79, 88, 98], "token": [2, 6, 8, 13, 15, 20, 22, 25, 40, 41, 45, 74, 79, 81, 84, 88, 91, 92, 93, 94, 103, 105], "tokenlogprob": 40, "tokyo": 94, "tol": 31, "tolist": [4, 84], "too": [72, 74, 91, 92, 100], "took": 11, "tool": [0, 11, 12, 28, 30, 37, 39, 40, 69, 77, 78, 79, 80, 81, 88, 90, 94, 98, 100], "tool_1": 30, "tool_cal": 94, "tool_help": 90, "tool_manag": 94, "toolmanag": [39, 100], "toolnam": [11, 90], "tools_str": [28, 78, 88], "top": [8, 9, 10, 22, 26, 70, 72, 80, 90, 91, 92, 100], "top_k": [8, 9, 10, 22, 31, 36, 59, 74, 92], "top_k_docu": 74, "topic": 100, "torch": [4, 53, 61, 72, 100], "torchmetr": 77, "total": [8, 22, 44, 45, 77, 91, 94, 103], "total_docu": 91, "total_token": [40, 84], "tower": 78, "trace": [90, 99], "trace_generator_cal": [55, 60, 78], "trace_generator_error": 78, "trace_generator_st": [55, 78], "track": [40, 57, 72, 74, 78, 91, 98], "tradit": 92, "trag": 93, "train": [26, 32, 53, 72, 77, 79, 81, 88, 99, 103], "trainabl": 32, "trainable_param": 32, "trainer": 80, "transact": 77, "transfom": 74, "transform": [1, 4, 8, 13, 14, 22, 27, 40, 61, 74, 75, 76, 79, 84, 91, 92, 93, 97, 98], "transformed_item": [27, 74], "transformer_setup": [27, 74], "transformercli": 84, "transformerembedd": [4, 84], "transformerllm": 4, "transformerrerank": 4, "transformers_cli": [75, 84, 91], "transformerscli": [4, 10, 22, 75, 84, 91], "transit": 100, "translat": [77, 80], "transpar": [25, 70, 72, 80, 98], "treat": [92, 94], "treatment": 72, "trec": 99, "trec_data": 25, "trec_data_dict": 31, "trec_data_list": [25, 31], "trecdata": [25, 31, 70], "trecdata2": 70, "trecdatalist": [25, 31], "tredatalist": 25, "tree": 26, "trend": 92, "trim_block": 88, "tripl": [6, 20, 31, 94], "true": [0, 4, 6, 8, 12, 20, 22, 26, 27, 31, 34, 37, 40, 43, 51, 53, 55, 62, 70, 74, 75, 76, 77, 84, 88, 90, 91, 92, 94, 103, 105], "truncat": 84, "truth": [42, 43, 44, 45, 51, 74, 77, 91, 103], "try": [80, 84, 94], "tuna": 92, "tune": 92, "tupl": [26, 31, 42, 44, 45, 53, 61, 62], "turbo": [26, 31, 32, 72, 74, 81, 84, 91, 92, 94], "turn": [40, 74, 76, 90], "turn_db": [3, 17], "tutori": [66, 72, 77, 90, 92, 93, 103, 105], "two": [4, 6, 7, 11, 27, 53, 60, 62, 71, 74, 75, 78, 84, 90, 91, 94, 100], "txt": 66, "type": [2, 4, 6, 8, 9, 10, 11, 13, 15, 20, 22, 25, 26, 27, 29, 30, 31, 33, 34, 36, 41, 42, 43, 44, 45, 51, 53, 56, 59, 61, 62, 63, 64, 66, 70, 72, 74, 75, 76, 78, 84, 90, 92, 94, 103, 105], "type_hint": 31, "type_obj": 31, "typeerror": [2, 13, 15, 25, 34], "typevar": 91, "typic": [70, 72, 77, 78, 84, 98], "u": [27, 70, 74, 76, 88, 91, 94], "ultim": 80, "unabl": 90, "unbias": 77, "uncas": 77, "uncased_l5_no": 77, "uncontrol": 98, "undefin": [4, 33, 40, 84], "underli": 72, "understand": [4, 33, 47, 74, 77, 79, 84, 90, 91, 92, 94, 98], "unexpect": 77, "unifi": [25, 72, 74, 78], "union": [4, 8, 22, 31, 40, 44, 45, 84, 91], "uniqu": [26, 40, 57, 72, 80, 90, 98], "unit": [2, 13, 15, 40, 75, 92, 93, 94], "unknown": 94, "unless": 27, "unlik": [90, 92], "unmodifi": 76, "unsupport": [31, 94], "until": 88, "up": [0, 9, 12, 22, 31, 40, 47, 66, 70, 75, 76, 79, 80, 90, 91, 92, 96, 98, 99, 100, 105], "upcom": 72, "updat": [34, 35, 49, 57, 66, 90, 94], "update_default_model_kwarg": [29, 32], "update_dialog_turn": 40, "update_paramet": [49, 51], "update_prompt_kwarg": 35, "update_valu": 34, "us": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 43, 49, 50, 51, 53, 57, 59, 60, 61, 62, 63, 66, 69, 70, 72, 74, 76, 77, 78, 79, 80, 81, 88, 90, 92, 94, 97, 98, 99, 100, 103, 105], "usag": [2, 6, 11, 13, 15, 20, 40, 66, 74, 76, 84, 90, 91], "use_cas": [98, 99, 103], "use_llm_as_fallback": [0, 12], "use_token": [8, 22, 91], "user": [0, 3, 6, 8, 9, 11, 12, 17, 18, 20, 22, 26, 28, 29, 31, 32, 40, 51, 66, 69, 70, 72, 74, 75, 78, 79, 80, 81, 84, 88, 90, 91, 92, 94, 100], "user_id": [40, 74], "user_queri": [40, 74], "user_query_timestamp": [40, 74], "user_tim": 74, "userqueri": [40, 74], "usual": 78, "util": [2, 13, 15, 18, 40, 53, 72, 75, 77, 79, 84, 90, 92, 93, 97, 100], "uuid": 40, "uuid4": 40, "v": [11, 31, 80], "v3": 91, "valid": [6, 11, 20, 31, 37, 94], "validate_data": 31, "valu": [6, 8, 22, 25, 31, 34, 37, 40, 42, 44, 45, 50, 61, 64, 70, 94], "valueerror": [2, 13, 15, 31, 84], "varaibl": 88, "vari": [7, 81], "variabl": [31, 32, 35, 40, 75, 84, 88, 94, 96, 98], "varieti": 77, "variou": [24, 31, 47, 66, 72, 78, 90, 91, 95, 103, 104], "ve": 105, "vector": [2, 13, 15, 40, 59, 74, 75, 76, 91, 92, 93], "vectorizer_set": [76, 92], "vectorstor": 92, "vendor": 98, "verbos": 70, "veri": [8, 22, 93, 98], "verif": 90, "version": [27, 60, 62, 66, 90, 91, 97], "via": [29, 30, 33, 34, 39, 69, 70, 72, 75, 76, 77, 79, 80, 84, 92, 94], "video": 91, "view": [66, 94], "visit": [78, 90], "visual": [72, 75, 88, 100], "vote": 77, "vouch": 98, "wa": [25, 81, 92, 105], "wai": [4, 7, 25, 27, 39, 70, 72, 74, 75, 84, 91, 92, 93, 94, 98], "walk": 103, "wand": 92, "want": [6, 20, 25, 29, 40, 70, 75, 80, 88, 91, 94, 98, 100, 105], "warn": [32, 62, 66], "wast": [74, 91], "watch": [76, 92], "water": [72, 78, 80], "we": [2, 11, 13, 15, 18, 25, 26, 27, 31, 32, 33, 35, 37, 38, 40, 57, 60, 66, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 84, 88, 90, 91, 92, 93, 94, 98, 100, 103, 105], "weather": 94, "web": [66, 77], "weight": [8, 22, 26, 49, 72], "weights_per_class": [49, 53], "welcom": [47, 92], "well": [6, 26, 27, 69, 71, 74, 80, 88, 90, 91, 105], "what": [9, 11, 22, 25, 31, 69, 70, 72, 74, 75, 76, 78, 84, 88, 91, 92, 93, 94, 105], "when": [1, 8, 11, 14, 22, 25, 27, 29, 34, 35, 40, 49, 61, 74, 75, 76, 77, 78, 81, 88, 90, 91, 92, 93, 94, 98, 105], "whenev": 84, "where": [2, 13, 15, 40, 62, 74, 78, 80, 81, 88, 91, 92, 94, 98], "whether": [0, 8, 12, 22, 27, 31, 36, 75], "which": [0, 2, 4, 8, 9, 12, 13, 15, 22, 25, 27, 29, 30, 33, 40, 51, 53, 62, 69, 70, 72, 74, 75, 77, 78, 79, 81, 88, 90, 91, 92, 93, 94, 98, 103], "while": [31, 70, 74, 79, 80, 91], "white": 62, "who": [6, 20, 36, 79, 81, 91, 100], "whole": [26, 40, 79, 91, 103], "why": [11, 40, 72, 74, 75, 79, 84, 91, 98, 105], "wide": [70, 77, 80, 91, 92], "wider": 100, "wiki": [8, 22, 90, 91], "wikidata": 88, "wikipedia": [8, 22, 88, 90, 91], "win": 105, "wind": [74, 91], "window": [2, 13, 15, 62, 91, 92, 93], "within": [25, 26, 31, 66, 69, 79, 92, 100], "without": [7, 9, 22, 25, 30, 31, 37, 40, 62, 74, 81, 88, 91, 92, 94, 98, 100], "won": [40, 81, 93], "word": [2, 8, 13, 15, 22, 38, 59, 74, 76, 77, 81, 91, 92, 93], "work": [2, 13, 15, 26, 27, 30, 31, 72, 74, 76, 78, 79, 88, 91, 92, 105], "workflow": [79, 90], "world": [2, 8, 13, 15, 22, 27, 40, 74, 78, 80, 81, 92, 93, 94, 98, 100], "world2": 27, "world3": 27, "world4": 27, "wors": 78, "would": [62, 72, 76, 78, 88, 90, 91, 92], "wrap": [1, 13, 14, 26, 30, 31, 38, 70, 94], "wrapper": 94, "write": [4, 31, 60, 62, 67, 68, 72, 77, 84, 88, 94, 98], "write_list_to_jsonl": 60, "written": 60, "www": [8, 22, 91], "x": [8, 22, 26, 31, 53, 72, 88, 91, 92, 94, 100], "x0c": 92, "xb": 92, "xiaoyi": 93, "xq": 92, "xx": 94, "y": [31, 94], "yaml": [6, 20, 25, 31, 37, 39, 40, 70, 94, 103, 105], "yaml_definit": [39, 94], "yaml_format_instruct": [6, 20], "yaml_obj": 37, "yaml_output_format": [6, 20], "yaml_output_format_templ": [6, 20], "yaml_pars": [6, 20, 37], "yaml_signatur": 70, "yaml_str": [6, 20, 25, 31, 37, 70], "yamloutputpars": [6, 20], "yamlpars": [6, 20, 37], "yang": 77, "ye": [43, 91, 98], "year": [44, 45], "yellow": 62, "yet": [4, 32], "yield": [8, 22, 26, 92], "yin": [70, 72, 74, 75, 78, 84, 88, 91, 94], "yml": 31, "you": [1, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 20, 22, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43, 59, 62, 66, 70, 72, 74, 75, 76, 77, 78, 79, 81, 84, 88, 91, 92, 93, 94, 95, 97, 98, 100, 103, 105], "your": [2, 6, 8, 11, 15, 20, 22, 25, 26, 32, 40, 43, 47, 59, 62, 66, 70, 72, 74, 75, 76, 77, 78, 80, 84, 91, 92, 93, 94, 97, 98, 103, 105], "your_api_kei": 59, "your_api_key_if_you_use_anthrop": 97, "your_api_key_if_you_use_coher": 97, "your_api_key_if_you_use_googl": 97, "your_api_key_if_you_use_groq": 97, "your_api_key_if_you_use_hf": 97, "your_api_key_if_you_use_openai": 97, "yourself": [59, 84, 91, 97], "yupeng": 77, "zephyr": 4, "zero": [8, 22, 91, 99], "zip": 92, "zishan": 77}, "titles": ["components.agent.react", "components.data_process.data_components", "components.data_process.text_splitter", "components.memory.memory", "components.model_client.transformers_client", "components.model_client.utils", "components.output_parsers.outputs", "components.reasoning.chain_of_thought", "components.retriever.bm25_retriever", "components.retriever.llm_retriever", "components.retriever.reranker_retriever", "DEFAULT_REACT_AGENT_SYSTEM_PROMPT", "components.agent", "components.data_process", "components.data_process.data_components", "components.data_process.text_splitter", "components.memory", "components.memory.memory", "components.model_client", "components.model_client.utils", "components.output_parsers", "components.reasoning", "components.retriever", "components.retriever.postgres_retriever", "Components", "core.base_data_class", "core.component", "core.db", "core.default_prompt_template", "core.embedder", "core.func_tool", "core.functional", "core.generator", "core.model_client", "core.parameter", "core.prompt_builder", "core.retriever", "core.string_parser", "core.tokenizer", "core.tool_manager", "core.types", "Core", "eval.answer_match_acc", "eval.llm_as_judge", "eval.retriever_recall", "eval.retriever_relevance", "Evaluation", "API Reference", "Optimizer", "optim.few_shot_optimizer", "optim.llm_augment", "optim.llm_optimizer", "optim.optimizer", "optim.sampler", "Tracing", "tracing.decorators", "tracing.generator_call_logger", "tracing.generator_state_logger", "Utils", "utils.config", "utils.file_io", "utils.lazy_import", "utils.logger", "utils.registry", "utils.serialization", "utils.setup_env", "Contribute to Document", "LightRAG Contribution Guide", "For Contributors", "Agent", "DataClass", "Class Hierarchy", "Component", "Data Pipeline", "Data & RAG", "Embedder", "Embedder", "LLM Evaluation", "Generator", "Tutorials", "Design Philosophy", "Introduction", "Logging", "Logging & Tracing", "ModelClient", "Optimizer", "OutputParser", "Parameter", "Prompt", "RAG application", "ReAct Agent", "Retriever", "Retriever", "Text Splitter", "Function calls", "Community", "Get Started", "Installation", "Introduction", "LightRAG in 10 minutes", "Introduction", "Resources", "Resources", "Evaluating a RAG Pipeline", "Use Cases", "Introduction to BaseDataClass", "<no title>"], "titleterms": {"": 90, "1": [80, 92, 94, 97], "10": 99, "2": [80, 92, 94, 97], "3": [80, 92, 94, 97], "4": 97, "For": 68, "In": 91, "With": 91, "action": [70, 75, 91, 94], "ad": 66, "agent": [0, 12, 24, 69, 79, 90], "an": 90, "answer_match_acc": 42, "api": [47, 69, 70, 72, 74, 75, 78, 84, 88, 91, 94, 97], "applat": 81, "applic": [88, 89, 98], "author": [70, 72, 74, 75, 77, 78, 84, 88, 91, 93, 94], "base": [79, 91], "base_data_class": 25, "basedataclass": 105, "batchembedd": 75, "bm25_retriev": 8, "bm25retriev": 91, "both": 100, "build": [66, 79, 80], "call": 94, "case": 104, "chain_of_thought": 7, "chang": 66, "chat": 81, "chunk": 93, "class": [71, 79, 88, 91], "client": [24, 41], "cloud": 74, "code": 66, "commit": 66, "commun": 95, "complet": 81, "compon": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 41, 47, 72, 79], "config": 59, "configur": 79, "context": [88, 91], "contribut": [66, 67], "contributor": 68, "control": 100, "core": [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 47], "custom": 93, "data": [24, 41, 70, 73, 74, 79, 81, 88, 91], "data_compon": [1, 14], "data_process": [1, 2, 13, 14, 15], "databas": [74, 91], "dataclass": 70, "dataset": [70, 79], "db": 27, "decor": [54, 55], "deep": [80, 90], "default": 88, "default_prompt_templ": 28, "default_react_agent_system_prompt": 11, "describ": 70, "design": [70, 80, 88, 91, 94], "detail": 93, "dialogturn": 74, "directli": 84, "dive": 90, "do": 81, "docstr": 66, "document": [66, 74, 92, 93], "doe": 93, "embed": 41, "embedd": [29, 75, 76, 92], "embedderoutput": 75, "end": [94, 98], "environ": 97, "essenti": 79, "eval": [42, 43, 44, 45], "evalu": [46, 47, 77, 103], "evaul": 79, "exampl": [70, 93], "experiment": 78, "faissretriev": 91, "few_shot_optim": 49, "file": 74, "file_io": 60, "flow": [81, 88], "format": [70, 94], "foundat": 98, "from": 70, "func_tool": 30, "funcompon": 72, "function": [31, 94], "functionexpress": 94, "functiontool": 94, "gener": [32, 41, 78], "generator_call_logg": 56, "generator_state_logg": 57, "generatorinact": 78, "generatoroutput": 78, "get": 96, "graph": 74, "guid": 67, "handl": 41, "hierarchi": 71, "how": [77, 93, 98], "i": [90, 98], "implement": 90, "infer": 84, "instal": 97, "instanc": 70, "instead": [81, 91], "integr": 93, "introduct": [81, 90, 98, 100, 105], "jinja2": 88, "kei": 97, "lazy_import": 61, "lightrag": [67, 81, 90, 92, 94, 97, 98, 99], "llm": [70, 77, 80, 81, 88, 91], "llm_as_judg": 43, "llm_augment": 50, "llm_optim": 51, "llm_retriev": 9, "load": [70, 97], "local": [74, 75], "localdb": 91, "log": [79, 82, 83], "logger": [54, 58, 62], "memori": [3, 16, 17, 91], "minut": 99, "model": [24, 41, 74, 75, 84], "model_cli": [4, 5, 18, 19, 33], "modelcli": 84, "need": [81, 90], "openai": 75, "optim": [47, 48, 49, 50, 51, 52, 53, 79, 80, 85], "option": [92, 97], "other": 93, "our": 80, "output": [6, 24, 75, 94], "output_pars": [6, 20], "outputpars": 86, "over": 80, "overview": [24, 41, 46, 54, 58, 93], "packag": 97, "parallel": 94, "paramet": [34, 41, 87], "pars": 70, "parser": 24, "part": 98, "pattern": 91, "philosophi": 80, "pipelin": [73, 74, 79, 103], "postgres_retriev": 23, "postgresretriev": 91, "practic": 80, "previou": 81, "principl": 80, "process": 24, "processor": 75, "product": 100, "prompt": [41, 88], "prompt_build": 35, "protocol": 84, "qualiti": 80, "quantiti": 80, "quick": 94, "rag": [74, 79, 89, 103], "react": [0, 90], "read": 74, "reason": [7, 21], "refer": [47, 69, 70, 72, 74, 75, 78, 84, 88, 91, 94], "registri": 63, "rerank": 91, "reranker_retriev": 10, "research": 100, "resourc": [81, 101, 102], "retriev": [8, 9, 10, 22, 23, 24, 36, 41, 91, 92], "retriever_recal": 44, "retriever_relev": 45, "sampler": 53, "scope": 94, "score": 91, "sdk": 84, "sequenti": 72, "serial": [58, 64], "set": 97, "setup": 66, "setup_env": [58, 65], "show": 70, "showmanship": 80, "simplic": 100, "souc": 66, "split": 92, "splitter": [92, 93], "standard": 66, "start": [96, 98], "storag": 79, "string": 70, "string_pars": 37, "structur": [81, 98], "submodul": [12, 13, 16, 18, 20, 21, 22], "suggest": 74, "templat": [41, 88], "test": 66, "text": [81, 92, 93], "text_splitt": [2, 15], "textsplitt": 93, "threshold": 91, "tip": 93, "togeth": 91, "token": 38, "tool_manag": 39, "toolmanag": 94, "top_k": 91, "trace": [47, 54, 55, 56, 57, 78, 79, 83], "train": 78, "trainer": 79, "transformers_cli": 4, "tutori": 79, "type": [40, 91, 93], "understand": 80, "unit": 100, "up": 97, "us": [75, 84, 91, 93, 104], "util": [5, 19, 41, 47, 58, 59, 60, 61, 62, 63, 64, 65], "variabl": 97, "walkthrough": 94, "we": 81, "what": [77, 90, 98], "where": 77, "why": [81, 88, 90], "work": [70, 93], "workflow": 80, "write": [66, 74], "you": 90}}) \ No newline at end of file

luW2ET_QH(Nm1X=vf^6Whd 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 literal 0 HcmV?d00001 diff --git a/_static/images/dataclass.png b/_static/images/dataclass.png new file mode 100644 index 0000000000000000000000000000000000000000..33f4c4836d6b9ef64593691d82d7b2818480e31b GIT binary patch literal 21499 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 literal 0 HcmV?d00001 diff --git a/developer_notes/base_data_class.html b/developer_notes/base_data_class.html index 49e548e75..7dd3725b8 100644 --- a/developer_notes/base_data_class.html +++ b/developer_notes/base_data_class.html @@ -471,7 +471,7 @@ In LLM applications, data constantly needs to interact with LLMs in the form of strings via prompt and be parsed back to structured data from LLMs’ text prediction. core.base_data_class.DataClass is designed to ease the data interaction with LLMs via prompt(input) and text prediction(output).