From 9e77a30658312c6edb872174cf9f8e39a13d092b Mon Sep 17 00:00:00 2001 From: narawat Date: Mon, 23 Oct 2023 05:49:57 +0000 Subject: [PATCH] add ability to specify python version --- core | Bin 448352256 -> 448352256 bytes previousVersion/0.0.2/CondaPkg.toml | 7 + previousVersion/0.0.2/Manifest.toml | 299 +++++++++++++++++++++++++ previousVersion/0.0.2/Project.toml | 11 + previousVersion/0.0.2/src/ChatAgent.jl | 92 ++++++++ previousVersion/0.0.2/src/interface.jl | 214 ++++++++++++++++++ src/interface.jl | 7 +- 7 files changed, 629 insertions(+), 1 deletion(-) create mode 100644 previousVersion/0.0.2/CondaPkg.toml create mode 100644 previousVersion/0.0.2/Manifest.toml create mode 100644 previousVersion/0.0.2/Project.toml create mode 100644 previousVersion/0.0.2/src/ChatAgent.jl create mode 100644 previousVersion/0.0.2/src/interface.jl diff --git a/core b/core index fd9e5f54f2707e458c3b43d21146f91029897c2a..2092e8dde7563b3b61237f29c4ef57b4c321bdf0 100644 GIT binary patch delta 550552 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 z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ z0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq z7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX= zZ~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^0T*xq7jOX=Z~+%^ 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 SU@!JzKMn+r1@jk39Qr?+%jN&@ zo~@J5th4XTbiPSIjNu74wS)#lm7yvA9@LEG?E5%ZnAo%3@Wqx>!@JE!Gw5 ziw(ubq9~3pPAE<+HWeooCl{Lw6{i%Z7F&wbiqnfTiZhF|inEJzigSzeit~#LiVKU2 zii?X&imk=A;?m->;_~8(;>zNx;_Bj>;@aZ6;`-u-;>O~p;^yL(;@0A};`ZW>;?Cl( z;_l*};@;xE;{IZL@j&rl@lf$_@ksG#@mTSA@kH@t@l^42@l5e-@m%qI@j~%p@lx?} z@k;S(@mleEv7>mSc(Zt`c)NI~c(-`3c)$3d_^|k>__+9___X+}*japDd{OKwzAU~f zzAnBgzAe5hzAttcKNLR}KNUY0zZAa~zZJh1e-wWfe-(ch{}lfgdo~3M0)>I1KyjcX zP#P!;lm{vWDif$|pmKrA2dWULVxUTaDhH|(sA`~UfvN|p5vXRM{{^ZQsCJ+_f%XYh zH&DGm^#e5s)G$z^K#c=63Dh)Dvp~%QwFuNQP^&<#1GNdXZ=n4GwGGrRQ2Rg~0(A`3 zDNyG?`v>Y0sB55Zfer}NJy4H8Jp=U$)H_h0Kz#%C3)DZ*fItHS4GJ_k(2zhw0}Tr_ zJkW?h2L?JQ(8xfe0*wwdCeYYG;{uHjG$GK$K$8MZ4m2gu!GR75G&Rt)K+^-w2y|$m z!vY;1=!if^20ALx(SeQ$bZnrRfo27o9cWIV;{weMG%wKnKnnsb474cF;y_CREe*6R z(DFbl0<8?RD$wdcYXYqev@X#4KpO&W3{(UP@sncJrd~AK#v7_JkS$?o(%Lp6X@AM&joru&pw;R4D?r^zXSaf z=-)tlf=!`KdwBr~^WE57i@7&rrQW^$yi1RNqkjLiGcmxfuRlxH8RwwP@_YQ2{ksF zaHvBfBK0g*rdf1)(ksby28`LtPST zYp89ZE)8{AsLMlL5$eiNSB1Jd)HR{54Ru|p>qFfT>c&tvg}OP^Eun4=bz7+0L){VT z&QN!Sx;xZ8q3#WJU#R;-Z4dQ8s0Twm6zbtnkA!+O)MKF@5A{T-Cqq3I>giC=gnBmA zbD^FO^+Ko@L%kI0eEo4h1wbF^H5)e+7;@{P+x`mI@C9zz76$VsP9AV4)sH*A4B~V>gQ0ug!(nq zZ=rq<^+%{bL;V%%?@<4Q`Zv^`a8slpQWz3~SxBlU>X zGg7Zey(9IB)HhPUNc|%Xh%_+Lph$xw4T&@~(y&OwBaMi3V5Ea0jf^xZ(&$KIB8`nS zF4Fi&6CzEFG%3>LNK+ym9O;lqQzK1_G(FOcNQXu`EYjhTj)-(*q@yAo9qE`z$3~hN zX;!4!k>*4?F4Ejc^CHcUv>?*LNQ)vZjmsd> zv?0>QNJXUMBb^ZG#7LVWofPThNSh-m(kYQnjkG1wX^~EkbVj5zBb^oL>`3QCIycgJ zkKT@>l!NS8#~8fjakOCwzt>GDWdM7lE4RgtcabWNmdBV8Bi`balKx-rsC zk#3H3OQc&P-4^NgNOwfKGtym=?v8X%qA^@3MS3{WBat4B^jM_F zBRvu6$w*H{dOFfGk)Dn8T%_kCy%6ceNH0ZtInpbUUXAoxq}LFr4G zM0z*Udy(Fc^g*N#BYhO<<4B)G`ZUsKk#HA2# zBmEHR$4Ea#`Z>}sk$#QzTcqD3{SoQUNPk88JJLUq{*AOJ+7v5@6~>BU#j%oDX{;<( z9;+0qOsul8%Ec-lt3s@bu`0!?9IHyKs-tzxx~)h5=yvG$AAHdeb>?PGO_)iGA5Se;|- zAFE5OuCcnsIv`f}SUqC(jMXbv?^u0e^^MgpR{vN7VhxNnDAwRuLt+h$H7wTfSR-N` z80(-|BV&z!?^q$2um~v9V^xniXqytU0lci#0dayjb&NEr_)+)}mO8V=albG}f|M%VVvG zwKCSKSgT{LiM2M?x>)ODZHTooRuSv?SSQ3fG1jJ7C&fBB*5+7>bxN#LV{M6bTCCG! zoe}HISZBpLJJva|&W&|mtn*`C5bMHN7sa|b)+MpF#@ZI^(pZ)u%R#kxP%_E-3A7wh?0FT{E=)=RNoj`d2cS7W^v z>-AVWV!aXT%~)^6dOOxTvEGgKUaa?HeGu!zSRcjuIMyezK8^KRtevqwkM%{YU9rB5 z^;N8|V|^3r+gRVl`aag~SU<%2G1gD9evb7^tY2gO7VGy|f5iGT)?cyyj`dHhe`D>5 zHzf)Zg^8j>aiSzqnkY+@Cn_Z>lc;Q>a*4_(s*tE+qDqM>C#sUDYNBe1swb+EsAi)7 zC90LEcA`3o_DNJXQN2X<6E#TGFj1pKjT1FV)HG4EM9mYmNYpY>t3<66wMn#ZqWu!J zP1G(?`$QcQbxhPLQRhVaC+d=@Yocz64oK8JQIAAD6ZJ~eJ5irReG~Od)IZUHL<18I zN;EjpkVHch4NEjU(TGF`CORn5$V8(OjZQQs(bz=e5{*wZA<@J{lM+o%G$ql&i4I9L zHPN(0(-X}|bZDZ(5*?oCh(t#wIx5l8iH=EhY@(ToW+j@PXilQz63tCCFVXx&3lc3% zv?$TyL`xDaO|&f0@bV;JEiMA!W zG|^>=E>CntqAL?!mFVh3*Ce_&(RGQgPjo|~8x!4>=;lPXB)T=xZHaDAbVs5)6Wx{Q z?nL(_x;N2%iSAFdJ<$V+9!&I5qK6YblIYPyk0p9M(G!WDO!QQurxQJs=-EWiC3-&5 z3yEG#^irai6TOn?)kLo)dOgvOL~kT|Gtpa#-cIyRqIVO$m+1XOA0+xP(MO3sPV`Bl zPZNEXXlJ6&6Md0rSE4TyeU<3zMBgO(Hqm#9zE89}(GQ7!O!QNtpA-F(=+{KQCHg(l zABp}<^jD(46aACu-$Z+oO{s!ZVX7!qoGM9`rpi*~sYZxj^s+sD4scNOFovKc%eNxp;RWDWjR1H!!Ow}k=<5W#jHBHqlRr6FW zQngIgDpl)LZBp%15$NQ)gx8URJ~I5 zPSqz>-&Fll^-nb*)xcDPQVmWuB-PMV!%_`TH6qo4sSZjtGS#S5qf?DZH8$0_RO3@k zNHsClq*RkrO-XfdszXvuO*Jjm^i(ra9h&N}REMWJBGr+pj!JcOs$)_en`&mNS*d2H znv?3dRC80!OEo{$f>aArElRaG)sj?8Q!PuiJk^R+D^smXwK~dI7CrMf!RHL0#mbzQ3KQ{9m2##A?@x;fP? zscubmTdLbr-I40fRClGiJJmg@?oD-Hs{2!IPxU~m2U9(i>fuz6qfW2qib^+c*C zQ$3aH=~U08dN$Q_sh&^uLaG;2y_D+ZRIj9ZHPvgWUQe|n)f=haO!Zc(w^O~7>fKcD zrFuWr2dO?x^--#iQ+<-^(^Q|O+L`L}R9~dpmFmk>U#0pw)i?^Eqg^+T#3 zQ~i|c=TyI>`Zd*WseVuON2)(l{gvwPRR5&GwOm?_E>XG$`qnX*iIrc$Od znaXA=m#KWF3YjWqs+6g6rYf1LW~!E{dZrqgYG(RhrdpY5XR4EFpGTH&ee%{WA^7G%(YkOoKBG$uu<6uuQ`5xoQGfm4hJ=2U#hh{n~)8Uzp$aG|; zqcR6lE%W}2C4R;JmR=43i9)7(t+GR@DlAk)H3i!v?Fv?SBgOv^GY&$J@b%1o;= ztiXDVa{qv?bGNnNH7iMy4|} zot5eAOy^`eH`95U&d+o~rVBG&lHbXHGd+;$!AuWj zdN|V~nI6sbSfG}C99c4qoK(-)a`W%@GHSDC)f z^i8I3Gkuro`%Jqt{gCO$Oh0A%Inythe$Dh-rr$IDk?GG&e`WeR(?6O1&9o=mlq<*; z=8AH~xsqIIt}IuctCXuuuClqxWqE)gV{HT#a%y&ebGW(_GDRHP6)|SIb#AXoQXJ#zKT)hk!;Tzzu&&DAeg|6Bud4a_wt*Wg@3 zat+NjEZ6W{BXS*>>!4gCbB)S1I@g$7V{?tmH9psbToZFm$~8IHlw1erIwaTBT+?z* z&ov|0p}7vrb$G5LavhoLs9Z%v?Y<+?c6CAqfd+Lr6mT$km# zJl7SuuFQ2+uB&rhlk3`C*X6oC*A2OD%ym<)n{(Zg>(*Si<+?rB9l7qzbyu#tbKR5c z-dy+PxLXLCK5>-k(S-SuL*FsX=F*GN*Z0#n3Bep zG_IuaB~2)4Vo8%qnq1P9k`6BEkdmgBG_9oRrR_6Hqq=R~HfK-S-PQ$Mzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u z1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-d zT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+if zzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u1zf-dT)+ifzy(~u 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 diff --git a/previousVersion/0.0.2/CondaPkg.toml b/previousVersion/0.0.2/CondaPkg.toml new file mode 100644 index 0000000..f61a833 --- /dev/null +++ b/previousVersion/0.0.2/CondaPkg.toml @@ -0,0 +1,7 @@ +channels = ["anaconda", "conda-forge", "pytorch"] + +[deps] +python = ">=3.8,<3.11" + +[pip.deps] +langchain = "" diff --git a/previousVersion/0.0.2/Manifest.toml b/previousVersion/0.0.2/Manifest.toml new file mode 100644 index 0000000..bd46251 --- /dev/null +++ b/previousVersion/0.0.2/Manifest.toml @@ -0,0 +1,299 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.9.3" +manifest_format = "2.0" +project_hash = "1af8dd5b4b143461cea0c3d78c642fd87183b648" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Compat]] +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.10.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+0" + +[[deps.CondaPkg]] +deps = ["JSON3", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "TOML"] +git-tree-sha1 = "bbd0c518cb11acc6707190199025dbc34b6c7ca7" +uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" +version = "0.2.21" + +[[deps.DataAPI]] +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.15.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.15" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON3]] +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "95220473901735a0f4df9d1ca5b171b568b2daa3" +uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +version = "1.13.2" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.3" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "7.84.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.10.2+0" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.11" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+0" + +[[deps.MicroMamba]] +deps = ["Pkg", "Scratch", "micromamba_jll"] +git-tree-sha1 = "011cab361eae7bcd7d278f0a7a00ff9c69000c51" +uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" +version = "0.1.14" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2022.10.11" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.21+4" + +[[deps.OrderedCollections]] +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.2" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.7.2" + +[[deps.Pidfile]] +deps = ["FileWatching", "Test"] +git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" +uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" +version = "1.3.0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.9.2" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.PythonCall]] +deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "REPL", "Requires", "Serialization", "Tables", "UnsafePointers"] +git-tree-sha1 = "70af6bdbde63d7d0a4ea99f3e890ebdb55e9d464" +uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +version = "0.9.14" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.0" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.StructTypes]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70" +uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +version = "1.10.0" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnsafePointers]] +git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" +uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" +version = "1.0.0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+0" + +[[deps.micromamba_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "66d07957bcf7e4930d933195aed484078dd8cbb5" +uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" +version = "1.4.9+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.48.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+0" diff --git a/previousVersion/0.0.2/Project.toml b/previousVersion/0.0.2/Project.toml new file mode 100644 index 0000000..71d8129 --- /dev/null +++ b/previousVersion/0.0.2/Project.toml @@ -0,0 +1,11 @@ +name = "ChatAgent" +uuid = "cff63402-b71f-455f-804d-24489fc61e5e" +authors = ["narawat "] +version = "0.1.0" + +[deps] +CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" +DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" diff --git a/previousVersion/0.0.2/src/ChatAgent.jl b/previousVersion/0.0.2/src/ChatAgent.jl new file mode 100644 index 0000000..bcc89f3 --- /dev/null +++ b/previousVersion/0.0.2/src/ChatAgent.jl @@ -0,0 +1,92 @@ +module ChatAgent + + # export agent, addNewMessage, clearMessage + + + """ Order by dependencies of each file. The 1st included file must not depend on any other + files and each file can only depend on the file included before it. + """ + + include("interface.jl") + using .interface + + + #------------------------------------------------------------------------------------------------100 + + """ version 0.0.1 + Todo: + [] add chat mechanism + + Change from version: 0.0.0 + - + + """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +end # module ChatAgent diff --git a/previousVersion/0.0.2/src/interface.jl b/previousVersion/0.0.2/src/interface.jl new file mode 100644 index 0000000..fd1ab2f --- /dev/null +++ b/previousVersion/0.0.2/src/interface.jl @@ -0,0 +1,214 @@ +module interface + + +export agent, addNewMessage, clearMessage, removeLatestMsg, generatePrompt_tokenPrefix, + generatePrompt_tokenSuffix + +using JSON3, DataStructures, Dates, PythonCall + +const py_agents = PythonCall.pynew() +const py_llms = PythonCall.pynew() +function __init__() + # PythonCall.pycopy!(py_cv2, pyimport("cv2")) + + # equivalent to from urllib.request import urlopen in python + PythonCall.pycopy!(py_agents, pyimport("langchain.agents")) + PythonCall.pycopy!(py_llms, pyimport("langchain.llms")) +end + +#------------------------------------------------------------------------------------------------100 + + + +@kwdef mutable struct agent + availableRole=["system", "user", "assistant"] + maxUserMsg::Int= 10 + llmAIRequestTopic_openblas = "llm/openblas/request" + llmAIRequestTopic_gpu = "llm/api/v0.0.1/gpu/request" + self_llmReceiveTopic = "chatbothub/llm/respond" + + """ Dict(Role=> Content) ; Role can be system, user, assistant + Example: + messages=[ + Dict(:role=>"system", :content=> "You are a helpful assistant."), + Dict(:role=>"assistant", :content=> "How may I help you"), + Dict(:role=>"user", :content=> "Hello, how are you"), + ] + """ + # Ref: https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/discussions/3 + # + messages=[Dict(:role=>"system", :content=> "You are a helpful assistant.", :timestamp=> Dates.now()),] +end + +@kwdef mutable struct agentLangchain + availableRole=["system", "user", "assistant"] + maxUserMsg::Int= 10 + llmAIRequestTopic_openblas = "llm/openblas/request" + llmAIRequestTopic_gpu = "llm/api/v0.0.1/gpu/request" + self_llmReceiveTopic = "chatbothub/llm/respond" + + """ Dict(Role=> Content) ; Role can be system, user, assistant + Example: + messages=[ + Dict(:role=>"system", :content=> "You are a helpful assistant."), + Dict(:role=>"assistant", :content=> "How may I help you"), + Dict(:role=>"user", :content=> "Hello, how are you"), + ] + """ + # Ref: https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/discussions/3 + # + messages=[Dict(:role=>"system", :content=> "You are a helpful assistant.", :timestamp=> Dates.now()),] +end + +""" + add new message to agent +# Example +```jldoctest +julia> addNewMessage(agent1, "user", "Where should I go to buy snacks") +```` +""" +function addNewMessage(a::agent, role::String, content::String) + if role ∉ a.availableRole # guard against typo + error("role is not in agent.availableRole") + end + + # check whether user messages exceed limit + userMsg = 0 + for i in a.messages + if i[:role] == "user" + userMsg += 1 + end + end + messageleft = 0 + + if userMsg > a.maxUserMsg # delete all conversation + clearMessage(a) + messageleft = a.maxUserMsg + else + userMsg += 1 + d = Dict(:role=> role, :content=> content, :timestamp=> Dates.now()) + push!(a.messages, d) + messageleft = a.maxUserMsg - userMsg + end + + return messageleft +end + + +function clearMessage(a::agent) + for i in eachindex(a.messages) + if length(a.messages) > 1 # system instruction will NOT be deleted + pop!(a.messages) + else + break + end + end +end + +function removeLatestMsg(a::agent) + if length(a.messages) > 1 + pop!(a.messages) + end +end + +function generatePrompt_tokenSuffix(a::agent; + userToken::String="[/INST]", assistantToken="[INST]", + systemToken="[INST]<> content <>") + prompt = nothing + for msg in a.messages + role = msg[:role] + content = msg[:content] + + if role == "system" + prompt = replace(systemToken, "content" => content) * " " + elseif role == "user" + prompt *= " " * content * " " * userToken + elseif role == "assistant" + prompt *= " " * content * " " * assistantToken + else + error("undefied condition role = $role") + end + end + + return prompt +end + +function generatePrompt_tokenPrefix(a::agent; + userToken::String="Q:", assistantToken="A:", + systemToken="[INST]<> content <>") + prompt = nothing + for msg in a.messages + role = msg[:role] + content = msg[:content] + + if role == "system" + prompt = replace(systemToken, "content" => content) * " " + elseif role == "user" + prompt *= userToken * " " * content * " " + elseif role == "assistant" + prompt *= assistantToken * " " * content * " " + else + error("undefied condition role = $role") + end + end + + return prompt +end + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +end # module \ No newline at end of file diff --git a/src/interface.jl b/src/interface.jl index fd1ab2f..01eebe5 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -4,8 +4,13 @@ module interface export agent, addNewMessage, clearMessage, removeLatestMsg, generatePrompt_tokenPrefix, generatePrompt_tokenSuffix -using JSON3, DataStructures, Dates, PythonCall +using JSON3, DataStructures, Dates +# Ref: https://github.com/JuliaPy/PythonCall.jl/issues/252 +ENV["JULIA_CONDAPKG_BACKEND"] = "Null" +systemPython = split(read(`which python`, String), "\n")[1] +ENV["JULIA_PYTHONCALL_EXE"] = systemPython # find python location with $> which python ex. raw"/root/conda/bin/python" +using PythonCall const py_agents = PythonCall.pynew() const py_llms = PythonCall.pynew() function __init__()