From b457511bde7d4d5ce19df4f16b2108e8fb089269 Mon Sep 17 00:00:00 2001 From: Kye Date: Sat, 25 Nov 2023 19:02:43 -0800 Subject: [PATCH] [DEMO][Swarm of MultiModalityRobots][sequential_workflow with images --- .../assembly_line.jpg | Bin 0 -> 41905 bytes .../swarm_of_mma_manufacturing/flow_iter.py | 129 ++++++++++++++++++ .../demos/swarm_of_mma_manufacturing/main.py | 122 +++++++++++++++++ .../swarm_of_mma_manufacturing/red_robots.jpg | Bin 0 -> 44298 bytes .../swarm_of_mma_manufacturing/robots.jpg | Bin 0 -> 39565 bytes .../tesla_assembly.jpg | Bin 0 -> 42533 bytes pyproject.toml | 2 +- swarms/models/base_multimodal_model.py | 43 ++++++ swarms/models/gpt4_vision_api.py | 25 ++-- swarms/structs/flow.py | 63 +++++---- swarms/structs/sequential_workflow.py | 62 ++++++--- 11 files changed, 396 insertions(+), 50 deletions(-) create mode 100644 playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/flow_iter.py create mode 100644 playground/demos/swarm_of_mma_manufacturing/red_robots.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/robots.jpg create mode 100644 playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg diff --git a/playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg b/playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e9a0fff53bcdc9e0cdbe57acefefa304842802a GIT binary patch literal 41905 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%0Ar9lel>^UO%~D{IH!tf7UEfVHME=9 z2+3wHtiv1}`RBWXL({IbnB=~aYipRdv`rJH#fgsMuC3qk{{RZ+bv3p#TiC$ywT7F%d6`1) zncL@LSvWc4u1_vXK zglE#InnD9xeiV$!uW8u8F^h?TAP@>diQNcXKJXv1VgA$*Xo z@0G#A;~w>a;|b+m4oKcuTg|+-Tt+a&jqlER>?j%Lw4~BeK!gPP*K6QuZrbu|QF9=- zlGg2vMcd0)K@bkOIS1xF2(Bi&?+oVN((2|0Ch^444ZFW}0|njFyAk?((JAsPvZEI# zWP1jeeHFc}t&xjzz=0xoPT2yFyhuIzp1;nh_?@Dj*5rMLNoOdZWxGgJhYS_MNaSOV zL9ajX?zMeutXkU{WR}+Me?l4GKQ$)`B3<+{eam21cctD(cP-40 z>hA*ETieJ6B@i?!O0zf2dEoskRh}j7A^H(j2&S$@SvbC1Y>qol@T|)5%Y0iZLkN*W zE_(dUnvUKWKFe;xG~CH4mG*$d2_4_&^v2cy0D=2gSuN;{HWAMUx{lS%>DD@fv=;V| zn}?ZYw`+6&ypp~qep}@Vxa8;fY0WEWL>q4G>U<$Ag4cw{tmkgwHUWaz9bqFn@ zSb|-_aXKrKq9%kca@_FQ_UY8-yyIBM_NBlZxVRi2qI9oCyCCYiVD7eet@*TISD{v; zr(=o`Q@Kjro_NW0@}^SDEHA^xK_FxwUZeS%e%U|gjKBBEs@G`O8q{m%%Nbi%D)F`$ zYzkB#QR*u0%l`oR?`!`6fP?=4i>9k9YD=c?p>|oVp;IK+5XTtm(ri)rv896ZPq;=l z_fX6e?--gk+n?_NoL4uj=)Z3L`~{NjMip6!jz9-Y9s%?}{<`IDF7*vA@h60su5F|n zl2zQKsmV!ExFgh7+{YKOO!qw|!EB*7^Nifi2!ROZINQEGPk(Q%S^=DvAd<%6@u(Lc1L8g61&2q_0e#co-bylUya=#Cru2eS=S$P^?v6>Q#t7JNa>f->9xzRq>aIwU{Ke zl1Qy>B;rV|5tW^Pxg?BB5$ZUn%Gl3S({=qC`r6`lxwV7ruR7eMw=o|rVPd90RQ$?u zl^}DP@{bYt&r{VeiMDeEjkB<~h;zTUnJ7KYbMnt6vuugBup4DK895(wK7y##@~)*u z>r&nBqkDeQwbX&kV1&Xdg$I-OMO31esVi(Y+uR3Q>--$Lykk=~5nIZ2YiH32nT}#J zkmhipW915aj!(661Fd(y3VAg7^sA}R{gUG5`pHXf5t-z-j!21apWg$XwKBc51#YA7 z{5bkOq-}R^ZMmPzj%JwL%*9cdgiWCrwmS6hPB7~>Ix=3^%^Vgt!2PnuS@*)?Od+`e z#`J7}dY;(yJ?-b&FVYyvU5hMpu-YA1#&Q7N?_BSQ@1%y#{?;orYg@}_hHHVH(cFE= z&<^E}F;AUx@{pqMawfUfr|~z2u5MzpkIt~YbP%+}c?_YPH=LmE9C3>3WOgHl1M#kI zM!S7)!%`UCg`S;x4a4mv1dS3X%O2+jwwg(tfHn{K4r>W(sjASFyM&N=i^v@a;|95} z63AZ4Fjx??1IPQOx*-gV4sdb~aJ_4u*X<{JKiwpfGR&l^CQjTDkOg$${o2u!?o8jh z(Z&;9wVr?B8ccQm&%4Lh_qD||R|~^KI6j6c2lTGe%Ok^4&w%>{_OqQni9#CTWCuh|QS_h{#j5mnV#lq;~(^Zo&s_9;0yrsS=Gu zGh}5z9q`%xF;l2wed$7vYL!$~>QIUw`c;KTAP;&~QC1^bU@@)a$(d2uMYuA@)uSUN zKqndFit`&eH60gMxJgn)gHtyVuw{7LYe+(u1Z~M3a8F*f>~H|l+$T-ZHV>h}9qWwL zwCQf_Ax9|Jwi3rQZlD1oqh#=ZygPb|oyJ`k)>erFHPlNKr(_aH#TB}cyPLS^ew7xr zGu~KRCPc9<^{bqn$Z{Q5BzDOi>pJe=OV#aLP8Zg2-9+gmX>#H<-ZFNb+-*5MDus@f zd!}l(QO#&A?JsU1NLCw!p59p@-7}Qf=b-16AFm2mv85|>u5E_v`k{_>(ISpB6|x7p zZL66s6*rzwVVrgKu1`>3v)dK~Z@+Ia zQ9#e7Ski9pZ#KzsaU|-}FPxJd%OSxeoQ(5;K7$p7tjLbmikxHZC4uA&+(<`WdI3^t zm!D-xI2(n$lBWEW+=yQc7n+eBj=OuIT-ii58yjSTDL_`Vj&zY-m6vE_Il=Gr_O4US z_;Nqx-st}Tz^^~}u~e_M+l%XWwUg|jO9=;(lX-=d8~|I6^_3lk)T*qI$`3oYDFFHv z$o%PCZ0N-Q01d}mJCpd{{{Zpo+0bS1tIKxUJ)=h|#EUb`Zh+X&xB=~sz&WX#cRTbLPwu_S>a@xZ2-k53csMUX)WQp^VE=X@17&k`EP@dfUU z4ZW}St(0>^EYIaEG0C4YCBZF;)bJbitesy(*Ke;)&5Vw)GAwHGeW}p877fj^Fsw_x z1I0o7sbIgl5&X*W#d$PYag(sR4t;o_3*XwF1RwJTC+ify{FOn~ybL;Mr~dsn^|`D@ z(7Z;cAK4n29f-5JApZd4l;7+>5gwX8tN#FiS3mqk0B(P5_$YMIKk@+nw-u|W_>V+L zTHe~xZDKANP}(8$UASx&keYSWp*<6qPlC7?V;u6J1lc{`)c9Uyx zqY5+EWlWN4%&4}Whg~J^l&>fJORd=8+&LDJ0k|%5L2v0=cDkjeq#=82%NZ|hS7dhH zOlx%t0nd`z!zlJA`d1A%hP+Y`vcr8TW!&+sS3A07wHt=X8{ zOaiEpNjb$#Jxwa6o~Z6y!&+XbvRzJ&()rVZ%I>AG$>gv{p3)?#4OK)9|hNQ(BmFS?F+f{v5Qm zoJkYh1{qVi)qw=(p<2^xRNIUn^YpHYOKAMVv>mwI4OVEn{G;-!in6fkP0m+mH8rei zu5#Qf9#3#8FACb;%9?fI5qSs|%!S|2Gq&zRfr0tf?c78`a@YWfW+0p#5R7_M`VE)% zZkugvC23Wnj!^81pM62v0`?zT#}O__7e+kNFS_S>W0ovQC#ff#nyaYk+Fj+N+g?af zBvfevOk-`yhWT5rDtSr7huM$mSo29Y*kpGSOf5GE)dKm16gWUnx&157!&6S}omJ%4 zi1O`gAKKTvouciBJ%HQ5uR*wbX*FwKB4n9T!sF(QUw-j9J+i- z74TpAZEQFaHb03wpF{r5cGk8~X*TT?ZN6z(myx(;^x$?Ks0gwLNf0_n868`rD*~h( z`qypsxxr)S_`;(r3<88O$P6+$83&3R1f23uQhU~ht*4zYRMf0F+ih_1#!q;U&WG|M zqJm2lWH)y2BB10({#hqH9Dsi+)I~7yMnNGs;|y>=Lqi#x46!g%_gi5^Tac^k0Rx=*c#@clL~Y-(|Hf zkrU}8&4xdKA6oPqO*YcX6t=Rrf(RoyNTEQ852*vG_c^I^8S_Qmyq1?&c9In`TTd;# zg)&sUOi-04w;WV8=sys&4Hrz*EsdJX9mVS0U*3n6rCiA-6sTd5leqOY#4WsKxhz-t z)`~5wlH`#DQA;$D#S$~gBLziKmS!ga0ba%6`%7(0!O~c27V^sqT}u(z{#(N&ZdqAR z_muQKtBLUSuzg!Xiq0*sE~91(@?Qxm$j2wp0&ChXQYdaN(MHvlRAv$Uzabf5F~&_y z*C;1_jz&1VRbr`aY&7jc2*F6DyJ;=%LUvhxRY;MjV4#?owq>Axpwf`&j^<;-?Tr z=zls<5DgI-_3C{pZH9nsX2eiNJ-V8!GQtz5Ip;NWt^xNIPUTo980%LJ(JalG)d4(y zm6zfRi|BMYB(q$~`&Eb=$c4$?KsIa=j(Cjzb!H>}k8RWLj-5Kz)pitgXDel@ z{jSC-r1J!jsS`BF5qBxcDn|rk{Q9eEHm+mx_dIVDZn7xg3lBW-#7RW=P8uy8({u4tv)$T4vQF%PSkuO$q)r3V2e- z89toW&X^UZoq!~Si9u75pP2sug=P3o*27b|b(q4;7U4yty9}~~U=~zKF_HJP>Br&J zMI3O>h_U%`@7c5{3yz#^tr8<-Nt_-kR3y}883@iWbA##u#%e^!s{+CkR$~=eYRq`| z_QflKekm3>qz979R34p1O<~-xk_65_bjre94B=1l0qlRBY+w~0fD&?PE}$)C2nYYj6v83W}x$8q@9hlOq>lUUP>vlWWwHc`OAb$Ijo z^Ih|3nhw2f6~wly6#oD`a+pFRtg)SpuYt}xaai}BAJe=)C57}8$(b*pw+kRpK5fnS zm+8k8mF_;e7Ih0bF7A9)6ikuL6gGN-$osOX5nnM>FZY4l_}3Yy>9;!0pz*?lM1(x< zq%Oov90GXB?OnE{8Ffh|Nn?y%X=<({a-L%DWnsWM#sM{#p++IKkL4jHUout)?>wE) z(~rucy!m5uw=cr|Vy&LbQ%gj$5jZf21oNW9E~#y4PDw-p^Z#Z$Fp^JWr)Vh~JR zF9%>=KsDWKntI(^yr|o5E#Z-is2Q3NGqu4u$o?L+!`ZBFEUPPRh`}(Czq+MxO-v=t z6vG#Wl?u);XR0F?u|TM{fz*tLWf7Hs?y{0MeR63At9DQN$vyZ71M#7)V_|T%it;Mw z%aMTC+fFuuG1PPTd({bAPn92N^7D;|p!?;3&+ArkJqw3Zz8U%3>ULF~K5asKi&+eX zVHYrh#|L@dGO9nFW zxoFnz;Z!c*1Cfozk7}s;z5MZrh1JA!Wff&f+eZW#f_dz0V!R`CS8bp};G^2$Hv z)rwuudQ#O6F2=Rh{m zzG2Q-j)w%*i<6|Um~6h#L+}N_T%gZlw2;}Mrc14A8ito>nw8v!>hj*)pq_2pU54U$ z=mtrx-xc0GSK6fdbn{!={h}BniYc5U5*f)0o;U+I$6tDH!-(NsQ&rSu3PzWuPc%jG zg_=fKLv!B+fcn-Zt$p_UyY2uYVIT?y4gpiZ@5ubB9<#DFjg%WNYTh)|wOcr?n#RJ; zNSz<;T6)a{&4nmcu={XxoMW|SS?U^{)}yB*UR(u|=Gh$#@`NBVf(Xxl>shP-;hQ+Y zVV>uVAEjw%5XkzKl>Sn@QQg}k7eeW}NdQnVN6plZdwW%xr_l9J3K=o0M#K_lhEN#t zpodO9xE0c}3><9+vOFtkFoN#!lnCbA6l4sRF}t%9^v(run29*SKZR*d{JM^!T-HTR znUM#qcr^^LDx7oEHKXOS$syWs6VT?Mo9{OVpz12olSWk5&`Q2ssIIJfH)GQy6*x~V zBSFy=DE0tgQ_62_F(7f!;DgwLDU4n=RF{x=SpdLqW&@$GI~b(eI`H;ek;tT@k5I$( ztc)_)Tv8RLZvsykO=n}sKPzU z#B@B5TR-tIz8UB35;i?EitV)KGTxylIMXBiGUB+Mb0<)_I2bO+BdO%|uIE6)-d%|! z4!_x!p@v95d3jbH52bWg)|)Y<@uIW1hf~&N{{WsgHw-?bZYziTLH_Zst6P)Gx!1hC z*p&^sZooe~t}~81RDal3zuq6EO*LhILZ>ZHWMX7}%uj57RV-mR8*P*M}kqZYI<&oB_NU#8I3X`!J5BOkl=}~!-{{Rk0(xgV8sb(KcQUb_G*Y6~!Kj*bbq7X(BKz|%n zKQereor&yoQm^)da;$OgMNl3~@hv18^E>CtHgZ+A&uLIl#}Yb;0|n!b?_qm%~jq z+G%g~M~~;S^6jk2JSUul$i#OfU=K{6TJEpbKQPOmoRt_H=V-yM7vXK&!KUl5O0Ssj zt=)c)4lqgjS7$t?W-a$uu=F1Fg-uzkb}F*q0tlqZMlNQMuUaR59R?a5@p%uRBMMhw`kgL|sK2T-wFvlp&?I z=+edp35fpyd=8$yJ;lY@-GM>vkdyPCPjN-8i!H6Rh;ti)Q2MB1x&12w^ILdkk_(-W zWqW2`&gB6{#ERf~iO>=ETOA1Z#cF6|ofAaQQ)-0$cQst5rLd99*$7Pf>6ac_vzI+E zqDcwnx~A~A+4ShOcGMyk$s96>gieYP)mUy~!_;=JLOutIfa~R4{{ZN6SEgzoKf~ue z{{XSASp7r^T<|LyCmHG30q-FY-ts29YfVc2dkN&XmN^_+JTJQhou}qM!baox*QZ$C zeWnW==-Ndy!yNg}7&#bzz4My!_T=Wh55pH)kkIWwvw5IPo1{s1jOTcAyz|CuUTY4T zb9Or7RI%D}2_;v$sriOYIY_M4zqv80{{UrOWHuy`Sy&$60gvlfB9yiWhHM_iHj(uV zMKvV$G?h6=f6%^}t1*%ftyfNif;b!=qw9*X9yll3nVBq)f$7Cqo??9egt6@b%PTCXP~h)Fky)NEgg=L-oZtkK7jS=vsvKk7flYyxsyr7L8Y7>a zycZC%#_AZf(W^)E91e01<6OzrrPHUm)6&<>xVD7>k8vT`DQ5>}Nyltcbg%fB!xS-z zTI%0yVl^PFhi=tk58yibRU4Ru7gA3CV7X~hFbHMBM{E&;9=XpLsG3trGkO*3P`s(T zGpo}-we^h__Wmnq3~|SC3v9Rn!Pvl!lJy_(D&lM)X(paE8<@c=fr8n{$3e-izr$L# zonxkI_7{t?(@>7%?D7^;Be__MV8@;KIT$#_Vt7(VO?Jviz%G(2C}OG!2ca#+LV}9W z(xxV+B1_sk*rL(AG2FvEYZwv@j~K!R1ET_X_2=`fdxVf2N)(=O*uY`_&U)9qYL?m_ zp%7d92NJL!=@25tI+MmkiYa^HpC>(qhV$xnqz6dC`;4ISPwUo>(Mxh7kdb;HyIfs657A zgwExTI(E zBzFpkjU2lU+o z4Et5`j0>B9Jp{4=`2$DVuhjnl$IZY$_0~`5YV4X8wFy3DoWu|Asn6?F=Ciwr_8WP@ zzgwWrIgX!+{%#KT-rl#Dge_q=(l1(QF!DI zG2iheWZW7-PDx7aO;qPqm2tyrF|p(ik{rs%pG;O~_T1m|(EfEMuYDEG;Fi#rONYE@ zPSOkct>rJud99E5LC^Q8Uy>;?^7FT2*KvYr!H#=WWROiX9%wNqE_;DZ-OoykaLy^? zVd^LXQ0h95%A^jQe6RXcArsJkbuuav12zZKG{Bi&41gh!la7QAeuAwlFc?^zekwn$ zK^z5gW0^M|nHm1IC`+&p@1y?!z6t)dpb%f!Tk3X~R##B&g5?Zv^DgD|b;odUMR*U0 zv`gI!QJT)+1CO2=RD82S#D$T6ksXMyq8H5>-pWY+>XrUxyj$XyqXeEHw6=)k*;u4k zTpzzH8G`-*gZS2vc4SRm7QP;8_DLnKO%NnoHYJo)F5*=BPjK zWd1(&)o7#*8$<)A*;oGnLu$(LvMSA_JA$FS_}d)(f#WPkz6t!RdI({)wX=c%L@_4F zfh3)qi3I1GNKE3>{$``w%ef!;{FUi*{`2A6f7lY+^tW2`C1u;P&loEr5%21v`{yJcvY#&rwk z4xMre0yAD%(aNmAqY?=m0!IfNV!bE9bKR|#jgZ5|G?TeO9wdmfvE8}G-+J0A`l6Dy zjO!yS%phR6R~w*#Xe~ARBZ+EfLL)vK(JGvLDQ+G zGQtiAPxIcaAOk;`{#d9{NI2*4snt$LZ(Ps>at_~0P&ntMJ-I)fDuQ_99qFJS40&b6 zSJm{EyMpCf;H(oQYjtkXB#_Eigk}c}IL2^C-K{%txlTVilTcISNbCK;t@Ow%`u_kr zPf@31#O}0xL&G|Z7d~>lGjAWe-W8+hSDxdyCY!2B9OF|X%E691n^wlfVG@X6A%BYp zE$_{G7PF_WsbMq#4>tl^b|>!4qkw+AgY~a2p4#mqk)@GR0%aacfL-K`85ba;pF*&=)8G+{%gc6>@=dBrMmnWPbbJDbKVwM|A z0dV-1X_{wMBYG^LkP4C8kMb%lBG6AgyaXMsA)0*mjvt(idJ}N7aR5-(15r#ICW&XtOiT z-N^1;HwyAvDy|2h_`d%D!ZS%{J-jyeY|toC zZ75Oxv5R?+A0UsVdHZcF#Q_Rfl?3F0o&hwJlz>`FD4+tZ+j*++Nf2%D;$wzzN< zoK;HnKZj63Ex(K;kSjD=Wx60gcy4(lBz{7Z1Bbf{<~PeCxoomX0LDN$;10R;tNIVw zC)DgyEWzT{g_eE2zW5$i-N>4vtEk@!RFcJ?c0t?cPX- zl>s|M8%oQDB;$Ky_`UxCO3lhLO%{_*=AE6g-}r*b);032gqMML{{T+aj1h*0D@zE`SBCP*b{liWbv|rflK%kTsXxNFaS@xIn;leIQPk?# zE@`AMr|V8C**uCujCb}i^J{c6-YW5(NykQDG3@t*$xcBl!3z1YCoq-mS%iPzV6>Ff)&> zL=f;A;zP6?D&%`|ahiI*-;^Y+(IAvr4Djtx7sCU||lt?lHi4XiTDBV!917CxPYdMAf` zCoY?D4fXxNGsJgA6bwp+#y3d#9X$u@T?L+nqgWUFG!Gidjo?iw-H%<(TG7LAfT#-K zag#~57DETk-!!T_VE#2^LZi9qOXU9mw0|l?Dcn5J!qP)-XOLrTLDn+aI6ph_#Zdmx z*86CRKiwxO>N`Gi`5{??!m{(~Jv z+OEC|6T`ilCP2=B0Go0P51X8N_o{a$88eySEXg7e&YM7O zrvZmJ81(N&yvpYO@8|wzF1K&0>q~5tLuCoKk>pm2d03w@b`?9L=xSBC)>1g)NVM&d z0IU1y+W>SODrPq5**8!OZsl4vX53Ve**L(*6$Ec@5(V?&U^*3XgT^V_%v|0^FZNCP zoAxqWfq65{Hr9}lxa5T5nLKM2n=&qNhia3{aO1sfwaum*{URKU%YvTI+lt9k{u;l5}QJn*c+%8<}!*_+q_T;ng}?y^N((o=u(WG&mki zpaK-j8#IBR86foA^yZ%t8<+#1n}RwV^PXxJ^4Namu%E&SB>p^8q9e>@;E;-Pys5!G z59MBIMb*!4{DV`B{{Wm~piVG9&*@XIdH`!=6H1@XlP5H($)F3?{f>PI9OkXusC#*o z^k~^n(2A!E5Jx|sJXNU~wsc>>`uk7^G>pqEu(JZ&1i)jlJ6rYV{smkIi!A)TMtLwo zPJzG&<=*iTBLI7n25Zsok)vc~8F7+{({rklQ$OttkHA-*__p+1$8S7w0O%yQxGHx5 zySFY62R%nl^h!x?TxrTlxUG&?N`~F_8#TCvWr1AC@w*jSLM}ov9N_n^i%YaaJY#X% z_lXAM^8MBvE9&SK(W*>@46f-F!)|3g z4esGhFOg-jF~TcENKF0&{xywZ5Lc2VBXMx7!10nW zI3tXAt-lwNH7!)LW9QRYWM}0z{$CmVYoD`Xsd&rDRV)a}B<=U+t?15ksPN^SjGC3# zP#!xt+Zf0}<}n{!ip|un#mH4uiLkd3qmsdw_oRc#+wJ((jWfh{b{a&M#U>YD=`I`~ zF*K5AX*fCb?OgPXUlbaCZjzzaAgkOdS`nxG0PDCU3`l8$Jg0*WZ00*WZ00=u6BLnXD=pK~;hmKyBZ zhlk}Lg#u9wb3{&f>Od94SE*@QT(@5i<5*KSaa~<&HfI@OHN3dO=hak-nKZW=S34^$ z4@}Y_oJOWgjED2C0yFGV7{<5&W3S^_J}U=L(OzF6BXqV)AmO2Ok-+&Ri)r7UrJKAU;xWT2-*+j zioq*R#;@Te@O8P_t6i614A%BYn}?P}5UC`OP)-LvzO~lp{h|5Q4-e_l+Gu)gETCLG zZFN3Ib1lOeNICQb55ly(gZ;()mWgW0j)>eRlSxg-C+4T%Q#r%lj)j?WGbK)ZavOF0%@X2Bsf$->RI#1_8irL9l=LKz1tiP7oUH; zK&+d!h!hcTBm=vC-hDa~S~p&D0!dUE=m|MI`qo^no~I;qsS_*hbLmn?8{`wxg&8#{ z$mn>W2?j@6UBa1=dLPb@#({&ZQY$2ij*a(~)H0u_JX8kOzyphGQU3sJV*daNl#hSb zqjlq&ECpF3wN8AyVgCSZqaVmsXOi7i{IK`w8h=4fnN$*LoT|*Hjt8YHAiFuQ7Ccg0 z*eKh@%!h>o{#n(%7y+Z{xW+chKPg(XJVh1DMQ^exA8gH$8kWXW8RE3GVC$r5>gveK zCIws&MrC8jG|~rin`4Q5L_J2JfAQifT_zzumu(3+S289*82~x;s<$$jE_G}!=8)Vd z9fs*0$v=S=cS0xZR-g6KU&H4#LHnkaAG|5iRI&1|2UCS);Co~m+tA}(Hc1T5rCS3i z3H-sRBISwt{{T8yy0=Nv*_;WUGb$+u=1_2OdS}|YrHQF1^2z97WqX}zztfzBN#hDv z1RSro8-S-nB9e@*j6o^#u+Gvl1_y2haw1sEn8UA_7kNNN;JL<1^~Fr2k8h_Hi0*e0 zvv(&Rzu{ICou?fKOq`qw;M)4~*>^=e$a1PSyLUdB#dX?a&o-N<%RG$JNo^F8I3shj z4cyWi)VrE;k_qT)Jc3W<#W_wh{qDSel*V3xn08V@wLZAo{O7RS1}j za83svp5N2+t4edU_visqIR5}Y&VVZ3sdte9!)0D3>>Od#{&kxef=Kq5<0`ohv11i##wnTA;R`epR&E-gtNV6yr>9B?lNZirJsj+zLoS(qfqiJ&MTJE6~ zM|2-*#FEGJ0;2#b5!9S<{{YslKNo4xSy+UU+Bojgcx~Zj`@%h?isg7bVzKAdBdQo_ zN|dU%WWN)EJ=(Dvivx(X;Jb<8u+fA5&drr^62#Tom&ov$ZU{irn0x zbsnsdZZ*$aUTQjfAF*GxyFSHft!0%;p=^>GJaor3(c0>oKAx#0dXRlVcW%Cd-&k9j zN$a{+nK(X}#UL$ee++f2K@`Gexia~NWYg`XWrU0ojmJ1S^zB^y-WywHD{$8+-jX4V z{!F#kSoqt;5wSMfj5pBXHo<=sZE?7qFfvACI30SEQtKWx*6-~vbj#llSlq`b^2Nkc z%#e;U8aHwXVb||*S;nj+`BT)V7PUBU?3)E#mwbbcU;G6p_GX{ipFi&(@TyW9sQmP8 ztFV&HW?4YM$WYOeGHH$H2xGV)>~<@ZoA`&S^%bV1T`kRT?2R?8ppXewjlqUS-bi3Z z;eb}E&81qbsEaIsG-&xdPb_ihDwAJ1v=*B%qTt+#H?fcsn>J^rJM^mC`OaTHrL#;8 zVWEi{M2_uuDLgu0dvXu-s3*}i7(pOKAnW_NQ$P31VAV93qX!u+o`m6X?rQRHo69SC z0F}84Rh3g6o#X+3EYLGC(a@E3D#NH@gH5Z~*3#R_9BpwF<$)ohZOAfuW~!`C!b8Rp zS&u!3r7$BE>|Pq4Z7)mG)5@AeYe?QmjDP^onKFU62cB!o^os~@ukEd;xQg8zQV7p{?iAFyY~{Si8RIY0^s2f6*Y76L z8~J(8eo{#UepQyolbW}8D>{M{sN8aLNF?^E9sdAYLS(2$PZaWfDg|NMcy*KKLK zD=Q?e(8SbV&byKouF$vjtf6+%X%_*E0zh1*G#iImgv^Jk_8Pdx$P z;-gSF^!KTNJx^iJ)4nN;l}X25-1GI%{>@S&9ORt(kA6@1{#6*x0Y9(PKhXYk@~o$) zAbxlx6Z(F>)B#%QiDEy_YdT~t8Iu`!PnZ|`%Yv@Ih|OqBIUMJ&*XvPZ89&aN0-d{- zQiZZ(J2RiWga$_ZK^4kuka&m01_HP%lTCuN*j1?pr0F5LvYW5ft4c!_KK`PX#p*(CJqT?O{51ll%}Zi$&L7TxCnoWyP2OBGN#&u{*< zU|vHzMRI?3VoiulYN)u5MMcRN%N|Mm`_f}tyB%(kERlIqCL@+c7cv;Y2hEXkNIY|n zJ^uh2(7my@)FNwJpa}rIwA+}NWZT1zasGYkm5Rht4dDIKfR2QMdC09qV9L?C8B>#v zxW@<9ytgK$bMEQUgy^U>rL1{v-Ik*b!$T}>yp-r zI2{QJNbV0&=t5lax;{G@g_atlgWIQ}$g(>aV^Z7ODntF{U^9w>Xy=H5DzfL1ki#R_ zn&{{7uBiZ9i%D&-V+ScFn{y4&4cl@IN;BK!thsI_0E?7&mI4+rkfJtI&h#sqZdYe7 zD@x{i3xETla5{z=U)H3S=Js(InrCH=Sr9vY(8qBK1xGCNO3cpLB$N62R9QLBPHEX* z_7Lwa_V2+7lDm%pk_tNBkwO8<|66WePD;)D8p2;Jq{DGz!9f>S=6V$gq&Vhh9Ab>JG zX*1G-LFh5`&-J2!6Q%H$Pa^WL+m9%!8yd0L`RW?$A~x3{&5MAY>gi7qqc zESDKyEqQijQTSDxT`(OPZA1BQcpqd(H6`)&94qyGTDp0}ro zO?$@#@XbGT>{OC^)T_IWXrj6fAzwLBngBkuQB8pLBzNondK$VI6+l-x0P;!4dfKA99zKm^$+0Ve>CDz?!@6v-E8s{nAk_M(bq2v^>sBa=lG z0TYjUsVQJO(M14Im7AVww3#D0qKW{{x#MW#mII|naiQ7Wh$Xp_R@ev&84;-s*F8_` zMHB$ZbZrXS+U8HNM<9+Tm4itxUt;gZ?cdU~ZRg#lLvSNR0w!gRG8I)>u%MipD5SRz zhHj^D@>nE*ZQUemjOQGd{*|StTcmJXsOYGtk<^e6S}3g%CbE3PJvk%tr|tKmieNHT z+|aMAkq^z(S894<#~)0O=~WYNkRFV-%$tfxASxV0FKc`GUR#YmWz1})s%o@7@FcI=W>+{+jt{` z&wl>Y*==^kei~P0j?J!i;Z!jV5`|!+wtvrZijIV>(V%bcW7RFJK^{P|GjYRtoW9_H z3{;lBB72GCPqHd4y1Rn1zV^T^f^m*<&lFKyypfaD9^^4qsm9TlR&_Sml3PMY$ulA{ z=d=6!S2KSN&X1^SmX;SLJ84;G@|rYcMz}>JC_b6~UX)Q)hgNb(*Eo}sgME%dPc}9z zvp($g&JV9qQmK2KH15v$06P*}1E(jND6X3=&z`&3rEv9xx!L%3t* zlx;YoicAr^a0&_1GqkL8Ix!oz`FQMVeL87;wuz4IvN+BHpU6=~aY`%M-1c!5CH0P5 b=v;RyeREF$kPdo)dQnAl!YS@d+eiP|`7*`S literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/flow_iter.py b/playground/demos/swarm_of_mma_manufacturing/flow_iter.py new file mode 100644 index 00000000..57a33535 --- /dev/null +++ b/playground/demos/swarm_of_mma_manufacturing/flow_iter.py @@ -0,0 +1,129 @@ +""" +Swarm of multi modal autonomous agents for manufacturing! +--------------------------------------------------------- +Health Security agent: Agent that monitors the health of working conditions: input image of factory output: health safety index 0.0 - 1.0 being the highest +Quality Control agent: Agent that monitors the quality of the product: input image of product output: quality index 0.0 - 1.0 being the highest +Productivity agent: Agent that monitors the productivity of the factory: input image of factory output: productivity index 0.0 - 1.0 being the highest +Safety agent: Agent that monitors the safety of the factory: input image of factory output: safety index 0.0 - 1.0 being the highest +Security agent: Agent that monitors the security of the factory: input image of factory output: security index 0.0 - 1.0 being the highest +Sustainability agent: Agent that monitors the sustainability of the factory: input image of factory output: sustainability index 0.0 - 1.0 being the highest +Efficiency agent: Agent that monitors the efficiency of the factory: input image of factory output: efficiency index 0.0 - 1.0 being the highest + + +Flow: +health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent +""" +from swarms.structs import Flow, SequentialWorkflow +import os +from dotenv import load_dotenv +from swarms.models import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) + +load_dotenv() +api_key = os.getenv("OPENAI_API_KEY") + +llm = GPT4VisionAPI( + openai_api_key=api_key +) + +assembly_line = "playground/demos/swarm_of_mma_manufacturing/assembly_line.jpg" +red_robots = "playground/demos/swarm_of_mma_manufacturing/red_robots.jpg" +robots = "playground/demos/swarm_of_mma_manufacturing/robots.jpg" +tesla_assembly_line = "playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg" + + +# Define detailed prompts for each agent +tasks = { + "health_safety": ( + "Analyze the factory's working environment for health safety. Focus on" + " cleanliness, ventilation, spacing between workstations, and personal" + " protective equipment availability." + ), + "productivity": ( + "Review the factory's workflow efficiency, machine utilization, and" + " employee engagement. Identify operational delays or bottlenecks." + ), + "safety": ( + "Analyze the factory's safety measures, including fire exits, safety" + " signage, and emergency response equipment." + ), + "security": ( + "Evaluate the factory's security systems, entry/exit controls, and" + " potential vulnerabilities." + ), + "sustainability": ( + "Inspect the factory's sustainability practices, including waste" + " management, energy usage, and eco-friendly processes." + ), + "efficiency": ( + "Assess the manufacturing process's efficiency, considering the layout," + " logistics, and automation level." + ), +} + + +# Define prompts for each agent +health_safety_prompt = tasks["health_safety"] +productivity_prompt = tasks["productivity"] +safety_prompt = tasks["safety"] +security_prompt = tasks["security"] +sustainability_prompt = tasks["sustainability"] +efficiency_prompt = tasks["efficiency"] + + +# Health security agent +health_security_agent = Flow( + llm=llm, + sop_list=health_safety_prompt, + max_loops=2, + multi_modal=True +) + +# Quality control agent +productivity_check_agent = Flow( + llm=llm, + sop=productivity_prompt, + max_loops=2, + multi_modal=True +) + +# Security agent +security_check_agent = Flow( + llm=llm, + sop=security_prompt, + max_loops=2, + multi_modal=True +) + +# Efficiency agent +efficiency_check_agent = Flow( + llm=llm, + sop=efficiency_prompt, + max_loops=2, + multi_modal=True +) + + +# Add the first task to the health_security_agent +health_check = health_security_agent.run( + "Analyze the safety of this factory", + robots +) + +# Add the third task to the productivity_check_agent +productivity_check = productivity_check_agent.run( + health_check, assembly_line +) + +# Add the fourth task to the security_check_agent +security_check = security_check_agent.add( + productivity_check, red_robots +) + +# Add the fifth task to the efficiency_check_agent +efficiency_check = efficiency_check_agent.run( + security_check, tesla_assembly_line +) + diff --git a/playground/demos/swarm_of_mma_manufacturing/main.py b/playground/demos/swarm_of_mma_manufacturing/main.py index ebb00768..88b82c62 100644 --- a/playground/demos/swarm_of_mma_manufacturing/main.py +++ b/playground/demos/swarm_of_mma_manufacturing/main.py @@ -13,3 +13,125 @@ Efficiency agent: Agent that monitors the efficiency of the factory: input image Flow: health security agent -> quality control agent -> productivity agent -> safety agent -> security agent -> sustainability agent -> efficiency agent """ +from swarms.structs import Flow, SequentialWorkflow +from swarms.models import GPT4VisionAPI +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) + + +llm = GPT4VisionAPI() + +assembly_line = "assembly_line.jpg" +red_robots = "red_robots.jpg" +robots = "robots.jpg" +tesla_assembly_line = "tesla_assembly.jpg" + + +# Define detailed prompts for each agent +tasks = { + "health_safety": ( + "Analyze the factory's working environment for health safety. Focus on" + " cleanliness, ventilation, spacing between workstations, and personal" + " protective equipment availability." + ), + "productivity": ( + "Review the factory's workflow efficiency, machine utilization, and" + " employee engagement. Identify operational delays or bottlenecks." + ), + "safety": ( + "Analyze the factory's safety measures, including fire exits, safety" + " signage, and emergency response equipment." + ), + "security": ( + "Evaluate the factory's security systems, entry/exit controls, and" + " potential vulnerabilities." + ), + "sustainability": ( + "Inspect the factory's sustainability practices, including waste" + " management, energy usage, and eco-friendly processes." + ), + "efficiency": ( + "Assess the manufacturing process's efficiency, considering the layout," + " logistics, and automation level." + ), +} + + +# Define prompts for each agent +health_safety_prompt = tasks["health_safety"] +productivity_prompt = tasks["productivity"] +safety_prompt = tasks["safety"] +security_prompt = tasks["security"] +sustainability_prompt = tasks["sustainability"] +efficiency_prompt = tasks["efficiency"] + + +# Health security agent +health_security_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + health_safety_prompt, + max_loops=2, +) + +# Quality control agent +quality_control_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, + max_loops=2, +) + +# Quality control agent +productivity_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + productivity_prompt, + max_loops=2, +) + +# Security agent +security_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + security_prompt, + max_loops=2, +) + +# Efficiency agent +efficiency_check_agent = Flow( + llm=llm, + sop=MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + efficiency_prompt, + max_loops=2, +) + + +# Sequential workflow +workflow = SequentialWorkflow( + max_loops=4, + name="Swarm of multi modal autonomous agents for manufacturing!", + description="Swarm of multi modal autonomous agents for manufacturing!", +) + +# Add the first task to the health_security_agent +health_check = workflow.add( + health_security_agent, + "Analyze the safety of this factory", + robots +) + +# Add the third task to the productivity_check_agent +productivity_check = workflow.add( + productivity_check_agent, health_check, assembly_line +) + +# Add the fourth task to the security_check_agent +security_check = workflow.add( + security_check_agent, productivity_check, red_robots +) + +# Add the fifth task to the efficiency_check_agent +efficiency_check = workflow.add( + efficiency_check_agent, security_check, tesla_assembly_line +) + + +# Run the workflow +workflow.run() diff --git a/playground/demos/swarm_of_mma_manufacturing/red_robots.jpg b/playground/demos/swarm_of_mma_manufacturing/red_robots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f086fa672bef32b53302a03a7e72241838f43c26 GIT binary patch literal 44298 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�fS8p0qQa7T8cC|QB*a}jGyg~ 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 azxB=k0Q3`H0SEevfBNMg{(>nHGymC~4g>H2 literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/robots.jpg b/playground/demos/swarm_of_mma_manufacturing/robots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bddab6e47f513e07b3c4c1f8053cad2358525f01 GIT binary patch literal 39565 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

emT+uym~W4?hkmnppWln;=Izke$5*R(m@C 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 WJAe51w*LUGF@NYHiYg>r5C7TZl7U(P literal 0 HcmV?d00001 diff --git a/playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg b/playground/demos/swarm_of_mma_manufacturing/tesla_assembly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..00456f6108aa37b092c42a07baf43d240a721982 GIT binary patch literal 42533 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 0203391c..9854c5c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "swarms" -version = "2.4.3" +version = "2.4.5" description = "Swarms - Pytorch" license = "MIT" authors = ["Kye Gomez "] diff --git a/swarms/models/base_multimodal_model.py b/swarms/models/base_multimodal_model.py index e5671917..73ec66ff 100644 --- a/swarms/models/base_multimodal_model.py +++ b/swarms/models/base_multimodal_model.py @@ -13,6 +13,49 @@ from termcolor import colored class BaseMultiModalModel: + """ + Base class for multimodal models + + + Args: + model_name (Optional[str], optional): Model name. Defaults to None. + temperature (Optional[int], optional): Temperature. Defaults to 0.5. + max_tokens (Optional[int], optional): Max tokens. Defaults to 500. + max_workers (Optional[int], optional): Max workers. Defaults to 10. + top_p (Optional[int], optional): Top p. Defaults to 1. + top_k (Optional[int], optional): Top k. Defaults to 50. + beautify (Optional[bool], optional): Beautify. Defaults to False. + device (Optional[str], optional): Device. Defaults to "cuda". + max_new_tokens (Optional[int], optional): Max new tokens. Defaults to 500. + retries (Optional[int], optional): Retries. Defaults to 3. + + Examples: + >>> from swarms.models.base_multimodal_model import BaseMultiModalModel + >>> model = BaseMultiModalModel() + >>> model.run("Generate a summary of this text") + >>> model.run("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png") + >>> model.run_batch(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.run_batch_async(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch_async([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.run_batch_async_with_retries(["Generate a summary of this text", "Generate a summary of this text"]) + >>> model.run_batch_async_with_retries([("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"), ("Generate a summary of this text", "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png")]) + >>> model.generate_summary("Generate a summary of this text") + >>> model.set_temperature(0.5) + >>> model.set_max_tokens(500) + >>> model.get_generation_time() + >>> model.get_chat_history() + >>> model.get_unique_chat_history() + >>> model.get_chat_history_length() + >>> model.get_unique_chat_history_length() + >>> model.get_chat_history_tokens() + >>> model.print_beautiful("Print this beautifully") + >>> model.stream("Stream this") + >>> model.unique_chat_history() + >>> model.clear_chat_history() + >>> model.get_img_from_web("https://www.google.com/images/branding/googlelogo/") + + """ def __init__( self, model_name: Optional[str], diff --git a/swarms/models/gpt4_vision_api.py b/swarms/models/gpt4_vision_api.py index 869cde1a..6441140e 100644 --- a/swarms/models/gpt4_vision_api.py +++ b/swarms/models/gpt4_vision_api.py @@ -1,18 +1,16 @@ -import logging import asyncio import base64 -from typing import Optional import concurrent.futures -from termcolor import colored import json +import logging import os from concurrent.futures import ThreadPoolExecutor -from typing import List, Tuple +from typing import List, Optional, Tuple import aiohttp import requests from dotenv import load_dotenv - +from termcolor import colored try: import cv2 @@ -94,9 +92,10 @@ class GPT4VisionAPI: def download_img_then_encode(self, img: str): """Download image from URL then encode image to base64 using requests""" + pass # Function to handle vision tasks - def run(self, task: str, img: str): + def run(self, task: Optional[str] = None, img: Optional[str] = None, *args, **kwargs): """Run the model.""" try: base64_image = self.encode_image(img) @@ -131,6 +130,7 @@ class GPT4VisionAPI: ) out = response.json() + content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: @@ -263,6 +263,7 @@ class GPT4VisionAPI: ) out = response.json() + content = print(out) content = out["choices"][0]["message"]["content"] if self.streaming_enabled: @@ -287,6 +288,14 @@ class GPT4VisionAPI: ): """ Run the model on multiple tasks and images all at once using concurrent + + Args: + tasks (List[str]): List of tasks + imgs (List[str]): List of image paths + + Returns: + List[str]: List of responses + """ # Instantiate the thread pool executor @@ -301,8 +310,8 @@ class GPT4VisionAPI: async def arun( self, - task: str, - img: str, + task: Optional[str] = None, + img: Optional[str] = None, ): """ Asynchronously run the model diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py index e0079199..5084c82e 100644 --- a/swarms/structs/flow.py +++ b/swarms/structs/flow.py @@ -9,9 +9,12 @@ from typing import Any, Callable, Dict, List, Optional, Tuple from termcolor import colored +from swarms.tools.tool import BaseTool from swarms.utils.code_interpreter import SubprocessCodeInterpreter from swarms.utils.parse_code import extract_code_in_backticks_in_string -from swarms.tools.tool import BaseTool +from swarms.prompts.multi_modal_autonomous_instruction_prompt import ( + MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1, +) # System prompt FLOW_SYSTEM_PROMPT = f""" @@ -154,7 +157,7 @@ class Flow: retry_interval (int): The interval between retry attempts interactive (bool): Whether or not to run in interactive mode dashboard (bool): Whether or not to print the dashboard - dynamic_temperature(bool): Dynamical temperature handling + dynamic_temperature_enabled(bool): Dynamical temperature handling **kwargs (Any): Any additional keyword arguments Methods: @@ -182,7 +185,6 @@ class Flow: add_message_to_memory_and_truncate: Add the message to the memory and truncate print_dashboard: Print dashboard activate_autonomous_agent: Print the autonomous agent activation message - dynamic_temperature: Dynamically change the temperature _check_stopping_condition: Check if the stopping condition is met format_prompt: Format the prompt get_llm_init_params: Get the llm init params @@ -236,18 +238,20 @@ class Flow: dynamic_loops: Optional[bool] = False, interactive: bool = False, dashboard: bool = False, - agent_name: str = " Autonomous Agent XYZ1B", + agent_name: str = "Autonomous Agent XYZ1B", agent_description: str = None, system_prompt: str = FLOW_SYSTEM_PROMPT, tools: List[BaseTool] = None, - dynamic_temperature: bool = False, - sop: str = None, + dynamic_temperature_enabled: Optional[bool] = False, + sop: Optional[str] = None, + sop_list: Optional[List[str]] = None, saved_state_path: Optional[str] = "flow_state.json", - autosave: bool = False, - context_length: int = 8192, + autosave: Optional[bool] = False, + context_length: Optional[int] = 8192, user_name: str = "Human:", - self_healing: bool = False, + self_healing_enabled: bool = False, code_interpreter: bool = False, + multi_modal: Optional[bool] = None, **kwargs: Any, ): self.llm = llm @@ -257,22 +261,17 @@ class Flow: self.loop_interval = loop_interval self.retry_attempts = retry_attempts self.retry_interval = retry_interval - self.feedback = [] - self.memory = [] self.task = None self.stopping_token = stopping_token # or "" self.interactive = interactive self.dashboard = dashboard self.return_history = return_history - self.dynamic_temperature = dynamic_temperature + self.dynamic_temperature_enabled = dynamic_temperature_enabled self.dynamic_loops = dynamic_loops self.user_name = user_name self.context_length = context_length - # SOPS to inject into the system prompt self.sop = sop - # The max_loops will be set dynamically if the dynamic_loop - if self.dynamic_loops: - self.max_loops = "auto" + self.sop_list = sop_list self.tools = tools or [] self.system_prompt = system_prompt self.agent_name = agent_name @@ -280,8 +279,27 @@ class Flow: self.saved_state_path = saved_state_path self.autosave = autosave self.response_filters = [] - self.self_healing = self_healing + self.self_healing_enabled = self_healing_enabled self.code_interpreter = code_interpreter + self.multi_modal = multi_modal + + # The max_loops will be set dynamically if the dynamic_loop + if self.dynamic_loops: + self.max_loops = "auto" + + # If multimodal = yes then set the sop to the multimodal sop + if self.multi_modal: + self.sop = MULTI_MODAL_AUTO_AGENT_SYSTEM_PROMPT_1 + + # If the user inputs a list of strings for the sop then join them and set the sop + if self.sop_list: + self.sop = "\n".join(self.sop_list) + + # Memory + self.feedback = [] + self.memory = [] + + # Initialize the code executor self.code_executor = SubprocessCodeInterpreter() def provide_feedback(self, feedback: str) -> None: @@ -461,7 +479,7 @@ class Flow: Retry Interval: {self.retry_interval} Interactive: {self.interactive} Dashboard: {self.dashboard} - Dynamic Temperature: {self.dynamic_temperature} + Dynamic Temperature: {self.dynamic_temperature_enabled} Autosave: {self.autosave} Saved State: {self.saved_state_path} Model Configuration: {model_config} @@ -528,10 +546,9 @@ class Flow: self.print_dashboard(task) loop_count = 0 - + # While the max_loops is auto or the loop count is less than the max_loops while self.max_loops == "auto" or loop_count < self.max_loops: - # Loop count loop_count += 1 print( @@ -547,7 +564,7 @@ class Flow: break # Adjust temperature, comment if no work - if self.dynamic_temperature: + if self.dynamic_temperature_enabled: self.dynamic_temperature() # Preparing the prompt @@ -653,7 +670,7 @@ class Flow: break # Adjust temperature, comment if no work - if self.dynamic_temperature: + if self.dynamic_temperature_enabled: self.dynamic_temperature() # Preparing the prompt @@ -998,7 +1015,7 @@ class Flow: "retry_interval": self.retry_interval, "interactive": self.interactive, "dashboard": self.dashboard, - "dynamic_temperature": self.dynamic_temperature, + "dynamic_temperature": self.dynamic_temperature_enabled, } with open(file_path, "w") as f: diff --git a/swarms/structs/sequential_workflow.py b/swarms/structs/sequential_workflow.py index 753ada15..0f99a247 100644 --- a/swarms/structs/sequential_workflow.py +++ b/swarms/structs/sequential_workflow.py @@ -29,6 +29,18 @@ class Task: Task class for running a task in a sequential workflow. + Args: + description (str): The description of the task. + flow (Union[Callable, Flow]): The model or flow to execute the task. + args (List[Any]): Additional arguments to pass to the task execution. + kwargs (Dict[str, Any]): Additional keyword arguments to pass to the task execution. + result (Any): The result of the task execution. + history (List[Any]): The history of the task execution. + + Methods: + execute: Execute the task. + + Examples: >>> from swarms.structs import Task, Flow >>> from swarms.models import OpenAIChat @@ -37,8 +49,6 @@ class Task: >>> task.execute() >>> task.result - - """ description: str @@ -54,9 +64,6 @@ class Task: Raises: ValueError: If a Flow instance is used as a task and the 'task' argument is not provided. - - - """ if isinstance(self.flow, Flow): # Add a prompt to notify the Flow of the sequential workflow @@ -114,14 +121,20 @@ class SequentialWorkflow: dashboard: bool = False def add( - self, task: str, flow: Union[Callable, Flow], *args, **kwargs + self, + flow: Union[Callable, Flow], + task: Optional[str] = None, + img: Optional[str] = None, + *args, + **kwargs, ) -> None: """ Add a task to the workflow. Args: - task (str): The task description or the initial input for the Flow. flow (Union[Callable, Flow]): The model or flow to execute the task. + task (str): The task description or the initial input for the Flow. + img (str): The image to understand for the task. *args: Additional arguments to pass to the task execution. **kwargs: Additional keyword arguments to pass to the task execution. """ @@ -130,9 +143,22 @@ class SequentialWorkflow: kwargs["task"] = task # Set the task as a keyword argument for Flow # Append the task to the tasks list - self.tasks.append( - Task(description=task, flow=flow, args=list(args), kwargs=kwargs) - ) + if self.img: + self.tasks.append( + Task( + description=task, + flow=flow, + args=list(args), + kwargs=kwargs, + img=img, + ) + ) + else: + self.tasks.append( + Task( + description=task, flow=flow, args=list(args), kwargs=kwargs + ) + ) def reset_workflow(self) -> None: """Resets the workflow by clearing the results of each task.""" @@ -148,18 +174,16 @@ class SequentialWorkflow: """ return {task.description: task.result for task in self.tasks} - def remove_task(self, task_description: str) -> None: + def remove_task(self, task: str) -> None: """Remove tasks from sequential workflow""" - self.tasks = [ - task for task in self.tasks if task.description != task_description - ] + self.tasks = [task for task in self.tasks if task.description != task] - def update_task(self, task_description: str, **updates) -> None: + def update_task(self, task: str, **updates) -> None: """ Updates the arguments of a task in the workflow. Args: - task_description (str): The description of the task to update. + task (str): The description of the task to update. **updates: The updates to apply to the task. Raises: @@ -178,11 +202,11 @@ class SequentialWorkflow: """ for task in self.tasks: - if task.description == task_description: + if task.description == task: task.kwargs.update(updates) break else: - raise ValueError(f"Task {task_description} not found in workflow.") + raise ValueError(f"Task {task} not found in workflow.") def save_workflow_state( self, @@ -272,6 +296,7 @@ class SequentialWorkflow: ) def workflow_shutdown(self, **kwargs) -> None: + """Shuts down the workflow.""" print( colored( """ @@ -282,6 +307,7 @@ class SequentialWorkflow: ) def add_objective_to_workflow(self, task: str, **kwargs) -> None: + """Adds an objective to the workflow.""" print( colored( """