From 71e9489ff0fbd84d6fb80f6c72198f2f17aeb2c3 Mon Sep 17 00:00:00 2001 From: adldotori Date: Sat, 18 Mar 2023 06:05:02 +0000 Subject: [PATCH] refactor: handle file --- .gitignore | 2 + Dockerfile | 16 ++++++ README.md | 38 ++++++++++++++ agent.py | 79 +++++++++++++++++++++++++++++ assets/block_public_access.png | Bin 0 -> 148661 bytes docker-compose.yml | 16 ++++++ file.py | 87 -------------------------------- handler.py | 89 +++++++++++++++++++++++++++++++++ main.py | 84 ++++++++----------------------- requirements.txt | 8 ++- tools.py => tools/cpu.py | 31 ++---------- vfm.py => tools/gpu.py | 0 utils.py | 42 +++++++++++----- 13 files changed, 302 insertions(+), 190 deletions(-) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 agent.py create mode 100644 assets/block_public_access.png create mode 100644 docker-compose.yml delete mode 100644 file.py create mode 100644 handler.py rename tools.py => tools/cpu.py (80%) rename vfm.py => tools/gpu.py (100%) diff --git a/.gitignore b/.gitignore index 95cfa6a..d4d6a87 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ __pycache__/ .env image/ +audio/ +video/ dataframe/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6042a46 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM nvidia/cuda:11.7.0-runtime-ubuntu20.04 +WORKDIR /app/ + +RUN \ + apt-get update && \ + apt-get install -y python3 python3-pip +RUN apt-get install uvicorn -y + +RUN pip install --upgrade pip +COPY requirements.txt . +RUN pip install -r requirements.txt + +COPY . . + +ENTRYPOINT ["sleep", "infinity"] +# ENTRYPOINT ["python3", "-m", "uvicorn", "main:app", "--reload", "--host=0.0.0.0", "--port=8000"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1766d5 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# Usage + +### S3 + +1. Create a bucket. +2. Turn off the "Block all public access" setting for the bucket. ![image](assets/block_public_access.png) +3. Add the following text to Bucket Policy. + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "AllowPublicRead", + "Effect": "Allow", + "Principal": { + "AWS": "*" + }, + "Action": "s3:GetObject", + "Resource": "arn:aws:s3:::{your-bucket-name}/*" + } + ] + } + ``` + +## Environment + +You must need this environments. + +``` +OPENAI_API_KEY +``` + +You need this environments. + +``` +serpapi: SERPAPI_API_KEY +bing-search: BING_SEARCH_URL, BING_SUBSCRIPTION_KEY +``` diff --git a/agent.py b/agent.py new file mode 100644 index 0000000..ee4f406 --- /dev/null +++ b/agent.py @@ -0,0 +1,79 @@ +from typing import Dict, List, Tuple + +from llm import ChatOpenAI +from langchain.agents import load_tools +from langchain.agents.agent import AgentExecutor +from langchain.agents.tools import Tool +from langchain.agents.initialize import initialize_agent +from langchain.chains.conversation.memory import ConversationBufferMemory + +from utils import AWESOMEGPT_PREFIX, AWESOMEGPT_SUFFIX + +from tools.cpu import ( + RequestsGet, + WineDB, + ExitConversation, +) +from tools.gpu import ( + ImageEditing, + InstructPix2Pix, + Text2Image, + ImageCaptioning, + VisualQuestionAnswering, +) +from handler import Handler, FileType + + +def get_agent() -> Tuple[AgentExecutor, Handler]: + print("Initializing AwesomeGPT") + llm = ChatOpenAI(temperature=0) + tools = [ + *load_tools( + ["python_repl", "terminal", "serpapi", "wikipedia", "bing-search"], + llm=llm, + ), + ] + memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True) + + models = { + "RequestsGet": RequestsGet(), + "WineDB": WineDB(), + "ExitConversation": ExitConversation(memory), + "Text2Image": Text2Image("cuda"), + "ImageEditing": ImageEditing("cuda"), + "InstructPix2Pix": InstructPix2Pix("cuda"), + "VisualQuestionAnswering": VisualQuestionAnswering("cuda"), + } + + for _, instance in models.items(): + for e in dir(instance): + if e.startswith("inference"): + func = getattr(instance, e) + tools.append( + Tool(name=func.name, description=func.description, func=func) + ) + + handle_models: Dict[FileType, str] = { + FileType.IMAGE: ImageCaptioning("cuda"), + } + + handler = Handler( + handle_func={ + file_type: model.inference for file_type, model in handle_models.items() + } + ) + + return ( + initialize_agent( + tools, + llm, + agent="chat-conversational-react-description", + verbose=True, + memory=memory, + agent_kwargs={ + "system_message": AWESOMEGPT_PREFIX, + "human_message": AWESOMEGPT_SUFFIX, + }, + ), + handler, + ) diff --git a/assets/block_public_access.png b/assets/block_public_access.png new file mode 100644 index 0000000000000000000000000000000000000000..ca744b4cf1722b998ca466213612e484d086f56c GIT binary patch literal 148661 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

?&fzjkr?9jp2>Aof<%Z-A#?XBS5#zjHF%caw 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

?U1j&*Y8&; zEnKb&`@yQ{60biBW)L`DqrbbC68fR%7Z;AnALaaDq;g}|aTl+1A5W4a{WSLXg6P#y zP(AJ;y7;~Xn?w`P1mLD+hsv#f?opj}b-m+zd=9TDXZ$vAh9p+=s}NUq9Amnoffw98hayY@O#7)ZvTcx#1qF{EM!d@A?g8Mps-YbUIeh zO5sr7B<%@p7wuDR>o(@`qt{60=d1VrTzAx;!Kqo_*I!DOwN4fYyX*owH{X_mQ97j9Hc>!q8wHVfFj}S5W=sJq!LnyeuYy84p*Sv-iTWGQEtWkAmC%)XD83DQ zFtU-z!>zi~aI*(F0%Vhh6oaT@Qk(SD{~N$I^cVJ4>LXan z({6~gkeFj%$`ow0K6%1A&tEQ<26_@NJqkiD)%`FnV1Qy9I%#?WQ*uU;4^M=sUcO9Z7C+Y=wT3h5gI|*w< z#T?N0>G)%HwfX7}jtkqORagzkBId|TEhLV<|KoD>IwT?=w0T#!D;FYqqC{~4&Y=ckr1|vRYrH>!3*IFbScfX zDIBHYlsT*rrNgi1jOEq{8eoPb`UZY)H~{(T+BTJw1_}+cQ^j}Egd4@huLv|ca}mT3 zIEmMaZsEUY%E5bU=03tOQwR)?Mo2VYsL!)pER=_9W9)`)e)T{fAd*bb(c_6Qv@*}r z><^SF(3r#icJL;{YyB8HjqGGni|V){_@VtYb{-d)@y4&1E#An^oha`3c*9H!z zNHPo}&s3)KXm@4=!Hyc!r9x5}WbV4fS5EFDYu=-9ndW%Ip%hZfr!KnWWC)CFhB;%n zW(VO@=3&R~Au^RH;B8nkgx4W(;+}V0!Y4F|r>>&>elo~R3Gz9leY!nqqH$b)QNN`w zm&_g(pa#dh9ByOh(5ZMWq~)}H>o=d9c`vh>enR-ivE|JN_2BWkX^sfyG6Pr?&&_I> z!FKX=6-TYNVu}ZNqWwM)ml3x|A~26u77t?wNvjHM-kL4_v|>d~M1g-{nx##kmZzqu zR3i4^w3U!t8Vx#=5HAuVY5gG}ipiHEQ-BBUa7L&c$-oJL(__T)-g!+>C(}1gGMTmb z?0bb~B^TX=sr%&P3hSB{-f(41&wm`V+tG(xmK^~DzWj1qN z_MgyOME5^%jpYOq>CzhyG^=n%KKV?S+k9DN&*fxq=iwD3e@nD56gA@UUW!Z*&^y?` z)fJZx$7b$-W(nRF*FITGjW~v2# z|F-}7bQ&&?w=nd}*JqnqI*>o$AGEQ32Xqu>`%R1zJE$6?yca3Y7Ikv90=|9`A0>0<$&=|(UbAk;EZil3)@ zM+|Bd$Im7RVn>A%HJytI4v#zRV0TLG{*<9_}#0IM2;ds{UGd_K1I7+e*j8S#H zYmf*xTA1sw-QMF#7j4S5JVs27ko$}gR@cT;4{laL*8vK%yN0#_ur;w@(-A&nQpg&l z)s$&-W3brA;_eNq3YN8y8B?yyh^x|avnQ-Hejrqn*GXCm?jqLmI|FQR$QB`)|-mub$beD8Ucc;>g zDBTU4?nb&xlr8~5rCVBBx*Imq(%to3+y6Q5x$npA_h-E0d~pnLa;=zi&G^kZ*TPSq zG;z;VOeQEX45yA1eKrw(ym6Ht-*c9%pdSawYuQ=Th_%%`nbkweOen%}lQhe_WTD|8 ztS&6X)cE9HR8PI(en@OL#aeh$UQ4OCln3T2`4fc5lp2IF+ zhr-F>sy?k^Wy^jP@I34URUAFQjlX(;LIG?BS2sW#sk)!z%Z#MTG|voD3?&@@rmzps z{(hSI3wh+HFHfyR!I|#GOHP=NkHk`p2gD5CX;)`R6}N=*MMvnWtaxAj=%jU%HcW=2 z#>^$K#g9ehB~HI404<+lD=~RaBVu<|idNg&x^WX!5!o#R!l`K;X@cgG4l`?c9138m*q z04VA`S1;4EaQA)BMKu2@x;|mqis$QkQ_^qM+`PSvpG2?vG|VY;JbZB@)FUK__c?J) zP~Fx6bB#D>wBFD0etcJ!4hqtYs*KombW4znRxA3RFdO6J z6D+%c)#iC=NwDgio>t6$!{>J~SaI~vF1im+ccuGnb!R->`lq|Qj~lzEIM;xL+hX$g z9oh>VM%fHB9@Ky4M}K~P31m2rei-7r?RHvCMb#tKo>P+r`~KvDNr<2%?AcjR%rSkF zn;f9ZZUuIq!!+ayx7;uMs9)_Y@|iMR(64>zuLjk=wAjXeEa zozOus*6P-#nS`fdTozuHiBzsV;3L=g&mqyNg9HD|)X+GhgPBVyU7`6#yVhCjl|FBi zGs#X9g$47lrm^oUL<2cuff!wu)5G_hl8s_CJ(O7Fthd|x;&?8(}k;=B+d^Ax&q!zQa6af5fG*h=>sdtQih+dW?I9y4?<6lA` zhAATe$<&EGi7~WXWWL{*-ed?5^6N%0{~(7;I*#>?KwhxQVfh6dvnHM_Pr;m2Me-K1 zXpAwK7G4HUSk>E%9*$(vw>RMd8IvpvvSed z;2RUXf_|(NPLMVS_&f2TqIU zxZ>XBz!zP+{fqrD%M>P_U};C~d9GyS$Y;kyTcSA8x#8!@sNqL(zhx$k#$i5rgZfh~ zA;|2cMzhD`?$JdkMF1cvc|v3Abh`)p3-$f%@RWmgrf|HpZ#Wa_rGSo?8ghw>-Qnnn zU0Cs+YHyvIx(&_SZq)awG`JE+0E~pZ^`aabhT2#&Ag|SZ>0!otBX_WTf~ygC#*?t! z_)JpQLZRuJq4ecUXg!e238v3tcTURdjdJ<=x>SZH+If6$-fiTG3D08`8VuS<(Yss5 z_6*nrqH`YdJ+f(Otgf+YxZSmvFQ=5#bln^m*hK~i+OFCnm^SbxLUzJH3fG~TD15%2 z!BXd(Rr=N93#@Cdp0O?TnRv#J;fGd=-r40h$o0z&MZbWWol)`C z5#(T|&Nz}9e7%R;W3TB|i5@PLrnBJVVfGJVqp^L{{NTHXa9jlHW zoVZ=>g8kwf1@haAJCI-dH9ZYziwACVEyHBuK#Ncdd?2b}wmU@*&!%l@w!HroNS|bu zG{nz8T;3xY)mjJvcKJp#gzWfmS#TV4aEn+eMXl&=wyak32B?1uRG%54khKd^I{@WZ zNlLHSTNHTQ#!zs=EsaUmtF?Sn|FixaX}zHSKG@TAZodQF5!M&WVdpjfF^?)wGX3_!_F}@d?YWSuLfRi45adoQwohSFQ z$Fp7({ApuR62R|Dv=^B7VXnRn#mB+gq@?4-o0H~fA=^sGKB{O|e$NTC0am+bAHDD! z{NS?MS{mC&HHB{H?^M(fJxsKWL~PH+7}dzd_^I~u5}r$H))Iem(9PqOism;H=x~$l zEObH&SnxEFo5X`{vR2yh`mxoweY71%#fJliux^{BdP#>TUZqBkiRWLNGrpN2s77CV zopHvwcLalX`p`44ZwhqkLzDu~4oDkocSU zDBqcNWX1het;`P7Stz3xU-fCpw6}Jxvx4=vc?LXUFXH+2k%5WkB|b8nA@j_NL*(6wf*f1&7l^{pA>W4?e+oI*%j5vP3jwEJhf=K93#E9)IWB zXxqH}8m)jlUuMuyHou1|@)Kuk>2#(XZDe0&AD83o(pM}@NF#z%-SSTK~ErFgb`{6FeSN#|dsj(sX#%>^>O+JYH? z8+ft5D6Qvx=Fas?j3~pk+sfs;Wh=AhWeH8bO~8OCZRCSyLq<}Wrd88uGOroyOV5*y z8du<w8recz(V5RY>FCc8U?B0Yf|Wp@VsrW9_(0E?*>XXV0sa{Ka60(Dp6 zq2r%FQuXjp9|{fe?>wd6L;_(ty>$tu?iFeo;)%U-Z=%AE3r9T0x#|#c`WOgbY@SIC zD;DT}aGO)YIrn_mZUsHi4K6*mf;z$PtxF1D2Y(hX9^%gm(jgLyX11Q{gg4(zk?+ZQ zBK_~zd5O5Va>dbd@pZnVqV@Klw>6)3UbHzH;bZbCs-AOMs&DB||C(b}b8C!lw!-M){*KG59Vc*5<41X$Z$<@;zQKF#CXaidW9}oT zlIUas?EJ_oonqZ8b#-9HXV_wL;N8ywOn2fj{6H6Jv^`}uy@1X00`^q4`RICr9&(@| z&{AVOn3d$2=LcsXut-E~EAAE&BxXR^|R;|iai_Z-82ocCr zA9*iZ(Tyl>zB!E1Uk-+O-N#q9b8(A)y3y{+^Nggd4NlU?1pEjF(Mdkqndf%V*^!2L z%INyV^-3M{xzDQ|f!9THjsnJb0xkExj4{5eykQc9u|!>;PZ7Ig4?DWE*x=?SVC{qx z<#30k9rh8^hfVZv2K8ZCzK78~Q;oi{Cp{u8nQa&bkKJ^S|LU7F8{l(~CS<+OeG{4y z7PIzpqseOU#|=>0?W(|?kiLD|yq$0KZ|`FZQWuDdEsI2jMCN;W*d4~#uX&;hZ!3oc ziah2faYPrP*UCR(3hv$eN`fd|mt?&Z&|%p-7H(lfSSCG<=F)9dNUN7e;Q4d4wTR+X zs!jY=Ah{t&C;(fwDTqo!lG?pFN`;4r-B$=~i`hmzp zx$Kw)e-z7Y+U#TAJm?G5QP|}T_-(y;xz^k^n&*%#fhR5IrAro^>6_&EV~YL7lmiJ# z#X2#OFO%I(M`puC#pOyv_68Sl?ZNF*e;Fo;TKy*ghb`gcutXE#_{lE6;6UO&d(>FQ z>OvL5`&BB*juRo+m&UTLI%UD;Q)su%W?YD%p)u#k60cWH$VU5|Zag#V$oLV({i7oG_ zP5Q)_EIuajMR_Yc0|{H|0UV8ovFx% z&~HF3Kwimwtz^h5;(q;ogSmRTvOe6G%l3y20kZi^B#~)LPgxFF9e?TQRMSlGVe^R4 zj-3MQ>#v#=k@TTb7$99)MQPS?Y^Nd~BxQ{3S3vXOXx);I8v4BZZqC;?4C9`mYg$It zFS5PPTX`6;%SNPNA5%nVD;4R^j!o3Mq7+4R8Tm<1@icz5GFg>i5glaD|4dCO#^=td z-L&3Uu+$zNccsPJWLmS)G=^BQFop3(VSkl>(8CL_&5cSTE&RK^CAz4HIc0#2GfFj$ zs#Kj7eCNvsbhm9Q`!?rn0rnTxjzq6uGxnHHYRIK$mNOvTPHMOpZ{L4gj5m*AY57k3 zSka}Lu~wLIyzAtbDHpN0c4wl*P1}Dp;ib8?DLsU*!pH9hG1qzkYS_E6_Zmc8$I%UrD;OOWtzM>OVY^v2mV3ZB#;ybQ?| z4`?pfuKsB5a}!o3O0J#TotS4~di`Dzd{l0!A)1{^U2R@S96Z_p{@4{opZf{w^q5rD zTjb4($}%9$7*TEVel@BLPm@VHwM#dPERTWF&t~zCj+^u{0qIEe!@0BLQh0qUUv1dB z9=UMY7oAW6ecwn_1XY19KCvK0z32E7d;xR1svqpg&gxNYK9zyp%}0&c-E^)>EaK%C zD9k3$^I{5)n4HnqR>foJ?XyhQ%{FhRYZ@&Nce8&@a|>p&i982opyq-eki(L z>stIzXUT7a)F}mEZTKQ18G4`rY{Mc!8F8OqZPkI<<#x zkLOMzKNLlqRH3@*c!xYO^Q}adc(iDt91RD(T8_De1O4lNqJGqpSOEweOJylWUG5iFU?rv_-^z6A# z8&g&%)%xvm;JrX77V8E=>}Y} zsy8Z|Wnx+N5TG08&Df)zc2Fx^-Uo$Qoo)D5+s%vgW%J^b8ql+T5Ec<7O%}Y%XmCCd z*KV;wU*|Z`eF+dVM5p7+Tm3in}p+%%(aZ2?!_)f|oiFPIb+ zb^)pI0BWkAv`&c`J`HO#T(S))ME@%5r;L9ENsm8ol2%?Zi9Vs_6AUtWX1R(>ukt<3 zIOS^LBzA9pr_5H0Ei)$<$&?#zMz_~3Z}vWz9p%U*Estf!tW>{7PMy)NuMcP%=*tmi zzz!AO>sq=K`!M(o4V!$1w5oqM?dmqFj1*gDq$!Kf%Q9z?Segb&+Y;yok$D0@m2~h@ ziW2{5Gznme19m{`9@9+e@uxh}G7_Uelgs!Pc0~t|#X_S~@qbRiDv^zb}iZ%%(P z1y$bFV|C5mW755D`%g8958Z}vIj2unMPgYl1b7f*f}2yg3dOrm0EfLS_HNfNGTY@) zw#KcfBI7}AR{qD(k0r@TfEk5#FwZZZ9T(Y;-H;6`Z~j1?GlvwGl{Rk3fxIZ^-{>;F zXU0gmnG-6ai0Jz+AqVt#Dd@klqpUDXOp8+EV7)Y_N&;&34EU+iciN2)Ex42a zY64nwfE1c9qkh-(pKU$=L-3Ekx`p(Jkr6ll=EgtTydZ5Q|LX1$i-q)vksPJey!*fY=ihXY zpDqFaszQ{>!$dXZHS^;2%pnlm@iAzs+gnzozx);6QsJ zOhCEB(Zl0Mj~*UmEZ{Q#`}xYrTS)h4m%HR`EBwK zo6h?G6bpnSRLT;1{_u>S61V{7LuTW{yXzVdyjHp-68YOlFwp*~z`DGQ;(k?p$p7lI zp?GhiV4dk;8h3H7DFr=Rf5Zn2u}6>L{`@E48$LOG?2Wv{W6Zx0OyH8!E9n`W$3h<# zsk8Z!xZ{EW<&*Hg5agEv1l!k@?oft@Oo@CS9w~D59!pj1Zv?IYf!cI(Gu2;~?#L>p zLUNHD4nz4Df-j6>Dj5weyQI*z0Qg1u>}+i zoSr+H+_!%t*nWb6Q&`ICEe(|okKtDI-{$b`vtq(a{Dt6^20-BIJ1Yp4`$*&%7cg*L zj{Xt!(uqiGwLUwE!~knkP2>Swp*Ix{z#%bL)9A_CQk{`f@4Xh)dmR_k!AejYSLM4NRl{iES z$~TeJ0Lj3N%;6g#N|e>0q94k~&l-n9$PoeIO$aUh5H+_*-#9gWELQB`pDN)o+*k;N z(2SB^3IB}SJOm&l6h?&dK@1sK;8;kQ2Ci^@w%xkKfa}`2Tv2s_wwQPbizVQ?D0buu z^aFDE)C~NTp8dIxKMsG3LP`!_$Ml(LCb_s{<>d^)pLAm6Lx4`eX2lS9%$S}az>mw} z>&AcE0Zl>Ve+3pp$tv#nb*jpx)fw1#e`J0rUwjlm4jG#du1nk+IVw0OMGl%WiBEux zTgD>pC{?=AE6N+VvPN8q2yMle5WU&N1J@=Tg>#&&O1H$eJ&kx zcD4muHKx&C@dc{4ehgeWTe6Qg%3EkV5_Si()PY@^501u96arUHea`5i=^!zBh%9_O z#luC#X!~jjVZb_4WTN^<74Zs$Np#m;yK0;JX|Trv z_RIX&y;$efu}w$k-W>LA#@_n!d6P%XTg8*?;uXGE1maLm&yTl|oxtY?#)LoKMA4M2 zG9P5f3l*ldz-7R3AUy~KMk)2*odLRa&x!esg$7EKMqlw6wB+Am4`)<~fpzNpz{27c zifu?x^{yiYpievq$GlZ^4=U%znw=X>-+VRciIoQse`@(8rVYP#`jRhk4v z!V7qm9|O+|$@DJ{S|9q}6FTp$3yke<5U({oSs%Dh^q)D*!^E&pz}MH^-&U^I9HlJX zf1bt*Vp#7>a@?Z>)Bf_J1eYSML)$SKSqP^G2MBQNZ>_4Hl5!92icn_At)l`tk$Jj3 zfeSa=xjcFA`X)Q(*&0xt%iiK}4bzCkQdZ`m9U}~LT-X&{*O3D*JuH+B6SIb>$3FAg zoXhWRK~g{F`zObEU(-<0<9WJ)PgN9{pxRIJ#otP`^7I+bj@8;wW`7+FcY zlSt7kn;0Q(vw|WXWg^~J)!D|IVk$n`K{=Pz@Fq}~qzqXS@cLbj$8_o9SdF`=hVA}* zRn){+#|Y3f@gpm=z?E^lXbLF0+f)b;+fGngYT!z6FkJm+z`4^(r);B?M#(EJ1oU4Z zQ$<6=DekRbYooQER4|>6z9eWl(3-P-CEL(kt`VDv8Mwk%kAVXV z#fp)?flN#b;17w?9)X~B`FoZ(W4f*@;az=5$J;h4*k_?R zeB`Jo(7Xu@8ElBY*Z?d;o%Og@ED1l6DorY%TQCl*`b5nj$i9VYnAvl5vMab$rAW%P zeq%e7!}t`=+t*&jXXIDzN*mfDpu1M4&w_^@cB5)Iy!T&d;Nu9i0y^t>1eSSy1%-8_ z_Zz9DDoI^(XdpDs=f8!x0LES@k!nBZ<{SC^Zol1D_!i!tO)oi3X~BOojlgYhgF01wdacEpHhWNEe$|@vzL@7#W@+uihEI3`zVvTT!(nyHO;rn`> zXvITGKg5-shAsK0;pF%PtYyWFj(+I$($Oj=p){7iD-n9Rz2o?*cu&7_s2-+tpAuc`~6@6^^hH2#_awO+0{HDvF zgaHb)5N*{45NHj?9l9V#Qo)(HLQ`ulG!Vjiq{#6%&59@Oz|j2sh|qRN<|RayZ2*tA z*mdhr1@Kc2b5%{DeX<;~m@i0?9i^P9PLe=e;5o~0^(P_u_-{RL4G^ep<_V|V+W@mT03#YO!vOw)N{)O)u9SjMk7( zrcgg5@f;#hb!Iy}gaS^*vtRk--UUjP?R#n(qKTO z_dQ1cpTh8aO9P&=0JCmmWh;ahh(e4;FcvvI8cnAYl!-&WKpq4H`WA;M16$A(4a5e2 z1QhT~;-jK0Vo0DN2|Pm?&ttt_}?w~-!1rmLkjY>RD6s+ zoN)5d{Pi^DD+inr`@J^~8HNNTa#;)YG@z+sqfD8kJ47^UIGq#VLO@6qTxoHjKU;sp z3SgB5T^xTqdu}jRcsRUY-92}Q-cdn|^?&=oa5$Rv*NN3ustPJ3heYLnTCV??$8d-u zRJh{j`^l%6;x?A>`20F0%7|s~bgCuHxXn#dk zA&}tt^jj<_uKjQ2!45zSvCl;jp(x7VYcz)7qBkHhWM~cn@VkH%z{aDUTP3V@L_=^JkQo4TEWz@qm=DlmUzX#t=O+1EFJ{%wF=$N>JR^pF3>B{hIc zDaXzZe;eQ&7@(pR;r;)L!T*ZE|MOyy@#MBAjw~4n5bMt~=#-yLyA;#j-yDbnXj-uE zn2T^2 zUdya>O|zK3#Vqr$wV9>17|M7&b)HQsdpB2SpAB57p$XgrwcpCQ0X1`C2zZ=@FStE6 zQsIv+9|B5+4;Jo=KmzL6w)5`qH1s_OMQ&{e?Gmii=w`={*eb2Y&9_F2;)?ZdY6u;a zvISJPC%)K*b`zobAGR^nZ-Q?IbMk?$)+ny+Rt=x)u`ZAgyRW{^+CpVmWu~7ZzpNT=iFYFv=r!=avqk7!?TJl# zg4>tQG55;5cg$?8@E~vF6c)Yuo%HoNhYoHbhhF3^cqdyMfG=66`xJSXHW;c9woCRw zTWLLTQ1ueT!To}``Q|GFBKouAfwS!0r30g_vHCn9B{x|EBVG|jl^X$Yxxc?(LuT4e zcyLd<+L8qp@iehLWSG4WorI4bn@%y|xmscRc%0~z!871Wf!<6(cZr^e$v!JwoU-d* zCRUDxf;jtgpAw(`dXOnr%3OuU!p@3E;uV`K5?DAp1?U%h%*|eI&U+y_GhLXY!RLj7 zzTGy2oNi6^df8y%e3LM@cf9uc&R#%y`tfDX$4cX_qK(sHLbdf!;!^BA5WnzKU}%tN z_gSeWb?be@p!t>Q86xDaUGFqZsOp#LaiFn0<LbmdQEEC&M_>D#^4V%z@2hI2xofeaM5jFpl4S2 z@W|=UbxG`1giNkYIX_pc>s+@#%GSr-SN+tdjtF8r;pvSyG2te zOH8?652kV!`l70VI(H8C^7t~Gs0;l*O?kr415S^0bdG44X@3&)j5WJnQhdB2`01FF z6bFg0*F-U|R;4L2s0y1-DdmiBY&E#XS^dSIChQ#mF7LLX09@G_aKasOx1DU!BPQhV z$Ps3JN3IO}6+fw&{-EWe#RmwojB7MYfg|<$i&Kk`!-MZeQL}S4CaOwunTKS{?J?u* z;cDFRxNs0vZ_Hh@!YAM20<$=zFxi6TbzT=)1{OzK2T*`yZ#!XAQUqF=BrC;wb=0C zb;+wPZe=>kFTg7a=L44;>8{7%8!`e{#}eRrymY;6*P4~CDEYil)O@v`b0@GTu8>Yv z)`UnqzG$n2-=$HIYBq1*#$fs`#mqXHVUiXrMNq8AZw)Xwnk%-kV-nl+JH?t1p4H-81w)S~h2k z_$K-Kx*AwyrA`-511d9f!ADK)`J1o#u1NZSI$r@Pfadm|c?sV|B(o(jwEP9xWUW+C zXQrwh`PgNBZ@y0cKqRiO4_&0X?u>XeY{Tl?#?$QLvs#-)24SyrZk?anCrxGOLL+in z1pEUTqzv@W4rjPN6aB5jIm2y_O*xjTceQ5{ebRj`JGU8Qw}% z7CAAPO)0wB2bV+@nO%e@sw`aw@z2spqXNU9I!9X#Q!Y-Nd1s*6jieDL3#| za`9Dw{#_rY(%toDwtv2L&35S`i#D5bX-h)|NI(Cqr>4SU<%}21q2ujsexuZKH0Sh1 z|Lz@iKNnyl^Wr@7$a~v639BrWIAOIwp84~ZY$E>mlv}(%PX|ds216Qq-nuvBbqIT8 zH%U6_jn}@lN&E)WzRlgGRpSMN?>}}(3*gfc`j?;GaX593P@kj*{0VjE10Y$2w4kO+ zF|+CBP`bT{!eIR@ezvboEx2YQ1bfYDXC^cz?VGl)_WVt=wdO*}&X-4%+V|52{_>0c zW#u~D+9%Cr%LrXj*#->4-e<11`X7BfJ@+P)^9|bqORoZGtKXEnk+HkX$avn6x`%Jq z#bjyB^Ps00mDNsV-JR+Z@^8yJzY$(4)f13y@v%r7pYuP8|JY$R`=HNJSg4drU$?L@ z!7Fz0jB)I(dR_L(sY3mzhe{TACnfzkqcq(+WwSNN+7-=W#H;3d^+V|! z?n7Hg3;AiGR%8nml0hE%q$a~Uxr_N$XK>{D1E+&&j?C<6W_cjA5Kr0_%&mM6*_0#_`z<6>4hje)&`4{}p`l`DbFzf)Wl9kxx% z-QjEhqXBpZ<+<)9iL>$?uXA4aG;O_OZh%v!K+Re-=MbB{SnnPcnf-gLZ+R4-a!ah*jwhvIf}5AcE-pJGfxjR!6{;r!JNE@ z3N6VxrUGy`Xb&|~I7%<^n)CkZB&#+^0%Y`=T$#-BO?_WTY58_LN>T4|vOXIu`(m7d z!#wzxdD}LMR?wGg)P+SP%g@3V=TD!%{v7}2J#`uQ`|F^U0N5M(M35bZt zlAm_w4qp$qLiWV~3?Yxtdw!i8TT*W06kSJ2U#i_fyCG+hVkOvDzM44*QAFoK6q|bJRsK&uVsJol|3_t72+3r-^Z=a(FGk{s)R6j)?TBjzQ5o z^0~cEnn}?7&eo4)10PD@no5U3XQflJ!*5q8a3J8~1+dY1y{+O2l=NX|BE;>p{_XY= zaS7k-a=vQPWY6RZQxVUq{aT{he`m;ts!+3D=KSp@OTDFp*p;;CtibsWU8BWB^m34Y ziGLqI<-Xp#?$_{IW>9FgqJ0yXpYhi>H~tE{#X6~(i}1UVhUbad9F3tr5~#xJOG;0! zHVtHYh871!ENi$AFDvpsy$CtZ?LYnKl-c0IdGmJir_Y$$>Mr7yRUKJ>3|?zyqYLlF zWUiz$Azx1RA|&A2oG;cHq>d{qW-uv7KLfE= zX^YHp!bE$(sR%)8rsQ;K&y^HzEt z2y%Fmo3A$J#|reMPs)j2p%e4Wp#7|=IX)$_S@_AKa<<{zRO1+uheE1h+3`7E@`!SzfkX-j=nl}rx}Exe9&~3#!YxQ zNu1)PG4WmNCKjknk8@WY*#e49i1aj{CTSRWcj(%;U$T!aSXx=t&`za-%Qav%QS)ma zW~roOA+BcMPl}GgJwaD%R^bNM8Xap$z-_+NbNyYIlvas=v2L;8Ms)I12tVhKho((Z zdf>{W)`X($g&Unk#=L9-qkVqnpcTXQ!yO72UmDc|8iJ+qI$}j@(nduCv)FATEwcya{2lp% zE}CHByTFG>M**;ar|q^uF~&iUrXH(uCXYhQKp$Is4_D zyY?&R-wwK#7q;2;sTK#Qwo%yz1aB|eJLLn-t*!?0j^~zP*f?Z@ZVGZA_=juONeAr{ zdlQvv@}J_a-JOopj>h-%^O2>Q4_=%XZrgAdFAAL!vyEs^`rLVrqf;~*AEGEc+*>HW z%U*TgnVa>9Pq|q(E)C+R5 zs|O)zM`fuh#YVJDvyjp08g4#+WWzy}3)egMCE~@B0ba7Nn+qFRjR#z0)xRQPElJ+rvqg`wrqf?X1gk?&hwE z=CtcgEa|zI)XqM2e~j3aekqkyk@d8Il*hhy)_*wkR!W1k)aloiWphm^z^R(%i%F#8 zL=yX@mb=o)(&l^GX#uj*>mT}d!H1=0+F)hTy8-=uUaUbLz{0Ew3=P)t@a`lp-FIZx zorXNrpMN>{WZ2>VKq~)PudW4@?yv-EJMV{*gCXaKNn5r~DoQOiZ)~eH*sNp{z+@Vm zQZINQx*OV`ZPaih(nI3{vNPqAtLCY7l8&27q-&K8t^>!Ud>&%a<%)n)?fLGw<-D&y zm)Xjdt=(*E=1V##GfTKZjydnc+IsRN_YJ}RM7_?tJE4WTx>?+yS|JiXOUrlaEyKcs z21LBpmiroH?_IT;5la2^Tm$Y+AEZ{r9e_GL>Nz?0lVMT$1WHK>9scc~wxiaPIMAXKlCCI1K5`noqDXKvdop{*~DuRir%ZB*CVW%7e!ubh2B zqI3QgZj-9t4*7HE|3BoiYwn504Lplp!+U<);9U;?HcHP0w$ZkE{|bK2PQU<^__Fgh zp5fJ3w&A{NdBJ}Lz#8kLeuWKa6>jT$LoXYN3C=nRKowVC!M5{4^gYTX$&eV&d>~`p z`VH|{Nk^`Aq(Z+CYgH24JIBl>llFthF$Ya|4Z50p6CDfHjiGjn-VHVx%#p44*TnVr z-8v-RLfl_V=5{7Z&4dn_!)`0hqHMsoRiko^0i#&WvH24`8U~A+4Q^Z1xWh$;ExdL2 z*G0EYSNOB0B#iE*y5_!|c0NDyd({RnUJRxIjSE;bgZC9R_O>PXb8<68eea($XZv3# z)ZZVi(&gJ_&N;QgzsVO1fZ1SZCw_#fU#F3teHUJ`f>hROzjDXFky&>uM->FWYz8 z<5pZNR7^Juz&y5|#vJ;neDJJ0Xm>7E&n$z_@deoPLfA9MRmT~3Z|tM3u5-k^PQV8|1>k~Hpiufwd1rc5(ruKR9K|0l0A`Q5IvrsFii z>Uqv~0%TmAunLr;BmhFf1+40-l$t-xhiS_XEckk_ID3uvq_2Tkk#5UcT*C#SOTf1J zEB=mAhybZ20T7N<+b#C#0x@&5muNQ?M6T92K}kC` z8pC#DdEOem0Hh0QaehHY&FgXKuw{B)FM?ee+q{lZ} zqD7+3#@<_T*v=_TxAer2GGFI>7p=8V4v0ff05H)d{nA*qXhbA^H!V_c(eoF>;k@*v zCN79MB?-+Rztvs>*@lF-ZJD(jw$m-n?*wumFUPmR4wfP_Wcz>gb+MOsD0`45YoU`* zVu|_&L{`)HcZm68SChL=zrsbxRdh_e!(_JO+;ujq5w?O5&`+8jM-N6@UR7ISZjDxz zHAnE$Pr+-);W2qk6{7(65;ohtMBR*HZTSIK=9;$@_V*eRf?%r6WCt>n3~%z^6eVq- z2KnAxq`RKXZsIlC!SU7Aw@x;X6Z-epnw&pMIJn|AEQsbTCbL7mEnpm-B`O z3?#WmU-5>`@>Ya8TX9=nnhWJ9sh8f4>?*6r>8*~*54NNa^Q}IeEnk-AH0{r#YP3Wu z{MhKs=W|((>GnW>bFr6PJXU~6pbcA65L1yTQ z@yY};gU|i!9G}OF`sYjzUM1M&?F+i?a_tng;L*n$Jjr&B%>XqSMBy^0t!Wa;fk>CE znhM?b7HG7hiAg`ne|Uc^^-CvTW|?|t=jm!&V5RF0k27&ehqgt{gKY_KLQ|`+`;fw) z2_5nfpt4B~>D^*yomfr|UyHor7Sy@|8DfA_)s7qV>_D0&_6Yvx;hzWc5sV`Wy!YdycCOivV4 zy-w1-Xg77^*zQ=Rbg_%wqf;kZg1u8I_Vws0^mqBl6YR_O36eb+vS6$7dhNm8!l0{H z=0}bYkq)!f^Ah=AwWB{6S8*rs7%o10TB@=P8&j^SM0D@N8V>b@gO@m4caPQ#)cj}1 zsL-z6=4XD7^&1ETG&>sAUMy5nkza13T~O%j*0A$s)e~03as(}dy0^Q^8@HS6ToJ?9 z=V_L=b4OOy*TF8pL5j&Ap9}=0O*QU4E(? z7u9+cbyeXg=5d@cy~8orZvvB(F+Slyh0czhg#csBBV%2w1=A)fQ98pG@bm)81dfHsueFAUkziB=h7|O-LM# zHl+EUB^)-pde0T3FOjevT_^a~lM zvw>USomLH+&Y~(4;W)bbj8G#9(=?ptRQz~K@=e2(>-Ig!q6aGygcPwNu-2*C<0D zB#=iz2>iCGTl;#x=uH`^*Iu>xl(vZcLiZ-d?eDJeDc2f=&6*tUY08yXtJVhquHpCg z=Y|#ly$kdhC41jEwa-LLc|N8|A{uAYO0ya@EP^VH(}wT9oiBDOkz{qbGm~+dA8udl z)c?6gGsnUkmXJD<_2TUBbk6S?0Lo@*c|}8ictGAEGiMX`G0sz$I;}Q`9%o@Ja^Ra2l@oTho0Rp*7m_edOKE%fozfPR~ zZ`H0X8c@5NJg}UvsJaOoje zL{d1aF0@RpWL-SztJu@aMxTy|mQ`M!FiDv4M+-uS$K>^@Y?8cdv8S@nwV`3-=g^Hi z_q`UN00Ht6ZJp@n-x}o`g8*ZVvU>hLe|S! z^qz({7;;>5jrfmd)Z0el|%Qg;TfPV)$`oC?Vo$rjba@C6jK2-?vlVe1AM4D zpH%v0&(BX~t-40=-O;h@NV$PIKts3)hD-%fb=f_okH~`zVdFUl0ZiY5G^VI zQ6pbR;pl}wyu;HJz-fL#*QOBKr|bcYhy{P;#obHwFIQt#{&$?q-=E?4U)*x0E63u# zN(q6@V+qw=B=8dx#^0I-AS%%Vk^!xclg)nzm^+z5M}R8DqQKz)<@fV>>P!hh$PRrk z-ukB@pFQyxp*$3Fzhlpy%!wI*+hU=DhJO6tON)QY{22iZ0t@&;&~Ivw|MkFQKmz>= z%hf-O;)mOS1re>iM*BO`81Mp@KAceexrW5<{@&x=xTFABP)C=C9OwV^02LrXFUR>e z8^x2)m%b4S1YmPZX6m$mQe%2RLWw%&^KX|Xu*YHn3{`7?b1KK59^e8bn5XqT{F7dY z0=gHP{z*pTe-z>Wz9MAf&993&4M8cyoEO6j^vh}&Ss%F?xvr0~XDR`}1+|YK=humQ zn{y|ad#Lb&Bq1Q>h&;p|xCnX@YVuUw) zI3qN0YoQ}%S3cK!y)~3I3V=n91)cz$=i4HhQZ8Elgk+AN%~Pv$U5gdiT8!|rOkwOP z(x>$M{MXCHT2BBBy}w3S+iKlq-6DWscYKcoGN0vYYF0kW{R|F^7InA-*G>y{oBk%V zPiVV*Uvn=>J^wDmL&8@rz}aldw|Ai}0$lp4lfEab!2jP1He3eS*$OPZS1BAE05x1+ z8EL8@0$qaJ=yq1d@Wuw430x$!lfbn2T(HEJLobhJh0-gShm*Xf8G6vN`=pV{cr(ZI zuW!1N_u$X~ zQz}mih?8DUaoGGKldysC>xq|a>6*>w`MuOZFmWJP5@R=4s0P%?qFO1!B0+A)uhvUl zyOlH5!c=EgQ=pfgYWZ~;>-tWWYTtd9VA`mgyr(N-cVq4P>xHD4qL!xpg7cVn@*(jY zCdG#KMFs^{ml+>s_~uO>24QgR4h8ECjmcPxmz{M9o!lzLRF+!EUnZ_C6W`E(ONpzuvW6N2WYz24mp^T-xq?i!`5S@lmZ|bN=0)=m9{E>cy!eIAoR&#Y2TD6YDcn(Dp_#u(B}ogk3MUc}V$HME&VN!GcBcdiV%bSrm%^xa*JxCoA#QV05l)sNod6AJ5Y&@z^;d**TU zo?(p@t3rq2Ra+(hc>9s-dL#j~*OmevtQJ!rwUWWH&ZZT4c1G(A`e4>2T+=CbGSWBo zY3*gJQAlD<5$3YBdcDOOir?bLa|W5Y0Ntm7!i2iT%%LZLFQ3qo3qehV3^PfT*k8^x zBMI<5r#k5gm7Cxz`QJnlXPbkBJtywy6L+dAO|Uv{ojWL_S8Dex@38Nxs3&coxB4L9 zxi=?|ewR&52*rTjAp9P4`I{*_Pp2d1f7oajw$pm3M^%Qcscd9 zd3QBdp0m%;%fPQi7Fxe9ngWk2)I5M*B$^8ze|f$ERHOX#+u)x7f}zUz?0u4wSaC8fMI^RDg;VDpVE9QTP*=E=K@q35NS7TX%VUxEXgZ9q13(+_g#iyNcKO4CqA# z7jc&@95{kqzNal}d?_-+GY^`5d8xi`+iR!_tqpF}?xY{sK7gFD?Kl*r-8&)L`wY0$ zy#zEg-kH7)#;H4sg@M9W$y=TlVDrkjti`5)9!Ub1DnmWA(iQ*tu4<5qQK5{R-gOB84D2_(q2+u>-VkB&TJMgDy>NN`peh&Z`U(BoNkc zAU*hs7hx86^SQdji@vA2pu_KP&0yIYp-=GpE;h`Lq?KC(P4@@~9>?G>z4xm(Ywwye z$YPUxjt$Z8P3=E-(KR6|XS{SWTg0B=jmw`t_EuXV%3)PAj@L_f;bXhzty! z9pb4i*>2dsJ=HXjhIfUHXib6IR>@N$%FllSU|zoKN6L%524-Tn(^E)1iYJu$t>y z#BxNwN7)?^-9=2;E11G*`Nu%6K_92U7Kiph+u>x097y<{p==K5P2o-f3W{xv6A6Kb zK|a`keI?b_kY8j-okq}~V=csk?kY4RYEjvot+9QVHQPWEXlbvW#|SdCchZ)-_~*tcbMXS1EkZ5@DH1>)6j7sG+gqWAKC=r!*#WlTjii5~BrIfsXXZ}}eW z$Au;|u`}pK-3=)&zuS%Spb8;$m}C>L7yEkHrkhL~?1}>gPS=I4`hGcosR>PA<3gED zkA=>T9h5OQ6oUF%RUu!mBaUXKwV&87D{vns@jdc3!4jt)v50%=8N=pS@dB^L?Hd!J zk9-@vGy#8Z?a;iSd0aXM03`?3>WPl3FgEop5$^4@=RKw!@9qJ0A?KvB$Y2Nuex1mc zKebl`YkX$TP9|>EYRe{#g?Iae<>su(C7z-l}8UAxsj~b)eNKKxEzZn z0J~7uP8%MFj6U9m0DA3ylvCkt3^ODf#=gRPg zO&)MD6YN2}2cD@BS>3m1RCw>;Yo7z9w;HehZYkK!<24v76IoUB&1P?^Elp%xN5CX}yC>cn=?F#8C0l*t*pJJw)t+8V%>Vz^A> zGCj(&7Mti~hlisNc?602#=DW5-WwGp&I^V96~U$G!C7Gsiy3?iVc4fEc+6&aoW@Sc zs4-n3tb?Y7*Jb;WQE{?!A0!jn!&FpLn`Y!SLypYQ$4q%)y!XAjb+-~X5!s|eY-;5} z&BSUfbH?MEQt?h9cj_Gj>&YSfzSRz9t8jC)3hn;Y7)x9~uXjAeGXP;;DpNv>*dyu& zpcfCkr?!d~HGB8!9WNdq5sRP2KSYTsCroZEL5*AC=q7wAuBfORA9hOMyEJiUNXYDl|8kb7xZpS@yW5&^8 z>+U3Y&Pedg{o0b{o^Xu6i2_ypF^LMYIiOhu^k?IN^1kh(9YJ5F*S247I<{8QeD)QkW)wpv*ftzUh8(iqUW%7= zOM@UZnyw2Rr&5>OV>*~a!p(9vhn#JPuk=h)2U$u;qIcBU?cd}PS@!3(zNBRdSyi1i zmrq%rgASCBZf)L!8-5~duz4zIzICn4UJ;Th?aO7@+2pZ9kvv7;TpMPGAdcURQ-yrv zn~q2kx4Aeao++SkVckBUFdHel<4gSw2&Sygo`Z{7-eW{<6dPt&YNkpb-RZn|UE*bV zUou;HgUuyES3&z?rSWZh^#aqzN*1?^Hj+TgGxUwFnv_r&>F})?X>PAbXU!2V7*;pUyanwUy4`OfJZ^6z_)g_MSyZf8LWZpzD7u%arT<)RwH|CriVy4Ab zBuY%OKJSX(jLtV+arMN@qMWC;`}TX%5Sx8D`N7{FM#`|gv3{>tI~m@3UAT_BkB6dQ zX4f#W)~-blU#N>%ez=>P>&j=|?bZMgO!5sCU^*F?^wUwEo@9?;fgf*sYNgv^VQZtc z$v(Rz0O~K&jZ_3?s2YfJJHQ{E3RmdyaS%FZ zxUsz)n3FlQL-b76ppg)6k$0}^L4fmDEK7Za zv6s4G{S^Ye?@%3OqU{+CmXshQ3VQX4>@;$%t_Ha_aU>&pR zgijVZRglm(q)$sBb0g9*37oQ2ER(_lVqd}(HRuLNPW6gnoVz_4tr1^CJAaj4q{o1~ z5~V{Z5d2JLSm>=%CqH0R^JkM<+GZPxI4Utq-ko<$H{$lJpv$PF4}N(La0;NlF_+cl z^Y0#9d5bEjRZ584>Kg>tcdcLNH4{>t zvXJ2*JnMz&n<6$l^;KQFNuRcF3K>cZLE=nK8wdO3%^+rPNdoiI`b8PGu^et6=thI( z;4J{&K^Rr319{RTIR=KiE!pwrXb!9qY4OOG{T*{ovSYo?h_{?jO3PjkbZ z&Qhj~7j_pco1#`NQ?knlvf7JkXm#n?KKW1kdh+HTJeBY|iO0)q_0E2WRXgkY^o1a; ztpmBMv{+t)F}LNpgCc6z>rC`$%W{{B0BLv{(g`cX4Md1~e#XgYs#;ZmJTO2oOPw>o zH&v7(QM!nI3CN0j9aVVr`JnXuXH@jS2U%>#2>{q9Igs7iAx{BKd!}-sBg8_z>8ue- z%+8yj;7s#`?xl5Qtjyht35f(zJk=ubj@YC>QOgbntGlu#KEfb0er~ zW+O8#`YVoST)~k61!F%{d>8i-{Y-XqYKf7nw4U_R^Q{_}cunGP3of!l1huR5b+ z^Dw&nz6V91UKIR(F`tj;`s@44)UY3a?ItY{mY4xo?u61#5TWygJyV^7DovP8T%o`C1gKm<@e?;A;7@Z6gB}fAMNL^jN z+Gp4&!+6d_u*#Ck2jJ*GyUGWz2`@MWrax?Zl@G(ldnCbdm4noREcv!w47_eZdyXQp zY$w-eHxy=;qu(V(qF@G39ojMI`vw$=(3L0tWqUuTbNk*nVahvD-?!XY5@=b6Xb4?8 zSm=y-Sp2=X@rY;K=XjFq6QSi3B>m^dak7m36@M$jYJBuP}4CyhJP(XwM0L_pQlQF}6gqA>;`ZVD0NwcufC!FEC& z+1?q%_h|=`x>c$w{n)&Ksqc)@l>FOvSGhQlMVhw|l|FE7&u6wmhRCIR#@z_GTdmj8 zYI`IAFJh%;q*XXD7Ib5p_w_3%r*o~K>Jdrc`&4f`vEfwt6FI3b^4>*)9YBhM(t+aL zLH@^M#9@^m_wa^t;0q!WG;LV1 zJb%#ibi}cwHksVcJ)36ch}H5l!*R~omzYF z&NB>zv3vpc{S3JazqSD_vEmy6X({R2*f1HwxBr+`B_ee%28E7&-^(pTuq5F+4&s!F z!i8sco$U%4R)=v1ZtE`&=f_5>T-W+bp_FlDWzCfpCe)U|uHQ^0q4;2S-+TK6dVg{01Vt+wN0ELgm9XDaxrbL}^r!UV)5k+kRR02=}GJ{h0>U&k}>f zymd(G!rR{i=97xotI%^zU{jl%z)_DzXEMnyo&>u?pjWmjjmfUJC`oKv@l{9?tR}-R~l*>~1 zD5%7zHGrvp;i8Kz0*v5~0;8Qk={BevXiJgE(7X{1q8TLAbTSrN&e}`^TQXl3%#1;7kG&M?Qn6^s1m2 zr+leYg${y_Hs%J8kz2+D2kd+Nwcvl`BN|Tf5#~713$g-w2iJ`6#@|@kc|P3b*bVR; zGuulGl{5-;aurD>-LO%<580@68Q%9HZX7vY;_4dqb|*V)tDjYP3Hn*mJ_3tboN~B1 z(oj(>v8L85CTh5*hp%AI*)@ewPkp<`4nPEU*9a??Io^ggeX0I{OOHU_v+rBhy@-*Z zuDHHD+3hZ^BLu5NvwfQqAI?*;)Ww4B85n8>aQ+=GQ_j6zd}Q*C%#=PP9jtKAcSy!U zv0WCb-F(8Jc5Y@he+bB%yJG>* z-pwp%;~?d>_@q5XAbXu>xK%V=1LB^muP@a{11nZwE&)i-}AVkP+)&;K%MoMi9Y>#>jcDF|Z zc%l7ggZ?moGlc0zyQN9BUEeYx|0tnp-$9WS6L93&%H+aIatp?vZa)}ZyO6Xapk{y8 zK(>14hXGvoUs>N%e&v^e26EG@B+A!shP^Bm2H*C(DTKyP^|do!dyj7oGNHO;S-s$0 z9dD8^&!i(b{2y za2=TvPhUb4MZc8ZP9xAk>uLY3_ucRxFruI8TB@F`FV<8lFeLj&u~3TY`r4Jp-bu!3 zD?|OqM^VIJln<%U3U#VS#y7GUM2@07v*Ld`SvGZ@JPEr;e!gcxya?pX zcCeRjp=^RHRUeF?Xzos&yu-vIPKkpFSG+Zo%p!!5AjNifXe9dvxI*FD88RhOPZaB( zex)GYua`?;-7(7mow zj8#e8%NVs)``RE|5##=8+%94zF3IM!-P)5TU&LS2tb#8Fu;aiUI#S|wUtN*V8p9L) z&hm=oZk6IFNRiFb`P3-qhFYBa#UNR4hDzLk;Wp|La{4f(WD$tpp~=zpKFEiNW1dZ_ zAQH$vu==soB)XnlUPMJ6bqYCsfk)PR*KqtDafRE>>8)8KF8HYdtpeWof@{i*!Lt9I z9luDxk4zC@zMh8P13f>3Ppk<&&MmOa3t3&(2!*7WNS4Ktd+zM|UAIG=D+ew9!+30}If10;4HF$V*%tz;wAS#J}$~%uguR`6PwuDnA#rL(@2u-dgA5xyI%1HgVvu zfeF02>QO~dh54&C#y0r)E{UP2b|}B@?vG(3TET(4*s=k85U?+MNE{eSeN0A$;j?Vf zx=F?dx{Z-?@%nuE3Z${C|AH}SG7zZ%5xuQuS4N&lk;qhP%{DdlotUE1ojO8vw!uKR z%YpE3s*D%qu5 z9riSVFfa>PFq6(c@@b!*R0R!EN=!7ZL!g~V+b`fcccO4b7x0xZH3~|(m zcyzkzi|C-J@tL>h9(=g;{K*r6hj)4A_*Gp5*OmIL?n=prz%EVbrc8^cJ_+#;qT-ZBz2~OLrJh7^<8w83 zAd&y<8J!utlczRy1qsup2*QfdLkca8^G7x@TaQH)Qbi{$@hRzLXMi);d@L`I_fCAZ zDL$fp782#wm?I2o_yrlZVmy7OS=*=y^ddi4XTO%+;IgiT9r~S2cI-J?tcE3sV@^C~ z3)|1)XVz^$^m)^wW3czRh4)WW5Z~HZrNGto+N!O|2ADT$DMG(-=saz!_$5t@yZ-IV@5s5?G59w?+(d||$!=8O>(Ndl_!#ClTfhJ~Q zqK&%;CS4nxMY{@RVjp^|l2dI{=6Sab;~;n3Hj@%=>|GK#FaOXc*JtuWXWn8ibt?fB z=rha{OS1k!n0YuJ={L*wG*z`~=&uZ=t_KtF((4$Sut(6@tch8b`@IsxdW}!BEwLLE z1JoiR%Fvz#Oi-aP&J%f0LgzWnBwvoskj7-&@u9xWSMkXDIo(FPaMXCn_T=Ph`lx?{ zry#6Y~9JUnTx#s>waB< zbV-Z#`WnL#_zD$mtHDfbPi{%Hw42(s#0+S=H~})rr1itIxI?-m-_1NsP6WJ{fLfVR zxSKHUFkAphIw=)ja?f*D%j67cd%!-@`E+rX#43j3hJintpTUGZg_+}T1u^3K!3-8LQY>oA<|O5Su_XX0nf8PWQ- zRo`z7^53Z%4>wENEe?GrXMA7TF*+w}+~BSZ9uZbnc@28^U9F;M!kpkM5T=$A$)wFn zaX;ogGXG&F@b)Dyw60B)e2&SwG!$42a#z&r*zTv!D7jByiSOaw7NKnJ0nF?kl7ud; zuAWD>@OqlU?N{bx&89ubk(!(Odbf}M3SoYjORecUdJ8;wxOf!UHQCqz656*lx6di> zQlZw{PfOWhbR9j1Z!wuF=;CqJ%HZdl3prCsGy1JReRpI7UXVjSj}+}iY(&;zLqDsDUUU5m}2x&MORI3a_&5l#0YXfI;2LSpKHDLJXXgL4J-_ck{yWn~)IXK;Z|{EBebE4Y=><#JctU z!bUyk=8aEXi-|kAUMM4A)$_gnZlwRgdoZ0yVG+HyCc#y4rr9%NyKRmllgA;t^SPJ` zX<$UUB#ZUYLBjLSAp<|NilC#(Cf@=sP3ylV$kQ60hcAv?RV%)LN(2_f+p3ViTm$?< z^*+t2N$n3Mxvz-jdcGv5;`tiZLS&tK?@(kA9H#$tgGpB2iafuh56s`;@Zpbz}zn}f6_I_s^uL#+y)@h#xCkC(AD+k7++gn2+ z0JHZ>K4dSk4zpgD5Jh<%{bH!VTS#qMRfdne?QoWI0#}QXaz^{p5dA~Y?O9u8CLqt( zD=jt^H+*gG?#gOanpn+O#xw>4T{%9d`$pQW;n;YYbVcGQMnY{#FQzLEeLFcA3YD%m zz5JPU{BEbH($*Z4w~?iz(dJCx81puQX`40Gk+*UFaar?X;Xy!R}b^BD6AG;_KG{3Ls z;{NkKHR$WtmacXPmzzaYTY6%Pt%31m#5L3l^+M?q`HL_olw0kMM=#Kl-G}5w`9 z&H&?Z(dzX(irJ2B&mZnJARZ0?W&Vzm3}$6<*OwK!h|6DWGiZeXH~Y56&ZTxv za`FZYUs%-*^hGnR9QEWZ8;(7Wc6l?JrNW%N~`#8Nxk1&0^UhsK} zyeI|9(NzAm^ks{UeOWC`soy;o^W9MhAxC3sXSlwY6SiKjrl$!jBN1P@FR6ucnb?rtvVJu4o6BtOuDaDcb=!kO7QnhJ;9UZ=H>Ws){Y!Q z=Qvpw+1&EXo$Ww@w12y2h*9Q2Kd#2)V6Cxgbo>CD^~Om%kX7J-wRQ2~HYRyT3Rg+p zi%qb1rVIk?^GX)9@JiW$AbQlJbzY)+=x9;xYbzYhn6sGOBOgJQMb-C+eGAl%F#83O`5nY5}UNL_qLwU^$NXeao| z|Mu9-?W6CBc^B78{8g|FBX159bqxn8Eg;?&)t=J+I$vHEnBiooD<4$f-(2jJ=V}03 z>re+v=M6ii%)X^Cm6mBZPn%y4+VQ`$$3o%sL%{>W&AXj{Prcx<&NRFp$uGpksh%W+ z2*@W#7!1@!{;k#4#-_?oMUFRwVte^n?mbgZT@x`q3{m_h#-a;{&OJG8-^dYH-08-M zrR`@!A$0rXl3DVG%A|CSy%8Gs!aah}Z!5=eilS^HDqP6{!9TnW2I0`L)cHkOQQqS+ z@n#s-9=B)0&YfnC$HP-{+`KDNN3K5bA*XF4;Ee)vc@78>*p0O0h~{Sn7RBf$i0=$No+65TT+NI zCTwXG1?l|s84fx}3-R!Ly|W58er+*IALgNq0K7cNHEkMnh8cO2Q@vpGp4xtthUdq6 z_6xMwlD*T}NrS2Hzkom}@eywfWzde^mbE3dqQP;^jDE3CYPF7~J2xGNjxypVCdD** z5XFl^iwciz#!%5hj205FAK~-6XPcD|6`AXGQDmHYCOYWMh-6m;Cr>nn=?6)Kvyr_=~nT{t@Z|arB(P z+_6R0BAZVeph8g!(C9^migLtWy$chqZ*@3s29N<)g^FJBKROxYtfq|`B-R2>xe!N%Z z>bk=4nPw)??j66xu;V;>LflwtX3DGsJN@BnrBqQ|Wr#~Aps8;G6y>hBN_>RXQe0xrZ4MY?Op@~N{dPHA&0Wr8=9-A%LK^v|?r z;Q22yIlSHy%>zxgmRTffoa~FfWX{xn6WiQNx4rjNE%Q2r8i=C7q>Grtg(YvU#-(s) zRgp&{3RrV?T>WsJ0h*6%qzXv}2eKuYX<&WpvFq%OZb;!nKIht<$i zfe&9%XGj9qxjbYZ)9E3O>Ub8-38-KhB#|JSuIlHUO5{&enH-Gr=+avT=ekxLICW@K zwK^5Zd-LexLzn~_WI|0tiVxNsux<~;l$*XeUE@Fsnig4k-#bpUuYR!nR1KaV)5nYa zXjEZM!Zmr;ntC4Y-hr(y2L!`S2!VktpSSsNEmUkbbz8k`Bp>a!XHRmp=Od4SJJIL2 z_HVyjQ&aNe+X{GibVrdg^nAd+9OhC5t@m^qNKjN*Fy*bvz0vI(=kGk{Ea{;J*ZSKG zTGe#aF=fS_bLIxwhvhp~sq&qd50t}xkzP6yrVioUDF`zd!xCgpN7~3?qRDp0^RJZa zP7@xEM`%}^D%+(be+*5^S@Jr{hvAf2-HuAj5ito0thugV@AH%f4Rmn~hoK!aK_Rb) zK7Q#LHqEv4o|Kq^ADB8lgLog_g8LA0=4@IxjBoPcbqt3L#BI_KJ-w@ zd=VYqmnuPg4`Q48l@lwkKjk+YD`IRLm->k%Q%T(+i*T3uo)|_aJEs3Vsyxi%v%c^K z;^+YUtT;rZlHuo?Q}J7awub$xs;EzJJ7Ks5S_;8gv%l5#q>yFUOg_w#rwqD(K<}*r zpF%{XTBa-ug`W9ZX3;BbQdZ+hmkQRFBfjA|gEF*7DA@$*frrj0dZ7RS!v#8%OsB>4^Nko>=R5nIhI4$}#(BEpSW!t3#T#rSmHY zo0Er7K6hgYc5YW|K??bBtVZh|EM?gyYWerZ-*cgxHe%|OYQ z^hdp@4`rWJ|14l>=TxTZ7po#Nc_*fUUEFbAIe8H3^*~`)f@r)md>CyYC)Ny!@kFA4 zlZywe2eZd*`*}QUWW)*~bPHxk75+(N8qx|F1T`jn zr!-l-gxY_s_RXqskUH>-vOcg&32XLDa%mXGWu*+QScjDvh$u}S(oN`2Lvy|P6~`6# zdz+*im_@J^C7AMp{a4f|pDc+r1Io!4nyP#CzOa~Ajco=B0so%%<8x=u1|46n$ly!Exb*uW=LykY%jNLuO_Jow})|0AF+!!KnuRQ`KM!y*5oO)icJ zT3$08i{>+YJ%y^gg0mSL(Lrh1J_u4^gD0)%sdGEW97%I?-2WAt0axEvxTI6vp;Mki z|DyUQfM0CvH$_T2rZ5tdVT+7#$6uIS;L5M`{3Q+^Y;2nGe}B$brL#j{^lHq?I%G%$ z5d~HsD?vFqWch_(iM$iH-*HzuwfeQ;yMzD!Cf^>=sZ+l6^;wt0kIdg!40Kuf+(QRd zLbkecxX*`OEF8O>#vJ#nZgAp1UO=zhP_GxaN9r+{o7oado2@Ahu{^u1t9Ux$UTDIap^z7I7_4{)694!NTx6_~Q zN1kZpazL8FKfcyKMf{H%oH_SDYVhWN)Zl;A0I(4MPpCoa8|lq^7A>u8iIQ%UnK@9i zKe@P5XF@LR@vBcvx~!F^ELS59vQ!dvoJ*W`q-&cXRH;U$UMJP@3O2}_G0ESGuP2jSBcE52i(Vop4<3! zEU%&6xvL_koc#Cy>7o8%%KPq|CJ!3FTNsEkbep`RH&M}9o8_FXn&nO0%?hEugSj8i z9W-pFR~R(xsmJ|^f!p9EK#{bG9lf!M;gsqvyU_9{Cw9r|w4YEgsW&Ums?p-nV45s! zu*6&;J@)6CEvI>Avihev33dVXf_M(Sg4iaLkvAo8TiTCJF7`G4iNAZwPn-RP|M!k3 z1>YR5u;{!Q@#$f{qf_Bb9wc<@Ppo6-r@(%w*? z5U=8d{3#rmr@x_|lo)jR7fSO#ys97aKH$xvcDl&l9YJ{#khF12r;3Wu-Tr5s_0NE! zPz#7BuoFcEbbpw`a6{k$y9e@rqK6w~0}&0f2CUEd2bH@~1w1hEJosNR^Z$1&%2oZ2 aDIKQI1ji;`dVdP|QIu1CQuO%6+y4cq>Sj&= literal 0 HcmV?d00001 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fc2a547 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" + +services: + awesomegpt: + build: + dockerfile: Dockerfile + context: . + env_file: + - .env + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["3"] # You can choose which GPU to use + capabilities: [gpu] diff --git a/file.py b/file.py deleted file mode 100644 index 4544294..0000000 --- a/file.py +++ /dev/null @@ -1,87 +0,0 @@ -import os -import requests -import uuid -from typing import Callable -from enum import Enum - -from PIL import Image - -import pandas as pd - -from utils import IMAGE_PROMPT, DATAFRAME_PROMPT -from tools import IMAGE_MODEL - - -class FileType(Enum): - IMAGE = "image" - AUDIO = "audio" - VIDEO = "video" - DATAFRAME = "dataframe" - UNKNOWN = "unknown" - - -def handle(file_name: str) -> Callable: - """ - Parse file type from file name (ex. image, audio, video, dataframe, etc.) - """ - file_name = file_name.split("?")[0] - - if file_name.endswith(".png") or file_name.endswith(".jpg"): - return handle_image - elif file_name.endswith(".mp3") or file_name.endswith(".wav"): - return handle_audio - elif file_name.endswith(".mp4") or file_name.endswith(".avi"): - return handle_video - elif file_name.endswith(".csv"): - return handle_dataframe - else: - return handle_unknown - - -def handle_image(i: int, file: str) -> str: - img_data = requests.get(file).content - filename = os.path.join("image", str(uuid.uuid4())[0:8] + ".png") - with open(filename, "wb") as f: - size = f.write(img_data) - print(f"Inputs: {file} ({size//1000}MB) => {filename}") - img = Image.open(filename) - width, height = img.size - ratio = min(512 / width, 512 / height) - width_new, height_new = (round(width * ratio), round(height * ratio)) - img = img.resize((width_new, height_new)) - img = img.convert("RGB") - img.save(filename, "PNG") - print(f"Resize image form {width}x{height} to {width_new}x{height_new}") - try: - description = IMAGE_MODEL.inference(filename) - except Exception as e: - return {"text": "image upload", "response": str(e), "additional": []} - - return IMAGE_PROMPT.format(i=i, filename=filename, description=description) - - -def handle_audio(i: int, file: str) -> str: - return "" - - -def handle_video(i: int, file: str) -> str: - return "" - - -def handle_dataframe(i: int, file: str) -> str: - content = requests.get(file).content - filename = os.path.join("dataframe/", str(uuid.uuid4())[0:8] + ".csv") - with open(filename, "wb") as f: - size = f.write(content) - print(f"Inputs: {file} ({size//1000}MB) => {filename}") - df = pd.read_csv(filename) - try: - description = str(df.describe()) - except Exception as e: - return {"text": "image upload", "response": str(e), "additional": []} - - return DATAFRAME_PROMPT.format(i=i, filename=filename, description=description) - - -def handle_unknown(i: int, file: str) -> str: - return "" diff --git a/handler.py b/handler.py new file mode 100644 index 0000000..69352f9 --- /dev/null +++ b/handler.py @@ -0,0 +1,89 @@ +import os +import requests +import uuid +from typing import Callable, Dict +from enum import Enum + +from PIL import Image + +import pandas as pd + +from utils import IMAGE_PROMPT, DATAFRAME_PROMPT + + +class FileType(Enum): + IMAGE = "image" + AUDIO = "audio" + VIDEO = "video" + DATAFRAME = "dataframe" + UNKNOWN = "unknown" + + +class Handler: + def __init__(self, handle_func: Dict[FileType, Callable]): + self.handle_func = handle_func + + def handle(self, i: int, file_name: str) -> str: + """ + Parse file type from file name (ex. image, audio, video, dataframe, etc.) + """ + file_type = file_name.split("?")[0] + + if file_type.endswith(".png") or file_type.endswith(".jpg"): + return self.handle_image(i, file_name) + elif file_type.endswith(".mp3") or file_type.endswith(".wav"): + return self.handle_audio(i, file_name) + elif file_type.endswith(".mp4") or file_type.endswith(".avi"): + return self.handle_video(i, file_name) + elif file_type.endswith(".csv"): + return self.handle_dataframe(i, file_name) + else: + return self.handle_unknown(i, file_name) + + def handle_image(self, i: int, remote_filename: str) -> str: + img_data = requests.get(remote_filename).content + local_filename = os.path.join("image", str(uuid.uuid4())[0:8] + ".png") + with open(local_filename, "wb") as f: + size = f.write(img_data) + print(f"Inputs: {remote_filename} ({size//1000}MB) => {local_filename}") + img = Image.open(local_filename) + width, height = img.size + ratio = min(512 / width, 512 / height) + width_new, height_new = (round(width * ratio), round(height * ratio)) + img = img.resize((width_new, height_new)) + img = img.convert("RGB") + img.save(local_filename, "PNG") + print(f"Resize image form {width}x{height} to {width_new}x{height_new}") + try: + description = self.handle_func[FileType.IMAGE](local_filename) + except Exception as e: + return "Error: " + str(e) + + return IMAGE_PROMPT.format( + i=i, filename=local_filename, description=description + ) + + def handle_audio(self, i: int, remote_filename: str) -> str: + return "" + + def handle_video(self, i: int, remote_filename: str) -> str: + return "" + + def handle_dataframe(self, i: int, remote_filename: str) -> str: + content = requests.get(remote_filename).content + local_filename = os.path.join("dataframe/", str(uuid.uuid4())[0:8] + ".csv") + with open(local_filename, "wb") as f: + size = f.write(content) + print(f"Inputs: {remote_filename} ({size//1000}MB) => {local_filename}") + df = pd.read_csv(local_filename) + try: + description = str(df.describe()) + except Exception as e: + return "Error: " + str(e) + + return DATAFRAME_PROMPT.format( + i=i, filename=local_filename, description=description + ) + + def handle_unknown(self, i: int, file: str) -> str: + return "" diff --git a/main.py b/main.py index ecbff76..c794bc5 100644 --- a/main.py +++ b/main.py @@ -1,115 +1,73 @@ -from typing import List, TypedDict, Callable +from typing import List, TypedDict import re -from langchain.agents import load_tools -from langchain.agents.initialize import initialize_agent -from langchain.agents.tools import Tool - - from fastapi import FastAPI from pydantic import BaseModel -from dotenv import load_dotenv from s3 import upload -from llm import ChatOpenAI -from file import handle -from utils import ( - AWESOMEGPT_PREFIX, - AWESOMEGPT_SUFFIX, - ERROR_PROMPT, -) -from tools import AWESOME_MODEL, memory - -load_dotenv() +from utils import ERROR_PROMPT +from agent import get_agent app = FastAPI() - - -print("Initializing AwesomeGPT") -llm = ChatOpenAI(temperature=0) -tools = [ - *load_tools( - ["python_repl", "serpapi", "wikipedia", "bing-search"], - llm=llm, - ), -] - -for class_name, instance in AWESOME_MODEL.items(): - for e in dir(instance): - if e.startswith("inference"): - func = getattr(instance, e) - tools.append(Tool(name=func.name, description=func.description, func=func)) - -agent = initialize_agent( - tools, - llm, - agent="chat-conversational-react-description", - verbose=True, - memory=memory, - agent_kwargs={ - "system_message": AWESOMEGPT_PREFIX, - "human_message": AWESOMEGPT_SUFFIX, - }, -) +agent, handler = get_agent() class Request(BaseModel): - text: str - state: List[str] - files: List[str] key: str + query: str + files: List[str] class Response(TypedDict): - text: str response: str - additional: List[str] + files: List[str] @app.get("/") async def index(): - return {"message": "Hello World"} + return {"message": "Hello World. I'm AwesomeGPT."} @app.post("/command") async def command(request: Request) -> Response: - text = request.text - state = request.state + query = request.query files = request.files key = request.key print("=============== Running =============") - print("Inputs:", text, state, files) + print("Inputs:", query, files) # TODO - add state to memory (use key) print("======>Previous memory:\n %s" % agent.memory) - promptedText = "" + promptedQuery = "" + import time for i, file in enumerate(files): - promptedText += handle(file)(i + 1, file) + promptedQuery += handler.handle(i + 1, file) - promptedText += text + promptedQuery += query - print("======>Prompted Text:\n %s" % promptedText) + print("======>Prompted Text:\n %s" % promptedQuery) try: - res = agent({"input": promptedText}) + res = agent({"input": promptedQuery}) except Exception as e: try: res = agent( { - "input": ERROR_PROMPT.format(promptedText=promptedText, e=str(e)), + "input": ERROR_PROMPT.format(promptedQuery=promptedQuery, e=str(e)), } ) except Exception as e: - return {"text": promptedText, "response": str(e), "additional": []} + return {"response": str(e), "files": []} images = re.findall("(image/\S*png)", res["output"]) + dataframes = re.findall("(dataframe/\S*csv)", res["output"]) return { - "text": promptedText, "response": res["output"], - "additional": [upload(image) for image in images], + "files": [upload(image) for image in images] + + [upload(dataframe) for dataframe in dataframes], } diff --git a/requirements.txt b/requirements.txt index b8827be..bf1cf60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,10 @@ langchain fastapi boto3 llama_index -torch==1.13.1+cu117 +torch transformers -diffusers \ No newline at end of file +diffusers +python_dotenv +google-search-results +psycopg2-binary +wikipedia \ No newline at end of file diff --git a/tools.py b/tools/cpu.py similarity index 80% rename from tools.py rename to tools/cpu.py index da81aa8..8528300 100644 --- a/tools.py +++ b/tools/cpu.py @@ -1,22 +1,12 @@ -from langchain.chains.conversation.memory import ConversationBufferMemory - from utils import prompts from env import settings -from vfm import ( - ImageEditing, - InstructPix2Pix, - Text2Image, - ImageCaptioning, - VisualQuestionAnswering, -) import requests from llama_index.readers.database import DatabaseReader from llama_index import GPTSimpleVectorIndex - -memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True) +from langchain.memory.chat_memory import BaseChatMemory class RequestsGet: @@ -79,6 +69,9 @@ class WineDB: class ExitConversation: + def __init__(self, memory: BaseChatMemory): + self.memory = memory + @prompts( name="exit_conversation", description="A tool to exit the conversation. " @@ -87,19 +80,5 @@ class ExitConversation: ) def inference(self, query: str) -> str: """Run the tool.""" - memory.chat_memory.messages = [] + self.memory.chat_memory.messages = [] return "" - - -IMAGE_MODEL = ImageCaptioning("cuda:3") - - -AWESOME_MODEL = { - "RequestsGet": RequestsGet(), - "WineDB": WineDB(), - "ExitConversation": ExitConversation(), - "Text2Image": Text2Image("cuda:3"), - "ImageEditing": ImageEditing("cuda:3"), - "InstructPix2Pix": InstructPix2Pix("cuda:3"), - "VisualQuestionAnswering": VisualQuestionAnswering("cuda:3"), -} diff --git a/vfm.py b/tools/gpu.py similarity index 100% rename from vfm.py rename to tools/gpu.py diff --git a/utils.py b/utils.py index bf24e67..92e12e1 100644 --- a/utils.py +++ b/utils.py @@ -8,29 +8,44 @@ from langchain.output_parsers.base import BaseOutputParser IMAGE_PROMPT = """ -{i}th image: provide a figure named {filename}. The description is: {description}. +{i}th file: provide a figure named {filename}. The description is: {description}. + +Please understand and answer the image based on this information. The image understanding is complete, so don't try to understand the image again. """ -DATAFRAME_PROMPT = """ -{i}th dataframe: provide a dataframe named {filename}. The description is: {description}. +AUDIO_PROMPT = """ +{i}th file: provide a audio named {filename}. The description is: {description}. + +Please understand and answer the audio based on this information. The audio understanding is complete, so don't try to understand the audio again. """ +VIDEO_PROMPT = """ +{i}th file: provide a video named {filename}. The description is: {description}. -IMAGE_SUFFIX = """ -Please understand and answer the image based on this information. The image understanding is complete, so don't try to understand the image again. +Please understand and answer the video based on this information. The video understanding is complete, so don't try to understand the video again. """ -AWESOMEGPT_PREFIX = """Awesome GPT is designed to be able to assist with a wide range of text and visual related tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. Awesome GPT is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand. +DATAFRAME_PROMPT = """ +{i}th file: provide a dataframe named {filename}. The description is: {description}. + +You are able to use the dataframe to answer the question. +You have to act like an data analyst who can do an effective analysis through dataframe. +""" -Awesome GPT is able to process and understand large amounts of text and images. As a language model, Awesome GPT can not directly read images, but it has a list of tools to finish different visual tasks. +AWESOMEGPT_PREFIX = """Awesome GPT is designed to be able to assist with a wide range of text and visual related tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. +Awesome GPT is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand. +Awesome GPT is able to process and understand large amounts of various types of files. As a language model, Awesome GPT can not directly read various types of files, but it has a list of tools to finish different visual tasks. Each image will have a file name formed as "image/xxx.png" +Each audio will have a file name formed as "audio/xxx.mp3" +Each video will have a file name formed as "video/xxx.mp4" Each dataframe will have a file name formed as "dataframe/xxx.csv" -Awesome GPT can invoke different tools to indirectly understand pictures. When talking about images, Awesome GPT is very strict to the file name and will never fabricate nonexistent files. When using tools to generate new image files, Awesome GPT is also known that the image may not be the same as the user's demand, and will use other visual question answering tools or description tools to observe the real image. Awesome GPT is able to use tools in a sequence, and is loyal to the tool observation outputs rather than faking the image content and image file name. It will remember to provide the file name from the last tool observation, if a new image is generated. - -Human may provide new figures to Awesome GPT with a description. The description helps Awesome GPT to understand this image, but Awesome GPT should use tools to finish following tasks, rather than directly imagine from the description. +Awesome GPT can invoke different tools to indirectly understand files. When talking about files, Awesome GPT is very strict to the file name and will never fabricate nonexistent files. +When using tools to generate new files, Awesome GPT is also known that the file may not be the same as the user's demand, and will use other visual question answering tools or description tools to observe the real file. +Awesome GPT is able to use tools in a sequence, and is loyal to the tool observation outputs rather than faking the file content and file name. It will remember to provide the file name from the last tool observation, if a new file is generated. +Human may provide new figures to Awesome GPT with a description. The description helps Awesome GPT to understand this file, but Awesome GPT should use tools to finish following tasks, rather than directly imagine from the description. Overall, Awesome GPT is a powerful visual dialogue assistant tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics.""" @@ -38,7 +53,8 @@ AWESOMEGPT_SUFFIX = """TOOLS ------ Awesome GPT can ask the user to use tools to look up information that may be helpful in answering the users original question. You are very strict to the filename correctness and will never fake a file name if it does not exist. -You will remember to provide the image file name loyally if it's provided in the last tool observation. +You will remember to provide the file name loyally if it's provided in the last tool observation. + The tools the human can use are: {{tools}} @@ -51,10 +67,12 @@ Here is the user's input (remember to respond with a markdown code snippet of a {{{{input}}}}""" -ERROR_PROMPT = "An error has occurred for the following text: \n{promptedText} Please explain this error.\n {e}" +ERROR_PROMPT = "An error has occurred for the following text: \n{promptedQuery} Please explain this error.\n {e}" os.makedirs("image", exist_ok=True) +os.makedirs("audio", exist_ok=True) +os.makedirs("video", exist_ok=True) os.makedirs("dataframe", exist_ok=True)