From cff9511d86d9e643edf74e5acca0e231d1effc41 Mon Sep 17 00:00:00 2001 From: timothyafolami Date: Fri, 16 Aug 2024 17:37:28 +0100 Subject: [PATCH] AI indexing completed --- __pycache__/data_ingest.cpython-311.pyc | Bin 0 -> 2578 bytes __pycache__/search.cpython-311.pyc | Bin 0 -> 5884 bytes __pycache__/utils.cpython-311.pyc | Bin 22890 -> 29847 bytes data_ingest.py | 20 +- index/faiss_index_data/index.faiss | Bin 1047597 -> 1047597 bytes index/faiss_index_data/index.pkl | Bin 1019500 -> 1016849 bytes loggings/app.log | 2147 +++++++++++++++++++++++ main.py | 22 +- requirements.txt | 2 + search.py | 91 +- search_note.ipynb | 513 +++--- thumbnail_generator.ipynb | 145 ++ utils.py | 160 +- 13 files changed, 2843 insertions(+), 257 deletions(-) create mode 100644 __pycache__/data_ingest.cpython-311.pyc create mode 100644 __pycache__/search.cpython-311.pyc create mode 100644 thumbnail_generator.ipynb diff --git a/__pycache__/data_ingest.cpython-311.pyc b/__pycache__/data_ingest.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7a76e2b7eff734c372e736ffdd47682c0e553faa GIT binary patch literal 2578 zcma)7O>Em#9Dh#!`EWj(v|YEAiOrzVHtSY4ae)aCKLI>=P5$OgNvATq18Ox$9nUeQ%S(oTkFIH8onM7PR zbXAlU!>6lxqZLChVnTMda-0_}>!lJltmxe9J`bLaVns4niaj4uU6{97)SmrIEqI8` zzO&WdT;}TN5&9;y+b**&Ry#4?r0lln8?*+u56@7Y+mmOkONme&4N5FfO&g&`xB>g{ z3=iVD{p^7uTsO<9@Or2ouEQpkwbje#Mr0p}ks(e!uOZau!RQb!*=OgAa@m#R)V>#q zKy)A73)&P?xEBqxUK-PbZal!%J#@mf`-7fuNiFYe!GqP#?BnjDZM z7@_D}=tU_jvq}i7LZRE9&lk@YJ|@^81qxMb;u})6qOX(+7xbGN3kE4%ku+&dQ%WnQ z@S&lv(g=`(OhidhG#TG2_*WivKPKi}rRMR$HA-V?9HfF+0g@6;mL_UL;?4(l_VmW5 zbfDdVGcKI5;Y@pU;=$xsM;;t$UV0i}X4fq{J4?F*CtWyc!^!sX^S|eu%7nK{)hv|TsUUKv5tTl2XZdtY{<1UuWr2cr1W#m$((mH=bP_!5YrCKxG-bG zOlRYS1G6s7+A#YR4&J}zfZ&2)gU~sC&4DQwrfisMXU6ZvndU_8!mH z=;Zn(XLPE0sY5<&%~Rm*M88nqGgA&syD)9TbUS@?z2>BIZaUYz*arUYH3|=UPtzgY zTFLR|!ZYe`n(J` z9_%fYZ2Hf39Hl3k{5DK-2iC{85&i5Q-b9ePYyBCXw8N7vNYgA;960R4VY}P6!w6oY Ir@jyV1MRd|&Hw-a literal 0 HcmV?d00001 diff --git a/__pycache__/search.cpython-311.pyc b/__pycache__/search.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48586e51a5e6defea9818a8209738409d329920e GIT binary patch literal 5884 zcmd5=Z*1Gf6+cQR$uen4c4W(r6IYFs)^cq5PqW0yQfG~22Tf9^jXSh4+zF~k+p=ZJ zCFvv<gLWmi1GyFCzm25eOJCHsnLT3@Wk#fxmR` zD2XDKbZa*Z7S_@@;l)2p_PP=JD=Cy8XDRdWZxljnh(#sJre7d=KX}*N!(<>2{g< zn${++vAUMEjKRu|p@8QBnM{CE?E)9!qtl})OE5@^@#NGL$47O`f)rV2E4&Y{XnvAL zIVe2-u#~ws*3zO2<@B5}1FL3U#ed%dSGBNJ`dFewGRo4!+Rc(bKuZ=;_g#c$blG&( ziY!^v)*LSDF@A4B;Zwb038$$vzKHnUX=|FQjDvMl@=>yb;Ai$u3XLJBR{uDMtrdn8Rr5v)h5ixW1@{Lqo+!FyaDGws zPI029K5Uo;-vnI|XcJuELK(E}X<2iB;LcfP&wjk5WLRI!1z!zO#?R zZdgPAw>#S+8b&>%=X3fVhPmhuYfoD~LagKCDsuLeICu}?IssidL5$4JtIo+-oC|C4Y@3Ynf(YO)MtD)RatT(g zjm<@-xG<3s$QU)0_WSupqNPDcSbdQEGr%A?BK+dN#@G7}=haK^TzUJ7)HJZs0;HH^ z$5F*`w17OefxNpf7m(b2rBu^*-$^g~-fMfeO=>=va{_@RJG&HTR{_=82DWK$0nyHZ zym#+v%if;fw{LP^%zi$5r(Hfgq8uK%^Okb>MY;d9(tld^f{Lw%#+B$=?1Na&`hH?H zk$XjHdRA`eP#QWm8svt9zm9IUe-ZdRaC_*t!QTb%)GPf%axkO>LvlkXJG8y$X{jX$ zDK}L70?nSj@2+3I^xlgo1Mk4>^`BmPZSVUH<0%oSznZVM<8t+D}E)< zkwPoXT{A!d!|XK^6ucm=wRs4ug-n4PS!e>04?6*D)=&&BQE3!HZ~S!0lD4phkcEUi zY3d@y@0~(ZC~e6>qsJfCQXOWq_y)8~TZ!|swzLI;p=U|C0wt`ylFt$Me(Zsf7y#4^ zJrMLbo~X6vJ7_h8Vbxlf-)5axQJTu>M~QJ*x1dl7^Fqj6hOiHV4QC;oB=#*mFpJvC zn9ThFk0ur}L8yf_%)u1C)&IVIGys5AfR1ilkGBOnDAhc3wSenPr|Jm!tN zpz`5mAZx_W&>KgzV~_%Wq;gRE_yYklc#YwrXYg7Wwc)}5C4=8V30KyGwcWt)Tb2i4 zZuTNNlcg&TmW)%IK>({Y1Rn{6Rfow0pQVmCUYLCYu z8jdFC<_A+9#qc|p;=)=muHCYN$K%OpBrXg>rYuQTO85zo41y5OXRna2Yf+sqJG9bR zaH6J`wF@6ySQp<9uZAJGZS2T5_|_e(!MtzJ`h?=^%r~{JpHZ4R3J$BYvw#S(nw0U+ zl6m$5f!jglHlUqQaEz1>r+{6x!fBw|BlB=2U{za8L^_? zR7|A!0I759^Jc?jj+Hw>@vQOce1l#1L1-F;S2(YoHhGsPb86cIAYWq(QAG+-czxr_ z^lDqyo~P^AeG=`5l<(-gz3;0-e;)YLfb?ouicHF9rj#>NQrk47?5UNJYv;D<`juC+ zgW176vukB!`P}*`h1q|PIe3>jxDncH`s}RC995X35_2?9H?8lN=r%}Y*|Q20xX1L~ zWqLQgo3l#aNtqc^m?4Q7dQ`CM2ChY|`)+n$@BXmoMo)o;Y6$3kb_o1^_RP6L1FH9v z=zJJvLTDCmwe@cvx?QV0Hzc=(l(tY7XWx)(TJO`YthjPkaX&57`xJU#?v=arGZOvG zmcJ~1=hd⪙PK8|LcnX^=xRRRc7`|%-;LDfb0(`{!oRpP4AZQZf)^Ro00gfb~OA2 zGHXaQK=X{AufEY!$asTJS8YwWf9oybey!)(s{1u)(Rn7hs(2mbi~w8p?*hQ@leJXE zZ4?}5u2|>?aVu%%l& zzy==zxtED-6i5bb;o7TbBu_xboeJ)haOW2I^?_^8FF&6Nm3aGP+^*nu3AdLjx@6p~ z;BEn(2uph>mcWe}QyiizVh4ME)enyGjdI8ZDfOJOt&xgy@Hi zh{V)8HOJ?Y>_VIy$^kWNCBgW6RDxFUdHNv9xL?8j67JVogEBs$;1d!)k#7u0je(5=a$~R3*qa&E dMGPK`otfcmP{u6^Zjs8V;6`{ij7VFDe*!E-`c1?o+p?968BAjr$`ADNs$yOO4MaZmMBZ2C{YJxTk=KAMnO!Ff&?B;fI8Tq z3stLKLmu@M?Nx>89@P}O##Kd6siHX()7#qJ?q0e2a?gIr8kFIj`=Xj#6MqVzANAPd;jC{$8NWS!|{)Q3)! zd%^K#70+=WaRMh8;@r4l*kB;HF>V|;4V#$T6z7L|Jmcf$am%oUJu}CxuAgWEOiVs3lfJ?&>F}Euo7!M8yncE$& z9ncD!!5j=4?o`r&%y#T0KCZiqHq+f@9VY-7=-y+-RbKAN;|if)~c&BdqM ztIo$3?VF-I8v2oe<9>pldI;Vh8F7!Fdg$Nk@7P!Q;?3h*hqo5Kuw}RfU+9mwj<*fB zjc*&?Hr_tm&fZnUJH|VQI}84{4{v8B(KXzKYare|zGHYt;a$&g4|}(BcqhB=8s5dO zy~De44aWD3?;YM-@Vjq#AA7fdct5Vy@#n@53?C@GJ2-q0&uZd_#-AU4-oP2T=<`3q zNByMuX&if2f9-Jbfl#aezQ_@T(Y~+KzsI}2QrJ3*2L5+^eVB*!`Z$J<3Jt?AAdClj z-6S+VZ2FN2dBjgWhK~uG?{LG%;bZHy6UC>(7JV%2OOETmZn(c9Ohrwjluij-?-+(p z3N1)sKxhR$CA5K_7Pf&73hkh0gbvWN!f9bU{GJoKaCcr96n5ZlNH`Sa9E87Dqy55xQKN7O?$?Cp5##H^ zVfZo%N8sxXp%0;s;`c)I(x^o^hG)YS&yM5So5Bf%ye#yCz9pO&1`ylZg6SgHIrIe; z)Tf4g-RbGEvDn1eKx8C(d@Oo${7O_1aG&Tj z*$~(CcyuBOx0_Nqc`HfzofKz`Jw146iBFD=A&e<+9vqL1Me}xc=@%n63(kQ_7P{)v zRWTY7UYwkapS*>yM-&Lo7joq~HZ8;^FGk0TX}uZ~qLTx$c=SX(HU*E)I6gKkOeUif zH}akfFPUhuHn{T&@|YNp#N#`n6M2gey%8IU=J}CnA(9VHOp16Dn~8>_rIvK5(xX8`8fyj3nJ+=s}{~xBk|Q=A_{J16E%DEs!;N3G*n71#FCq-Iaw?!^+AX- z6&3P)5-oY8G|wO&3x2FR-$kW;#A&PUTB#ZZL*>YqLZ#PJKG<=s6yvP1;tj>kj#*Q( zh#+t;m;^q_u!j0pFr$f}Hhw}i!j4%!#b+sZYmSt0tRg?N<}q&8lJu6nrp)>r_j7Lz zT}Ccvt+Te2DQheHEW7k0`K&!{I5P#Av_p;3%mA*wi$iusGbMv;C&5f60odB@1r z>51#%1iDAwt-2>~M8$YyD({U)C&rRj!=uv^Bgxq0M7}DP2q&Ub7dccY)@5(tnnRo8(SDc&E{W)*dT<^Ub_r94vy%OA=3)JRn>Q?GDA{s?)4cG(h5Hv)Ig7c4k-N5x zA+zsE?Us*bKb-yGoA2|>65qFKw3_=?sv76tlB>Fus;-PR=dJlp>iyK+ckjKM;h%c9WO>=!rg+;je9jxl zIKNso8W6%$C)FQbcnbul>^Y)%j!3p6Uw!q}msExy?>Xk?K63|;HJkoBYYV8RTNQ0V zJdG03)jo}!;vf+=B%Go5ym%HDHiX>z+RCnCl}+iCMmg~%1Rcfi*Q@P7b9RRu*rfz^ zp)-4Hzcc&(?A>qP`{v)Jw#6Z&x_%Y^bG-R))!kFZiyZ6F+UfpRcIbw41voP$jILXU zW=#*K={xUXbrG2m)X73*HEB|7(u!E9hVo{b%n}J2r!XC8du+jn+GAhE`vm<)KuSH9 z`k3!9PMJTV@JA&6$g0syJ+^6nT(0U?s=Co*eYMNJZA-pwvadt&b!5yrZ!qKfRUI`! zW%F@sANPmBV^#WYN&twm`{n-!@)7WJ7T2{$B_tEQNzGtfIapuZIG&0D8S#A0p#L@T znDo;F;<1)UlGpUztcuPfbmV$*53nDuiA_ zKqjG1bKVAck+>O4UKOcg*?7#lsoF*itc@gSo-DKocd=Wmt>H4>yo+BV0|Kya4K7=o zmaI+lqq4P4v9_&pR`XfIiZ_&PlD#_>?@r0KGiR?^wr^RoZ^>F@d%I$9U**hS8goIR3W1U0=(B zQ4e1CakB<({avG0$qr2Vn)XqAS~=BStV|@Tbp-fuqr+7qjk7qdNT? zxHkY7h}{Ip%n!|YPtu}~Ci)ny!$WzacxA>sogCe9pwn6&H1hl;P-ot9C6b8l-$w_3qW@A$Fz2VObUtAu)G?{3Ar zd)a$%$$RioyX-x#c#p4|$hR6sOMlK{`30le=Nq|!5;l6JeV!n!zi{wakLj}>{@8Bo zXZsAGy2*yRH*0>cq9^_RnxDS8fRO-(LXw(y;UFw1@DGf$Mmr~%1&d%6Y=ZrPQE&)O z!Id)5`MCjFZ8TB+d*{**CgdRSG#l-O{^`6J}xC&kQwb6Q^c z3PFv#TH~%MyJz`{`W7zfDMi4wa-wV2EY!~OZ=e~^n%^}~*wpJy!%a?Y<|!V{yABKz za2rN2g_Rrlj1LQ_cx(jg#L0=B*AkNxGuGqLh#1A#XPj}JP*-j{E@42-yN^vLuTF}w z8RmJ$IX0Etv3GLEcx)n;=cmE&V7PX=7I}LOtg?TX{x}heO@OBm!4BuKxS%bX?Tb|+<9#(I`+KUy}CP%;x)u6UI(EV#L0LxZ!Ih;W8G*m#5iNj z3R+?&5;RSV&G0?5{c18fl{mC>CwN&s)Mq2Ho{`D%oi}=Sjv$LW;hu^|>Dv>C*?JY7 z7kryMPX&P_u19MP9&X_8dai^_3 zWUziMHX>}^CPv?xjwX^wXKFH$6h(SyKY42;Iz>4F!W8I{|T}q%UeGVL=`mS7k_Ya?w>br5SnoV8{<`}OfeQMRQ$$aQZ^;Y<4Y5{5M%C#PW zhx!J10C8|_yPkyFr1lGs8$ob_0kwVes@Y6Fh&Y|0npLyMU$x2+G5P8}t6RBEn^)U| z0mmu_lCl1>n+rDHKO!}smtK2Yiel+HE(gYyz<9>?B(UkDBOf05;OPCM*@H@8$3g@k zc(GmyJpX7=2@GUx8QWJY&LE9Khsq=uI7n}be;B^LqM`5*UBM3vrY|JwP*A^ntl_wi z`%r3-JIxvGGHjPNfR2~2} z2*Fo`FqcDsjb=<41Pg{dlXf1~4@8VbMqjh$sKi?sY^>|g+k)*5mooQPEZX%sn>D8p z{yO_^;5v6XxwYxQr~NuZqGC|bki&rM(9i9&mXu}8a8aGfokKHCCFU2av@*719I$7G z%U}Fg9M23rtaqdHTN0Dg;z*RSkn;Ma5M^NxeqY`IISaTzQ2MRCjB8QOzs996+C&3@ z4k~o*QQ^;mYU0$Q`JG)U!>im!2JrLt3HYo|<1>R}h{mW`A`%BDj2ww6NJa3>*t1Ja zA$BdQcxFF57M+ORniBhFItt7*RuZMfX3ydHz`c5?cz(n_r||`<6pe_uinJX<71x(e>V7daIW_;DE+Bn7{C;#5tFzd zL^}}X&5R!>`tUp-B)Al2Tso>3b;QE(I~ki0Y20E=J|HiF+{D}~0xA+Ks60Lo3r!qN zCQ(s&E5sR35U8M05r;Z3R{*zRore_XA@KE_?(aPJ{&Q-n%?r57RYMA>b4YOxrTZ~1*<2a%+cW8z6>sDGuyJ(s-umaO|E>%OO+nr#2#0m%an&SAxKIAeO^3uLA_YAjP}crX?+Y&(w(ekomY&ZayR`xDOf@qWs9jn@6_K<6?K&D32I zBalvsu`2|QA|yx)5mFC{Z^M^J;(PQoo*s#lbYs`d?O{B~TSnqB;&Pi=;JgbBav}lg zAb|_KWc+OL3PnZ?YCsknMMjK4@k0vl)CQm-r_^rUEJg^>SWgi@#=B+w68{@WslD!7 zI3W4<;gtFP3cp|C_tOgD>O3#on-qJ~D#x20+2Be|8Rx1A0a<89eopcHf=Kzs$SjU%xbJZ%& zO%lIJT^2llY^Uk7o&2#q*3b4EKrfB30UuvRM`>N~HlBX{x#r(gOoMQF}2u;rmXsjHxblw#jiPvJ}dnhILNJnj_`W z=N&$cVpX!O>{0NfJZohRn9CCrr#1QWeve0<`2V(ff@IP*3N~w}Z)m1k)t#sq0cTvH zE4M?!G-PiW%f2AdrPxE{+e8S-<*i{RMoT<1?95wK_ZNhCz-$|z+LJedkeUNnYU7dQ zjN{}j;NrcusT`Xc zRSH`C^e}=>C!-07H7P`RlIeToy{fN*h;%$5-ltgoYGmcGP${51hbeld72#6DjZVg~ z=*&CSJNmdp-T{PHC{pnR#b!$+BVsZ%;{uC3XlvTKjx+LJyBk>>o#j~x#jP%OaP>e~CKmV>QJ!Pab84(?Ne`<8>xF9n}} zbV3fkpafrd>{o&((&uwEEmELcJ=5n_obG$ieW&mJzWHw1*{(Rj`!txhuGk#+oO9y8iwf(w1F|N98TY*qVN`{#Em!R?uo zxlp&%bROrzta^QX>~Z9?6RI0DGn8}rzjN;WbMu=Q&6#tuYro>!FS+*TT(!%t%}cJ$ z^Y6;89>vuoxq5QmP531Dz7=1!RI?}B2ZB@f?NxkxCEwn!R{fO88m_5Rsy~Ty;fQ(# z&3JM)_jg?HyXM|rIGJ(Dw%v+tw`AL$vjvuI4NJC$`99gUU9oMKY}<3rS|nrdU2*xP zs-5%ig5Z>0yA;c-_Ok%-uetG7aHuBvgn6cOnoK1hN-(Wjc(;9?Hha>CfBtGa*U3u;SFe4`VPS~ z>r6QTdN94G3~VZOVTx2;?qnHNa4Gjj6ZN%{>PsbfsYux}gR#G&{5&ZaQU@p!%!M_6 zo34yp`Zx-}#-;P)Ue}L%B9&||mq)51ruC<4p`x@{%k$3qbTL(=_qT}2KU<~Cxlf;S z!Om(Rpz~9;uAgAai?VQ}0)P!B02@EM3$i;mV3CU;Ov+97DWl*5JGxp6I53GTK6>S?KD#Ojw{*{63QTg3twn7_o2sNAPn^hj#5^u;UBD-Omh%o*8yP zeeZw3P2LV|J8)Ga<5Q{{5HTLce(Pg8{`_cXod#OaoX1vC;wR+#A(0<}K-v=p9|-L4 zk*j(0m^e8-B|fC*Ha2?_kKw1}m!OD9UoQSLdTSycE};;{txz$AC2^Is`0^HUJSj$@ zvP78!>mweGPIcCbi{$%X5Fw_9_`eYOJtD_Jii%ha=Q!A^5bM&Zr1-znOEYlI$W`%o z$z8wQ1Yv|~I=45Fe-=;OrVPRVxyr_A>&e80r^ zKMg(i$SVzo<K>)KC*uGHX=r>< zyIkM7RNuLGI==ZPx*7b$vk0%~X$PGJ`h8>x+nX`zvY0HCC%Z=Sjjok}x%Z-PX#>00zbo*yEjY z*UL)R%X0fgrTwDx+GV-@vRwbRQvY_wLoDg)xp(d!nLoDVY?7Q!E1NdY-~PDoL7!CD zqn?>T7TL#*4;rPK?dq91l{tm{b?;ob{b}FBzU8i?OI=4Fo8+#3rK?|db!5)ZA6aSN zzVO^{r#?w7w;x<;KlrFcZtqjt`(#&Z=Is2Yr+{(i<+|-k-S&l-3kTI}W-wRZD%I@5nZ2oAGpAN<+@_9Ps8ed%hjZbSdd)R$ zTeb2*57-7lPsa932iW`z4Ueu$fm3qeloB|#zG@nD)bL$q=biI&-7>#L;kQWq7J6d8 zb0(Ac)`dG4(ifhTb=STi@S;OBgc=y4>3~CzXjIMO3K5>FS8RYDIculT?5XIs)LAPu zxQZ;s0{AazFN%K&pC_rE)8ZKI+}93(eeiv^ z4jC11MB+NxLy0-k_xDC<`uTt)24(gL)atk_QdoPCXtiSg=MnN(p|c7+1cr)6oLNR^ z>tnDD{Fc}m+Fbq${KA*v5YXrPc~}>NZQ!@W8u_|B5M!dE%&a%OJ|uXnhpjgd=`Zyy3v|xtH8oy5+zaBKDMbEvquwTlSUW1)tzwqf+46 zK%qXcp2ibeN(skf#Z;>DN_HlgS03QB;LyzG7sY54kGswV6Vv2yl`S!9y| zvP+-Bu!V75!jsp(F$TVmF_B#kMnj3Vp|DE{N=Gnn^-HTR$U=tX6RPwB|TD}pXi!s9* zNgqrFwCY?lKtWn@jeh*4w}fUk&{qJmiB+2asHhJT!QjQ|@$m@Morq5jWl^Tj8JR>^ zIGnl?g;8R7a+C?=QhkS0YDZM{hr%%-)t9)PfHmCV6!l8YV@Gjqbb`qPLy-{1KrtCg zu(WQ6CP$eKRx!B{ag2q~BxzAaLl}9eV+zcGrzcd3tK_&yOyUqJs~!qnBDJehJa9*@ zU{vbq=_&axIgrcAB+Kgs(O-FC=rzyq68L;Tx!($Q5W)>Xh;chUIO{nDN}X^CID?yd^eq z1LlW-@Dx|x2bHyCjF~Q>Okv2WeS&2_z_$2b;IRVSd+>>2wWeSrC5k4rg>Tc)cpZLA zLu0$lcPM;^#CNRJwyhd%RZz98;u<=oy3W;VXC174Kz>04W;Ux0TwTXcJLKBkzZ;hK z4JhD1*Mip`%(o(N|q>8X-U@*-N%11a)WwK$(%6ptco!zc8*4%x`HJQOdZ2B zzLIre0SJIeLU;gGMZz~`WrKMRkHSn{g-xfx1hj_Bn_!-*ReH%+F^_7JQCPat1cto< zxOu9jegrAiQmf3jDSVs6x8-=xGGD)hQLbU{LIMP*%y8p+P6YLKOWtMz*g^il;4Jk?J$=V0!DUjKNW(;uVQA1B^%J zpJCyO-ta-SUMVK7mb4fC|0$L9L4+=qbcf7$DtxEJcVeD}cCr*Yw0IE&=c6;y)wtvx zm%ZbPcRYPM=M1DTsKskR6vd-dydR>_QM|?HxRxiA^%dhPmw;KCl-3-T1`t|%R4ff` z-;( zhTXq5Cc%Owm`$7eYb8O3b_uvaDO51a1$$}L0E^g(B=W%{AA4Co9OZXw^YQgx^y}mh z=^aLTW~8^DrRUV9w{|i1t4i_LOcNU47db7vUhpza0^iyNTM9Y`Df=jyp8JQ&qHuJq zZq%hnHXm%kAu@ztenxC<#;_LC5Z+Ol&zH$Xx@>H*!En3Esb;3NvZuIMQv+gOs(tP%hX2E>NhM|^*`of_{@~|SZrmX7^TS5};86 zEAv!mT{@lV3MnYmpUfMiP$A{4;189iIH5vq3>>WAB)x9!W(C>-veF1!{~eXO;Ikgx zkX%>PnxLI}JlgP3 zKhwkpg*eR}$!M{EiGPFd)o`23X{WsU(i2lUH8`(Op`wO9QKjYcUMm5KRE3mzHjoNr ztI8>rT`9jlO|<5!^`*u_g;oVxP;)t+Yh|u#0I370X}Q*ayWV(jx#GJ$`uNs-cR6kU z-#2YY!fRkJ0ku3fwR?wP0&0TUXx;>?QMQA`Ep^H>jtlha+SC~I)rm1^0<$x38jHc} zmGP-gv-sO6oxJI08eAldBSR^$Ikn-Lk>kp83!RXKz;f5le3U-JVOWrl#IFvFzzgM zW8m@9^R+9(6xlKG1+4Tfgf2+u|Kcb#{0R_fU=1-~Rao<{$@PDNz!TGx2D>RS9Z!nY z6k-#RAdvtO?Acb-`%lxMil3{B@PjxbSP8`=w`UHrh>z><(xGBoa3qnjK5$sV_C7e?m6c6-1Xk`X1qCXb;ivmYsO|5pCTn)tDp&lwTiuP z(BuqTlxoxhvQ<2O1jkQ`H<~rl2gZ9f7r9TtOc7}S%A2l6Z+&VM@4_wqKOow*^fSld zI2bZyA=fw4`)ig~Imlm8DG{258HwkRdd|P|o6~o1-n)74H%gD#htAk(q25DAcV$ov z1$hf0&X^$9Bd)xYZVGI&8Kc;hH{9&3W-TUfrHm41oMboXMnI)~^hwVVAtsGjYD6l- zo+)rJ_*`yhKPJy%A|jDNki2Dj3OR%JMj{%$j?O=geqG1f9QgmxxlE|~8nmMfL&gb~ zRT2BwabhoJ8Uhk^mo5@QP^(R_!9%PiAFognj!`J9CK-0lTMM6;w<1DtNQAtd%7kf* zGKRm%Q>2DbY)(b$u3)dI3vbpHDtZCQKfX~0;w9G$IMi;@^tF{L4kE2T!7o9&_hc)F z_MY?Zme`54I#XAK#v)|bTIU|gM`wEQsmpWk%p4RSw<)e|>61Cy!A3(!gL9QPnQO>y z{nsJT696ZsV9Wrky=)!K7e4C#uv^;FySPuTI;d0~%vhO0U)ki3OqvgoMYF~Xu>7{{ zV&)3#__A=#Fsyf)8yUf#IvG>u^|@)<+~;V{RlV$LTyizeUzA_O! z9YlS&tG>Hu?)C?L_xoh`R>i$_m2;5Z3ti*)+HY;gxCfY3ss7*`;qmr z;rAWTRFK}hti1G=G;v#+`3+?vCH2hG>BZ(UWu4tl+1aW%TS>>ZWyN1T7t01^|2DdPZ%B-_W_7{+yW*w&GOzN?s-Xvbj z8cUh9s}%io6yqM6Dz|6T%BpqDqlz`8K7Fj&PD6tjY@#xzf8Uz1j$-$~J35_TAUcho z%2@RIgC!}yzU~S11vIgwEDtLTQm|GU)K0^i5?+g)QDMbH<8RICOSjhI1zY9TaHy;G zW2#ui0M`>^9+t7yO!P#o`5TNA5Mmo+#?pueTUJ%6EM1yfN}IhwstsN}V*oL~`Jl?Y zhd~-mRNy8+zAWfK3bnivNcpaz08@gqhP(P59V_4_>52fPRA1!8J;=|e2Jz4E1tx#7Cd0(gjsz z9O^cBs*JW`*+0>Tv1OSp{e~aR8$u(^O%PvU!-34jCyPzd~?w1}&*(>KIlX(!^lMuzs zd$0{rvRgV&|h{|EgQ=KB{yd#REC;f)aRv6bFOLwyjIHtqX4~zVq<% zqg&Y1PPUy^Y^No57ILkT(W#%YUFN$KzDwe}p7J$wsRitfiJcJ&Tlp0NwaNT8h2JLe z+hANF@wKdZjA;2eR7-5U#a`2E#@jV)a$dX3l6J%eHw)o^f}eWm?+T-yZbU1LdIpSo zlz!m=w?i{tRmQT;sHX{AjDyxI+E_5^RcKeSQLiLspzS#IDV28D`3D#v#1~OW;!7aw z3<;_Ydbm?`y~4+cTn*) zx@A0fo7#aZ`sVBO{sblR2D#XvwzeZSeeD;BZy{(EvYeoGF}mc_KwI{j9OzX7y-D=%y{0 z^o%M90$Z@*(bl35jy603n@1PEs`$2YOnZZy;7gkzZD0)}xPcBW4?Pupo*n}z0c1p@SO81FN;uA#3SYEn$g1X)w{Jwkvq_p=+y`JBt0niXt z=^IdC7nKIV2>5Ga34HNi5f^QyVu4+-Fp0fX=nAb#aUVu2EfY+9A3jU_r!ZM*Da)D( zq`1?{HX4k35TvkwO5=dkIPl2uy;mQ+y>M(HAvf(&n)cvP#i`CVd4$WGUOsia(-;e( zU&ZE-8K`oYM<(OgDc(-XPVt^(a`X#ohhX6$F}1+pi66yIUE&|olkd}8lNdqhGJ*Fo zJYXAG#G%RyUiD1iQmHmnz$Y9Eb=H^FZYtTaUr_7|ME;Zr^|ib?IgJgp)QOLJVcs+m zy(!Z8ljmvsdXZT3kTQ$YQQG(`ZymhAHpk7oROVB3Gy<-eDu%vtW%5?ud^0A%ZrgG- zO539|SvuHnQ2$Y9Q#bTkOXk_WQeA`#M%3y{rZeli5*fKpHe67^V2x>vt zS!J>$9n7hwi!JOS4_6b#!VfMi4$7^4N^9R^mt1>ZsXY(%Fs9ck z`9ceOwKx@8oBqIk>#{GjXX{#=H8{|-o;M2`LNP_SoR%Jd`BKd6yFQ!LHMm} zQrqDlyz;pBe|`P;U&o!?IG}*m4k%0u4W697d!2J9=MPCcj!2F^+0mys`qC%x!d`XH zGnbHUn-tro^s!Zo$=tExty8?s*)CX#vt0)>e1^w1T-f8wUV8pSWayH#CT=Hq9Tq z-<_>r=>4QouG#@+qJ{HT-HSm9+0(jUfPyTvJ=+$VWp`J40DjDt_XfT_ zkQta8ker+5-&nZx$eSLJ`O^x2TH;CRx2Ep?Yad-kq8g@o%jZl7hfkbOe70J)(m?iY^=mU zH8~N*^7#{bc?fl&YSxfw0E(jtW+Xr(Ufv9qI;ee8M@Fn9ddde&yT^u0N;L^4rxFwN z-or+#@+&G6Hdd%Zg}*3XDoLKi{|UhcXqcFXS8&`n^-Jo>*AZLS0ULkDETuhRdl>-( z7P|1NM)~H&pd8$<1ovm`>u_aF*be}Pi?1y=?O1Bsu^^}u(&90tY5#K5;iaa-a#Nqu z)Q9a1yiHQ`KI|`rbH&$|jmf@U3fnI5D`=o*_Olu53mV&X3aA!5U@aN{o9S6Toc6BV{eG z0rY5De}^`>o&75YY%%Y-$c&1K=|CKAv;Bmz`UdoLjQy>^riv zQ*m~t`wL8x7MX8Vc-mJY=WwM@z$^XxgTN|hq$vOddz0B*-*LY0{BHkz;6bAt+@=J# z$+mXI)-JI#=k%t}vIYj$8R^a8@-DkTv6ZRR0n89sQr(6km+d{2Kxa6=IS!pyZ0-sD ze3b6^G&H?$_mr5L36V$0d|lZSo28k3H?+PJ>|aobuTWubEBh%&ROEN|Ao_9kpM^wf z^!ddkBV?`!ZCEM2ZycPL)P;h43kBU@X>^}>LSTNA$s2wN`kDB{y|Yf)r{xqpA@OmU`?U0D2w?@sCMn&p(hdI}Eumms6DF%@fGq0%$Wg`MYY)f26?za9z0ODh()K+ID{Cu#Ucqz#s5feAa|z!kR%e$&RfQ! z?52@!VEld~CPGa8Ka=N4BD9uZ|B^@TZyj{|JdyK6ULx`;k;_CziOdpVikcsj>-UNL z1(ClbLJV)!qU>+r!vB_lpjQ=QJ5Ww4pNT0;kbIVLWf>oc%}Q+YQ2REq&((EBC!%>~ zJBkD=dL;ds<2oe$nd3ZZ-CvF~-Lbvr{kC_`2+67U zLvNO>%3MEiExi2jwciQ<^YEkBif>5fE-2guiMx>FwoCdm z$GOw&FUNIB8=pC@SJIz3&Y5O^8b`In>CPNyPqRObpHgyF5?45L+-6CCYI5aGv%mEU zrxexN;KkL*FX4pD2*Jl8ZfSu+obXsj(T(LMEZ1btVICqOPH?P6M_aE|FnFjlsRj z>B(NJ0lEYw65M8h&{q79q4Z(Ff^?ugQSuN~EvX(7A}Taj7KN4Aq9Z?A}!lmqmoZ z<*|Cl+#0gWYS{eZ`1USBv_AE}?AEr~3Fy8OPS$%aV7D3N3--f#sb^_R0Vltf)&Z{utQ z^Tx|(xs5M(T4bD+8E!`t9*(c1&D}Cx3FYl{74+Ca9|A6!t_H3hbPcpx3(vZEd$*CUKV7Xxb}p*i z0F1lnHo6hIc!VnZrSQYNRsHuH`wV|VNHPDqvCdWuB48B=mHg+%VM7fR8+g>Ti{CXB zS04nKUX(P6l0scnfW332j4UYp>D~Et86|C)BS=)HN_uvCLN!&d8Lp@xbCtgutmLnn z1H{JPG>7>Ga{>ROxnQFamsTU1g_^LGcIEog%()RY%Qf>A8Tx@oPZ_Ib95?fFx0iQY z3S~3P8;~0jw1e))25gti7!7~$_L!$>euAX5l=f~1FWoXAVw4YJ!K6I zWnqG<{-ucQAlNwST%2Q_+8uKbss#b{QzSUA8_omW9w&{S4rRY zwpsa)9sd8zoZ8qHXbn?9+rhRXi0^IJYqvp`HPeBvQ&9k2G>fNI;tIHS0pB5bW~X(? zwU2ZN`DjqPNIne;tpBV~j_DInm>Gw1q70(3ei}^;_9fCxOhaK}8m2+ojkCxa24g+( zR0@?+2nHK^M8g@5p=7*2&Gtfl0-h8YLljlHr^AkeJX2LGz3N@3@cZk0H~!RPAdV5W z5n2MKPo+orD|yXpu`NScGyF1r8bnMZg|-7$12F3lgTj>b0S`c3ire!qkXrt7ej)#r zBX22g`-R(ZrIaD*IfDX9GPgl_qrHZAcwPM1;R3!c=;j&kN|(}^mD$k|!%(`rVRhKR z-}QEkioxyi{;mNUk0z2J4R#pD9>wur02q_*m~3ZvJg-igN~TOD(-KiOju+jrd8TZ^ z=Xboa`^DXp#SK%%4U@LUDO=+^ww1SRE3fxV+FGY(rp>S1^s8+_)6G)S7UUtH-&`l`htQ(pU6fEcJtr4QdP%wrX5x~Z zku6{#sDT=(iJC9T)IzP)rV*qk2(@35dt~YWB-BY=mlQNL{6x&_q;5^tlxrT{nuBGj z09)czXkH;N@i!D@)c(RsDUCWXld2?U&lsqW5Bkexe<#1SWq#NHXv=INxZAEQsq?>E3 zn_bEe6nV2%`GM82*~KS|O63UQpZ6@~-`{K}yf#;>@aab0WcSI`#NQ9r+Kk7=YA{#Y0%k54GH3>BJ}!1K^QLVut(l}5K+F~% zD-M=fJ3k=H?tKL51JcN_eOS(#yAyr!{#Y{3mhJ-w1h0{t_lh^rQm2|jk zp^7CDRse*JJWv|$L=iBw_hFNe9YcGawF(W0icVXw!kLbrN=M;gv99z0)2-H8prpVU zqshPo_Vn|m!S=IIa~(_tf5+2w%hPl{f6}vZ z%Cqu%Y|68GY{%W=n(L2GxHiI%n?uhMq4RZ9(9K0~29V99PqqO3$Rj@f*~2!}byWj@ z#>p`s?nxtfZTXtQqh)R3IkyPzSnXs7p+|?y83i*$> z7xA*H5DD^4RU3kO=O)cc%_G1D16eK`GfvGh?nHGc(wx+K&9=}u6G=0VyM(s%SNk31 zx$dc*|FJ6M(mQorR-q&H|KE|XK{ILQZW$KV*?A8=Dyv7pi3(N8nxb9DhWd}E*eR&u z531Madl-Iy*3!)el2NhzEBW4<0C|@8)~q9I_?4PZk#qbHHID>Zkih-tZFiN6(!?Jm*l#Dg>qf9ENbc24Ei>y(%cJA5JWmp&K0HS z?VMf@_pA!=j~Yx#Yv)KoU1NP%U)#DT=#uagjmg30D)vPf@E+PhvHFQ4zmcR5NW+M^ zEScyZO2<=Sg?$>R5Q`157`hK(`*h=&$8a@;KC_pwbP3@yzuxE{{fcNLf+^JbuOek7 z0`4XDA_5vzwgw<;OdT6aC;GBRmQ1sFJnUhwBJC;ynp*ZXgs&rP0LWU!7LB5v$y&kM z_NTg7Vld6Vg+xO#mhMuHv1|OuvX%;lmYKByh!8-x!SfKzvALL z3K@fj%KK7~v!;oFSt_Z&9jcosUJt*k59v7|FIut7eAnikP`#{{XIAXk`5NgA6NcSE zY`f?yaPBD;0LRxOxq>bhkEP>L-9pYqbZ8zcd0ulBspStfx0rt+%pPdPmzqO%n4z9B zipB>v`+XR-EZQfqqxhl2WxTK@pZ`n666gF7qu0onM>p_YL7SX0@&lDieG93x-Sa&b zKi?B|asSGKHS^VOuB@5FsR_1E?zBU|AkOvx1{m}pSXg3Su(8e5m}3D)f8k&t4k-GJmU~q()Pzi@ImSyIHP` zbADvf>*t=9z*eyEPO!Rpoe=IP2V2-h;1)V}AWX96_^CuH9UVB%Ucl<_AbcBO#E@zn z?C${%IhA5x5%Ppz(pQoKu!?fO&x?I?0+?e6TOp6=&z5D(iZZ zC1y99FyuL{{cCJ;8R0X?X`%@x0-IOx&DhzdX*2RsXd9#n-Ma!pydmKmav`C;sZfcQq)_&Ch>(8drs!2iq>g3$L1)m|9`-(Zmiuc=^LD4jfS zQ%xNNSk_eRWIWn8&=u=rC{|e7D#)_R@%V5qU_G%Zu;o3d#(*z{CT>i+E!*Fb{kLTQ zL}10${Q&Trl$)pI<_Wp^j%=DR7fs5+DLFVX`va5p?xsR{t;Fval~jwv3$JZHs4YnTgc`cbAd>e3RFF z1dI=C0f|q#ynJx;PhGFT6^(LIVzsga=E=bCZYk#JEp>SrV}BY*Dv;n74M=7n4R|a$ zO9bBzaT!0d^-;flzm%Tm=RxT)UUc$*+FH`#>dZw;VB>M->?8uJn7-F@b?9D&1ImmW&l*Da+G?{O0z%#&g5ebXwvK2MhVHJJwq)Fa?po_4t}TE78S4 zol8?Rh=1V_Xt|_j-04|<$a^jPjh0g0yfc4UZb>E0MHiWTxCZg0gSm#iPX5ZyfH9M& z<>`@?@8gk`<{5YM6H5#Dt(|#=^V`lvlv53y*}e6NZ<`$-dkyHhQ3~gCuP3z_Fh8F7DL^%1i+{E4fDwUhemG~R$P7Z z&BrH>9G|fD!EbEqznLtjpFH!_Gf$mQOq$B3Ol8xO*$}$p@SG1ne_+y4G3BV3mQ+jK zcaQ z%25uNd6v-lUVU8peA}eGbjn^jVK0SCLrVy$?E*t^VQ2}#g`r-l*NMi9K))~i7#A=3 zRL!a%Hnw>mb}Bz|st@OxepEmZ>wVkp%3F4IyW8|uJ^|FX2(GZ$B3%l<5c0|tZoWRX zv~=M=8s=XxXbRqA9SnwK{a+2RBSeC`i@Bg0oVo+gMr-g$CucIc?+59$d%o zSNQo)4!YK>3&R_TQ9BkKZsDf#nsG6Yrh-8+b@FdKdZDotCjJ`9DsVganxgBfIJ+Bh zrzhx)O)Tll5bm0-OwYHFz`h{9y}U_IS~#hy?Ixp3}dq zBSyjH&slnY#R{M{2v_F_&@$tG6r~znz~gw6wa75BSb|$ciIF4%p}bO_grmWAKrXGcyO*>GwzqzTR;sPL`0VL zq!P(QAB3~%;bwXQ}v9=^Yh z0H-{OeIF@?{-NaHa8~Xggu~7-9XhJtS3HJX{m9^i(@i2iINTVg3B2R=B4r9GpgZY! z|4D{%W7gOc7cT*PF^xifg2CO%=a9Px;T}Q_f>4)LSlW&t{_nFFO9v1RBMc#&MYw<< zZe4zeB@rL4!`XiYUw;Vz|IP!qC=MY)&2U9qB|RiSFTzkQ815#09mFO_nTxggz`Q;= zK!^I`t*i%F;3uW3_?HJhG+D;PAFn;}J!0g)IB{y!Sux=#pLA4CIV#7j)8>3qFfA>F zrDoC!US}43b0tw1Fd|_Nyk@eKAom;wWCH*AnFDJb@lL~;a0WUbBL&1UEiHryd=^A>}%gg|#XbU?ASk%X_q;E*i_O7clyyalBkxDJgVdsBZC<$17_H>ATA OJ}YrgOaBW9i}gRaMd9rL diff --git a/data_ingest.py b/data_ingest.py index 79529011..88be260b 100644 --- a/data_ingest.py +++ b/data_ingest.py @@ -1,19 +1,18 @@ import sys, os sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from utils import create_vector_store, save_embedded_data, load_documents_from_directory, load_embedding_model +from utils import create_vector_store, save_embedded_data, load_documents_from_directory, process_directory from loggings.logging_config import logger +import time # This module will load in the data, you only need to add the data path to it. data_path = './data' -# # loading the embeddings -# logger.info(f"Loading the embeddings") -# embeddings = load_embedding_model() -# logger.info(f"Embeddings loaded") - def load_data(data_path: str): logger.info(f"Loading data from {data_path}") + start_time = time.time() + # logging the start time + logger.info(f"Start time: {start_time}") documents, docs_id, num_pages = load_documents_from_directory(data_path) logger.info(f"Data loaded") logger.info(f"Creating vector store") @@ -23,8 +22,17 @@ def load_data(data_path: str): # saving the embedded data save_embedded_data(embed_db) logger.info(f"Vector store saved") + end_time = time.time() + logger.info(f"End time: {end_time}") + time_taken = end_time - start_time + logger.info(f"Time taken: {time_taken}") print("Vector store created and saved") + # creating the thumbnails + logger.info(f"Creating thumbnails") + status = process_directory(data_path) + print(f"{status}: Thumbnails created.") + logger.info(f"Thumbnails created") return embed_db diff --git a/index/faiss_index_data/index.faiss b/index/faiss_index_data/index.faiss index 2fe59d49f1e7d4c2ea8ce8d7ba4ba08586d24d3f..1eeac1e8952a6f6d349478914949c6f72aab8fc8 100644 GIT binary patch delta 15580 zcmWk#_d||v7jG|Z?WDa2O?vKgwNof%RJMp@loe9)Xc3~cH1sV=LP`|%+~-PzO434B zk`WRKQAWJIKYadzbDeXY&p4OI9WReNUNKkUYIF4I+A2|&8@2|Vr?umrguCo$?i09^ zs6x6oTm|-YD>Lr-2`{CFfsOS}`XnF~cV<-une@`gD@+-7 zB=Kt>u$sT*XhNGQ_TIN(4E+DXjLu@{`_&0qx`1HWP#?2F$Nkr zXQlUmE=Wzbd9caI_&?C;-bKBuq)J`b`;j&$ln&G zU0w)h%~hex!`I-kZ);%xZwIpCo3xt+%B`i?#ChT!thKgMNEGJbLPAdhwC zfU2=SRp=KXG9t&o>Wd;R=XxCmyLE1`>*XuZsw`&5B(xpz!*sgPSd;M2)FmoXy%=+M z6*xUO2i5QSsOF>l@Q3$-vHO{UwL^xas^|toezt>0pX z$xL6FjjzMcqDY|&v*UmQXKLdfc-8a-RQBDaJC6+m*X4#g*%daMS(d3q-e)dgLs5c8 z7*F7Us5HzGjK|3JAK*=B9d441VcLe8VK||SY2oX|)XzsKZ+jDV_*|mhr{h`8-#dx! zEp=Xp&2cvRVmrz-#L@3_3|P6TPLNsonJIGaN72njg!A826sb@kKC3_TlC^xebm{|j z&<<^zUH#}g9@~^aH|yrHqVy;!?#rgZJN97~q@dh^bMWwRF4nJ8Lvu|dlC`l4D^Ki$ z3rT0lqHY%w%Jo9Q;>YkpVk7&i%$cnd{|KsYiowkJBd$!Fiofmt!OE94bP4iy> zE{Dr8`hEqxmf_B!QL6?aUvUF{5vEUWylA)_~^(DYOZw5~EFBkGyVXvZ165iNs{ zbOX?8g#bCK_lje4u>hY-e}%k%KiNU9NiC~8H>B1j=qDp?EKl`6Swm&!K@#V2l6v!Y zLson*hDe=a9@uum&ew4SHknY%haT{}Z!O5^TC%ZU{RsP|8MiK1ChIis;#@^@GWW}2 zoE`s=xi=w0m8VA0AA76G@q=oV&qB!|c9#S>Uz|lAoY;fC?&-jt!}lM)&tc&{UnV6@ zw|U$e%1M>gfq0o*EQNSfdS^?&e;CIAlWok@X|nW6K?;qOlVTz^CgLgmU9|F+2?+{G zp+vckk*`uD;}`F9Cb)YU?~V=zek>;QDx7J1=0Th$8-tvSbC|pkIdUx|hG}1%16^*N zT*x@LjQYGWz*$Tc6nWjpw4_Uzx>yDNo;ZRWotgB(>_4C@WJtd|gp$(sLEdA{Wza78 zkXf-wmPlwkV2^LrqO?Yo{Fv23D>^NR$kQt@q+1D7ino&=(}UT|p;ag@o&{&D)w8AKP_c9GyW&uaO-IEaM#2 zmUZwGlp>eONKLYa1ng}MVh$M#z|9t2xZ`pjHgLMwoRSLmOR0~ z4`$IFS)E`e{s4ZQ%tfEFXYA<*g`7{SXTewGB8EgJ!Fm%{s(9rGQ#ox0Ror|M2j(Az zLEd6W`Os7C{&oP5EVrOz{%2rWLI$iEEW^s6>v&I7nyePuhv>N~G-p)$eIDUaTT~k&2{XgER8`{>9y=K7jtI zHFQz#AiSTW0=6?+@u{7p{Y7O3cyR>TEq^W9?szF`q|gIFTXQi*q5|*BYSMWZ6X8O- z5pjBIz@&`xGb;k*=&89IY6U!0Sv`&m7n63ng4xDhjBNuCGc7!DVAX0`c&i02X%B+; z$ulrhb0+C){>N&XZ=ufy9^jGF?d;$GJRtE?6MMhR6`qc@5L0s=&hOmAL`+de@%*_k znr2APb-Lor=S#pW*_SL__ZD!U@8suVh!WGo!6-nH{K{0SRp)R^$-&c)!TZud%pO{^+NhD~2t-HewwXXk9PjQ6379qJwkE z&YnrX)z6CSR6=!fKXshrPPi?%EXc>ze0cGr067q{S@1}g&cTV?2*@we;=o(YM*Q;1CaLQ->i8GEVX|+xeMv^ z8(r)<6*;;hONjJEeZs+tHgvDbLZJ@=tkt|(#4pv3zL8r%%zKyO{R4m4@Z(E}OFiK1 zf*kTGU>iG4)r(q->?K5O0@SbnLc=pvpdz>jxIRwc8Yf+&6g&(2)f7PIKRpr@Uxw#= zDfYHZBMp7SY&_TV4JsS0tgW&w$Gat+D8?7clgV}_#|i>y%|IRKe=KE;dilxrx3O`l3HC`*$KLoOJx-iBs9 zDJH_DBJ|T&C5JDr4vbCle?;`I3c3`R0#{J`8dlr%Kr_vwi(j09) zLjN#lWF~cqJBvJlM>4JGn2 z=_Wqo*9N(%eXzjGkDe{@qU(-UW8<<196bREQkFi(E-q9g%T)Neq`%CEDt<@<#%Tue zS+xv(k~FA*`&>}k=fzCFJ&tc(T!`BEW90VQlN9@Ptn}4HIId9+-cJ`2HIoQd!>by7 z_2fu=a58m_F(g^*Z-DpELLizyfj>nGOSGrbDWZEJcU}iCd2tf*hou1GKjy-|jr22@ zt3tlsR;IDjPt=-y41p1f8nfEJhH0@kAjJl$Fn%zf{pAo3&-;DoKA{;T z(aQ~FLJz{y9b3R$B?H7JBH`aZJB*YRfb737LA-$<-~Q}{C}(+xFIv}N*3W9J6}`aR zYuCnfi@8wocOScazzH{TMUL@enzmtSj5zXjbt5Y|0@l;~Al&gJN`AV@_`6$?<7suw zdb2!ueo+k98pblxB?%b5VlMEy*U^mecJ{*=LHhdfNr;(R2r){Upf|&r;Tq>*`56h! z>-!A3zPXV5ehlZ7s51xFyOEtW!Wj2Si>}@fOQ%$e>k^lc6le?>i!(DhY-Ykg34uun zPC{rB!jll0gyWH zVkO?{u%{F^aJ~nvp(|8Gi94~!NE;m-<*g-Ey2oJIs430Kmq$DOYFu$A6SpQWB^^=A zX~Cg5GGrD;pP@VXtLsjuR~=>6*0sX=Wr1is)&e62x#V4z1X-bBO0e@PT<<%`2zFhC zNFlY_orByjEDee#5{slz;k_RHJhK=%GRMieKmPD)k202N%2Scg{;W^qGU9V*CtLES z7tG_-iB;Jk4;u(Z~q>P1)JOmhfyz80dxSF1qgrU$N(wSnssk~EYGfW$!~ zB5*E%?K@J44Jp^qfAlgIoE0JAe|j*i|2{U`yHUga^9k2j`T%)Hq{-Tt>$5{5QrUUx zIfwxnpc>S`%IGUY$&XpEb&EV6%{UG6wceP0H4D71jU%&fh(0-R10NP2r(4S|mkOnpfZ?#0y`K%b(7%l+sQ{pJs(Ff<-e`MWD_rUGf30Nuqfjy6{L}m9q=99Y# z7{A*~Hl#Mg^*ue9vSTLre^kX)2Je{Sch+Q|>ouNlf&mrYbpoi+254ox=m&BLmzjM4 z%{CPxhDX3Vn7bd<*4x6m2ON4_Xd5G+D@l{<9BG|-BetqO$G83S*pxq$kML*_B*^dK zm^>;$)!nTyU3eyX|Kq1xyAI;-?UgvTyTrb0AQg0aE}~eO3CkBAN$&1dXB~gWGBd-p zsCLq14}UQvnNgY~;#)l!NqDh(FIim34ZVc<;eNH6_0_Oty&%n~^Jlq37jW6gbgEn# z1y2@RP~+(p#Nq%j;dUoUr;jVW=93HiEhg~${x;~BRD#*XGw7_o$8e|9hRV&&X7APT zFkjajqN9J|_aZs^;Jp{IeldZP`)50JtN#PxehXmgrqaxrVaT24cpjc}-lO@kYZ&-E zktF;~XTmmwGZ}n$VYS3bdVAG<&c4AVjF81qTxM8;?V_TztW1M+#PZ?j?l!#eH;8Pj z-%9&OEJ)1w7IJk;4E+AskA`#aLP_XSaxNF`Z66$?e5Liwy|X}#f{vj&M-yHf9l<;D z+qk5&CY6fa*h!-PyA2afUeu{0hSqJ~fJ5Gh=AC?WBvFbyu<>CIE?9zQ4>gG1M=@M{ z*O(k0ZN#?ZEUZ$oWlRnklD~l;YsjV6}O2R(IshI1+r+knwJuiTRZR06qqJtMIZ9H5N?+loh5Y@o1;VF)7IM% zNXB{NcoRK!FXK90Us%LRfm7>L>F971dz8F}>qm@9inGw?&Zfv6%U`(t}9c zbaHriX$R=YN|GD%h2VtPIn?ymqBXu}YgF{kfFD* z`*LH}|4JgqFKQmmW~8Zn2N2)wb1~k_j+*UQ4gBw0Av;ckp8qUCouA$X$tSfr%n-xJ zYq>uGhs`adZfYk`rfX0TH30_cG|C zyk6XRX&LdI+rqx#<0m>YwY>6biP|ZfyHUtvC*=l6o+H-|-C#dXe^C8I#ef%et%1G? z$Rf7ig=sb0iIJN&!Ta-@!M1rjZA$87h8`cF*`^gNqo+!utfo=OJ3>}#pQYtCz9hhU z3cWVYWyG$R!|QBqY9c02xZTBMo2oaHZA9yy>FouT0q9h1Ao0 zDcWu;!_M$8_+#}nER8>hQwk^7Qi&!MOzX!Nm!INypMKCzPJ%b#C-D5(4NQ@?p`x8Y z{iIf6{Rnp!JL9Mf^|naF%0I#E;m5*`c~56Rp2|Wp;@nAo`RUX1&iB~-f{zd<=t&ix zv_qhi6t#KQ$!6XR=?ptb44f`O{@#Qe-=~c*(fe+(x%vT=-+nQU zg&1SPKSAc4Tp(`ePr_{uYv9OdU;4PAj;@+_k6F3?3XQ!{$j)-uM$#9|#VdO+lB3~* zxY|(`{MyCn{^3mca-b5PhRQM(ACthY;0y5CEWq*d3edA#M7iVpXOW!_3K%`@D$Y4I zg*uWY#Ng%>hHw2ldel;Yh8W-FZEt9SUrV$=s>==@N9&TuYxFTtR%7$eQ zi>UpV-@F?I`QS7dg>7*`21TpVvssqUvHtlmuAH11&80^4&~`q1!EqVlENej3PX2=R zO%lZY=sos8x*W~;H3K5_=8$U(u7T%2E*f|S!jp{+5V2N*Q5x=H@B3DxYl#QpzIitl z*DT>94I*ivAbo`<6cf1$9g`9YG z0i1$o5|M_L)IO;WxMe>uy81sDUnM}6GD2kA1!rPGPQ&+G$0-f0;Ph%0;NzMcw2+G< z1R1}`)IaixIly9=6 z@BjYh&2pVfzMfi(dG@JHqRb&!{o96khH@9dh}Ue$)Al8o*#X|ox0amhJay<*wjeV< zijnUUZuYfLcEkPpCj4{So!ls!htvK`0H4_oxvQ3n3-}sPm{lJj= zWsmUlM^`K=?S^0j4wx7%hgI8qFghg~m;ASc(x6r7nzonrN;YG&QV0opYL6S9>5~+@ zX_Om#!k{)i;u>!8)4_;dTXNS`ltxe0B7Kp0cw9P}M#|145nElb;6elP1$mP_${~!k z+~nfD-5UkjnRL3wQ50=bC0{3$sG0gH(%-OvW=mQSI$4&X1;KEkNSZhi9sKg}8r;5A zN-l8fAoXKB^K+Xq*&6bi3!R3>yuY8#YV)EO!JnsF$s%SZLmSkojn*JOTeyP+$2pO9 z#Su0^Ux>ygi?KsZI%N096POh1LiLC$b}SR5QTa+V+0_^M`1xqio-DN3mW&aRfaZTf zsl>5GIK$5X->$!gMwcug!}JLAZuVR33NB%1gm8JV-zyb`A3sL>J0;BHcl~&Kiwb6M zaN#|b*Kq9oP|etgo#UL#zD6vj+(tpwot$%X-oaY$R=hz4QEQ(e9gXmV>arzJo*~Sh z3ae*gdbO#YoDqERYDC*R^GJ!A2~iKHFjI7h*CF(imy){(V}nazq`w-YxP@)l9|*Li z{R51+ZX!Bobcol@FE!mE%JhM1Js$pj2debUAo*7o-2BENz3w6~mMV{D)7@a;lN&0M zEKIDrLr)gj@wTj5N*jtyG0!`d`Hu!rqtw&jK3|zCH;7P;Uk4Z(cMnu6QWKL|Y`)S(f_D?|j-(r`i7Uw9@Pf|5&znZeznL|6Pb=id}d z+Fc<@gqjn{!`{2t6IY0H6zaHea*ZXdv)>Or_o`R{pI7YRfkiavX(?l&Ax1sV_hHWu zKW1v0Jnb6|!hG2b^s?z;u4E~qmzp@cX%oVyNq49tQ4>FSb=x<4EM_=YwHevRnas;t zacXyEGe&)nBL+%ZXeyQu-@EtFJ@1w1n>ZsTOGS^oJH<7Jz>qpDslU!HxV;J$S?}5- zIek30;Ei+#mkZrzitwF<7~L(s1QyI`$Mip8#6EEmySL~FVV3NtQHmo__pSv0D{O?N z--St|>;zM8I*pw4>Ou?8jYzGpFw1)<7n(oP6Qvp@S-@Lc!G5{^h}pb%4X8Qpp~3NnxTbK7C$Hhj3@9L4 z-d#=S-}wct9|<*c$zl>^#YrQY(D4FUV&>#T7B8@Xlx9sl*?Ev$5Ai39maJuZj;hks zmGWfmn^Ra4br`u>CyK#sPd(aoL=)b=avIWLMcV6l;N)ga!&lYPLpEC>>RdH;y;rA> z-r9+|a4aTCz6SdrE& z-9~)6X3_wwTvp62Oc7WmMBN(!wzy@ zlXAS5ijuG4I>b&y7MF7`!41LL#Fj3hiFyT~dB~ISZSFvcxD33i6+o=Md4sf~3d)mr z*iaqI=oQ4#dHrRWyeXUd*&k$HG^`}gRK#Il+hXztF5vE|zi7E(DvqgJacR(}1u*^+tk-(pPnC*aE6y5yLL zAE~la!lFnw*f(ZGEKd$%=&x8B#Z~2_E}mgDtc8csB32;xRK`(x3xobP3cR1ePl?CT z2GlpX4k9y7K$D9st-JLEeABjKMA9j|so_U#T#K>r`c3$6fe-r01wz(xS$6lF2`HM_ zMgr%mldJWrtY=dJyF$+wx2-q=M>~~htDzr_c1@&%B~FCPc^XCz8!jZz9CzdEppVQE z#+xQyXYp0}A2#6Y58S{n4l2zz@%a7QxJynIWoFyb<&$$yX~__E>CvY>|K-w4L2Gfx z$&KW|-kaDKq(V097|?j*S`fT`1CK54Vf-)OfOwN3*!zl0QbPKe!PV;IMYJuWZ8OeA zKWjVo(R)iWywQdVR!7sFe^!&3yizC>enPcF9Bbg|4<^!tk63meLkY!4?6j*F$y&|J zxH4w;Y>%1BY7p+kX_|cL|ZsJt}mUuMU;}vX(3#)+XV9P4Mbj z>q)L<2N|oS$@7hUaIb|cK)t6{VdUB=bm07MOxJ&f^}RJXkYG;rMGa`!IbBQ_yMcWn z8su56EZ#2Cz%WIYx%`2jMqL$yOdn;|Z`K30b!{pZTSNhOg@FADZw9K}CN~I!UTh7V zP8RZsQ`OM`8o7QUnRj3&`JCPWS=*Ix#@ss?zqZgcWb_hO zyBI=@~V z>gNZoFKH-ecMVQv7DAcT2AJKo8a4AblbS1U;g@bVtjRT{@8|#F?I}osoW2EEZ@Zl} zyIaiG>kD&9)7IJakVpemsTe}`ZcEx&CqS?ARj~)AW}{b81)B6YlivD6>}O+&v-9$z5A5LI3yRKsf`I%D)&*Dc=INg{&J!eN& zdJW^{vTu++cO5?R8^B>#OB!`^89DO#6%+Kunbtp{7}1spZ$OjwW*%j+nvY7p(e8jc z7h&v{tB3REJQ+Q%z58~$^H&5Y$9Kc$71wZg|89gLG5uW(jo}N%oiFdA+wo~sZihXmcU+bxN?4E$qx)%G`cvl6s533M zy~reuOThbeh3LPzove;@BA0rPVY2K~=2Gw$_V;=r68TP@bbHIz9^c44N^b2}A={IT z7{0u5+&u3*+Vlw!zZ!SAGgE;zNt;2BHJP(LLvkeBp&CDWFQOih&f1n8#MjB=SoSUk z!=60CqxFYy_HY6|el?3qXCxr=qYt~|=faAdW@f{hNgP(CV;35j%quQ* z{Esco<>q_Cf%=m;meev^;Oqrdekbb)ZCPL$s|m_NV`OWyJYM0whbpCwckyb%Rbe(BVTcvZ^ z?Fql2IX`xi_Mc`xMSP~a`|kr+ReT@OP^*OF8vvFCmq}v{ccb2KcQWv9BSsxx2{-O`u;X7? z`2H^yB_#uSUzQKCbzgh1y;Xt;Ff+(ypWo2vyB~^#hq)+g+yGQdi6kD^pvHL<>=V=F z@KW+21UgIBI-EA64W3QlzatqcU*5c-zjzHkd3c6=YyXR8YJ%YOBA)zp&SzWPH_{Eu zIYf1u92^u5L$^nvpy`{By8|q#x7cb}lp#dc884#F)$@ zf_yaH>L?EWYyzjvr>SV&KP(n%vhL_7?Dq?ylV|TeEJzo6U<;u9=>MutUZ|tH+fQ1ugN7#zEx0v(LE6D z6a=e+>Z#@5Lo|bFg;iIk()=wCF??@iO?>oz=3vz(P-DzV>83jNi(4?MO&x;I?QKl$ zfe!S((+T}6C1~-eB{`K*2HKOPSFDF0+_nXxjjtD`ON4Wpp8sGilaxU$L7ikTZ)7a? z#!{&bTqjae_zbi1vTJR3bU-s4U?+G1`cGc9)kXNieJD-@efZcURW+g#=tQ?!XR@;d2WuM7+0n|IQ;Awp zGX!0D#M3X?Pj8Q3BEE{NQRdifbd>ZUi`Gihx=0=T8uANoyUVbWr<7o`T?jDSOR;q4 zY+7ekh3hPQNW;)QrXl7!o{4rqN0|`v=TItSsqDa<*j304`&h<=+xI}u)43$b$boh$ z-e(M*#7N=R6g;s&pUnN>0AHsqBOjiaaQapcG3qZBYa~CvV0`9(XSY=><=y{5$Zwsy z%vv9Nl(wh>|5gWBJ&}m@D~;)oS5xTGM=I2NM1!_VO3U~Z>Uv4C)N4B3XkP?7c%qp7!Gtc4N`qia zck*^w9E8s$#A@~!h{kfigY<(NY{*@ie)d(ToTGxS0riKwU^Jdjc9acbckO%-e%1+|gEee=R|;@$2+&gfBLI^UpW$yG z%t$^2>#e2fxrkB%3g12__;oZK*PR5_Oj zpWk($Zl6%?p_+UUip!)^nm=IBat{*t`T*TFBt-tWR$_VpMVs0fcG{6as5G&~>d9#E zUd>dn+I5M`^cI}J!x>%p`}$q{O2kNx#CEdd&wF$)UO<=G#=%9tBVeIkNaaObKzCsw zvxM6X%ZqB!U~r;FVq^{}vQIEaUu5`>+z=BOBh#JhE%YXJv$OhmYV3J zv)3Z(>;HxkDsF+ZleFejM=vhl%Kgnw`>jv16b=K9-ow|==hC2qKtDZwZQtqVOdGAb z(D!Tr7M*^KI|nUc(Qq2v+M-AjxdLQ#bs`?}P{2P@J&cUSR_36`E~pMakMUC^$;V_F z*ze>|EwT?Yb3GUm0Z#C$Zk%o3bBs#Nm!NL5c(CQ44y(#-CaG$TscMq@By0P}58hek4fIVZLV&``CO^^Pff5hy3LI42&n=Y-iE`{CdG=u_Zld zlf|4mSIsK%N^z#3Dyf`wmOJV)P`Y|KeOGM)M#D>~_78WeiwQ(ots39oF?RU;O^a|t zhs=oR#8Z@5AIqyYX#me%OJJA3GVRSeK}JI)2{Rx<*De3ThAhmX!m=yyKH1NH{I!Cb zU#!G8>1xz|cN;u^zXq2q&R|zbNsxDny0l@j3wd$fjtCc4@xng|W9fZEBJ$sE5^wea zFTG^xzKCX!leVKqOWtttpw}ICyut?jEO(Jl&DnItMg?-@@CIVH!G#6{ouKmHPOv-F zPGf_1AmtbyC6@zvsHOD-Pk6_I*VTGfTp)-17e9|}u~{*h81e_3NhPhmDFyA%c*2;J z0`O{IK*OF<*jN9U$zShJvmWh+q*KOJQQH8DT)5Za%h7+1<~*A^vvQ}|`~C-Sn0@%aUNmM~#y(L?;|cvXVkW+3 zBDZ}fp;C6lGIBY{|ImQ22QzSETr5T%^CXcLx-|9YSw?!Z8u{KEhe{Q;oPDYuXou`(2fJEJBE>pS$VdPUFY1+W7eB194UW)7r~y|6K|4zIP408JtB+DqB$FU@5JU zG^R42PEP(1la@u~24b*HlgiCL2d%R5^!&h0C_WgA>;9@^QN1YKOj%6sI{jnfYaWnK<=e3R@_aO znw&Tc@_f^9dcYJqy}Tdye_x0tx2>6*1Mk@{c4~BWq&*66*#TCqX0+Wpf$DoL;=EDo zz(i1|8ywnUmTU-7Sy5MWW>Y6#am!@ie>y?c!#wB|Zc8R+Z4JIE&+fLo|cWe+$Kg$J_KRa%u-IJlH7?vkaEuVUHryDV`* zMF;2}Eoeii*JA83UQOi%x6l`>L39vd;HvZ1EdORNIKm0WkE>7Nth60W;>EM9!A4!${U(iO zxy;ANnnXIMseuP8yvZyH4(42nBP-`<(G|%8s^HNnt?Ds8Y51*?T4%(At>V}xF(zjmH7(9%Tfu?aGQ?srcB>a+kRgc zWG$D{s<|Ox+ntO1gcayo`8ag`B2Qv2%pn8TqGZ~_LZX<&rI%ZsN#hJF*789JyHdG| zILF)Lc8fIf%&h{?m=dOHLI-cxH&4dDPvI0VS^7fzIQcP|9Us=ya>&?cNhbG4vhDd8 z#tRQH+%41op^)J=6jV^9TRr=rFF6e#?~Gv5eKy0HOOr_}rx$4XDIPaQd*FtGF*fD5 z9u*zdBTJi0(IfjaUjC#_MBChW278i0`;ioJGwtI2HXdL%7k+}d*UG^3tRnbUUdLS_ zLU18d5<`npp=56g6FD>u0-s26iQP#Vs^@17?>lz0YRgyCt^A7A$KD(z4lr;!){cgR zT4RISdZuU6&f4(&D?BY8V*?^T!<3^&WJ^Ogqdl?_#Wg2j-oxqi%z{)B5@d~fcPBOC zSJTPoixe{Tt>}P0Avb^RVx+Ff8;ogp^&j}$$Sun*OFGaSUs6;NMo205~(6I@OWF^%;@@b%UqHe#;^`NR!Y zB86i&CNqNPpm6nWe0FXaKjun9Ju5@*rJMuBGpb}jS`UsZCu7|D?Ih~(Pt*+RM8Y{n z;vA>2BdU+tt*`BAtJ(z2GOA;Ae*b}6*H%ODN)zgK;V`{+{3kq$`NDeN9l}FPrqa%b z9BdP`rt&|&;nM7MAU;z8n*a6;BU^qS9y#V?$TKJMZtg)Yy}m=gc9q0>`>QjK;?&8bvC1|Tn)Kr# z(=IRz%px|^iuO@x{-n&*&Od{@-y4&S?w_Hf>kMwsm!smVZRis{yGf2@#CR>RqVm6L ziG~4(z8=2i(2s8ebRlJ|C}LfxvIoo^$KGq zXi$4LK^@dysS~c^oJo1k2H#gk&{3CDlW}Tea*H{PTlS{np0&2P&%l~^$-hK@S2en6 zt1+I_@TZS`p5gVkd_-!M1HD!p#~6R&=X4%7qw{|y(E!CWX#A!Y_`f~D?kBfk`vWr~ zqF%+UxoU*Y+*7AuPum{c@99HZs@gE%SugY6E0iuXj%CB@6&>%lInnCg7tBWQGP3R+ zLxVCNz)}fIa^LML+hp#_9_x0ZKBkY@2V3Tm9KQm*6nhVT=_Rwdd0VqyNG`)^~+ADKR&vX;bVm)cfK*Pd@+q(7cm!q ze@vixjd`rdmfLu&>j=o)j)&KxW}td64UfxYvSIsoKxv>aeUbfw21e)LhL$)Q;MmGO z&Kv*%8ByA#)&({3CUhJ5#|+1?xI##lY@Bj~6?t?PlIKsBI`K9aESkeGT)Q3Xj)_xy z>r_~r#JBMVh{P3`UwvVJRntmYCHbq6u$JY%vTl>Fn-*lL@-9=g=lV+15F_ z?209e$xYWxGM2H9eiPs$g@&F?+Xok{yQx7I?Gm9$W5Kj1Y6!gYP{cK7X%}(Pzi;=dhYX$`en*&6=S)>565c$2S2~QE?*;ZZ+%{Au-yd z=tlM+0|vd1a08lhOpi>8Hd*&^3I<@iMnh5w) zY)fVf#oJ4tV2PHj+O2KXi#Qt$oqNYA9N*J0HMmt?wN_D~%x z>+*-9W*hu8XFEDi$Pts&{}{(jmvCdnW@!7d3)`;kAwMQBqDHzziJ5E&{(Ejuf9OR* zrig+=cKc0C46`EBA{T@H(s`Us-2JWWpVKWhY%qm$9h3KV^Qz$!dyEKoy=1d`i)xgf zx8lE5)7dS;gWw#gPDb9BVcnG+-s^cLWJmJ~(8ya1)bTG^&sd2yQ6G7)URu(hgC-== zxe$F0sDO-Y0_Y2f(TN8PJr&Bpg7uN0p7S01{=Q~ERh(v39N90}Z@mwPCSJ@;!-3}CZ0y3rJXha6cxgi#BO6o!(LXim zzvac8Rk6ECwYN5`ef0uON7~r~I(Iormu8a<#SP4JB`f&w4q)Rs|Hdy`40>?PxR`RH zhxa<>1Unuaz^-(Eh6*2ysiLO@oV>N3Y1eZ?>&1~|x58Ay%$-7Y?g-Er)fT*(cZ7A% zpU=czkRZ)UafEn(LP7RB?^sO=91p+931^0Jo#s-cb|2a9|J-3t;X24Y`vi2i$H?Z`IVB^-!lYS{n5<58*QjrqCsxT zETq9^8dNYGah{Do>(?@b-xU(s@g2|XpS0vsZ7fE0S2d70tV$cc$kVm)%VCH9BrM4E zgv}dLVQFFuJJjM&BO<=Q8TZ?8v3LOQb2sl|5fmc)MFMV4Y`MQs-KUhV# z_HM_GBmSiNnLAQu3e%fE5C7)QruTna!L5{35Zdg3t>>rEnOAMe%RQbDS~i!6Ely+a z2d?1Kl@J2lOD>q~cbk1-y@0NGYKNR(CB&dEi@GY6V}q|NXkPrvo2xW|(rYI$%G;1M zm48J$d$u*VJ39(8d{>&mdq zl0%dAMWHoYpY?Sjp2?QE+(ht!_E*}${1AR)tb%)x&j@YmN0*uQ-cRI~MIcl}$Q>4X5QU8#(@ zRpn?AnT-Mu#8E#^f#jWP$9=^Ny<#w#WZv74leqq0IVQ{2H@0i6L8ZhU^u{(V*#13+ zD8AfB%YEWOl4?>pBmVLv$uXPMFOb6~#W=axf}>jfjOib_!**^xLi)Q6sFpqu$vi=7 z^zAojhwp?3+hUpVgYtBx>Pnh$C7rC=F_-q-&~$j^z`*^hIYj)c8=mG|0&e{~mN5%Z zA#Qa`sM&-dxJ_un>CzrZi&mk7H}g=vhQ+9+`*_f#lAV4+lzuZVqDj_AVN7&B3fyL> zMW`uxzbKd19`a^gl*CD)M<(u)nUAs0Js6(=J+f!qg$A?f58VskkLRsMp}d&WY|HL zne$c#3U1ZGVk<3@<&(>9Ya7M8y2?bVY&C6Kb^@m zoy@Fw@E;!Ce;nF%6d7yb0GbyaN&JFj*bYRp|h42d1AiZY+ZqQOe)@K;>+)QBx_lOoq?oxz$S8p(UC{6_u zq)5#nQJOWM#Ru-*1j8K3*Y5)G*E4|AI~Cw#=qTJSlcEnoj7VU-BR%`q1;YN#pk-fI z!YYp|5T~{bR;;_ixF}@d=G~8QZ{T90kbDBlKAgpK2CXQtK%R8pdCAI}O=ES6WvTRH zofVL?a1T*zS0g1B+G5;WKQ-uz$69FnG8dF~-A9kMO8B*|9CFvYk)M+4WNiHfjHvv8 zI*PZz(k+@wht$HsyHA*|!L#^6RU1;z7=rxo^NiWG=@?%27a4a!k}t9m2bNzzGDCp= z_u(W|tF}Yb;4|j->0sug;v-DY*wi?-I+^JnP2=KoX>E9&ag~YCT8AMei_j(q=e3B2*0o**Wz2*(nulbI`W zjy>Yl$MNiup@kVd6zF}+X_#h31YWg5l0Y)t@G`=?m)3%~i39;B*~YA$+0N8BX?SMxW;3@tf4ov{)Q<;CHjrT1AjP@Yy#2Qmv*gIrqzd%^Q1Mrr!P+_k{C zz4w3xIw{!R-VB~ZurX>(ns9|4XcCjL70j-?zu=O^Ireyz6Mb{{Ca(Nk%zJe&j~N{k z0rlN_jPT}kh)$kIGD}mSzqSxx$!w-W@2arpdM=%DF^M;J`~=xi<$ zqHXL+%x(yR^GAN*-MNvxjT>f@PowEr{5_HE+iHS;T$XWZasCGI{m&Gi>}kb4H>{}S z_!L-D6+!HB3ur0Fi9R=!g;1_Kxu4&GYv-Opr+?niY-32(eNRA=%mp$$F9AXd0#UoK z2D;8jK%0I7%vq2RHZve z6VEr9l2fbn@EA924$axQxN#r|aLevqRP{H50I!)OCd-XpAT`kUsE;QnBukn+_uK#d z!;l}s2{dAo8AtWb7`g{sVb0=VqU8G)*KDyQj-$n>B>4xnWsA|HA9sT3O9?z$=0yz; zUM6=BsM4j5vJRKqkHa;Z+Tw>p9Pj6&ihlyVz zWWg6Ve0yRF-IH0#2p7I*73A8mWws8nj{1gUjfy1ojuI21Bt#y+S`OoLbV);PH1<51 zz@MsDV9%p;Dk3h2%RI!_P;*mM|JtPH(Tx^;AW0&B;3@_Sw zP=idX%7A&V8E|b1h028k%z2S>P&Oopx9kL<-EI(E)&}B%TbE#Mh>U~Yma||~orPPs zs58!+r=UrE5~C)j%q%{02!C;J)U&@oon-y2HsY(jeJJ;z6>JKrVxl4|F=tyEgqO>Z zY8zj6spc`julaao#VcmzoMe=!G6HFLZ@SaJf=OE-NtKRif#S?Y@D~kY4$jYKGyFra z-b@<1l*P%i9q%CTp8@TBD9nUK29sZ_46tQDfF23t{MoZdP^?j+8}@4*c1`eoT^TEf$H>wo@L{KDu%A|65-OZ0xKfd z8^w!n&128moMT%%0_aa^F8pRrV3JBSJa!KzuUh)yx|tYV>RyNvVqY19?n2(X>!BoS z%@LZ>eSjRFszvV>=#allr_+{zbL^CipRi=XeH1o!CyN4NNb7$>Bqt&bJadJK$@n$i z1x+_-JUyi`xqvH=fBklnU@0k#BJ#8^=QVz9Eh7J&{t44&oMFrEiqdEld3jVFwfu+McY3T4P)bsfSiS8!&dSyKX zkA4BWv#q$`SU>*UGl^tPS7Ec)_|ga5Z9+t?Bp4UW*o@`|6qW9&IHpw{MeBtuD1YoE z5;M|q^yOJL<`sdxr)4nBF$+FOIMI-QlE4ONlTv+4*6wlxob_TkdQ%#qWcgg4o{cA* zEFr`~pond6{K2sayo805+_5l0lK5`ig9{$3(=-gHe=nZ~?zhJq$)(C*(rmIBFM7n` z)u$`#-QHHf$>B~svS1wQ7Pv5thQ6qMS(4m2ri(2GLyW1`QtI2#Pc4n#;BS zjvrMeEzbVbkOY$)Ni)jXv5~XC{|ftU{Qxw}{$`BF?TONjAK-TPIrJJS5Z;b;z>HUM z@v5#f%$I25JAY-G5*bI=D>uUX!a6wWevB>{lcJ|PZ`B`Cxd*d?7O*GTEsWiTYI6GU zGiJKfUGV#}j!1EJ$Xf9fT)nv*WEHdF_+T9qFHr{ZU#~GSq9RoG;BVL{EeHaV8gyiC zKhCg_hf)teVh}e1x74{eu(B=-emZ$kt1x5*cYVelUtQ{1AWZL9yv7hQdDvF*h*$Dk z7*a#8Gyk2R%{nW)5)GvylxYjWl&&KD*&st(52)a>ELHN#;wG;<=^xG>*CmO*2CRr( zC!`)%p>A%!QGHC1lbb0|F3V*w+e41xQrj<>$bB))ww&{Bte^QFUOv*L-)t!J^lAa} zHU&}flW)Pg*^0iL8ApV~rE%u^YNDU!LHl%NfxF=VcnyiUv!r*K@4mUx_id2eP zP^ZM1IJ;J#tlqj4KL&d7awC@%A}adUxaoCN>z8LsuPPROMI$ z+?@dbq%hdHejGyP$fIb1F}pi2m-plEJ0Ra!mSlE-na6T4yV49cng1ArOBb={qZbu2 z?uFMNgdv@eA*&<@I{PH3%{o(ML~(ljw>OR+ zh({N(A^3175YCDwV8(|GcD=?72#@Gyyq>JZC4bhS;@8!1l!_2Zq05*lD@vqy#z4X> zGuSg>O0xFpJ3P^CgcYH6z?Bn$|B7nyjLCF5B&mU27Q!ILEs`XkW@*FiNuorsC=0zy z#958Q^;lRXMlC1ilXuPn(bHlz6}jpkq1 zB=T?5(P<`uTAiQlJN01tpX75~;yanR2gag%O#zyW7O-UgD=1KE#g^y}+_)|iq%YQO z!#U1XjL%I)l3-yeTW4V@C%A(vBnigarTBHzBUt+D7PH~1IH_DX4x+;OjAex!)CG$( zc4ywO*3ml5O2QX_4rE@QKke&Z=&VK(paVdQS?+(9xrqu5lp1bphFi0tzV z)IBtZ7zL})CIMSK#*b*uzw|)1YZ`6OKv*O(gUbJG$FiOWo<(ZC4`PMlQWnvb%-BU{np&nlX4 zvza!3bEVZ^xRva%$98J?y&vt{Etr9)a*pnQk1=_loXDop=Y+W?OGQ&Ip~~TDBs5!! zeh>Zxp0W&;nRgnV9i&XW(Q2x?eiWiKRdD93a`+I~f%17vNxYsj3EI&N;ptbfg} z6YSxHWe$iQl%jdnWmwyHj2=|F2hQ9uAHvA$lmA@b!kdHvPMygS(AJ5-W!s+PI{$d4 zMYa$p{nLUReQ~r7l|$PfKbTmPW3)x}99?(iDx6zaO7|*67(|nVJT8sL4X}eK$^yt|QqhdXHT!xs_RIH6)$8V;PtBCc5Y9b5#0K&Gzw>;HO+S!wpPklLY<9TUUMhQrCwm_sb+#3(rB% zHxD|HioOBU8gBNF34u)zB&Z=d3#}ffFug^sE~_m%*j1BIcRCOB5fP2sY8u24NIR) z7VHiqBe{z>o7Lvv8&Mq^l**N*s-rs_CobLKC~o?JYp-%y=&$i+}&ax=G5crsQSR;g=p0 z1u}H5@CJNvIh5=P$h5n0&)A_Twgy^?N7=H~p*ZPQFuBT|)&h^aSF)wQR$Z@4ok zMw2CuL(DZ55EaOzS2L^ez>aO$;XDuZ?&(sq@LsgY-^FM>^r!JlR2l>XlE{O*GwF+e zMPO?C1x}78z~VKJSXq?}Chdnai9D6 zbaKY(6ZRaCpnrWExey$^8Wyw{H{RF00dcoh(W00XQus%i&h4;+++9YP?JytanOmFmsl} zqIn@yC&ULzY(t2&iUG?Jf5ns~Nn_;NXreiTI{>+N&)dBYT}NVaY8yoRo}={cBd{zb zjR`*>MEx31DBf%N1hvAl z#D;SUJ2d&@f}$2k3p0j}dIn;91nARMV{BB(dOE14iLq%zO z9FkGA7ESAA=sZbtj)^}*q(qfyX)uSTh}E!8W>Pf##dNANkcLWT*U_o?99o2>u!Hdj z(WJwg4u1*3Z68Y5HkXGOKJEe0J};R+5hdu~Bf#vO%zY2>?)msswg+dg`^AaTxQ{s< z6qyhK^oUh)TyaVnF7H=m9G~7JZf)aOdT%GZx+X+|rt9M1lnjP)<*3gOM@DtsSvVx( z&gM*g%&cqH<~s^&@ayiw^n1D_Wx6csK64$WMjv9wd?K;@a5(xK^)imR#aP8X_Xxk2 z&!V3m%9EodhY3}eA^l>iY$^SX5Bt`lymu2!7i5{&dy}EeV-wL6qfACt6>BzZ3s+t# zqtHDOYIgk|ee!UOS9m#*?v1&O3%vRnyNG#okCF)al`cyYivPpRl@joBOo-?&ssT$| z58@7^;2@BJ+>gOh7$#xQT2w8@U+Q(Rcg&GoJ@N>b3nf#XXVzp`a01q149z-fL3h}= zbt z_QxyJo|RLHzf>~WdbJeIZr#Iw>}xJ4+%19Vf&>u$Vu)|6>)9!hi|E*01(+FRLgP$I z(cohble2Oh2mA7Hq1O>i^%5dsbMNz7Jtm=_*Fm^x5z793Z~#BI#xpr5D0hG7!#tNG1Kwwk*8I*rFRH`hQaJOd32 zrNFzW9`rZxBaXE>>96lVkKK}}aPtA%fP#>(aSNyWPN!oRlgLJ!NQ|5e4%K;YL5CZt zL_V4|pyOfzaM@l0Q)b*mzZEC&iT@bk?rj9F+pdmRxkJ3!PqGkCWu zOzFnHpKwa-E<1559=Y8j$H3^u88k~cO3dH1P@&CoWTnt?_`KDcu42n+V0RcCUH%;B zH-5uOcT&iEzUh|h&)^KJNRrU}Ww2rMYI3(O1C-xsW1mkaO7_;m81Ew93a$m_LJYJG zorB-jR*cWRDm;-OLM6;ah){6}PGl4{9C|6pg<}y%uzb=47O9+Kaul^;&^Whoo;-hy zw@QW5Lt9COmlKsV_DB8ZVCD_~*yY_g%3H8al*;fM1Do_=URmQf(;M&#HBL`Ou^)Ln zpI8~f&dNgVxwTL<_7XypR&bsYA!5@z!(sK69k_N2kPDmQKs~&MowAgB7wz1~ne$Vs zVC|DKCX7u0)yi)@1TN=CfbT}HG+$Ar|>yn@VRQ}+GOK3q|-g52#4M^k=b zPNd~w$382%CEgx?&aNCll zoOmAx`pVObS(}>Yc*nR4lN7o%q!&t#ke=C%dv2!1U-`BK+Ya>!`bc` zWVrk~l*uU(BRz9c;USMd4pKPzJ%UWs7|~}>zrkYtF5v0~pr!W^yT*DMS(IJ}L&=t$ zj};cw>+xQwa}K6Q`z_e}S8vf0H7njJ%Rpl5rN*}Jb0wOd|L{`V5S3ii$j&`=ii=0) z7ee?2VJg0IE3Evn7MWvR^g*&aIX~fy3iV!ic7_PioxYDfVtj&TNchpuOEyr0xTQ2m zy&3$oEvWzDa+3Dv4E?t+3654-Q(ee}t7nHmctiurTXo>ES{7;KRlzJ5RY+K|jp63{nW(7s=<+R{q@F$pW9iyN{)!2@zskf4dlPa# za|*3j7oh`Qv#6Sw88sf(r?T9B2tMRaBkl&W-Xb~BsL_v)%n#7aQV;xQIv-wR9?Hba zk)G38ibqtD9!!PlSx%-UCi#cyYjB{vx?J@64OY}|yB{Da=#FA|mB zoCNO8Vp0@49X2Ms#C3jJ@QsS$ZkHHl_)8Lcn9iZowKmecz-5Hno|aC?kUg=#R?U7} z){PTFdUW`y0B`%d%P41Y3_hGNB3%kcaFOs3=g3=A%rJg|rynHZoD`&s{!U;A?>Jqz zP#NYNvLLf`MzQ#Z2dNBEqkc~e;J?=acs5TP>h_%D1noHkobSttm-0`h?wu{UHCK%h zx02)1!sq*^S5grjUwPe_7IdjE1y5z}$w9%(WgZ;-XoLj^~nD8KtXa z(;abG^1g%<`h6a8Ya9VQwt}jP+=fH+6Ei#R2XlIhHc>kwO$}p(>AgAcpbnbhZpZyP zgNw$ra&xVX~ZJ(W;GO-QVOHRvf`g01@|(-H30m&{zcrBQHrF;1Slk#@~!0<~?M z@QQmn%JK)l=R1nn(N)LEts(_-RI!>Qj`h&(JKliAwOV{$l@7VK)@0lE=lJEP6G(|l z(Cdq|arFxsI(SEujHrdc%i36MI=hRkVV+>=4pWE1NgZ%JN1Pb9>C!(E-pJj5UYHc$ zIgIZ{ThO&GmUwut!r0Yq_$}ruXl3l7>Dv_PzNN;PEnmTGoRi9MQl#lOH*u0*--(OE zW$69;Qlx*jCq7=1%GicCgVDfuj(e0Cf=@oN&-USWQ16(>kz?rFAIhYaN3iG0_hH5t zGdTa-h%Q{J&n0=og!(EAfT)5B*eqR1Q8AoGm89dgHJ*6FL6UYBND(XTF3v9h`!nFi)NaNoY!cPn zI0J-JrhxozKd2H<0EMrMvD#Li)<50i{2M0v>2{jT1qkSInS+rr7#jiG2eLz-OD-Gw1S z2T9@@embQvr1uop zevaU=xuwXF)&n7nMo4edCObrum^4*FKMo%vb`hzVz-YsoLItwAavtCZF1ENWp)>NW ziNdnKIJ8fSl$*cC&yTg~u9UsBHueE5ch143y_2c`mdp4+b1m!1`q8F^uW%vXS4l78 zCxN1%0*n#S=bf|Q$?0=5T7&6Q|5`9OoCqzAdolRy9OB-$o6P#u51d7Nfm7OzJ+o`! zucS3DnDqp6#`RIz))&hBKjT!%iMrTL=RhEG4fEA?CY7p~N^duZ!Uaw$jp~_8XWq!9 zsV>*CPSb;&G`h;(K70cVS9-Fer#k5V^G)mruO==Hf5IVG_tk-2;sBEs{Fq<9U#GF| z&ZO*`Hf`J>NbMLavM1{h>mKu%@)GiKbFUmtj9X4+eB!X;fjzZ$v?1%K< z4CRL0u+l1zT|ZL+Z*Ag{Oa8Ax@JbiEg?>MSPPk+>FT_Kh0kOh24Acy6Y!qx9T#gZ5WL? zBAQh9vM6?PXF9`N1v9GIc^t2gUxmp(1RT4>Rms!a{Ih(+9pWdPfl0w%VDY{|2=$|w z9Nz<Ci~xDep?>8TIB&{J(SITWl%76AvHk9(=zcq?usR6sw>vOiAQ2T} ztl9Rldr<51h^J&e3E%w{p%&*v2-o0OEg^UsG|yYIrh5gz*X=0IGyDR((}Sq4rYjkj zP$1tA96|j<%hZ`0#O+lxyKF%_KlYvDG9_Oeh|9U{)&Ibc+v_oMKLn6?l=w|9bJ;M`iY!#73-Wk7gNtNwO-M zI}2#3CmYYrz~nWTVB?usIyK0ZUg_>ahmIOtdGG@8zOF}3;9in1v>DQDVsWmo5}JIN z#}34DaBkNK<08!Bse{9i>GhH|`WAzRgLc?m@f7whR|6|ybx8Y~fM>Sxd9{td;Io(% z$({HD3UBu?Dg7&G7x(82nlSTXE5j50%~W&=bIDEHEIKmf z6`!biZ8y=8MNeLjqXI5^u-)}Nb7uAte15jN;n)@{8kAhe9&<`3yO)jNJpBxEHC%zb z{~C@1>Ses2ljac906nV3?+s*c`Va;A03zML1vZ=HumRja{GgMCn|6p&6LuR@C9g?d zzWIW2PdU`kh@aWYG7@pomdeKSyQPWT_*7b6;ZM|Wp2peQhtMIYlo^_~gZz!k!L=K_ zXkSk?-aVuW3%^*gm-Jk~F-(k(|G5p}?t945XHRhO_I=orz7nc3?{L;kdy9MK+B)=1 zmBWn*s-$;z5y;eEWTH2ZbF>;3F=0~n8FskTkJ^v*;+bqkdUmTk4KY-q%LY04>h*NOof3&PsdGrW z*HkXuu-&ln!Kg2!ys)PUomEgJ*^FCLtr`+szF_j1MEdsB2BI6B2=mtqf>Uca8EbwG zl4rzdMlHpW?NW4p`yLz}Il|oArAPJq@`<&oKD8HCByDX0)L5hl4k)@H_t7(an0N^s z1@y@b(Vfu#A0O7~`U24pxsPGW#&v9;mU&~!PA+`^okrF*J1~Ej%)tzoqo_1_CXtZ= zV$hU>GfQgNZzY@HnD|Vxe49QU9df4XH9Tg&g%*7jE`x57Q;49ID{WN1$T6O5fiqpT zvENyaUY?rIUdl8kgVRE>^=&1b64?piNB+S+UxrF?7w=`lC!+D&zS;Cqln^}Ayl!V= zFr7y1)MgvQlpGJ9n?WDS6+(S=Em^TagNpHCn`=#vp@2SR-`6L?A}tqs?Qafq_WC!F z+&v2~etgOpH72m<$DAN#_&8pC_X%$8iGz#ghK%#q>nIo5fCJYAP{Q{QOqx@N+=8Ad z)MmXsjo?_4Efv*7ye$m|Hc3&zc}du}Ux*%lGoMM}4Y62w3zS2ag1zlvL-yOf@T~3- zYC5a{TYj3;v>n~$O|v@`8__c2NG1{sVi01TuPs0%i(N3 z^5>^uh9`#__~A!_^5^m}b@3PG%F$WG)8!%fNc_VSg96|v;Q-ekKVueiQ=n~29}=lX z5NKTwcc+fyw$e8ZPi+QamuN2g-zy!c*|3QEhH28dJC8#3)&$0bYgEHN{`Z3u5vN5} zWe(s@+3-eQSTEDyKZ>e{QZZ?M5bM6V7waF!gMB-L5pUL$*ltOl{YNg*RZ*iU9bX{3 ze+c{Y<(Nd@8$5oP!H;~z?Ac%t&3iwB(^QP;?dw;;FG`=rC+(*yx!XwK$qZa#Z|ZPW z$Chvlw@)HrOXcVkfhL|%KoiWLyAYJuOHlFai^*fpD%en2f?iKz`L6yrJ^7>r0~J1_ z#h@ycJ9-lb95=@6dMRmGt9p&P0jdyIP&1ER9P9b#2g{S}NX}a;ns>wiCZ8~e(Dn03Pw;*Al0hMc@8v_aKMly@l55P6oFbiN z_JvWJw1hY#oVi$ zuj^%KV5Je%uah7uZ)?n$c}>&sm1!08@31eveK`}|f=|?$fBJu4G-r(`962xp`)|g= z@{+B%)Xt6Mg#3k;OLh=c^Bn%W9*k)VPqME@XOT(j))fEVhrBow7@bweRJDIb< z`z$g0Y(87(@(NdNDTlQ`PEqS$3Apo6H*Kms3hhHC#P!H&rn`L!DSrO|7iEe!>Kva; zxXTXm`vMCtG4`B|-C6Qzx5yUDW76pH>{;Z@-+uJGJAn-vrX(S;m@!HUL?v7<>b4VKlTKABP{$li^s4dL8+<>;H5_le0QlaAJ1?;u21dE^cr14u5ds;*l z`+D0AkY z^|R@F33+mRcLqr=i)YSU8sHferL%Vigy<$+OS*u2JRXO)FQg(kf`XYX&`~Y#IA#*X z&;G7pyswf-LLcr`y~Aiu^#Nm3{&w0eM?NRrz`AEaxcr(5(e&=cqA$_R!=D$hyh{!f zUnz>QNt;VqkKPvjvg6gm!E-&KX=>yjvv zAE<$e+nQKiMF$%HkBgIji_vHKF;MvT7%a;agq&Hs@XdBEua?(=)3^@QxGRAs?MZ|B zbC+n9#U=PKi;%tTg}Bt$gKSs)i_ZdYfbT4CI2}HTEP5~(s*DRD=0hMUoj(KM^8^!T z<_=wh)m-$tpTN7@brf0;inAMaWN}xAD`TPmj7hcqL**P4TnNH5_@*)y1ig{qQg!<(b_z!bZQ5rLA-qJ{0(k>rNWbh~k_m?fCZz1L9Z+yTFzKlmr4>a1AuV>WaJ?ML? zM*bR9GE3sS*$vms(1}#R)kiMG?nW&9FgQS7f6S*J0;ZB9wiQh8yjtFv$Z3+q_VO7< zbrO*1MqPZ*z>hEmx=Bok$ga<2lLlnqxcOzWTV9arUs85>ls67BOO;4Ts0aGqaR%BnsJGA$_S9G!l-%5g8XvCU+uD9m z9{a?&&Q!A(vK)lJy(ws@P=>Pj7$9vEewWzG%lqy{exw^K~sA4lGbZ-VLTm$U1dFQay%ATiGlpe^05y`+i^coBbv@xj*_w$@)-^3exQ^*M)B`TU= zLiQRK;d#$KRz9$Vouwx4u*&->{(irLl!$7P;j%-R+0zV?#rC-U>=IJOwVFX1ykbzq zei<=wyMU)lXW{97dqrt#27wc zYT4-pb7}6UXab84ut(>~k(7aEwks~0mTdQ0ckPesc?4X6a1L4a$A6%TdfY~4HO`@*(<7D47VqqN6@HpTI?3p?QQ$?Im zcCj6JsoRp;pitUr@`ZV}`3z|NNyDEN%P{ifTGAwY8kS6!WZl23QD%lV<7!<(zs1W? zi@`NCtFoCLbW$fqkLRI}v;!aTn8&3apQbjt#j zjFHqPJ%$@-dS#pa9Jd;1{U=KI?K(!Qv<+#Egd#Ccs%6){R3;Dmw~)!bER&RV1pT-I z=@28`iBek*(n|B|_+jBire}%@Eq!!^cj&65qq65@%2*iTOY06Y{!)~-K9V6VRQF51GoMQggNzqTLG?dBGsyS-Gtae=o> z+`pRf8(0p@_I%?hfDk$JCXH23EQb1v+lh>L4Hp7;r!x7wj)!J&N5R?Khj4=* zGTP{z-xzim`%~=#ho?M`U2;@B z1vFhhvleP+$(-A5Sf8cma88DA!Mwlq!RTiVy5B#IjSbsKZap}LTkp-Iw~dz*g|!TD zEhjKbKMfqO?xk^@27FFap~*c4jprqUbe0Znj^h(VdkHGXm7w(gJIrDOSsG$o3zuJJ zz-p@!F!}HRlNV}`%o-O4JN8~r2OHT)O!yI~N`ebrnbsY^X%!G6Di{XK%6p1(#20JB> zqWUB)wAeWT5+75*?@m2lo|ekLIdd5cOY@1d{vB-E97=jC&vCqMG^y(iXTA&8aM0%P z4ahK`ryK5IhAMT@lN+XpE2~st>_1bIS$iLLU%L+Nd=Bcn`UGnzwUtq@v&NGBhRiR2 z5%Q9mM*0_zpn&Zo_R>v4mYaSC@yqqF=93(`CcB$y92n(o9&n+_mhJq@!J_o^VubKD zOTd})5`_h=sOi+JVEkw*7)Dsrvg#E$X1|qH9oBQB_hp+fOgSER^+lrjvwIk;G@1Ml Dh2Siw diff --git a/index/faiss_index_data/index.pkl b/index/faiss_index_data/index.pkl index bcc36d558b25b01b6b608a14d525f2585d6de6cd..83b140db150d29d2fdaa432401bb9d22e0b9065c 100644 GIT binary patch delta 43654 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 delta 46488 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 N@Cv+WxprCA{{sz@B8UJ0 diff --git a/loggings/app.log b/loggings/app.log index 17a9c530..b0bdd084 100644 --- a/loggings/app.log +++ b/loggings/app.log @@ -661,3 +661,2150 @@ To avoid injury, hold up the wheel when unscrewing the bolts. 2024-08-15 22:41:56,183 - INFO - Vector store created 2024-08-15 22:41:56,198 - INFO - Saving the vector store 2024-08-15 22:41:56,198 - INFO - Vector store saved +2024-08-16 12:08:47,726 - INFO - Loading the embedding model +2024-08-16 12:08:56,710 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 12:08:57,196 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 12:09:03,664 - INFO - Embedding model loaded +2024-08-16 12:09:03,664 - INFO - Loading data from ./data +2024-08-16 12:09:03,664 - INFO - Start time: 1723806543.6645234 +2024-08-16 12:09:03,664 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 12:09:03,664 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 12:09:03,664 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 12:09:03,664 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 12:09:03,670 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 12:09:03,670 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 12:09:03,670 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 12:09:03,670 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 12:09:03,670 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 12:09:03,670 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:09:03,670 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 12:09:03,670 - INFO - Creating documents from text +2024-08-16 12:09:03,670 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 12:09:03,670 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:09:03,680 - INFO - Creating documents from text +2024-08-16 12:09:03,680 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:09:03,680 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 12:09:03,680 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 12:09:03,680 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:09:03,781 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:09:03,825 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 12:09:04,150 - INFO - Creating documents from text +2024-08-16 12:09:04,170 - INFO - Creating documents from text +2024-08-16 12:09:04,266 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 12:09:04,274 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 12:09:04,780 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 12:09:05,031 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 12:09:05,032 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 12:09:05,046 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 12:09:05,520 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 12:09:15,136 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:09:15,175 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:09:15,315 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:09:15,335 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:09:15,443 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:09:15,451 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:09:15,567 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:09:16,251 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:09:17,082 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 12:09:17,108 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 12:09:17,236 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 12:09:17,275 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 12:09:19,173 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:09:19,625 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:09:28,985 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:09:29,001 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:09:29,939 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:09:29,982 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:09:31,221 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 12:09:31,338 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:09:31,340 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:09:31,417 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:09:31,450 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:09:37,693 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:11,623 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 12:10:11,624 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 12:10:21,818 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 12:10:21,818 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 12:10:22,591 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 12:10:25,320 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:26,213 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 12:10:27,925 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:28,800 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 12:10:30,988 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:31,883 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 12:10:33,780 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:34,678 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 12:10:35,486 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 12:10:36,570 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:37,075 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 12:10:37,400 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 12:10:39,165 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:40,440 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 12:10:42,140 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:42,390 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:43,512 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 12:10:43,853 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 12:10:46,510 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:47,250 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 12:10:49,733 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:50,470 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 12:10:51,149 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:52,420 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 12:10:52,932 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:53,657 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 12:10:55,744 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:56,227 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:56,230 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:10:56,580 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 12:10:58,264 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 12:10:59,550 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:00,121 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 12:11:00,600 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 12:11:00,724 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:01,855 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 12:11:10,483 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:11,130 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:11:17,210 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:18,439 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 12:11:21,370 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:22,491 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 12:11:23,993 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:24,960 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:26,820 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 12:11:27,511 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 12:11:28,620 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:29,756 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 12:11:31,971 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:33,102 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 12:11:35,360 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:36,480 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 12:11:38,750 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 12:11:41,830 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:11:46,589 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 12:11:56,710 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:12:01,462 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 12:12:11,435 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:12:14,135 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 12:12:25,174 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:12:28,120 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 12:12:37,830 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:12:40,520 - INFO - Summarizing document +2024-08-16 12:12:41,820 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:41,846 - INFO - Summarizing document +2024-08-16 12:12:42,309 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:42,309 - INFO - Summarizing document +2024-08-16 12:12:42,750 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:42,750 - INFO - Summarizing document +2024-08-16 12:12:43,170 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:43,185 - INFO - Summarizing document +2024-08-16 12:12:43,584 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:43,592 - INFO - Summarizing document +2024-08-16 12:12:44,018 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:44,020 - INFO - Summarizing document +2024-08-16 12:12:44,472 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:44,480 - INFO - Summarizing document +2024-08-16 12:12:44,830 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:44,839 - INFO - Summarizing document +2024-08-16 12:12:45,200 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:45,200 - INFO - Summarizing document +2024-08-16 12:12:45,824 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:12:45,830 - INFO - Summarizing document +2024-08-16 12:12:46,624 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:13:17,910 - INFO - Loading the embedding model +2024-08-16 12:13:23,170 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 12:13:23,512 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 12:13:28,134 - INFO - Embedding model loaded +2024-08-16 12:13:28,134 - INFO - Loading data from ./data +2024-08-16 12:13:28,134 - INFO - Start time: 1723806808.1349566 +2024-08-16 12:13:28,134 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 12:13:28,134 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 12:13:28,134 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 12:13:28,140 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 12:13:28,140 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 12:13:28,140 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 12:13:28,143 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 12:13:28,144 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 12:13:28,148 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 12:13:28,151 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:13:28,153 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 12:13:28,155 - INFO - Creating documents from text +2024-08-16 12:13:28,155 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 12:13:28,159 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:13:28,160 - INFO - Creating documents from text +2024-08-16 12:13:28,161 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:13:28,164 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 12:13:28,167 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 12:13:28,170 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:13:28,582 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:13:28,598 - INFO - Creating documents from text +2024-08-16 12:13:28,598 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 12:13:28,659 - INFO - Creating documents from text +2024-08-16 12:13:28,844 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 12:13:28,870 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 12:13:28,983 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 12:13:29,509 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 12:13:29,838 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 12:13:29,893 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 12:13:29,971 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 12:13:30,040 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:13:33,343 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:13:33,649 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:13:33,649 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 12:13:34,115 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 12:13:34,115 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 12:13:34,728 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:13:34,754 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 12:13:34,769 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:13:34,769 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 12:13:34,824 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 12:13:34,839 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 12:13:35,744 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:13:38,081 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:13:45,763 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:13:45,766 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 12:13:47,989 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:13:48,031 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 12:13:50,821 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:13:50,836 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 12:13:51,544 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 12:13:51,949 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:13:52,003 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 12:13:57,379 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:14:36,687 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 12:14:36,687 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 12:14:47,633 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 12:14:47,633 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 12:14:48,424 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 12:14:54,019 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:14:54,924 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 12:15:00,019 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:00,942 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 12:15:00,988 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 12:15:02,990 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 12:15:03,259 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:03,999 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 12:15:05,854 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:06,359 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:07,459 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 12:15:07,594 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 12:15:09,814 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:10,039 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:10,749 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 12:15:11,622 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 12:15:13,942 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:14,689 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 12:15:15,893 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:17,179 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 12:15:17,839 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:18,589 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 12:15:20,689 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:21,434 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:21,783 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:22,179 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 12:15:23,039 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 12:15:24,829 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:25,089 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 12:15:25,912 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:26,489 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 12:15:26,900 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 12:15:28,819 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:29,985 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 12:15:32,129 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:32,409 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:33,465 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 12:15:33,749 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 12:15:35,899 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:36,569 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 12:15:37,219 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:37,892 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:15:39,472 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:40,619 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 12:15:43,329 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:44,338 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:44,616 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 12:15:47,168 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 12:15:48,899 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:50,069 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 12:15:53,509 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:54,619 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 12:15:56,720 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:15:57,864 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 12:15:59,469 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:00,649 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 12:16:03,119 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:04,239 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 12:16:04,379 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:07,704 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:09,049 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 12:16:09,519 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 12:16:15,382 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:16,529 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 12:16:19,369 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:19,379 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:22,919 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 12:16:24,419 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 12:16:24,799 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:25,951 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 12:16:28,249 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:29,419 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 12:16:31,709 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:31,729 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:35,599 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 12:16:36,182 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:37,659 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 12:16:38,012 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 12:16:50,109 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:16:54,609 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 12:17:08,824 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 12:17:11,507 - INFO - Summarizing document +2024-08-16 12:17:12,819 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:12,834 - INFO - Summarizing document +2024-08-16 12:17:13,289 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:13,289 - INFO - Summarizing document +2024-08-16 12:17:13,789 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:13,789 - INFO - Summarizing document +2024-08-16 12:17:14,259 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:14,259 - INFO - Summarizing document +2024-08-16 12:17:14,693 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:14,709 - INFO - Summarizing document +2024-08-16 12:17:15,109 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:15,111 - INFO - Summarizing document +2024-08-16 12:17:15,588 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:15,591 - INFO - Summarizing document +2024-08-16 12:17:16,040 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:16,040 - INFO - Summarizing document +2024-08-16 12:17:16,463 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:16,466 - INFO - Summarizing document +2024-08-16 12:17:16,919 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:16,929 - INFO - Summarizing document +2024-08-16 12:17:17,389 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:17,399 - INFO - Summarizing document +2024-08-16 12:17:17,754 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:17,754 - INFO - Summarizing document +2024-08-16 12:17:18,183 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:18,183 - INFO - Summarizing document +2024-08-16 12:17:18,739 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:18,739 - INFO - Summarizing document +2024-08-16 12:17:19,159 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:19,163 - INFO - Summarizing document +2024-08-16 12:17:19,529 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:19,539 - INFO - Summarizing document +2024-08-16 12:17:19,919 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:19,928 - INFO - Summarizing document +2024-08-16 12:17:20,269 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:20,279 - INFO - Summarizing document +2024-08-16 12:17:20,651 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:20,659 - INFO - Summarizing document +2024-08-16 12:17:21,049 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:21,055 - INFO - Summarizing document +2024-08-16 12:17:21,402 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:21,420 - INFO - Summarizing document +2024-08-16 12:17:21,779 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:21,785 - INFO - Summarizing document +2024-08-16 12:17:22,154 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:22,159 - INFO - Summarizing document +2024-08-16 12:17:22,489 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:22,501 - INFO - Summarizing document +2024-08-16 12:17:22,851 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:22,859 - INFO - Summarizing document +2024-08-16 12:17:23,236 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:23,236 - INFO - Summarizing document +2024-08-16 12:17:23,674 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:23,679 - INFO - Summarizing document +2024-08-16 12:17:24,099 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:24,099 - INFO - Summarizing document +2024-08-16 12:17:24,467 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:24,469 - INFO - Summarizing document +2024-08-16 12:17:24,868 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 12:17:25,079 - INFO - Data loaded +2024-08-16 12:17:25,079 - INFO - Creating vector store +2024-08-16 12:17:25,079 - INFO - Creating vector store +2024-08-16 12:17:26,530 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 12:17:36,660 - INFO - Vector store created +2024-08-16 12:17:36,660 - INFO - Saving the vector store +2024-08-16 12:17:36,660 - INFO - Saving embeddings +2024-08-16 12:17:36,668 - INFO - Vector store saved +2024-08-16 12:17:36,668 - INFO - Vector store created +2024-08-16 12:17:36,668 - INFO - Saving the vector store +2024-08-16 12:17:36,676 - INFO - Saving embeddings +2024-08-16 12:17:36,678 - INFO - Vector store saved +2024-08-16 12:17:36,685 - INFO - End time: 1723807056.68544 +2024-08-16 12:17:36,685 - INFO - Time taken: 248.5504834651947 +2024-08-16 12:17:36,686 - INFO - Creating thumbnails +2024-08-16 12:17:36,686 - INFO - Creating thumbnail for ./data\audio-2.mp3 +2024-08-16 12:17:36,700 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 12:17:36,712 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-service.pdf +2024-08-16 12:17:36,729 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 12:17:36,749 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 12:17:36,768 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 12:17:36,786 - INFO - Creating thumbnail for ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 12:17:36,802 - INFO - Creating thumbnail for ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 12:17:36,823 - INFO - Creating thumbnail for ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 12:17:36,849 - INFO - Creating thumbnail for ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 12:17:36,869 - INFO - Creating thumbnail for ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 12:17:36,888 - INFO - Creating thumbnail for ./data\test_rec.m4a +2024-08-16 12:17:36,901 - INFO - Thumbnails created +2024-08-16 13:37:31,899 - INFO - Loading the embedding model +2024-08-16 13:37:38,136 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 13:37:38,529 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 13:37:44,590 - INFO - Embedding model loaded +2024-08-16 13:37:44,591 - INFO - Loading data from ./data +2024-08-16 13:37:44,591 - INFO - Start time: 1723811864.5916352 +2024-08-16 13:37:44,592 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 13:37:44,593 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 13:37:44,593 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 13:37:44,594 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 13:37:44,595 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 13:37:44,596 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 13:37:44,596 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 13:37:44,598 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 13:37:44,599 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 13:37:44,600 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:37:44,602 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 13:37:44,604 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 13:37:44,608 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:37:44,612 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:37:44,615 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 13:37:44,618 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 13:37:44,623 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:37:44,628 - INFO - Creating documents from text +2024-08-16 13:37:44,631 - INFO - Creating documents from text +2024-08-16 13:37:45,147 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:37:45,148 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 13:37:45,241 - INFO - Creating documents from text +2024-08-16 13:37:45,266 - INFO - Creating documents from text +2024-08-16 13:37:45,462 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 13:37:45,471 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 13:37:46,028 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 13:37:46,121 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 13:37:46,123 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 13:37:46,136 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 13:37:46,325 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 13:38:04,193 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 13:38:04,194 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 13:38:06,270 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:38:06,286 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:38:06,313 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:38:06,316 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:38:06,441 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:38:06,991 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:38:07,235 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 13:38:07,294 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 13:38:07,378 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:38:07,503 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:38:07,601 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:38:07,601 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:38:20,513 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:38:20,543 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:38:21,764 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:38:21,779 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:38:22,823 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:38:22,880 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:38:22,989 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:38:23,006 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:38:23,838 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 13:38:28,644 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:03,974 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 13:39:03,975 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 13:39:16,870 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 13:39:16,870 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 13:39:17,206 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 13:39:22,581 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:23,697 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 13:39:28,018 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:29,026 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 13:39:32,039 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:32,618 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 13:39:33,146 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 13:39:34,986 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 13:39:40,079 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:40,894 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 13:39:41,699 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:43,156 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 13:39:45,661 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:45,986 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:47,210 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 13:39:49,370 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 13:39:49,911 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:49,939 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:51,133 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 13:39:51,848 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 13:39:54,646 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:55,390 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 13:39:55,677 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:57,067 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 13:39:58,763 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:39:59,545 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 13:39:59,878 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:02,423 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 13:40:03,016 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:04,309 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 13:40:05,091 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:06,495 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 13:40:07,016 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:07,835 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 13:40:09,026 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:10,355 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:10,464 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 13:40:10,915 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:11,410 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 13:40:12,386 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:12,457 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:15,322 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:40:16,314 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 13:40:17,099 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 13:40:20,062 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:21,375 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 13:40:24,288 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:25,624 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 13:40:28,234 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:29,565 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 13:40:30,408 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:32,421 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:34,210 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 13:40:34,775 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 13:40:38,361 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:39,680 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 13:40:42,330 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:43,636 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 13:40:45,341 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:45,583 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:47,629 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 13:40:49,277 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:49,344 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 13:40:50,803 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 13:40:54,675 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:54,864 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:56,897 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 13:40:58,156 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:40:58,585 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 13:41:01,364 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 13:41:04,139 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:04,843 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:06,889 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 13:41:08,101 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 13:41:08,488 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:09,926 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 13:41:11,223 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:12,367 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:12,587 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 13:41:13,220 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:41:15,296 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:44:37,335 - INFO - Loading the embedding model +2024-08-16 13:44:45,924 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 13:44:46,878 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 13:44:54,566 - INFO - Embedding model loaded +2024-08-16 13:44:54,567 - INFO - Loading data from ./data +2024-08-16 13:44:54,567 - INFO - Start time: 1723812294.5679488 +2024-08-16 13:44:54,569 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 13:44:54,569 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 13:44:54,571 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 13:44:54,573 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 13:44:54,574 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 13:44:54,576 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 13:44:54,579 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 13:44:54,580 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 13:44:54,581 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 13:44:54,583 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:44:54,585 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 13:44:54,587 - INFO - Creating documents from text +2024-08-16 13:44:54,589 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 13:44:54,593 - INFO - Creating documents from text +2024-08-16 13:44:54,595 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:44:54,601 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:44:54,610 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 13:44:54,849 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 13:44:54,849 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:44:54,897 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:44:54,897 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 13:44:55,054 - INFO - Creating documents from text +2024-08-16 13:44:57,738 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 13:44:58,070 - INFO - Creating documents from text +2024-08-16 13:44:58,280 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:44:58,282 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:44:58,293 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 13:44:58,389 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:44:58,391 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:44:58,468 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 13:44:59,245 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 13:45:00,565 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 13:45:00,594 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 13:45:00,973 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 13:45:01,565 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:45:01,935 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:45:01,952 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:45:02,665 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:45:02,922 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 13:45:02,976 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 13:45:03,021 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:45:03,093 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:45:11,654 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 13:45:11,674 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 13:45:21,590 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:45:21,612 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:45:21,758 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:45:21,795 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:45:21,805 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:45:21,825 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:45:23,386 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 13:45:27,694 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:45:27,767 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:45:28,960 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:47:24,126 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 13:47:31,144 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:47:34,640 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 13:47:40,576 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:47:44,122 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 13:47:49,204 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:47:52,601 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 13:47:57,525 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:48:05,097 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 13:48:12,372 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:48:15,424 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 13:48:20,521 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:48:24,549 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 13:48:28,953 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 13:58:40,030 - INFO - Loading the embedding model +2024-08-16 13:58:51,031 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 13:58:51,877 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 13:59:00,570 - INFO - Embedding model loaded +2024-08-16 13:59:00,571 - INFO - Loading data from ./data +2024-08-16 13:59:00,571 - INFO - Start time: 1723813140.5717025 +2024-08-16 13:59:00,574 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 13:59:00,576 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 13:59:00,577 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 13:59:00,580 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 13:59:00,582 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 13:59:00,582 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 13:59:00,584 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 13:59:00,584 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 13:59:00,587 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 13:59:00,589 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:59:00,590 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 13:59:00,593 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 13:59:00,596 - INFO - Creating documents from text +2024-08-16 13:59:00,598 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:59:00,599 - INFO - Creating documents from text +2024-08-16 13:59:00,600 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 13:59:00,602 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 13:59:00,605 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 13:59:00,612 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:59:00,806 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:59:00,877 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 13:59:00,886 - INFO - Creating documents from text +2024-08-16 13:59:01,292 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 13:59:01,408 - INFO - Creating documents from text +2024-08-16 13:59:01,612 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 13:59:03,098 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 13:59:03,114 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 13:59:03,160 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 13:59:03,662 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 13:59:03,665 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 13:59:05,692 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:59:05,707 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 13:59:05,710 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 13:59:05,739 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:59:05,765 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 13:59:05,812 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 13:59:05,981 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:59:08,978 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:59:10,204 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:59:10,219 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 13:59:10,618 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 13:59:10,680 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 13:59:11,766 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:59:12,463 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:59:24,857 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:59:24,901 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 13:59:27,294 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:59:27,309 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 13:59:27,945 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:59:27,976 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 13:59:28,118 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 13:59:28,370 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:59:28,399 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 13:59:33,538 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:00:27,120 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:00:27,121 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:00:43,314 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:00:43,316 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:00:43,726 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:00:47,338 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:00:51,166 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:00:52,691 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:00:54,245 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:00:56,062 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:00:57,167 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:00:58,418 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:00:59,830 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 14:01:01,281 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:03,177 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 14:01:04,718 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 14:01:04,992 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:05,888 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 14:01:07,234 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:01:07,868 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:08,687 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 14:01:09,566 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:10,379 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 14:01:11,464 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:12,144 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:12,280 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 14:01:13,435 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:13,707 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:01:14,422 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 14:01:15,132 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:16,559 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:01:17,619 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:18,300 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:18,447 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 14:01:19,036 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:20,032 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:01:20,256 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:01:20,767 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:21,406 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:24,295 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 14:01:25,527 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:27,824 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 14:01:29,327 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 14:01:36,320 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:38,003 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:41,441 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 14:01:42,356 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 14:01:46,124 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:47,613 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 14:01:52,353 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:54,182 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 14:01:54,592 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:57,407 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:01:58,062 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 14:01:59,189 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 14:02:01,984 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:03,503 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 14:02:07,264 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:08,778 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:08,863 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 14:02:11,974 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:12,055 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 14:02:13,418 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 14:02:18,506 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:20,086 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 14:02:23,168 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:24,871 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:28,925 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 14:02:29,880 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 14:02:31,358 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:32,865 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 14:02:34,751 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:36,796 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 14:02:40,048 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:41,331 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 14:02:44,605 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:45,946 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 14:02:48,444 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:49,658 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 14:02:51,420 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:51,562 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:53,375 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 14:02:53,973 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:02:57,847 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 14:02:58,192 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:03:04,294 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:03:07,417 - INFO - Summarizing document +2024-08-16 14:03:08,420 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:08,437 - INFO - Summarizing document +2024-08-16 14:03:08,892 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:08,894 - INFO - Summarizing document +2024-08-16 14:03:09,308 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:09,324 - INFO - Summarizing document +2024-08-16 14:03:09,808 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:09,819 - INFO - Summarizing document +2024-08-16 14:03:10,257 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:10,258 - INFO - Summarizing document +2024-08-16 14:03:11,034 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:11,038 - INFO - Summarizing document +2024-08-16 14:03:11,495 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:11,503 - INFO - Summarizing document +2024-08-16 14:03:11,863 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:11,867 - INFO - Summarizing document +2024-08-16 14:03:12,268 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:12,277 - INFO - Summarizing document +2024-08-16 14:03:12,710 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:12,710 - INFO - Summarizing document +2024-08-16 14:03:13,325 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:13,332 - INFO - Summarizing document +2024-08-16 14:03:13,853 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:13,855 - INFO - Summarizing document +2024-08-16 14:03:14,220 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:14,220 - INFO - Summarizing document +2024-08-16 14:03:15,515 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:15,515 - INFO - Summarizing document +2024-08-16 14:03:16,017 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:16,017 - INFO - Summarizing document +2024-08-16 14:03:16,414 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:16,414 - INFO - Summarizing document +2024-08-16 14:03:16,829 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:16,829 - INFO - Summarizing document +2024-08-16 14:03:17,204 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:17,204 - INFO - Summarizing document +2024-08-16 14:03:17,582 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:17,582 - INFO - Summarizing document +2024-08-16 14:03:17,952 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:17,955 - INFO - Summarizing document +2024-08-16 14:03:18,609 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:18,609 - INFO - Summarizing document +2024-08-16 14:03:18,970 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:18,978 - INFO - Summarizing document +2024-08-16 14:03:19,347 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:19,347 - INFO - Summarizing document +2024-08-16 14:03:19,723 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:19,723 - INFO - Summarizing document +2024-08-16 14:03:20,107 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:20,107 - INFO - Summarizing document +2024-08-16 14:03:20,502 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:20,502 - INFO - Summarizing document +2024-08-16 14:03:20,897 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:20,916 - INFO - Summarizing document +2024-08-16 14:03:21,378 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:21,382 - INFO - Summarizing document +2024-08-16 14:03:21,810 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:21,815 - INFO - Summarizing document +2024-08-16 14:03:22,224 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:03:22,719 - INFO - Data loaded +2024-08-16 14:03:22,719 - INFO - Creating vector store +2024-08-16 14:03:22,719 - INFO - Creating vector store +2024-08-16 14:03:24,709 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 14:03:35,294 - INFO - Vector store created +2024-08-16 14:03:35,294 - INFO - Saving the vector store +2024-08-16 14:03:35,294 - INFO - Saving embeddings +2024-08-16 14:03:35,304 - INFO - Vector store saved +2024-08-16 14:03:35,304 - INFO - Vector store created +2024-08-16 14:03:35,304 - INFO - Saving the vector store +2024-08-16 14:03:35,315 - INFO - Saving embeddings +2024-08-16 14:03:35,323 - INFO - Vector store saved +2024-08-16 14:03:35,323 - INFO - End time: 1723813415.323226 +2024-08-16 14:03:35,323 - INFO - Time taken: 274.75152349472046 +2024-08-16 14:03:35,323 - INFO - Creating thumbnails +2024-08-16 14:03:35,323 - INFO - Creating thumbnail for ./data\audio-2.mp3 +2024-08-16 14:03:35,344 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 14:03:35,361 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-service.pdf +2024-08-16 14:03:35,381 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 14:03:35,397 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 14:03:35,416 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 14:03:35,442 - INFO - Creating thumbnail for ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 14:03:35,464 - INFO - Creating thumbnail for ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 14:03:35,480 - INFO - Creating thumbnail for ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 14:03:35,509 - INFO - Creating thumbnail for ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 14:03:35,538 - INFO - Creating thumbnail for ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 14:03:35,561 - INFO - Creating thumbnail for ./data\test_rec.m4a +2024-08-16 14:03:35,581 - INFO - Thumbnails created +2024-08-16 14:06:27,162 - INFO - Loading the embedding model +2024-08-16 14:06:31,936 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\sentence_transformers\cross_encoder\CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console) + from tqdm.autonotebook import tqdm, trange + +2024-08-16 14:06:37,730 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 14:06:38,428 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 14:06:44,361 - INFO - Embedding model loaded +2024-08-16 14:06:46,331 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:06:46,495 - INFO - Searching for How to change the engine oil of a toyota corrolla. +2024-08-16 14:06:46,498 - INFO - Loading embedded data +2024-08-16 14:06:47,373 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 14:06:47,486 - INFO - Search completed +2024-08-16 14:31:17,426 - INFO - Loading the embedding model +2024-08-16 14:31:28,632 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 14:31:29,189 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 14:31:35,407 - INFO - Embedding model loaded +2024-08-16 14:31:35,407 - INFO - Loading data from ./data +2024-08-16 14:31:35,407 - INFO - Start time: 1723815095.4074576 +2024-08-16 14:31:35,407 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 14:31:35,407 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 14:31:35,407 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 14:31:35,407 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 14:31:35,423 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 14:31:35,423 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 14:31:35,423 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 14:31:35,423 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 14:31:35,423 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 14:31:35,423 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:31:35,423 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 14:31:35,423 - INFO - Creating documents from text +2024-08-16 14:31:35,423 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 14:31:35,423 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:31:35,438 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:31:35,438 - INFO - Creating documents from text +2024-08-16 14:31:35,443 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 14:31:35,448 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 14:31:35,448 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:31:35,695 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:31:35,695 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 14:31:36,170 - INFO - Creating documents from text +2024-08-16 14:31:36,234 - INFO - Creating documents from text +2024-08-16 14:31:36,410 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 14:31:36,448 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 14:31:36,452 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:31:36,462 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:31:36,632 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 14:31:37,222 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 14:31:37,626 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 14:31:37,736 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 14:31:37,759 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 14:31:37,889 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:31:40,642 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:31:40,642 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 14:31:40,710 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 14:31:41,082 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:31:41,127 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 14:31:41,127 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 14:31:42,655 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:31:42,751 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:31:42,772 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:31:42,952 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:31:42,964 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:31:56,199 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:31:56,199 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:31:57,661 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 14:31:58,508 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:31:58,524 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:32:00,397 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:32:00,405 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:32:00,818 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:32:00,850 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:32:01,622 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:33:23,567 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:33:23,567 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:33:36,061 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:33:36,061 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:33:38,284 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:33:42,127 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:33:43,523 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:33:48,764 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:33:50,115 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:33:54,511 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:33:55,814 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:33:57,949 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:33:59,164 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 14:33:59,675 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 14:34:00,240 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:34:00,839 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:01,886 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 14:34:04,476 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:05,526 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 14:34:07,354 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:07,439 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:08,067 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:09,038 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 14:34:10,953 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:10,984 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:34:12,412 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 14:34:12,522 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:13,631 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 14:34:14,916 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:34:15,293 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:16,532 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 14:34:18,088 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:19,985 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:34:20,393 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:20,926 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:21,036 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:21,648 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 14:34:23,264 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:23,860 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 14:34:24,990 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 14:34:25,446 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:25,744 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:26,936 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 14:34:27,693 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:34:28,333 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 14:34:30,749 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:32,615 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 14:34:34,387 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:36,680 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:38,689 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 14:34:39,300 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 14:34:42,294 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:44,082 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 14:34:45,636 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 14:34:47,236 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:34:50,954 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 14:34:56,771 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:35:00,456 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 14:35:06,199 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:35:09,916 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 14:35:14,057 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:35:18,096 - INFO - Summarizing document +2024-08-16 14:35:19,549 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:19,565 - INFO - Summarizing document +2024-08-16 14:35:20,036 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:20,052 - INFO - Summarizing document +2024-08-16 14:35:20,486 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:20,486 - INFO - Summarizing document +2024-08-16 14:35:21,166 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:21,181 - INFO - Summarizing document +2024-08-16 14:35:21,621 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:21,621 - INFO - Summarizing document +2024-08-16 14:35:22,092 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:22,092 - INFO - Summarizing document +2024-08-16 14:35:22,609 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:22,609 - INFO - Summarizing document +2024-08-16 14:35:23,001 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:23,001 - INFO - Summarizing document +2024-08-16 14:35:23,440 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:23,456 - INFO - Summarizing document +2024-08-16 14:35:24,037 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:35:24,037 - INFO - Summarizing document +2024-08-16 14:35:24,522 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:39:53,468 - INFO - Loading the embedding model +2024-08-16 14:39:59,822 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 14:40:00,330 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 14:40:06,520 - INFO - Embedding model loaded +2024-08-16 14:40:06,520 - INFO - Loading data from ./data +2024-08-16 14:40:06,520 - INFO - Start time: 1723815606.5207324 +2024-08-16 14:40:06,536 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 14:40:06,536 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 14:40:06,536 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 14:40:06,536 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 14:40:06,536 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 14:40:06,536 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 14:40:06,536 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 14:40:06,551 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 14:40:06,551 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 14:40:06,551 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:40:06,551 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 14:40:06,551 - INFO - Creating documents from text +2024-08-16 14:40:06,567 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 14:40:06,569 - INFO - Creating documents from text +2024-08-16 14:40:06,570 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:40:06,572 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:40:06,596 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 14:40:06,604 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 14:40:06,608 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:40:07,071 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:40:07,103 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 14:40:07,177 - INFO - Creating documents from text +2024-08-16 14:40:07,213 - INFO - Creating documents from text +2024-08-16 14:40:07,421 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:40:07,430 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:40:07,590 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 14:40:07,619 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 14:40:07,817 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 14:40:08,331 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 14:40:08,457 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 14:40:08,556 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 14:40:08,779 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 14:40:08,840 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:40:08,877 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 14:40:08,878 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 14:40:09,037 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:40:09,042 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:40:09,799 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:40:09,805 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:40:10,191 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:40:10,267 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 14:40:10,269 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 14:40:12,034 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:40:13,837 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:40:25,310 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:40:25,377 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:40:26,244 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 14:40:26,470 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:40:26,493 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:40:28,104 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:40:28,196 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:40:28,785 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:40:28,794 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:40:32,706 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:15,834 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:41:15,834 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:41:27,683 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:41:27,683 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:41:28,786 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:41:31,480 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:32,474 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:41:33,943 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:34,976 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:41:37,666 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:40,742 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:41:44,378 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:44,516 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 14:41:45,328 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 14:41:46,288 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:41:49,242 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:50,930 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 14:41:53,573 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:53,627 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:41:54,712 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 14:41:55,287 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 14:41:59,453 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:00,194 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:00,989 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:01,236 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 14:42:01,721 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 14:42:02,799 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 14:42:04,196 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:04,686 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 14:42:05,327 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 14:42:06,778 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:07,639 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 14:42:09,375 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:10,034 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 14:42:11,546 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:11,546 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:12,556 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 14:42:13,795 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:14,870 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 14:42:15,106 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 14:42:15,652 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:16,342 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:42:17,562 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 14:42:17,562 - INFO - Retrying request to /openai/v1/audio/translations in 0.993986 seconds +2024-08-16 14:42:26,757 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:31,521 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 14:42:39,587 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:42,080 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 14:42:51,703 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:42:54,229 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 14:43:03,844 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:43:08,138 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 14:43:13,782 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:43:18,915 - INFO - Summarizing document +2024-08-16 14:43:20,194 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:20,194 - INFO - Summarizing document +2024-08-16 14:43:20,645 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:20,645 - INFO - Summarizing document +2024-08-16 14:43:21,079 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:21,094 - INFO - Summarizing document +2024-08-16 14:43:21,544 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:21,547 - INFO - Summarizing document +2024-08-16 14:43:21,979 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:21,979 - INFO - Summarizing document +2024-08-16 14:43:22,397 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:22,397 - INFO - Summarizing document +2024-08-16 14:43:23,062 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:23,062 - INFO - Summarizing document +2024-08-16 14:43:23,434 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:23,434 - INFO - Summarizing document +2024-08-16 14:43:23,852 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:23,852 - INFO - Summarizing document +2024-08-16 14:43:24,344 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:43:24,344 - INFO - Summarizing document +2024-08-16 14:43:25,155 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 14:46:01,526 - INFO - Loading the embedding model +2024-08-16 14:46:07,240 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 14:46:07,610 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 14:46:13,455 - INFO - Embedding model loaded +2024-08-16 14:46:13,455 - INFO - Loading data from ./data +2024-08-16 14:46:13,455 - INFO - Start time: 1723815973.4550076 +2024-08-16 14:46:13,455 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 14:46:13,455 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 14:46:13,455 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 14:46:13,455 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 14:46:13,455 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:46:13,455 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 14:46:13,470 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 14:46:13,470 - INFO - Creating documents from text +2024-08-16 14:46:13,564 - INFO - Creating documents from text +2024-08-16 14:46:13,564 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 14:46:13,572 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 14:46:13,573 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:46:13,579 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 14:46:13,978 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 14:46:13,978 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 14:46:14,025 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:46:14,025 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:46:14,649 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 14:46:14,756 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 14:46:14,756 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 14:46:14,941 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 14:46:14,978 - INFO - Creating documents from text +2024-08-16 14:46:14,987 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 14:46:15,016 - INFO - Creating documents from text +2024-08-16 14:46:15,059 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:46:15,059 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 14:46:15,401 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 14:46:15,434 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 14:46:15,521 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 14:46:16,191 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:46:16,194 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 14:46:17,374 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 14:46:18,585 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:46:18,591 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 14:46:19,664 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:46:21,491 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:46:23,680 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 14:46:23,680 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 14:46:26,052 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:46:27,108 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:46:30,367 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 14:46:30,376 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 14:46:31,005 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:46:36,676 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:46:36,676 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 14:46:37,577 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:46:37,607 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 14:46:39,507 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 14:46:42,024 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:46:42,042 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 14:46:42,691 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:46:42,691 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 14:46:43,733 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:47:44,763 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 14:48:01,604 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:48:04,603 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 14:48:16,326 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:48:19,791 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 14:48:28,896 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:48:32,607 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 14:48:44,805 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:48:47,614 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 14:48:57,933 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:49:01,015 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 14:49:07,692 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 14:49:10,577 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 14:49:18,900 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:01:30,013 - INFO - Loading the embedding model +2024-08-16 15:01:35,430 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:01:35,750 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:01:41,842 - INFO - Embedding model loaded +2024-08-16 15:01:41,842 - INFO - Loading data from ./data +2024-08-16 15:01:41,842 - INFO - Start time: 1723816901.8423932 +2024-08-16 15:01:41,842 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 15:01:41,842 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:01:41,842 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:01:41,850 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 15:01:41,850 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:01:41,850 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:01:41,850 - INFO - Creating documents from text +2024-08-16 15:01:41,850 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:01:41,850 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:01:41,850 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:01:41,850 - INFO - Creating documents from text +2024-08-16 15:01:41,850 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:01:41,863 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:01:41,867 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:01:42,260 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:01:42,292 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 15:01:42,294 - INFO - Creating documents from text +2024-08-16 15:01:42,355 - INFO - Creating documents from text +2024-08-16 15:01:42,730 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 15:01:42,770 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 15:01:43,429 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 15:01:43,474 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 15:01:43,581 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 15:01:43,809 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 15:01:43,830 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 15:01:43,912 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:01:43,925 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:01:44,040 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 15:01:44,041 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 15:01:44,306 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:01:44,306 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:01:44,884 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:01:45,134 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:01:45,134 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:01:45,885 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:01:46,260 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 15:01:46,276 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 15:01:49,276 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:01:50,160 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:02:01,427 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 15:02:03,525 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:02:03,526 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:02:03,527 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:02:03,565 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:02:03,957 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:02:03,962 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:02:04,464 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:02:04,491 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:02:06,263 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:02:54,816 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:02:54,816 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:03:05,713 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:03:05,714 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:03:06,639 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:03:09,971 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 15:03:09,971 - INFO - Retrying request to /openai/v1/audio/translations in 0.974181 seconds +2024-08-16 15:03:12,292 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:13,183 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:03:14,625 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:15,537 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:03:17,280 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:18,171 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:03:19,633 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 15:03:19,761 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:20,624 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:03:21,920 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:03:22,188 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:22,972 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:03:24,837 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:25,590 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:03:26,577 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:27,437 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:28,071 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:03:28,495 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 15:03:29,353 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:29,995 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:30,263 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:31,015 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:03:31,329 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 15:03:32,882 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:33,460 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:34,058 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 15:03:34,984 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 15:03:35,224 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:03:40,252 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:40,631 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:41,066 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 15:03:41,170 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:42,651 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:43,027 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:03:43,921 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 15:03:44,455 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:44,614 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 15:03:44,666 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:46,043 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:03:46,353 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:03:48,496 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:49,698 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:03:51,056 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:51,180 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:53,111 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 15:03:54,678 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 15:03:54,845 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:03:56,089 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 15:04:00,215 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:01,124 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:01,452 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 15:04:02,821 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:04,291 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 15:04:04,635 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 15:04:10,393 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:10,610 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:12,382 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 15:04:13,654 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 15:04:13,701 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:14,923 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 15:04:16,475 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:17,620 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 15:04:19,346 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:19,415 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:21,211 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 15:04:22,796 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 15:04:22,796 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:23,971 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 15:04:27,594 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:27,688 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:29,274 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 15:04:30,619 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:32,171 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 15:04:33,458 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:34,637 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 15:04:36,301 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:37,457 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 15:04:38,963 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:40,108 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 15:04:40,743 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:04:42,084 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:04:42,487 - INFO - Summarizing document +2024-08-16 15:04:43,831 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:44,358 - INFO - Summarizing document +2024-08-16 15:04:44,907 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:45,413 - INFO - Summarizing document +2024-08-16 15:04:45,893 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:46,405 - INFO - Summarizing document +2024-08-16 15:04:46,936 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:47,449 - INFO - Summarizing document +2024-08-16 15:04:47,887 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:48,410 - INFO - Summarizing document +2024-08-16 15:04:48,902 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:49,424 - INFO - Summarizing document +2024-08-16 15:04:49,956 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:50,479 - INFO - Summarizing document +2024-08-16 15:04:50,864 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:51,383 - INFO - Summarizing document +2024-08-16 15:04:51,768 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:52,283 - INFO - Summarizing document +2024-08-16 15:04:52,794 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:53,309 - INFO - Summarizing document +2024-08-16 15:04:53,797 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:54,315 - INFO - Summarizing document +2024-08-16 15:04:54,738 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:55,266 - INFO - Summarizing document +2024-08-16 15:04:55,899 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:56,413 - INFO - Summarizing document +2024-08-16 15:04:56,950 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:57,475 - INFO - Summarizing document +2024-08-16 15:04:57,973 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:58,476 - INFO - Summarizing document +2024-08-16 15:04:58,923 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:04:59,434 - INFO - Summarizing document +2024-08-16 15:04:59,876 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:00,390 - INFO - Summarizing document +2024-08-16 15:05:00,786 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:01,295 - INFO - Summarizing document +2024-08-16 15:05:01,886 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:02,393 - INFO - Summarizing document +2024-08-16 15:05:02,791 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:03,305 - INFO - Summarizing document +2024-08-16 15:05:03,696 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:04,211 - INFO - Summarizing document +2024-08-16 15:05:04,737 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:05,256 - INFO - Summarizing document +2024-08-16 15:05:05,677 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:06,182 - INFO - Summarizing document +2024-08-16 15:05:06,634 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:07,140 - INFO - Summarizing document +2024-08-16 15:05:07,726 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:08,247 - INFO - Summarizing document +2024-08-16 15:05:08,643 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:09,155 - INFO - Summarizing document +2024-08-16 15:05:09,753 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:10,267 - INFO - Summarizing document +2024-08-16 15:05:10,753 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:11,267 - INFO - Summarizing document +2024-08-16 15:05:11,713 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:12,221 - INFO - Summarizing document +2024-08-16 15:05:12,680 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:05:13,773 - INFO - Data loaded +2024-08-16 15:05:13,773 - INFO - Creating vector store +2024-08-16 15:05:13,774 - INFO - Creating vector store +2024-08-16 15:05:15,096 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 15:05:25,337 - INFO - Vector store created +2024-08-16 15:05:25,338 - INFO - Saving the vector store +2024-08-16 15:05:25,338 - INFO - Saving embeddings +2024-08-16 15:05:25,352 - INFO - Vector store saved +2024-08-16 15:05:25,353 - INFO - Vector store created +2024-08-16 15:05:25,353 - INFO - Saving the vector store +2024-08-16 15:05:25,353 - INFO - Saving embeddings +2024-08-16 15:05:25,365 - INFO - Vector store saved +2024-08-16 15:05:25,365 - INFO - End time: 1723817125.3650007 +2024-08-16 15:05:25,366 - INFO - Time taken: 223.52260756492615 +2024-08-16 15:05:25,367 - INFO - Creating thumbnails +2024-08-16 15:05:25,368 - INFO - Creating thumbnail for ./data\audio-2.mp3 +2024-08-16 15:05:25,393 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:05:25,418 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:05:25,444 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:05:25,464 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:05:25,482 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:05:25,507 - INFO - Creating thumbnail for ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:05:25,536 - INFO - Creating thumbnail for ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:05:25,577 - INFO - Creating thumbnail for ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:05:25,602 - INFO - Creating thumbnail for ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:05:25,623 - INFO - Creating thumbnail for ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:05:25,665 - INFO - Creating thumbnail for ./data\test_rec.m4a +2024-08-16 15:05:25,692 - INFO - Thumbnails created +2024-08-16 15:10:05,720 - INFO - Loading the embedding model +2024-08-16 15:10:08,884 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\sentence_transformers\cross_encoder\CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console) + from tqdm.autonotebook import tqdm, trange + +2024-08-16 15:10:12,146 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:10:12,475 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:10:18,573 - INFO - Embedding model loaded +2024-08-16 15:10:20,318 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:10:20,356 - INFO - Searching for How to change the engine oil of a toyota corrolla. +2024-08-16 15:10:20,356 - INFO - Loading embedded data +2024-08-16 15:10:21,655 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 15:10:21,736 - INFO - Search completed +2024-08-16 15:11:18,898 - INFO - Searching for Wirebrush WD 40 +2024-08-16 15:11:18,899 - INFO - Loading embedded data +2024-08-16 15:11:20,516 - INFO - Search completed +2024-08-16 15:14:21,169 - INFO - Loading the embedding model +2024-08-16 15:14:28,308 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:14:28,663 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:14:34,412 - INFO - Embedding model loaded +2024-08-16 15:14:34,412 - INFO - Loading data from ./data +2024-08-16 15:14:34,412 - INFO - Start time: 1723817674.412377 +2024-08-16 15:14:34,427 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 15:14:34,428 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 15:14:34,429 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:14:34,429 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:14:34,429 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:14:34,432 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:14:34,433 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:14:34,434 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:14:34,435 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 15:14:34,436 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:14:34,437 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:14:34,438 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:14:34,439 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:14:34,441 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:14:34,442 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:14:34,447 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:14:34,451 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:14:34,534 - INFO - Creating documents from text +2024-08-16 15:14:34,550 - INFO - Creating documents from text +2024-08-16 15:14:34,988 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:14:34,988 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 15:14:34,997 - INFO - Creating documents from text +2024-08-16 15:14:35,004 - INFO - Creating documents from text +2024-08-16 15:14:35,406 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 15:14:35,407 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 15:14:36,086 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 15:14:36,216 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 15:14:36,230 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 15:14:36,232 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 15:14:36,272 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 15:14:54,160 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:14:54,179 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:14:54,697 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:14:54,702 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:14:54,734 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 15:14:54,797 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 15:14:55,100 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 15:14:55,101 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 15:14:55,398 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:14:55,398 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:14:55,433 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:14:55,441 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:14:55,517 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:14:55,552 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:15:08,572 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:15:08,572 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:15:08,666 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:15:08,713 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:15:09,515 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:15:09,589 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:15:10,616 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:15:10,617 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:15:11,494 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 15:15:16,062 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:15:46,807 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:15:46,807 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:15:57,183 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:15:57,183 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:15:58,253 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:16:01,828 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:02,817 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:16:04,791 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:05,670 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:16:07,788 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:08,699 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:16:10,430 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:11,332 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:16:12,021 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 15:16:13,119 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:16:13,621 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:14,404 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:16:16,146 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:17,195 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:17,533 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:16:18,152 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:16:19,549 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:20,849 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:16:21,918 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:22,669 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 15:16:23,444 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:24,785 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:16:26,495 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:27,251 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 15:16:27,264 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:28,643 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:16:31,079 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:31,404 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:31,545 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:32,769 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 15:16:33,082 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:16:35,044 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:35,338 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 15:16:35,339 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:36,422 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 15:16:36,894 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:16:38,052 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:38,743 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 15:16:39,374 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:39,919 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:40,287 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:16:41,266 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 15:16:43,104 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:43,843 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:44,529 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 15:16:46,081 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:48,998 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 15:16:49,547 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 15:16:50,786 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:52,002 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 15:16:53,813 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:55,022 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 15:16:56,537 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:16:57,732 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 15:16:59,182 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:00,369 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 15:17:02,864 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:04,035 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 15:17:05,636 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:06,232 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:08,126 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 15:17:09,102 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 15:17:09,857 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:11,093 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 15:17:13,021 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:14,197 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 15:17:16,684 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:19,536 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 15:17:21,765 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:22,054 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:24,487 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 15:17:26,322 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:27,066 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 15:17:29,298 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 15:17:30,858 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:33,468 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:17:37,932 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:41,661 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 15:17:50,391 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:17:53,701 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 15:18:02,872 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:18:08,894 - INFO - Summarizing document +2024-08-16 15:18:09,942 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:10,472 - INFO - Summarizing document +2024-08-16 15:18:10,977 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:11,483 - INFO - Summarizing document +2024-08-16 15:18:11,934 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:12,437 - INFO - Summarizing document +2024-08-16 15:18:12,877 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:13,389 - INFO - Summarizing document +2024-08-16 15:18:13,944 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:14,447 - INFO - Summarizing document +2024-08-16 15:18:14,924 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:15,431 - INFO - Summarizing document +2024-08-16 15:18:15,901 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:16,409 - INFO - Summarizing document +2024-08-16 15:18:16,765 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:17,272 - INFO - Summarizing document +2024-08-16 15:18:17,684 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:18,187 - INFO - Summarizing document +2024-08-16 15:18:18,687 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:19,193 - INFO - Summarizing document +2024-08-16 15:18:19,718 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:20,220 - INFO - Summarizing document +2024-08-16 15:18:20,582 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:21,096 - INFO - Summarizing document +2024-08-16 15:18:21,487 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:21,993 - INFO - Summarizing document +2024-08-16 15:18:22,456 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:22,964 - INFO - Summarizing document +2024-08-16 15:18:23,417 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:23,925 - INFO - Summarizing document +2024-08-16 15:18:24,313 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:24,819 - INFO - Summarizing document +2024-08-16 15:18:25,193 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:25,697 - INFO - Summarizing document +2024-08-16 15:18:26,066 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:26,569 - INFO - Summarizing document +2024-08-16 15:18:27,019 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:27,525 - INFO - Summarizing document +2024-08-16 15:18:27,899 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:28,402 - INFO - Summarizing document +2024-08-16 15:18:28,773 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:29,279 - INFO - Summarizing document +2024-08-16 15:18:29,620 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:30,127 - INFO - Summarizing document +2024-08-16 15:18:30,489 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:30,991 - INFO - Summarizing document +2024-08-16 15:18:31,367 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:31,873 - INFO - Summarizing document +2024-08-16 15:18:32,237 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:32,749 - INFO - Summarizing document +2024-08-16 15:18:33,133 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:33,639 - INFO - Summarizing document +2024-08-16 15:18:34,086 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:34,589 - INFO - Summarizing document +2024-08-16 15:18:35,060 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:35,589 - INFO - Summarizing document +2024-08-16 15:18:35,959 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:36,466 - INFO - Summarizing document +2024-08-16 15:18:36,898 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:18:37,790 - INFO - Data loaded +2024-08-16 15:18:37,792 - INFO - Creating vector store +2024-08-16 15:18:37,792 - INFO - Creating vector store +2024-08-16 15:18:39,409 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 15:18:50,235 - INFO - Vector store created +2024-08-16 15:18:50,235 - INFO - Saving the vector store +2024-08-16 15:18:50,235 - INFO - Saving embeddings +2024-08-16 15:18:50,250 - INFO - Vector store saved +2024-08-16 15:18:50,250 - INFO - Vector store created +2024-08-16 15:18:50,251 - INFO - Saving the vector store +2024-08-16 15:18:50,251 - INFO - Saving embeddings +2024-08-16 15:18:50,261 - INFO - Vector store saved +2024-08-16 15:18:50,263 - INFO - End time: 1723817930.2631094 +2024-08-16 15:18:50,263 - INFO - Time taken: 255.85073232650757 +2024-08-16 15:18:50,264 - INFO - Creating thumbnails +2024-08-16 15:18:50,265 - INFO - Creating thumbnail for ./data\audio-2.mp3 +2024-08-16 15:18:50,279 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:18:50,293 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:18:50,310 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:18:50,325 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:18:50,340 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:18:50,358 - INFO - Creating thumbnail for ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:18:50,374 - INFO - Creating thumbnail for ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:18:50,392 - INFO - Creating thumbnail for ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:18:50,414 - INFO - Creating thumbnail for ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:18:50,434 - INFO - Creating thumbnail for ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:18:50,450 - INFO - Creating thumbnail for ./data\test_rec.m4a +2024-08-16 15:18:50,466 - INFO - Thumbnails created +2024-08-16 15:20:04,146 - INFO - Loading the embedding model +2024-08-16 15:20:08,319 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\sentence_transformers\cross_encoder\CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console) + from tqdm.autonotebook import tqdm, trange + +2024-08-16 15:20:12,728 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:20:13,153 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:20:19,234 - INFO - Embedding model loaded +2024-08-16 15:20:19,270 - INFO - Searching for Wirebrush WD 40 +2024-08-16 15:20:19,271 - INFO - Loading embedded data +2024-08-16 15:20:19,734 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 15:20:19,828 - INFO - Search completed +2024-08-16 15:49:20,291 - INFO - Loading the embedding model +2024-08-16 15:49:25,758 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:49:26,097 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:49:31,266 - INFO - Embedding model loaded +2024-08-16 15:49:31,266 - INFO - Loading data from ./data +2024-08-16 15:49:31,266 - INFO - Start time: 1723819771.2663085 +2024-08-16 15:49:31,266 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 15:49:31,266 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:49:31,266 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:49:31,266 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 15:49:31,281 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:49:31,281 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:49:31,281 - INFO - Creating documents from text +2024-08-16 15:49:31,281 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:49:31,281 - INFO - Creating documents from text +2024-08-16 15:49:31,281 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:49:31,290 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:49:31,292 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:49:31,293 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:49:31,298 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:49:31,695 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:49:31,711 - INFO - Creating documents from text +2024-08-16 15:49:31,712 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 15:49:31,792 - INFO - Creating documents from text +2024-08-16 15:49:32,165 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 15:49:32,205 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 15:49:32,746 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 15:49:32,926 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 15:49:32,928 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 15:49:33,109 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 15:49:33,179 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 15:49:34,793 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:49:34,808 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:49:36,594 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:49:37,745 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 15:49:37,760 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 15:49:41,862 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:49:42,683 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:49:42,713 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:49:43,498 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:49:43,500 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:49:43,922 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 15:49:43,927 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 15:49:45,447 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:49:46,603 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:49:52,030 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:49:52,077 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:49:53,224 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:49:53,255 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:49:54,025 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:49:54,025 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:49:57,350 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:49:57,444 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:49:58,927 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 15:50:04,611 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:50:47,909 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:50:47,909 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:51:05,443 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:51:06,469 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 15:51:06,469 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 15:51:08,646 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:09,663 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:51:11,383 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:13,503 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:51:15,353 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:18,442 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:51:19,946 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 15:51:20,022 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:21,097 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:51:22,724 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:24,952 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:51:26,820 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:27,840 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:51:28,938 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 15:51:29,974 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 15:51:31,309 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:32,866 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 15:51:34,080 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:35,814 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 15:51:37,497 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:39,250 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:39,446 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 15:51:40,812 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:43,088 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 15:51:43,612 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 15:51:44,518 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:45,919 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 15:51:47,197 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:48,526 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 15:51:49,935 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:51,232 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 15:51:53,004 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:54,236 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 15:51:55,532 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:56,738 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:51:56,773 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 15:51:58,171 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:00,529 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 15:52:00,764 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 15:52:05,319 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:06,231 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:07,171 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 15:52:08,421 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:10,947 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 15:52:11,906 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 15:52:12,282 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:13,538 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 15:52:15,301 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:16,711 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 15:52:18,323 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:19,704 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:19,849 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 15:52:21,260 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:23,831 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 15:52:24,871 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 15:52:25,032 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:26,491 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 15:52:27,788 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:30,629 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 15:52:32,214 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:32,912 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:37,326 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 15:52:39,202 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:42,538 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 15:52:43,204 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 15:52:47,660 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 503 Service Unavailable" +2024-08-16 15:52:49,227 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:52:52,765 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 15:52:57,450 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 15:53:01,990 - INFO - Summarizing document +2024-08-16 15:53:03,324 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:03,856 - INFO - Summarizing document +2024-08-16 15:53:04,345 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:04,848 - INFO - Summarizing document +2024-08-16 15:53:05,323 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:05,837 - INFO - Summarizing document +2024-08-16 15:53:06,301 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:06,809 - INFO - Summarizing document +2024-08-16 15:53:07,260 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:07,785 - INFO - Summarizing document +2024-08-16 15:53:08,259 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:08,765 - INFO - Summarizing document +2024-08-16 15:53:09,324 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:09,839 - INFO - Summarizing document +2024-08-16 15:53:10,220 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:10,733 - INFO - Summarizing document +2024-08-16 15:53:11,158 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:11,682 - INFO - Summarizing document +2024-08-16 15:53:12,200 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:53:12,704 - INFO - Summarizing document +2024-08-16 15:53:13,216 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 15:58:12,861 - INFO - Loading the embedding model +2024-08-16 15:58:24,063 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 15:58:24,729 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 15:58:31,644 - INFO - Embedding model loaded +2024-08-16 15:58:31,644 - INFO - Loading data from ./data +2024-08-16 15:58:31,644 - INFO - Start time: 1723820311.644194 +2024-08-16 15:58:31,644 - INFO - Transcribing audio chunks from ./data\audio-2.mp3 +2024-08-16 15:58:31,644 - INFO - Splitting audio file ./data\audio-2.mp3 by duration +2024-08-16 15:58:31,644 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 15:58:31,644 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-service.pdf +2024-08-16 15:58:31,644 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 15:58:31,658 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 15:58:31,658 - INFO - Loading pdf document from ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 15:58:31,658 - INFO - Loading pdf document from ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 15:58:31,658 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-after.jpg +2024-08-16 15:58:31,658 - INFO - Creating image document from ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:58:31,658 - INFO - Loading text document from ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 15:58:31,658 - INFO - Loading text document from ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 15:58:31,658 - INFO - Creating documents from text +2024-08-16 15:58:31,658 - INFO - Preprocessing video data from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:58:31,674 - INFO - Creating documents from text +2024-08-16 15:58:31,674 - INFO - Preprocessing video data from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 15:58:31,680 - INFO - Loading docx document from ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 15:58:31,683 - INFO - Loading docx document from ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 15:58:31,689 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:58:32,283 - INFO - Creating image document from ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:58:32,322 - INFO - Creating image document from ./data\IMG_1436.jpeg +2024-08-16 15:58:32,390 - INFO - Creating documents from text +2024-08-16 15:58:32,497 - INFO - Creating documents from text +2024-08-16 15:58:32,857 - INFO - Creating image document from ./data\IMG_1437.jpeg +2024-08-16 15:58:32,916 - INFO - Creating image document from ./data\IMG_1438.jpeg +2024-08-16 15:58:34,446 - INFO - Creating image document from ./data\IMG_1440.jpeg +2024-08-16 15:58:34,966 - INFO - Creating image document from ./data\IMG_1441.jpeg +2024-08-16 15:58:35,206 - INFO - Creating image document from ./data\IMG_1442.jpeg +2024-08-16 15:58:35,352 - INFO - Creating image document from ./data\IMG_1443.jpeg +2024-08-16 15:58:35,352 - INFO - Creating image document from ./data\IMG_1444.jpeg +2024-08-16 15:58:36,307 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:58:36,307 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-before.jpg +2024-08-16 15:58:36,386 - INFO - Processing image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:58:36,386 - INFO - Encoding image ./data\dodge-challenger-auto-body-repair-before.jpg +2024-08-16 15:58:36,455 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:58:36,511 - INFO - Processing image ./data\IMG_1437.jpeg +2024-08-16 15:58:36,511 - INFO - Encoding image ./data\IMG_1437.jpeg +2024-08-16 15:58:37,702 - INFO - Creating image document from ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:58:37,702 - INFO - Processing image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:58:37,702 - INFO - Encoding image ./data\hyundai-sonata-auto-body-repair-after.jpg +2024-08-16 15:58:39,225 - INFO - Transcribing audio chunks from ./data\test_rec.m4a +2024-08-16 15:58:39,271 - INFO - Splitting audio file ./data\test_rec.m4a by duration +2024-08-16 15:58:41,044 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:58:41,201 - INFO - Creating image document from ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:58:50,099 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:58:50,146 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-after.jpg +2024-08-16 15:58:51,623 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:58:51,624 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-before.jpg +2024-08-16 15:58:53,381 - INFO - Processing image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:58:53,412 - INFO - Encoding image ./data\pontiac-vibe-auto-body-repair-after.jpg +2024-08-16 15:58:53,506 - INFO - Processing image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:58:53,538 - INFO - Encoding image ./data\toyota-tacoma-auto-body-repair-before.jpg +2024-08-16 15:58:55,937 - INFO - Transcribing audio file test_rec_chunks/test_rec_chunk1.mp3 +2024-08-16 15:59:01,885 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:00:39,321 - INFO - Transcribing audio chunks from ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 16:00:39,321 - INFO - Splitting audio file ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 16:00:55,625 - INFO - Transcribing audio chunks from ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 +2024-08-16 16:00:55,625 - INFO - Splitting audio file ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp3 by duration +2024-08-16 16:00:56,502 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 16:00:59,433 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:00,760 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 16:01:02,066 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:03,266 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 16:01:04,811 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:06,149 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 16:01:07,550 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:08,870 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 16:01:10,171 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:11,427 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 16:01:13,181 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:14,393 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 16:01:16,050 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:17,440 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 16:01:17,880 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk1.mp3 +2024-08-16 16:01:18,637 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:19,870 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 16:01:19,886 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk1.mp3 +2024-08-16 16:01:21,281 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:22,449 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 16:01:23,939 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:25,043 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 16:01:25,059 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:26,262 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:26,620 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:27,193 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk2.mp3 +2024-08-16 16:01:28,496 - INFO - Transcribing audio file How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 16:01:28,513 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:29,207 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:31,474 - INFO - Documents created from video ./data\How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 16:01:31,665 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk3.mp3 +2024-08-16 16:01:32,860 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk2.mp3 +2024-08-16 16:01:33,402 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:35,458 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk4.mp3 +2024-08-16 16:01:37,106 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:38,947 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:39,042 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk5.mp3 +2024-08-16 16:01:40,362 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:43,318 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk6.mp3 +2024-08-16 16:01:44,619 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk3.mp3 +2024-08-16 16:01:44,642 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:46,426 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk7.mp3 +2024-08-16 16:01:47,864 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:49,884 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk8.mp3 +2024-08-16 16:01:52,005 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:54,289 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk9.mp3 +2024-08-16 16:01:55,615 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:01:57,930 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk10.mp3 +2024-08-16 16:01:59,217 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:01,143 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk11.mp3 +2024-08-16 16:02:01,644 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:02,818 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:05,809 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk12.mp3 +2024-08-16 16:02:07,052 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:07,912 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk4.mp3 +2024-08-16 16:02:09,942 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk13.mp3 +2024-08-16 16:02:14,002 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:14,311 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:17,128 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk14.mp3 +2024-08-16 16:02:19,256 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:19,337 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk5.mp3 +2024-08-16 16:02:21,441 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk15.mp3 +2024-08-16 16:02:25,251 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:25,757 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:28,466 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk16.mp3 +2024-08-16 16:02:29,900 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:30,615 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk6.mp3 +2024-08-16 16:02:32,259 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk17.mp3 +2024-08-16 16:02:35,851 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:35,977 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:38,548 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk18.mp3 +2024-08-16 16:02:39,920 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:41,682 - INFO - Transcribing audio file audio-2_chunks/audio-2_chunk7.mp3 +2024-08-16 16:02:42,939 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk19.mp3 +2024-08-16 16:02:46,640 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:47,987 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:50,892 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk20.mp3 +2024-08-16 16:02:52,405 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:54,475 - INFO - Transcribing audio file How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunks/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]_chunk21.mp3 +2024-08-16 16:02:55,155 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/audio/translations "HTTP/1.1 200 OK" +2024-08-16 16:02:57,370 - INFO - Documents created from video ./data\How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC].mp4 +2024-08-16 16:02:57,774 - INFO - Summarizing document +2024-08-16 16:02:58,990 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:02:59,537 - INFO - Summarizing document +2024-08-16 16:03:00,062 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:00,569 - INFO - Summarizing document +2024-08-16 16:03:01,033 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:01,538 - INFO - Summarizing document +2024-08-16 16:03:02,141 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:02,652 - INFO - Summarizing document +2024-08-16 16:03:03,116 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:03,631 - INFO - Summarizing document +2024-08-16 16:03:04,188 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:04,702 - INFO - Summarizing document +2024-08-16 16:03:05,257 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:05,776 - INFO - Summarizing document +2024-08-16 16:03:06,164 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:06,670 - INFO - Summarizing document +2024-08-16 16:03:07,224 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:07,741 - INFO - Summarizing document +2024-08-16 16:03:08,249 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:08,765 - INFO - Summarizing document +2024-08-16 16:03:09,284 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:09,788 - INFO - Summarizing document +2024-08-16 16:03:10,224 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:10,733 - INFO - Summarizing document +2024-08-16 16:03:11,118 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:11,628 - INFO - Summarizing document +2024-08-16 16:03:12,230 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:12,738 - INFO - Summarizing document +2024-08-16 16:03:13,220 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:13,731 - INFO - Summarizing document +2024-08-16 16:03:14,128 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:14,642 - INFO - Summarizing document +2024-08-16 16:03:15,060 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:15,573 - INFO - Summarizing document +2024-08-16 16:03:16,086 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:16,607 - INFO - Summarizing document +2024-08-16 16:03:17,027 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:17,546 - INFO - Summarizing document +2024-08-16 16:03:17,964 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:18,471 - INFO - Summarizing document +2024-08-16 16:03:18,940 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:19,448 - INFO - Summarizing document +2024-08-16 16:03:19,852 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:20,363 - INFO - Summarizing document +2024-08-16 16:03:20,762 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:21,271 - INFO - Summarizing document +2024-08-16 16:03:21,631 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:22,144 - INFO - Summarizing document +2024-08-16 16:03:22,555 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:23,061 - INFO - Summarizing document +2024-08-16 16:03:23,441 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:23,955 - INFO - Summarizing document +2024-08-16 16:03:24,376 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:24,886 - INFO - Summarizing document +2024-08-16 16:03:25,342 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:25,863 - INFO - Summarizing document +2024-08-16 16:03:26,270 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:26,783 - INFO - Summarizing document +2024-08-16 16:03:27,196 - INFO - HTTP Request: POST https://api.groq.com/openai/v1/chat/completions "HTTP/1.1 200 OK" +2024-08-16 16:03:28,449 - INFO - Data loaded +2024-08-16 16:03:28,449 - INFO - Creating vector store +2024-08-16 16:03:28,449 - INFO - Creating vector store +2024-08-16 16:03:30,273 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 16:04:10,812 - INFO - Vector store created +2024-08-16 16:04:10,812 - INFO - Saving the vector store +2024-08-16 16:04:10,812 - INFO - Saving embeddings +2024-08-16 16:04:10,827 - INFO - Vector store saved +2024-08-16 16:04:10,827 - INFO - Vector store created +2024-08-16 16:04:10,827 - INFO - Saving the vector store +2024-08-16 16:04:10,827 - INFO - Saving embeddings +2024-08-16 16:04:10,843 - INFO - Vector store saved +2024-08-16 16:04:10,843 - INFO - End time: 1723820650.8435419 +2024-08-16 16:04:10,843 - INFO - Time taken: 339.1993479728699 +2024-08-16 16:04:10,843 - INFO - Creating thumbnails +2024-08-16 16:04:10,843 - INFO - Creating thumbnail for ./data\audio-2.mp3 +2024-08-16 16:04:10,875 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-repair.pdf +2024-08-16 16:04:10,906 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-service.pdf +2024-08-16 16:04:10,922 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tire.pdf +2024-08-16 16:04:10,962 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-tuning.pdf +2024-08-16 16:04:10,985 - INFO - Creating thumbnail for ./data\Car-Repair-Receipt-wash.pdf +2024-08-16 16:04:11,000 - INFO - Creating thumbnail for ./data\corolla-2020-toyota-owners-manual.pdf +2024-08-16 16:04:11,032 - INFO - Creating thumbnail for ./data\How to change engine oil and filter on TOYOTA Corolla.txt +2024-08-16 16:04:11,063 - INFO - Creating thumbnail for ./data\How to change front brake pads on TOYOTA Corolla.txt +2024-08-16 16:04:11,079 - INFO - Creating thumbnail for ./data\How to change rear windshield wipers on TOYOTA Corolla.docx +2024-08-16 16:04:11,110 - INFO - Creating thumbnail for ./data\How to change spark plugs on TOYOTA COROLLA.docx +2024-08-16 16:04:11,142 - INFO - Creating thumbnail for ./data\test_rec.m4a +2024-08-16 16:04:11,173 - INFO - Thumbnails created +2024-08-16 16:06:32,880 - INFO - Loading the embedding model +2024-08-16 16:06:38,758 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\sentence_transformers\cross_encoder\CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console) + from tqdm.autonotebook import tqdm, trange + +2024-08-16 16:06:47,268 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 16:06:47,868 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 16:06:55,638 - INFO - Embedding model loaded +2024-08-16 16:06:55,717 - INFO - Searching for Wirebrush WD 40 +2024-08-16 16:06:55,717 - INFO - Loading embedded data +2024-08-16 16:06:56,487 - WARNING - c:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 16:06:56,628 - INFO - Search completed +2024-08-16 17:08:13,924 - INFO - Loading the embedding model +2024-08-16 17:08:24,070 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 17:08:24,724 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 17:08:31,626 - INFO - Embedding model loaded +2024-08-16 17:08:31,626 - INFO - Receiving the search query +2024-08-16 17:09:01,238 - INFO - Search query received: Wirebrush WD 40 +2024-08-16 17:09:01,238 - INFO - Searching and summarizing the search results +2024-08-16 17:09:01,238 - INFO - Searching for the query +2024-08-16 17:09:01,238 - INFO - Searching for Wirebrush WD 40 +2024-08-16 17:09:01,238 - INFO - Loading embedded data +2024-08-16 17:09:02,744 - WARNING - C:\Users\timmy_3aupohg\anaconda3\envs\smog_env\Lib\site-packages\transformers\models\bert\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) + attn_output = torch.nn.functional.scaled_dot_product_attention( + +2024-08-16 17:09:02,872 - INFO - Search completed +2024-08-16 17:09:02,872 - INFO - Search completed +2024-08-16 17:09:02,872 - INFO - Summarizing search results +2024-08-16 17:09:02,872 - INFO - Search results summarized +2024-08-16 17:09:02,872 - INFO - Search results summarized +2024-08-16 17:28:52,808 - INFO - Loading the embedding model +2024-08-16 17:29:03,445 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 17:29:04,049 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 17:29:10,905 - INFO - Embedding model loaded +2024-08-16 17:29:10,916 - INFO - Loading embedded data +2024-08-16 17:36:56,084 - INFO - Loading the embedding model +2024-08-16 17:37:05,637 - INFO - PyTorch version 2.4.0+cu124 available. +2024-08-16 17:37:06,226 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en +2024-08-16 17:37:13,187 - INFO - Embedding model loaded diff --git a/main.py b/main.py index 3ff18c58..86a16679 100644 --- a/main.py +++ b/main.py @@ -4,16 +4,12 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel -from utils import search, load_embedded_data +from utils import load_embedded_data, load_documents_from_directory, create_vector_store, save_embedded_data +from search import search_and_summarize from data_ingest import load_data app = FastAPI() -# Initialize global variables for FAISS index and vector store -try: - vector_store = load_embedded_data() -except Exception as e: - vector_store = None # Define allowed origins for CORS origins = [ @@ -37,19 +33,21 @@ class SearchRequest(BaseModel): @app.get("/load_documents") def load_documents(directory: str): - global vector_store - # Load documents using the utility function - vector_store = load_data(directory) + # loading the documents from the directory + documents, docs_id, num_pages = load_documents_from_directory(directory) + # embedding the documents + embed_db = create_vector_store(documents, docs_id, num_pages) + # saving the embedded data + status = save_embedded_data(embed_db) return {"status": "Documents loaded successfully"} -@app.get("/search") +@app.post("/search") def search(request: SearchRequest): - global vector_store # Perform search using the utility function - results = search(vector_store, request.query) + results = search_and_summarize(request.query) return {"results": results} diff --git a/requirements.txt b/requirements.txt index 13f49dfa..c9c81013 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,6 +13,8 @@ docx2txt docx fastapi[standard] pdfplumber +pypdf +python-docx pytesseract groq python-dotenv diff --git a/search.py b/search.py index c518de15..275e1eb8 100644 --- a/search.py +++ b/search.py @@ -1,21 +1,98 @@ from utils import search import sys, os +import json # Add the root directory to sys.path sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from loggings.logging_config import logger +# a function to get data description +def get_data_description(data_path): + # ensuring no // or / or extension is present + data_name = data_path.split('/')[-1].split('\\')[-1].split('.')[0] + # print(data_name) + # open the data.json file + with open('data/data.json') as f: + data = json.load(f) + existing_data = data.keys() + if data_name in existing_data: + return data[data_name]['doc_summary'] + else: + return 'No description available' +# getting data thumbnais. +def get_data_thumbnail(data_path, timestamp = None): + # ensuring no // or / or extension is present + file_name = data_path.split('/')[-1].split('\\')[-1].split('.')[0] + # first check is to see if the file_name has a .png image in the thumbnail folder + if os.path.exists(f'data/thumbnails/{file_name}.png'): + return f'data/thumbnails/{file_name}.png' + # the second check is to see if we have a folder with this file_name + elif os.path.exists(f'data/{file_name}'): + # so now we want to access the first timestamp + if timestamp: + first = timestamp[0] + # split by - + start, end = first.split('-') + # we want to convert something like 03:00, 04:00, 03:30 which is in min:sec to seconds + start = int(start.split(':')[0])*60 + int(start.split(':')[1]) + end = int(end.split(':')[0])*60 + int(end.split(':')[1]) + # bringing them together + image_file = f"{start}-{end}s.png" + # niw checkin if the file exists + if os.path.exists(f'data/{file_name}/{image_file}'): + return f'data/{file_name}/{image_file}' + +def summarize_doc_search(data): + summary = {} + + for item in data: + source = item['source'] + if source not in summary: + summary[source] = {'pages': [], 'timestamps': [], 'file_type': item.get('file_type', 'pdf')} + + if 'page' in item: + summary[source]['pages'].append(item['page']) + if 'timestamp' in item: + summary[source]['timestamps'].append(item['timestamp']) + + # Formatting the summary as a list of dictionaries + summarized_list = [ + {'filename': key.split("\\")[-1], + 'pages': value['pages'], + 'timestamps': value['timestamps'], + 'file_type': value['file_type']} + for key, value in summary.items() + ] + + # getting the file description and thumbnail + for item in summarized_list: + item['description'] = get_data_description(item['filename']) + # ehcking if we have an empty timestamp list + if len(item['timestamps']) > 0: + item['thumbnail'] = get_data_thumbnail(item['filename'], item['timestamps']) + else: + item['thumbnail'] = get_data_thumbnail(item['filename']) + + return summarized_list + +# a function that perform the search and summary together +def search_and_summarize(query): + logger.info("Searching for the query") + docs = search(query) + logger.info("Search completed") + logger.info("Summarizing search results") + summary = summarize_doc_search(docs) + logger.info("Search results summarized") + return summary if __name__ == "__main__": logger.info("Receiving the search query") query = input("Enter the search query: ") - logger.info(f"Searching for {query}") - page_content, all, pages = search(query) - logger.info("Search completed") - logger.info(f"Page content: {page_content}") - print(f"Page content: {all}") - print(f"Pages: {pages}") - print("Search completed") \ No newline at end of file + logger.info(f"Search query received: {query}") + logger.info("Searching and summarizing the search results") + search_results = search_and_summarize(query) + logger.info("Search results summarized") + print(search_results) \ No newline at end of file diff --git a/search_note.ipynb b/search_note.ipynb index a00b0774..e24246d7 100644 --- a/search_note.ipynb +++ b/search_note.ipynb @@ -11,16 +11,29 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-08-16 16:06:32,880 - INFO - Loading the embedding model\n", + "2024-08-16 16:06:38,758 - WARNING - c:\\Users\\timmy_3aupohg\\anaconda3\\envs\\smog_env\\Lib\\site-packages\\sentence_transformers\\cross_encoder\\CrossEncoder.py:11: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n", + " from tqdm.autonotebook import tqdm, trange\n", + "\n", + "2024-08-16 16:06:47,268 - INFO - PyTorch version 2.4.0+cu124 available.\n", + "2024-08-16 16:06:47,868 - INFO - Load pretrained SentenceTransformer: BAAI/bge-small-en\n", + "2024-08-16 16:06:55,638 - INFO - Embedding model loaded\n" + ] + }, { "data": { "text/plain": [ "True" ] }, - "execution_count": 2, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -32,17 +45,51 @@ "from langchain_groq import ChatGroq\n", "from langchain_core.prompts.prompt import PromptTemplate\n", "from langchain_core.output_parsers import StrOutputParser\n", + "from collections import defaultdict\n", + "import json\n", "load_dotenv()" ] }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# setting up groq api key\n", + "# os.environ[\"GROQ_API_KEY\"] = os.getenv('GROQ_API_KEY')" + ] + }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "# setting up groq api key\n", - "os.environ[\"GROQ_API_KEY\"] = os.getenv('GROQ_API_KEY')" + "\n", + "# # chat set up\n", + "# GROQ_LLM = ChatGroq(temperature=0, model_name=\"llama3-8b-8192\", max_tokens=100)\n", + "\n", + "\n", + "# ### Chains #####\n", + "# # Initiator\n", + "# def doc_summarizer(document_page: list) -> str:\n", + "# initiator_prompt = PromptTemplate(\n", + "# template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n", + "# Create a short summary of the document based on the provided text. \n", + " \n", + "# Start with: This document is about...\n", + " \n", + "# <|eot_id|><|start_header_id|>user<|end_header_id|>\n", + "# DOCUMENT: {document_page} \\n\n", + " \n", + "# <|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\",\n", + "# input_variables=[\"document_page\"],\n", + "# )\n", + "\n", + "# initiator_router = initiator_prompt | GROQ_LLM | StrOutputParser()\n", + "# output = initiator_router.invoke({\"document_page\":document_page})\n", + "# return output\n" ] }, { @@ -51,41 +98,31 @@ "metadata": {}, "outputs": [], "source": [ - "\n", - "# chat set up\n", - "GROQ_LLM = ChatGroq(temperature=0, model_name=\"llama3-8b-8192\", max_tokens=100)\n", - "\n", - "\n", - "### Chains #####\n", - "# Initiator\n", - "def doc_summarizer(document_page: list) -> str:\n", - " initiator_prompt = PromptTemplate(\n", - " template=\"\"\"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n", - " Create a short summary of the document based on the provided text. \n", - " \n", - " Start with: This document is about...\n", - " \n", - " <|eot_id|><|start_header_id|>user<|end_header_id|>\n", - " DOCUMENT: {document_page} \\n\n", - " \n", - " <|eot_id|><|start_header_id|>assistant<|end_header_id|>\"\"\",\n", - " input_variables=[\"document_page\"],\n", - " )\n", - "\n", - " initiator_router = initiator_prompt | GROQ_LLM | StrOutputParser()\n", - " output = initiator_router.invoke({\"document_page\":document_page})\n", - " return output\n" + "document_page = 'Wirebrush WD 40'\n", + "# testing the function\n", + "# summary = doc_summarizer(document_page)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-08-16 16:06:55,717 - INFO - Searching for Wirebrush WD 40\n", + "2024-08-16 16:06:55,717 - INFO - Loading embedded data\n", + "2024-08-16 16:06:56,487 - WARNING - c:\\Users\\timmy_3aupohg\\anaconda3\\envs\\smog_env\\Lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:439: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\\cb\\pytorch_1000000000000\\work\\aten\\src\\ATen\\native\\transformers\\cuda\\sdp_utils.cpp:555.)\n", + " attn_output = torch.nn.functional.scaled_dot_product_attention(\n", + "\n", + "2024-08-16 16:06:56,628 - INFO - Search completed\n" + ] + } + ], "source": [ - "document_page = 'How to change the engine oil of a toyota corrolla.'\n", - "# testing the function\n", - "summary = doc_summarizer(document_page)" + "docs = search(document_page)" ] }, { @@ -96,7 +133,46 @@ { "data": { "text/plain": [ - "'This document is about providing a step-by-step guide on how to change the engine oil of a Toyota Corolla.'" + "[{'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 424},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '0:30-1:0',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '2:00-2:00',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '2:30-3:0',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '4:00-4:00',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '5:30-6:0',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '8:00-8:00',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '8:30-9:0',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '10:00-10:00',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '3:30-4:0',\n", + " 'file_type': 'video'},\n", + " {'source': 'How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'timestamp': '5:30-6:0',\n", + " 'file_type': 'video'},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 329},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 264},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 290},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 201},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 326},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 315},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 317},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 325},\n", + " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 422}]" ] }, "execution_count": 6, @@ -104,202 +180,235 @@ "output_type": "execute_result" } ], - "source": [ - "summary" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "docs = search(document_page)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[{'source': './data\\\\How to change engine oil and filter on TOYOTA Corolla.txt',\n", - " 'page': 1,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 438},\n", - " {'source': './data\\\\How to change engine oil and filter on TOYOTA Corolla.txt',\n", - " 'page': 3,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\How to change engine oil and filter on TOYOTA Corolla.txt',\n", - " 'page': 2,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 525},\n", - " {'source': './data\\\\How to change spark plugs on TOYOTA COROLLA.docx',\n", - " 'page': 2,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\How to change spark plugs on TOYOTA COROLLA.docx',\n", - " 'page': 3,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\How to change engine oil and filter on TOYOTA Corolla.txt',\n", - " 'page': 0,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\How to change spark plugs on TOYOTA COROLLA.docx',\n", - " 'page': 5,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\How to change spark plugs on TOYOTA COROLLA.docx',\n", - " 'page': 6,\n", - " 'file_type': 'text'},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 526},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 422},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 514},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 153},\n", - " {'filename': 'audio-2', 'duration': '0-3 minutes', 'file_type': 'audio'},\n", - " {'filename': 'audio-2', 'duration': '3-6 minutes', 'file_type': 'audio'},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 149},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 513},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 436},\n", - " {'source': './data\\\\corolla-2020-toyota-owners-manual.pdf', 'page': 148}]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "docs" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "from collections import defaultdict\n", - "\n", - "def transform_file_data(input_data):\n", - " # Create a dictionary to aggregate data by filename\n", - " aggregated_data = defaultdict(lambda: {\n", - " 'filename': '',\n", - " 'pages': [],\n", - " 'timestamps': [],\n", - " 'description': 'lorem ipsum',\n", - " 'filetype': '',\n", - " 'thumbnail': '',\n", - " 'track_id': 123\n", - " })\n", - "\n", - " for item in input_data:\n", - " if 'source' in item:\n", - " file_path = item['source']\n", - " filename = file_path.split('\\\\')[-1]\n", - " extension = filename.split('.')[-1]\n", - "\n", - " aggregated_data[filename]['filename'] = filename\n", - " aggregated_data[filename]['filetype'] = extension\n", - " aggregated_data[filename]['thumbnail'] = f\"{filename.split('.')[0]}.jpg\"\n", - "\n", - " if extension in ['pdf', 'txt', 'docx']:\n", - " aggregated_data[filename]['pages'].append(item['page'])\n", - " elif extension in ['mp4', 'mkv', 'flv']:\n", - " aggregated_data[filename]['timestamps'].append(item['page'])\n", - " elif extension in ['mp3', 'wav', 'flac']:\n", - " aggregated_data[filename]['timestamps'].append(item['page'])\n", - " elif extension in ['jpg', 'jpeg', 'png', 'gif', 'bmp']:\n", - " aggregated_data[filename].pop('pages', None) # Remove pages if it's an image\n", - " aggregated_data[filename].pop('timestamps', None) # Remove timestamps if it's an image\n", - "\n", - " elif 'filename' in item:\n", - " filename = item['filename']\n", - " extension = item['file_type']\n", - " aggregated_data[filename]['filename'] = f\"{filename}.{extension}\"\n", - " aggregated_data[filename]['filetype'] = extension\n", - " aggregated_data[filename]['thumbnail'] = f\"{filename}.jpg\"\n", - " if 'duration' in item:\n", - " start_time, end_time = item['duration'].split(' minutes')[0].split('-')\n", - " aggregated_data[filename]['timestamps'].append((int(start_time), int(end_time)))\n", - "\n", - " # Convert aggregated data to the desired output format\n", - " output_data = []\n", - " for filename, data in aggregated_data.items():\n", - " # Remove empty lists for pages and timestamps\n", - " if not data['pages']:\n", - " data.pop('pages', None)\n", - " if not data['timestamps']:\n", - " data.pop('timestamps', None)\n", - " output_data.append(data)\n", - "\n", - " return output_data\n" + "# a function to get data description\n", + "def get_data_description(data_path):\n", + " # ensuring no // or / or extension is present\n", + " data_name = data_path.split('/')[-1].split('\\\\')[-1].split('.')[0]\n", + " # print(data_name)\n", + " # open the data.json file\n", + " with open('data/data.json') as f:\n", + " data = json.load(f)\n", + " existing_data = data.keys()\n", + " if data_name in existing_data:\n", + " return data[data_name]['doc_summary']\n", + " else:\n", + " return 'No description available'" ] }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'filename': 'How to change engine oil and filter on TOYOTA Corolla.txt', 'pages': [1, 3, 2, 0], 'description': 'lorem ipsum', 'filetype': 'txt', 'thumbnail': 'How to change engine oil and filter on TOYOTA Corolla.jpg', 'track_id': 123}\n", - "{'filename': 'corolla-2020-toyota-owners-manual.pdf', 'pages': [438, 525, 526, 422, 514, 153, 149, 513, 436, 148], 'description': 'lorem ipsum', 'filetype': 'pdf', 'thumbnail': 'corolla-2020-toyota-owners-manual.jpg', 'track_id': 123}\n", - "{'filename': 'How to change spark plugs on TOYOTA COROLLA.docx', 'pages': [2, 3, 5, 6], 'description': 'lorem ipsum', 'filetype': 'docx', 'thumbnail': 'How to change spark plugs on TOYOTA COROLLA.jpg', 'track_id': 123}\n", - "{'filename': 'audio-2.audio', 'timestamps': [(0, 3), (3, 6)], 'description': 'lorem ipsum', 'filetype': 'audio', 'thumbnail': 'audio-2.jpg', 'track_id': 123}\n" - ] - } - ], - "source": [ - "output = transform_file_data(docs)\n", - "for item in output:\n", - " print(item)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[{'filename': 'How to change engine oil and filter on TOYOTA Corolla.txt',\n", - " 'pages': [1, 3, 2, 0],\n", - " 'description': 'lorem ipsum',\n", - " 'filetype': 'txt',\n", - " 'thumbnail': 'How to change engine oil and filter on TOYOTA Corolla.jpg',\n", - " 'track_id': 123},\n", - " {'filename': 'corolla-2020-toyota-owners-manual.pdf',\n", - " 'pages': [438, 525, 526, 422, 514, 153, 149, 513, 436, 148],\n", - " 'description': 'lorem ipsum',\n", - " 'filetype': 'pdf',\n", - " 'thumbnail': 'corolla-2020-toyota-owners-manual.jpg',\n", - " 'track_id': 123},\n", - " {'filename': 'How to change spark plugs on TOYOTA COROLLA.docx',\n", - " 'pages': [2, 3, 5, 6],\n", - " 'description': 'lorem ipsum',\n", - " 'filetype': 'docx',\n", - " 'thumbnail': 'How to change spark plugs on TOYOTA COROLLA.jpg',\n", - " 'track_id': 123},\n", - " {'filename': 'audio-2.audio',\n", - " 'timestamps': [(0, 3), (3, 6)],\n", - " 'description': 'lorem ipsum',\n", - " 'filetype': 'audio',\n", - " 'thumbnail': 'audio-2.jpg',\n", - " 'track_id': 123}]" + "\"This document is about a video tutorial series on replacing car parts, specifically the latest installment of AutoDoc's video tutorials.\"" ] }, - "execution_count": 12, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "output" + "get_data_description('How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]')" ] }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# getting data thumbnais. \n", + "def get_data_thumbnail(data_path, timestamp = None):\n", + " # ensuring no // or / or extension is present\n", + " file_name = data_path.split('/')[-1].split('\\\\')[-1].split('.')[0]\n", + " # first check is to see if the file_name has a .png image in the thumbnail folder\n", + " if os.path.exists(f'data/thumbnails/{file_name}.png'):\n", + " return f'data/thumbnails/{file_name}.png'\n", + " # the second check is to see if we have a folder with this file_name\n", + " elif os.path.exists(f'data/{file_name}'):\n", + " # so now we want to access the first timestamp\n", + " if timestamp:\n", + " first = timestamp[0]\n", + " # split by -\n", + " start, end = first.split('-')\n", + " # we want to convert something like 03:00, 04:00, 03:30 which is in min:sec to seconds\n", + " start = int(start.split(':')[0])*60 + int(start.split(':')[1])\n", + " end = int(end.split(':')[0])*60 + int(end.split(':')[1])\n", + " # bringing them together\n", + " image_file = f\"{start}-{end}s.png\"\n", + " # niw checkin if the file exists\n", + " if os.path.exists(f'data/{file_name}/{image_file}'):\n", + " return f'data/{file_name}/{image_file}'" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'data/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]/210-240s.png'" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_data_thumbnail('How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]', timestamp=['3:30-4:0', '5:30-6:0'])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'data/thumbnails/corolla-2020-toyota-owners-manual.png'" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_data_thumbnail(\"./data\\\\corolla-2020-toyota-owners-manual.pdf'\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "def summarize_doc_search(data):\n", + " summary = {}\n", + "\n", + " for item in data:\n", + " source = item['source']\n", + " if source not in summary:\n", + " summary[source] = {'pages': [], 'timestamps': [], 'file_type': item.get('file_type', 'pdf')}\n", + " \n", + " if 'page' in item:\n", + " summary[source]['pages'].append(item['page'])\n", + " if 'timestamp' in item:\n", + " summary[source]['timestamps'].append(item['timestamp'])\n", + " \n", + " # Formatting the summary as a list of dictionaries\n", + " summarized_list = [\n", + " {'filename': key.split(\"\\\\\")[-1], \n", + " 'pages': value['pages'], \n", + " 'timestamps': value['timestamps'], \n", + " 'file_type': value['file_type']}\n", + " for key, value in summary.items()\n", + " ]\n", + " \n", + " # getting the file description and thumbnail\n", + " for item in summarized_list:\n", + " item['description'] = get_data_description(item['filename'])\n", + " # ehcking if we have an empty timestamp list\n", + " if len(item['timestamps']) > 0:\n", + " item['thumbnail'] = get_data_thumbnail(item['filename'], item['timestamps'])\n", + " else:\n", + " item['thumbnail'] = get_data_thumbnail(item['filename'])\n", + " \n", + " return summarized_list" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "doc_summary = summarize_doc_search(docs)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'filename': 'corolla-2020-toyota-owners-manual.pdf',\n", + " 'pages': [424, 329, 264, 290, 201, 326, 315, 317, 325, 422],\n", + " 'timestamps': [],\n", + " 'file_type': 'pdf',\n", + " 'description': \"This document is about the user manual for a Toyota Corolla, providing information and instructions on various aspects of the vehicle, including safety and security, vehicle status, driving operations, interior features, maintenance, and troubleshooting. The manual covers topics such as child seat installation, theft deterrent systems, reading driving-related information, operating the Entune audio system, and caring for the vehicle's interior and exterior. It also includes information on reporting safety defects and provides instructions for Canadian owners on seat belt and SRS air\",\n", + " 'thumbnail': 'data/thumbnails/corolla-2020-toyota-owners-manual.png'},\n", + " {'filename': 'How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'pages': [],\n", + " 'timestamps': ['0:30-1:0',\n", + " '2:00-2:00',\n", + " '2:30-3:0',\n", + " '4:00-4:00',\n", + " '5:30-6:0',\n", + " '8:00-8:00',\n", + " '8:30-9:0',\n", + " '10:00-10:00'],\n", + " 'file_type': 'video',\n", + " 'description': \"This document is about a video tutorial series on replacing car parts, specifically the latest installment of AutoDoc's video tutorials.\",\n", + " 'thumbnail': 'data/How to change front wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]/30-60s.png'},\n", + " {'filename': 'How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]',\n", + " 'pages': [],\n", + " 'timestamps': ['3:30-4:0', '5:30-6:0'],\n", + " 'file_type': 'video',\n", + " 'description': \"This document is about a video tutorial series on replacing car parts, specifically the latest installment of Auto-Doc's video tutorials.\",\n", + " 'thumbnail': 'data/How to change rear wheel bearing on TOYOTA RAV4 II [TUTORIAL AUTODOC]/210-240s.png'}]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "doc_summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/thumbnail_generator.ipynb b/thumbnail_generator.ipynb new file mode 100644 index 00000000..f2110aaa --- /dev/null +++ b/thumbnail_generator.ipynb @@ -0,0 +1,145 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import random\n", + "from PIL import Image, ImageDraw, ImageFont\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "def create_text_thumbnail(file_path):\n", + " # Create a folder for thumbnails if it doesn't exist\n", + " thumbnail_folder = os.path.join(os.path.dirname(file_path), 'thumbnails')\n", + " os.makedirs(thumbnail_folder, exist_ok=True)\n", + " \n", + " # Extract file name (without extension)\n", + " file_name = os.path.splitext(os.path.basename(file_path))[0]\n", + " \n", + " # Create a random background color\n", + " background_color = tuple(random.randint(0, 255) for _ in range(3))\n", + " \n", + " # Create an image with the random background color\n", + " img = Image.new('RGB', (800, 400), color=background_color)\n", + " \n", + " # Initialize drawing context\n", + " d = ImageDraw.Draw(img)\n", + " \n", + " # Load a font\n", + " try:\n", + " font = ImageFont.truetype(\"arial.ttf\", 25) # Adjust the font size as needed\n", + " except IOError:\n", + " font = ImageFont.load_default()\n", + " \n", + " # Get the bounding box of the text\n", + " text_bbox = d.textbbox((0, 0), file_name, font=font)\n", + " text_width = text_bbox[2] - text_bbox[0]\n", + " text_height = text_bbox[3] - text_bbox[1]\n", + " \n", + " # Calculate the position to center the text\n", + " text_x = (img.width - text_width) / 2\n", + " text_y = (img.height - text_height) / 2\n", + " \n", + " # Draw the text onto the image\n", + " d.text((text_x, text_y), file_name, font=font, fill=(255, 255, 255)) # White text\n", + " \n", + " # Save the image\n", + " thumbnail_path = os.path.join(thumbnail_folder, f\"{file_name}.png\")\n", + " img.save(thumbnail_path)\n", + " \n", + " print(f\"Thumbnail created: {thumbnail_path}\")\n", + "\n", + "def process_directory(directory_path):\n", + " supported_extensions = ['.txt', '.pdf', '.docx', '.mp3', '.m4a']\n", + " \n", + " for file in os.listdir(directory_path):\n", + " file_path = os.path.join(directory_path, file)\n", + " if os.path.isfile(file_path):\n", + " file_extension = os.path.splitext(file)[1].lower()\n", + " if file_extension in supported_extensions:\n", + " create_text_thumbnail(file_path)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Thumbnail created: data\\thumbnails\\audio-2.png\n", + "Thumbnail created: data\\thumbnails\\Car-Repair-Receipt-repair.png\n", + "Thumbnail created: data\\thumbnails\\Car-Repair-Receipt-service.png\n", + "Thumbnail created: data\\thumbnails\\Car-Repair-Receipt-tire.png\n", + "Thumbnail created: data\\thumbnails\\Car-Repair-Receipt-tuning.png\n", + "Thumbnail created: data\\thumbnails\\Car-Repair-Receipt-wash.png\n", + "Thumbnail created: data\\thumbnails\\corolla-2020-toyota-owners-manual.png\n", + "Thumbnail created: data\\thumbnails\\How to change engine oil and filter on TOYOTA Corolla.png\n", + "Thumbnail created: data\\thumbnails\\How to change front brake pads on TOYOTA Corolla.png\n", + "Thumbnail created: data\\thumbnails\\How to change rear windshield wipers on TOYOTA Corolla.png\n", + "Thumbnail created: data\\thumbnails\\How to change spark plugs on TOYOTA COROLLA.png\n", + "Thumbnail created: data\\thumbnails\\test_rec.png\n" + ] + } + ], + "source": [ + "# Example usage:\n", + "directory_path = 'data'\n", + "process_directory(directory_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "smog_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/utils.py b/utils.py index 9f79117c..b7250ab0 100644 --- a/utils.py +++ b/utils.py @@ -12,7 +12,11 @@ from langchain_core.output_parsers import StrOutputParser from uuid import uuid4 from langchain_core.documents import Document from text_extractor import TextExtractor -import os +import os, sys +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +from loggings.logging_config import logger +import random +from PIL import Image, ImageDraw, ImageFont from concurrent.futures import ThreadPoolExecutor import math import json @@ -29,6 +33,7 @@ import ffmpeg from dotenv import load_dotenv load_dotenv() + # OpenAI API Key api_key = os.getenv('OPENAI_API_KEY') # setting up groq api key @@ -53,11 +58,14 @@ def load_embedding_model(): # ---------------------------------------------------------------------------------------------------- # loading the embedding model +logger.info("Loading the embedding model") embeddings = load_embedding_model() +logger.info("Embedding model loaded") # --------------------------------------------------------TEXT PREPROCESSING-------------------------------------------- def create_documents(doc, file_type='text'): + logger.info(f"Creating documents from text") text = doc[0].page_content metadata = doc[0].metadata text_splitter = RecursiveCharacterTextSplitter( @@ -80,6 +88,7 @@ def create_documents(doc, file_type='text'): def load_txt_document(document_path): + logger.info(f"Loading text document from {document_path}") try: txt_doc = TextLoader(document_path) text = txt_doc.load() @@ -91,6 +100,7 @@ def load_txt_document(document_path): def load_docx_document(document_path): + logger.info(f"Loading docx document from {document_path}") try: docx_doc = Docx2txtLoader(document_path) text = docx_doc.load() @@ -103,6 +113,7 @@ def load_docx_document(document_path): # creating a function that checks the document type and loads the document def load_pdf_document(document_path): + logger.info(f"Loading pdf document from {document_path}") try: pdf_doc = PyPDFLoader(document_path) pages = pdf_doc.load_and_split() @@ -125,11 +136,13 @@ def load_document(document_path): # ----------------------------------------------------IMAGE PROCESSING------------------------------------------------ # Function to encode the image def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') + logger.info(f"Encoding image {image_path}") + with open(image_path, "rb") as image_file: + return base64.b64encode(image_file.read()).decode('utf-8') # Vision API to process the image def process_image(image_path): + logger.info(f"Processing image {image_path}") global api_key # Getting the base64 string @@ -174,10 +187,11 @@ def process_image(image_path): # create image document def create_image_document(image_path, file_type='image'): + logger.info(f"Creating image document from {image_path}") # getting the image name from the image path - image_name = image_path.split('/')[-1].split('.')[0] + image_name = image_path.split('\\')[-1].split('.')[0] # setting image name as metadata - metadata = {'filename': image_name, 'file_type': file_type} + metadata = {'source': image_name, 'file_type': file_type} text_extractor = TextExtractor() text = text_extractor.read_text_from_image(image_path) # removing special characters and line breaks @@ -199,6 +213,7 @@ def create_image_document(image_path, file_type='image'): # -----------------------------------------------AUDIO PROCESSING----------------------------------------------------- # Audio to Text def audio_to_text(filepath): + logger.info(f"Transcribing audio file {filepath}") with open(filepath, "rb") as file: translation = client.audio.translations.create( file=(filepath, file.read()), @@ -208,6 +223,7 @@ def audio_to_text(filepath): def split_audio_by_duration(audio_file_path, chunk_duration_minutes, print_output=True): + logger.info(f"Splitting audio file {audio_file_path} by duration") # Convert chunk duration to milliseconds chunk_length_ms = chunk_duration_minutes * 60 * 1000 @@ -247,6 +263,7 @@ def split_audio_by_duration(audio_file_path, chunk_duration_minutes, print_outpu return chunk_folder, chunk_paths def transcribe_audio_chunks(audio_file_path, chunk_duration_minutes, file_type='audio'): + logger.info(f"Transcribing audio chunks from {audio_file_path}") # Split the audio file into chunks chunk_folder, chunk_paths = split_audio_by_duration(audio_file_path, chunk_duration_minutes) @@ -270,11 +287,25 @@ def transcribe_audio_chunks(audio_file_path, chunk_duration_minutes, file_type=' start_min = (chunk_index - 1) * chunk_duration_minutes end_min = chunk_index * chunk_duration_minutes actual_end_min = min(end_min, (len(AudioSegment.from_file(audio_file_path)) // 60000)) # To handle the last chunk's actual duration + + # preparing the start and end min in a timestamp format, also also catching cases of decimal, making it a real time + if start_min % 1 == 0: + start_min = f"{int(start_min)}:00" + end_min = f"{int(end_min)}:00" + else: + # splitting the decimal part of the start and end min + start_min_int, start_min_dec = str(start_min).split('.') + end_min_int, end_min_dec = str(end_min).split('.') + # converting the decimal part to seconds + start_sec = int(start_min_dec) * 6 + end_sec = int(end_min_dec) * 6 + start_min = f"{start_min_int}:{start_sec}" + end_min = f"{end_min_int}:{end_sec}" # Create a document with the transcript and metadata metadata = { - "filename": base_filename, - "duration": f"{start_min}-{end_min} minutes", + "source": base_filename, + "timestamp": f"{start_min}-{end_min}", "file_type": file_type, } document = Document(page_content=transcript, metadata=metadata) @@ -282,6 +313,9 @@ def transcribe_audio_chunks(audio_file_path, chunk_duration_minutes, file_type=' # Delete the chunk folder after processing shutil.rmtree(chunk_folder) + + # adding a delay + time.sleep(0.2) return documents @@ -294,7 +328,7 @@ def create_audio_document(audio_file_path, chunk_duration_minutes=3, file_type=' # ------------------------------------------------VIDEO PROCESSING----------------------------------------------------- def preprocess_video_data(video_path: str, time_interval: int): - + logger.info(f"Preprocessing video data from {video_path}") # Load the video file video = VideoFileClip(video_path) @@ -341,6 +375,7 @@ def preprocess_video_data(video_path: str, time_interval: int): # now creating document from the audio file documents = create_audio_document(audio_path, chunk_duration_minutes=0.5, file_type='video') + logger.info(f"Documents created from video {video_path}") # deleting the audio file os.remove(audio_path) @@ -349,6 +384,7 @@ def preprocess_video_data(video_path: str, time_interval: int): #----------------------------------------------------DOC SUMMARIZER -------------------------------------------------- def doc_summarizer(document_page: list) -> str: + logger.info(f"Summarizing document") initiator_prompt = PromptTemplate( template="""<|begin_of_text|><|start_header_id|>system<|end_header_id|> Create a short summary of the document based on the provided text. @@ -370,12 +406,15 @@ def doc_summarizer(document_page: list) -> str: #-----------------------------------------------------OTHERS-------------------------------------------------------------- def save_embedded_data(embeddings, key="data"): - embeddings.save_local(f"index/faiss_index_{key}") - print("Embeddings saved") + logger.info(f"Saving embeddings") + embeddings.save_local(f"index/faiss_index_{key}") + print("Embeddings saved") + return 'saved' def load_embedded_data(embeddings=embeddings, key="data"): - embed_db = FAISS.load_local(f"index/faiss_index_{key}", embeddings, allow_dangerous_deserialization=True) - return embed_db + logger.info(f"Loading embedded data") + embed_db = FAISS.load_local(f"index/faiss_index_{key}", embeddings, allow_dangerous_deserialization=True) + return embed_db #-----------------------------------------------------Data Loading Process---------------------------------------------------- @@ -396,15 +435,15 @@ def process_document(path, extension, text_doc, image_doc, audio_doc, video_doc) elif extension in image_doc: doc = process_map["image"](path) num_pages = 1 - doc_name = doc[0].metadata['filename'] + doc_name = doc[0].metadata['source'].split('\\')[-1] elif extension in audio_doc: doc = process_map["audio"](path) num_pages = len(doc) - doc_name = doc[0].metadata['filename'] + doc_name = doc[0].metadata['source'] elif extension in video_doc: doc = process_map["video"](path, time_interval=30) num_pages = len(doc) - doc_name = doc[0].metadata['filename'] + doc_name = doc[0].metadata['source'] else: return None, None, None # Unhandled extension @@ -425,7 +464,7 @@ def load_documents_from_directory(directory_path: str): def process_with_delay(file): result = process_document(os.path.join(directory_path, file), file.split('.')[-1], text_doc, image_doc, audio_doc, video_doc) - time.sleep(0.1) # Introduce a 0.1s delay between processing each document + time.sleep(0.4) # Introduce a 0.4s delay between processing each document return result with ThreadPoolExecutor() as executor: @@ -441,27 +480,31 @@ def load_documents_from_directory(directory_path: str): first_page = doc[0].page_content summary = doc_summarizer(first_page) doc_summary.append(summary) + # adding some delay + time.sleep(0.5) docs_id = [uuid4().hex for _ in range(len(documents))] json_file = os.path.join(directory_path, 'data.json') - data = {'doc_names': doc_names, 'docs_id': docs_id, 'num_pages': num_pages, 'doc_summaary': doc_summary} - - if os.path.exists(json_file): - with open(json_file, 'r+') as f: - existing_data = json.load(f) - existing_data.update(data) - f.seek(0) - json.dump(existing_data, f) - else: - with open(json_file, 'w') as f: - json.dump(data, f) + # creating a dictionary for each document in the json file + for i in range(len(documents)): + data = {doc_names[i].split("\\")[-1]: {'doc_id':docs_id[i], 'num_pages': num_pages[i], 'doc_summary': doc_summary[i]}} + if os.path.exists(json_file): + with open(json_file, 'r+') as f: + existing_data = json.load(f) + existing_data.update(data) + f.seek(0) + json.dump(existing_data, f) + else: + with open(json_file, 'w') as f: + json.dump(data, f) return documents, docs_id, num_pages # A function to create vector store def create_vector_store(documents: list, docs_id: list, num_pages: list): + logger.info(f"Creating vector store") # index set up with the embedding dimension index = faiss.IndexFlatL2(384) # Initialize the FAISS vector store @@ -476,10 +519,11 @@ def create_vector_store(documents: list, docs_id: list, num_pages: list): doc_id = docs_id[i] page_ids = [doc_id+ str(i) for i in range(num_pages[i])] vector_store.add_documents(documents=documents[i], ids=page_ids) - + logger.info(f"Vector store created") + logger.info(f"Saving the vector store") # saving the vector store automatically save_embedded_data(vector_store, key="data") - + logger.info(f"Vector store saved") return vector_store # creating a function to add documents to the vector store @@ -491,14 +535,70 @@ def add_documents_to_vector_store(embeddings, documents: list, docs_id: list, nu page_ids = [doc_id+ str(i) for i in range(num_pages[i])] vector_store.add_documents(documents=documents[i], ids=page_ids) print ("Documents added to the vector store") - +#----------------------------------------------------------Thumbnail Generator----------------------------------------------------- +def create_text_thumbnail(file_path): + logger.info(f"Creating thumbnail for {file_path}") + # Create a folder for thumbnails if it doesn't exist + thumbnail_folder = os.path.join(os.path.dirname(file_path), 'thumbnails') + os.makedirs(thumbnail_folder, exist_ok=True) + + # Extract file name (without extension) + file_name = os.path.splitext(os.path.basename(file_path))[0] + + # Create a random background color + background_color = tuple(random.randint(0, 255) for _ in range(3)) + + # Create an image with the random background color + img = Image.new('RGB', (800, 400), color=background_color) + + # Initialize drawing context + d = ImageDraw.Draw(img) + + # Load a font + try: + font = ImageFont.truetype("arial.ttf", 25) # Adjust the font size as needed + except IOError: + font = ImageFont.load_default() + + # Get the bounding box of the text + text_bbox = d.textbbox((0, 0), file_name, font=font) + text_width = text_bbox[2] - text_bbox[0] + text_height = text_bbox[3] - text_bbox[1] + + # Calculate the position to center the text + text_x = (img.width - text_width) / 2 + text_y = (img.height - text_height) / 2 + + # Draw the text onto the image + d.text((text_x, text_y), file_name, font=font, fill=(255, 255, 255)) # White text + + # Save the image + thumbnail_path = os.path.join(thumbnail_folder, f"{file_name}.png") + img.save(thumbnail_path) + + print(f"Thumbnail created: {thumbnail_path}") + +def process_directory(directory_path): + supported_extensions = ['.txt', '.pdf', '.docx', '.mp3', '.m4a'] + + for file in os.listdir(directory_path): + file_path = os.path.join(directory_path, file) + if os.path.isfile(file_path): + file_extension = os.path.splitext(file)[1].lower() + if file_extension in supported_extensions: + create_text_thumbnail(file_path) + return "Done" + +#-----------------------------------------------------------SEARCH------------------------------------------------------- # A document search function def search(query, k=20): + logger.info(f"Searching for {query}") # loading the embedded data embed_db = load_embedded_data() db = embed_db docs = db.similarity_search(query, k) + logger.info(f"Search completed") all = [] info = [] for doc in docs: