From e791827973851d39473fe904021132f463dd70e6 Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Fri, 24 Mar 2023 22:03:57 +0800 Subject: [PATCH] added a GUI for selection of models if none was passed in through command line. --- llama_for_kobold.py | 30 +++++++++++++++++++++++------- make_pyinstaller.bat | 1 + niko.ico | Bin 0 -> 15086 bytes 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 make_pyinstaller.bat create mode 100644 niko.ico diff --git a/llama_for_kobold.py b/llama_for_kobold.py index fc57f2dcb..bea9bfd55 100644 --- a/llama_for_kobold.py +++ b/llama_for_kobold.py @@ -7,6 +7,7 @@ import ctypes import os #from pathlib import Path + class load_model_inputs(ctypes.Structure): _fields_ = [("threads", ctypes.c_int), ("max_context_length", ctypes.c_int), @@ -249,10 +250,12 @@ def RunServerMultiThreaded(port, HandlerClass = ServerRequestHandler, except (KeyboardInterrupt,SystemExit): #print("Thread %s - Server Closing" % (self.i)) self.httpd.server_close() + time.sleep(2) sys.exit(0) finally: # Clean-up server (close socket, etc.) self.httpd.server_close() + time.sleep(2) sys.exit(0) def stop(self): self.httpd.server_close() @@ -263,31 +266,44 @@ def RunServerMultiThreaded(port, HandlerClass = ServerRequestHandler, threadArr.append(Thread(i)) while 1: try: - time.sleep(2000) + time.sleep(2) except KeyboardInterrupt: for i in range(numThreads): threadArr[i].stop() + time.sleep(2) sys.exit(0) if __name__ == '__main__': # total arguments argc = len(sys.argv) + ggml_selected_file = None if argc<2: - print("Usage: " + sys.argv[0] + " model_file_q4_0.bin [port]") - sys.exit(0) + print("Command line usage: " + sys.argv[0] + " model_file_q4_0.bin [port]") + #give them a chance to pick a file + print("Alternative, please manually select ggml file:") + from tkinter.filedialog import askopenfilename + ggml_selected_file = askopenfilename (title="Select ggml model .bin files") + if not ggml_selected_file: + print("\nNo ggml model file was selected. Exiting.") + time.sleep(2) + sys.exit(0) + else: + ggml_selected_file = sys.argv[1] + if argc>=3: port = int(sys.argv[2]) - if not os.path.exists(sys.argv[1]): - print("Cannot find model file: " + sys.argv[1]) + if not os.path.exists(ggml_selected_file): + print("Cannot find model file: " + ggml_selected_file) + time.sleep(2) sys.exit(0) mdl_nparts = 1 for n in range(1,9): - if os.path.exists(sys.argv[1]+"."+str(n)): + if os.path.exists(ggml_selected_file+"."+str(n)): mdl_nparts += 1 - modelname = os.path.abspath(sys.argv[1]) + modelname = os.path.abspath(ggml_selected_file) print("Loading model: " + modelname) loadok = load_model(modelname,8,maxctx,mdl_nparts) print("Load Model OK: " + str(loadok)) diff --git a/make_pyinstaller.bat b/make_pyinstaller.bat new file mode 100644 index 000000000..1c7e81b06 --- /dev/null +++ b/make_pyinstaller.bat @@ -0,0 +1 @@ +pyinstaller --noconfirm --onefile --console --icon "./niko.ico" --add-data "./klite.embd;." --add-data "./llamacpp.dll;." "./llama_for_kobold.py" \ No newline at end of file diff --git a/niko.ico b/niko.ico new file mode 100644 index 0000000000000000000000000000000000000000..3b84754ffb26aa98a5aa028c0af05d075f9deac1 GIT binary patch literal 15086 zcmdsecU)D+*7iX_l%i5av4EmtMSAa5dO1k%9i(>z6a^J4b}ZO?uSu>^Lt;$vCQ+kl zMq}5+#1;!hnDsuh&mm$-OmdSyzHj?m%-LmT*37I~W!_$^6Xn!yyU|x$*Fd}9(BEo~HL())?Wd!vt7*#4||IO0@hJ%OcNz0{16b*&6U)K(YVfdve0^7tzyE3q7nf6lZyZfZsU&~Dl{9i>Ty=Wd zBT?nF&qS^sxoKJ1+v%O1d#OG;i8jh^V%sl_Z}q&Wm9cz zD!sS!AQcqOB3s*vYl8;b`}fxwVdUXC`?|GFIyuV;P7wls7R>tMw0_e^wlu|2Qd|2;B{E9gOrhagVI4^ zq5DZZaUJAw#SK-}A;Zswb@+hpCew9GkgI4&g&8OcX~__rJ0LQ|p1*I!)O zbbtM;|LJM3KD~N-n3>xwFtv2r)>BbsEOg#)4NBKYeY}y`5;JSp4Vs$$Bk_`d@Oymz zR`+**$Ou(sRQsrTc>4ssRWonZuX9!(pv0`{WNzzo9QDS4cpn3KInrR%{M3y6_NDvJ zQ2C<0ZQc`8PxsT&OTxPz-MY!5_-mJp44-OIcNce`{acQIL)$)kNL6)>R8}#I3TEx- z2u&)z7@1jhF*>XIQbbbzH`zJGPfJUuP~G}twC7u*ji217ptz!|Xv08GB7c900U62o zyL$#k?_bk&ovM}|q7Cb|(5_v3seIu++Vxcj?K%(oiqVcUPigAh^>pm$F)FKBN{vmo zX#3eViprdE8J+4%<^M1BFa5aBcw@`MacK+4*(DpgIu-gpjyX+;VI}i-QrW`2RJvd{ z#pf?%mNtH@pr8WZ1u>tXN~&CXjJ!f}uA?2pZr%Qx7)be58#T^isjGWda}xA@M8w7 zG=455`XFvZhmJF`U6xb)cKhVXPoS?`DJJ?|*p4-@U28$>UPF@S{F{h~1C*2XGwj+e zN=i6S1|tGLL7PsXL7*WZL8+k>E_IE*B9&gfY+bw(zX=GbyXx*)bUCYNe@jJGtDvX3 z4UI}il;~!l8gM)MK z6%~~MlhAS3MUm4PICN27$p_P zP%!4Ab57jcr_-1*fy~FZUhot0bDjuwi}Ks32t1UPJ*D#UX4uT1Xw=BaZ_)n{Sy?%e zfUXaRYO{nJg?)n7Mf(1qQ8rVfJ>7yG{OyR)sL{AW~B*iPc${nWd+&KAsp%D_R!@L~HWI679h`1^07{G4X^7f-Ne z*YLX){6D0?zy|cUl~Pl_hFtw5m8~BkUpEEH&ioP2e!-gG$C!VipGNpcpJBWm zlo)@DQj>n6%(P!Ad(u5JHcoF>R@T^u{yR5?vZA6!skvF!&#}=LDKzAJN=v>2`W|ha zr->oE;g{r*t7|pJxDm4W4&>n^=J}M+2k$2_;Zur>J1)$Dt6MepgdRS8NS}XkhEh`Yl8JHFH4NHNPF~`s^pwO$ zeaD+QF3l?0+frP1gVt?)pYHtfGyLt@baM7$aq_8}mzPa(Xru21Kyir_R%@+dtC9OFz)mX$N5&-eu6o@5{+`x75(k7a1DaiM0C< z&P~c{WKnUuAafI#iHRj!v9gh76-}lSv+60)S4=yr=944%NJ~GC@k?}~WZYa&f#6S< zPi`f@iKP@{@4_Yrg;7mZIy*L}kyfoeNO8H&w4T(7sbF^hmnyfi$z>9*MB0-jY_78PF`%-@Ug6*^b=wIU+BBD|B5z> zPMu3S8hu%UohxlAuBGD06!P;AVJa%UJ2W&5Sb+a#^6}nCnwq0Gp??*rZ#2Nb!2N7O zJoH@NWg2JX%=Cv0V%X>>ra!3 zsXfzB)nvm44P~Q7j$_t{T?P!)Wg+291bt>?lzbl|=c1s%U0LChQB@sS>+Uw6a&oRw zPQ?y#@eqUWi8OAU3G1&jggLu~(44KOXu;Z+-|fE~A=`psd5Up%dhXh ztgMyRzu!VTziy|U@DF#MYp1GZN83k_cV32e)j&KD;v284?Z@qFFZuohhfNAkUU08| z!vkvAi?J`}eLsc#y=MKn4CX(@`ZUvq6Ih3ntyC~`@3RqOY?h;SwQk*n80@tj{lUYY zCT2c|ii)pMYVz0Q?X?U#yq;xG`Vl;I2>U>y`#LCR(of{!UPs>E%P2GJ9F>+og0GN$ z6>SgeCh_I}pqp1;b^8C-_Q8k3BiE3nKt z4m&i3%+1r8zwZ_@H7UG-mJPbW&-u%jL?_E?_0?H8a+C{mb*q6*+Jy1VB0Jkz&3bws zO+$xz?;oZgxL;S-EiL{qv_yGZ2FBofJjWTrkR5q@)$X_CC-?*-z|K)=1`_f2?r1;pFx+BTstn*Kgu zDk6?kj0eSmWJJ37i%b81#wjH2{Qvb=4#VMigA0h`TyMHK4(1Fp1pQ{{-c;#dc#nN5 zkfQM)%82cTb$CW*i*TlfAcaU+Ievn13H)s5`F4S?UEIfl&$J(Y*8Gj{QElx!`r(Jm6qlIIRvo>DHDI(IYq0kHJ7i(& z!(%ADzh_t9uu>BFfj_K1r+V=Ys%<<*kttIU|Hso?2M^Q9lOK`2;{-Ns)p6R5b>U;+ z7$C<2xxcsmYG;=jhfWO%)m zm6TTp1jQi7G@V?WX406^_K1P~$ll(I`t{RimbN}DA$Jxf71mL5$pT6&sAEwX)0wSH zIMdc1&aAB5S!`??8#~5~jTr6%zpI$VHc-(*F zDcj*7UC=OfbyU^H@r*j&9 zqLO07XNZS+oc22YJLmR~#=yVfIabLxjT9cfUyA9XZNy(i`7NMUU}alLPtW|`@DX+w zO)Vx|GBWkL-bZ!NyI|fx>KDH-4yn#EGqZNPS=aC#RoC97iYZsAq#VCz{0Q8)6LXg0 z8i?x>;y-->YxSHkgDfml$=7d57ak=zH0PJ&(C!{J*!%Te_}>dG^daU%ik%2!KwpR% zOUo}%#ng*5we|*;SKdbaR7QxAdCc0K2j;(BlHc;UFZb|CZl5~+SLqx>RZwvDA97pMl z>v;+M9C#jYkK@>U{R4wmk(qfa8#Hh{Gd774?qB9zGXISYd-5H+pVZ~?|wXhgG(g?oLXHZ+pSxQI4ZBr zH>e8u_9?XaDi+3NK0Wn2V1=Im@41h@o*`bof}H;z^75V!n)3>N|9l+Ja~w9d84NjI z78bfsz|ncTx!FHK9zVg{-F#{8B=X8-fb-<*vxR{1@5UN*=lo08K~7!0-;SK(eH0S9 z3VUbUOZ-dLl*=g3-*BA~6LSoG{){o8@2tDP!_VOPVT@%vg#h>GXBosH8>F;Rc*e2% zFysg#BM*SrlW2=$wrxWGfUjdr^s(Ra5)zquz6Qd+E@%aov5=6nx&c?%Q%+7^)J;~9 zBRORijqP4uOOQMN4{*Fjw9EBmyC9pfF_(bZ|15b1jF#i_LBWfWkJ^XdXTir^yyH0q zoL|Vg58HMNd5SAIlW-X&rz_x*=M-*Z%=e*h9!bA{1pMV2jCm*a(K^bSbXDjhH|r^K zg5M*r@Bo-`n?NN+t(1~{kw%Xele+qlC*VJi?_aJrrS{qi`2SgB<0K03-vYkdARBif zFLx<2{0D)5j_;NfwL@mVA}gyTW^bP($a;AA9@xo zQ#^Z2`FRg0HwSr-lyk6MZwu?=?okcgem2H+Psqa*_x1@X$tT=N0ZWde&r5iuc%BYtZv=UYih7HpqTU9*h5JLoe&=Uoc&?G>+H7pI zn5AVl<9aA6@)&sCLlI%`V%{!+egro51$j+4g*?rCj_qCmkB%T7v%YdkZP=KhL#!`} zgFi&wPmt3%N7=ydogAx3O>GG4(?^#L9%R9socNiUHSpbPk>3*|pW=laTQ;!Sxsa_@ zQvEK`{o;^DLH7p);(U!C&y7qb6O$-5WQZg3I1`wqMGhM`HiT(t=rQ1*z@)XYw#6(5 z`zvhXS)5%t3f#(vkeaA|h3PI2qYd=~<4ool9fK+A|OL2`oH3 zhB>R0N#{@QdOb~KJ;n1bAz^r4*$Rw0;y*YYx0LTxy zidf{AOTc3&i;hk~elVQ8C-`9xL{L#t38klJGAm0r_@*Tcc_8NPwGa7~G?JB*FN5ys z!tskgrSdf1$|m?uZUJN@?km)bfzRti#}T7k`2G^rO`AzMf#HXOmo8HsJ^C-Zrr?0pMU-Z*4&L*Tj#M!88^wsrjFa*a^QC_GTr4)%KtbAC-F~Z zmFIAds{!YxJlXmUo2jk6oi?xAO!Gq`=|ox%?M_Ii_p*v<269*j557a|w>-gq1x643 z#B)}~1)YTRM8aLA(yEwV(6810T+uoC|UA;!X+`C7!bBpQ2 z)Et_Pb#@qM#?H)NN1xAFN)2`MsJaH{?x0(^K7VevpZiMBpS43D+@YA*8p=iP@FeD9 z73O^$@+mtqi|K4t9qnJWo_>A&7%}M;$gr4&PW%t%e;Svc5+$YApJn1BF*gtAg_n`3 z=k4kl*P#>tOEuN?)ZE-m-+h0Prbj2zN0|jwDvlx5J{oLq^+J03-E}&&{{VTqmq1tI zYyfP`Yx4+#f5XRv^J&np{B$@J*6@95F5kEpq&g&se7 zLi6UYqKu5wWNR~puXV9F~JlMcKY)$D5dT{d&_S+)xhq%RjV zP-E>J($?(D)=ny=N8e(t@7|@Sm@__x6DLp6w3%N~a^g40ImJAJ4Dm7O35;|1N188H z=&q1z<=}m5`qESImmk8upTaqa88mO+B0B%o*VOdEhcqQJk*@APLPz(%MWaWIVf&^o zq?7CRpj~51PDTE*klXAxjDhFVD%&ZoWD|`Tq>nt}5_)&dCejQ zn6K~Y)MsZYD=VLzT@zRs&Pk@Fd{0)EMNC;)>k#J#&v_{^9#R zm-W}kKltbQ(DeLOq}^AC#ar3a2IQpmvyKvHg}V{syn%PV2f+X23iz$Xn`x--2&Udk zl~s89)BN~JbaBl=TANb^AESg~p^uc6dv`!5cBrcAGH2%*EHGdb^zlCAU&h=7|6X$4 zCAn^C&cc20V9R@ffve$XU8kIE;4x!-FovET>S|i7pSBLOwQ(e?5yErnFb-!YTwy!MGwpslOr=+!4){q-L7`{In32XTqkJi?Jn#g*9hdz#^Iu+p zeCCN}%E0+l!*S-2=RWXD)CC$od<^WaD|BWQ_3t-;jWM)g<<;jQo6m4|-_@W zojdm}ehV?o{aeIifxM9;ecNJVPGAn3XnXK( z1*H@$qQIzpW@O>cMvO9HBMt3XL~o^k<8N0i#+_3SZLBribkgHpwsML2wkDh&&LEkPnv+=pLaL;*K|Is~K`R-*}dje-rK7UFZK7JtJ zv^&nV(SkMnT-lp!mt_BP{loLnJI_B8>Tf&U3>>;0Z9V}e{E$|^dz*ryD_U?CYNwKt z+EOJYtp-I!t(EZm%fT|wKXm2%b-(%GI!RWxn{1-3>%=?D-?>D)zae4Xb^u@I81oMB zu=&$g*cikrZ<>3l{^94l*EKZ@{B!)glX!a@PClfl^x5rw`e?5K51sj_PF`M`^w+We z+Gp}OtD0=*7W(tN?dNIBsaD#4x()qGXz@1W{-u6{V87ll4vw|0IPetn0N#Z)cqU-z ztB?Iik!dsARn-P=1{eJ#Q}|kb{?0>roaaa!Zs2??uk0hLTlAFb*FAyUJcT{wdb17o z_s#MziK|iiM4=5#n_LvlH-(PV9`A+&5~* znYx)|Y!t+dj8M-g8fT_fLpT0RiE-c3fB_aff1%qITl>cbBIRF0tKW*W>{a}HF&jHJ zm^nI5X1>7jy}cJB#x8;F24=y}e&8HPM(S+=!{B9F@^$$AKO&~8VEzG15hpLlS>;ML za+E*f-%J(}_9+b-=ynVI8vl#@igt#(<=Pa0?|1z9W-H0>9ILqxc1GZ;7 z=?->!sHf-r(~u#acZTVU?+h8@@zcP8R=?QUR<(P2K(EKIq=?8Z7()a6tvSGS0-63$ z4~{Qz+v@s)ZT;sK0476FUj_;aiu-j3n>@9&%mfch;cM*zAEh||G6T5%_^;7r2xuIL zA7S9cbM4l^%?=nE#*&v$B_*cp$NyJa4*aBm2J70u&r-euUpNb$DE|rlj^_TSOA~XH zproX6WXKTP`y)qr0&j?;{{5{UqE#V?`<>Q@_31O{;0OaRHrCLO3`TlA>(#5@8Q7&7 zSQ~Tj&10zFsrrvU<{hb_J6Gt{>G01FgO7YXQ+ma=OS|TB4gL&zDypuLlk2e@{6^yy z*Eer8sM03>t%8q*V`6`D@?>PeyDadKe~X|0XWGS4AzUI6QSS#r*{*P9Fu#8wd!@Hf z;y*R;^2!^^CQLs6ZYqY3@&O7_Z;|K+eerP#<7>iae>5McD9l%9*`gqs T$99DW4!j;MXqC*jWZwS|*mQGm literal 0 HcmV?d00001