From be638ad77d8446a7c5845ba4b0389eda253c6554 Mon Sep 17 00:00:00 2001 From: Lance Martin <122662504+rlancemartin@users.noreply.github.com> Date: Fri, 4 Aug 2023 07:02:14 -0700 Subject: [PATCH] Chatbots use case (#8554) Co-authored-by: Bagatur --- .../static/img/chat_use_case.png | Bin 0 -> 95280 bytes .../static/img/chat_use_case_2.png | Bin 0 -> 103951 bytes docs/extras/use_cases/chatbots.ipynb | 727 ++++++++++++++++++ docs/extras/use_cases/chatbots/index.mdx | 20 - .../use_cases/chatbots/voice_assistant.ipynb | 482 ------------ 5 files changed, 727 insertions(+), 502 deletions(-) create mode 100644 docs/docs_skeleton/static/img/chat_use_case.png create mode 100644 docs/docs_skeleton/static/img/chat_use_case_2.png create mode 100644 docs/extras/use_cases/chatbots.ipynb delete mode 100644 docs/extras/use_cases/chatbots/index.mdx delete mode 100644 docs/extras/use_cases/chatbots/voice_assistant.ipynb diff --git a/docs/docs_skeleton/static/img/chat_use_case.png b/docs/docs_skeleton/static/img/chat_use_case.png new file mode 100644 index 0000000000000000000000000000000000000000..933a5c460dbc0faae66e9c22153749f637ed5cd5 GIT binary patch literal 95280 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 literal 0 HcmV?d00001 diff --git a/docs/docs_skeleton/static/img/chat_use_case_2.png b/docs/docs_skeleton/static/img/chat_use_case_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8af1e054f69b07810d691aa791184307a51481c2 GIT binary patch literal 103951 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

y8eP9j=Oi|m$Dx7BRiE>6;A2L+Wm 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

O?A!y5~0K9Ekh~j!Smj3e7>t75>4EA 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�sW zBU_f2#%{XqbefzPC18De+WSO-eTzHiDdjWjdzO~>{~&_j&JxKjUh4068ytgrxPp{5 z())0V#d#bM`dW#A-< zTDlDmRiK*YXb16M_tU?>m%Le;v$ufD^LOWxKM7Uccf-914{dKjipMUkq z?M`!=)f$E0tQu5(!1TsymRdhk%B^DW$&F6 z%$m5_n}ROR?};jfr>#9Gki97#uEn`L*5rjqrDD?ES9~D!=646?7^lG^Oyjd1Wm7eN zC@X+VTe3!XXsPfnW*Dq|^W6s-Y{C#&lc3EtMV}KDQt~T*+R(KGfZxFFVlY4$w?)prE^Azy@4(qTOwuL zUmOR|WE#2e-%FEX2;kQgB`L`iOsS9R97|aU9c5ENQ1@c50O#V{$$^uNB;IgyONU7= z(U;DXCKpAhP599Iy}-o=mF~yciTE)qS^H*uV#{^oqc02_B80Ayrt8GG7PsFW+&~%| zb;*tDjKuMCxRY-kviZ8P#&w;6Owr{gMPIHNm^`8a_iAW-SBeRl8CBsvvv(G?)Um9B zE)jn_G_;MS# zA+c(FqE0D^GNKN`ypv5FiW3S0&Oc~`7z_WOgjgWj)e2ScDKI>evs!tG?i66}oiaQa zhzzRO>*|T__8?Ke(`jetD+9$#R`9heSY@MFq+e$I`A6ruZYSkumkUJyApwW=((_sb zxjn`H4qH^tXGP^yjW_Xkm3D8RU(CqQuEQTseHE}$fL*B3B zkoV22PQSZi&Sp6@I!&fQtgZb<gDI8>H(S18npm#>F?A=FM5d8aw1`i@eBBAV1b)chL=^p~dWg z1x(nHJUrZcp&D0m;`H0P-BL;=9dq3YiA$hO)0Bi^VnR_)RszfOQ8@ZM5WHib64Om?Yc@XbOsj1lqzYRHSKO7Bhi-v4Hyuc%6=TDtHNMdQ_N-_b)-^ zFI^Dg9yl$2o9j9BHJ`}|AUZ|z2f6$$x566bv`Q_89x1m%{1sVT!;m}8v2jQy-pGV4 z;sD)cdX1%1aWB{b#ko0P?R^R^D3UxPu&0;w-AFv~3Fbf@fY9CMI>>gjO&njFLII%? zguJ{eJcW9aPzZb6#FmIgV37xp=4ypDxT4{f1V)CP>$2Q?o$!l@hIjHzMIM+P<9y{M zwM@HX_ZtfQy1W;aIL0-;9WLLxZ4)k5YBoFj0A*J=EyeCv-m8Ui*uI(2>JO||AOJOD z9IfC?ld=OcOm6NJAV4?}6zRVO-m1e#&m}y|cUt^n`d^sS|M@v!0L1KY9ItR;15DX< zG7GT}Bm{1(-n{h__~ti_4rdcOT-C_Gx zycE9Q3;@}v?uDP3u>biiAQK-Ka_&{}0R)15u)Nn|&gN_-=*I`D#?w5H-QA4<4`%6m znXcvyUCCpve_BxdjhubIqn_~-2hGJgCg~dog3p|8Z_jMJ`))S#;tzL>IReBf8pu3_ z0_cr`fP-9eX|b{Qc15h1en|O5Rg6aLXmTd^+&lmTI~gjs)X`YI_gFpQzgq~9w*p@3 zjzk)30NC&Y?f{Zc#b{y$pxISn;*`xiX!7A=88@@tNt4K-TJ z9H&u!U;hPGd_{v5`=taWe+4U^i2}yTr+?uD&(Ju*EXO-`KjG)TcMf41?)ZGrXb51> zep*+;oIrwGgKxTjNo`)GgCEZ?`hJ6U-r(6;J2bozwdI3MSK8IT3i(=u@&GZ@@a;te0IfCzt7=9$>iKzw5{gtdVLt*El@U&c2Y1>I|0K*gpZ_=FEGc!k*UU=$1enm3kw;W2Up|5l~a`boAKkd z3SW!e0wN=|j%92f`EgXW=K<~K;zWyvr^=^26|0_JJD2V+y%Lv@h*aEsrL;HiQHhkE z7}PyMTWiN7QmFyCq|D zx^G|tum|h zLpSE@qs1^%h);~A@gpdf`Tp!strVHde+ahk?`oD>B9vuZC)xwg*Vy%_6&Dm#4eF@$ zt3{o4DsOJ^&3FVMT&zrz%twP@N-j)Hk)#0R&yYWRfNozAHTgmtMejf4Y2mz=N|^=s z(N($p)+r&(>8_0IWtRw0aC95Z*2>+ibKZg?tiTsXg}NQRIP>t(AM^UF8%PwBhJcA$heF- zDR?hOFg5yl_^m-^+8!?Nx#${Iie2%f>(_mLdCgEf3Ezfg3Gmd z?^Z7@BlA4_&W`_xi4eoV<++TE#5Fnaj{`Zl7YG=F;V6m#c<|peZcKeRB*dVU3vS+} zOg##ffNv!$ZM1vHc+T@7IpAP7$d`!1I(sCK{>tKr9%TOGi%!i_p1!#>pF7JLdOpI& zgr#x`=UQ)D+dzD(2bL{|$&Ek3Y4lh9V`FgZIkJ77~;FysFWt@^o8~TG83w*6`0K=DuUOw z^%vbG`Osp) z_&C_k{wfwsyCm%$@-Lxt=1&46qVa}^Wb}`>|300orURq1xB6c~=Kz_wis3d*^7}~( zeD4Vxv}j7{{}N59ffh|^rLVL5m(i5$fn09>OEjfEZs6tZ6KZ7lA5nAv(HVjjX&*H9 z{}N4Ug@*Pi)Lhy8RV4 z_~W`o7;+Gz%^t`i8S<+UPoa%?gv>j&UnS@VmUQBK=k1RCF!%jA;)3^C0GkdHPxMR3A=EO9073;UqUWeIb>id?IF!UeI)kB1;WABU38{j<;5(4yqYoZ(;q{@52r zmm&+U9WIs~+asjlyCrq10KWsz=^?#nNKc-8VDVv9=V32G7HIXBRR2c%J?PZdT3O8$5zsRe3{wk04_VIYMZ-2BdCthkCac^z_5Fn zr6$!M*~A~XD)_8)?@0}CKMG^W;o?fc*Vmg3k{z{QAQrI0#7|AjhkZQs9%a0gPvyN5 zsIdlKe%Wl2QbLFEQEU)*{uX{E>-tvo70aX(gRGRKp=tqy<3w#+8M$p>ieE$h3kv~8 zeQzI6UZ3p3v#eq!UCFo<{FmY=m=D}5Rm{?y#p}$8|L`60JEw|VP;@%+-4E#;V+60t z7v=4GW>df|Ld>M96A{&w8>{FRgl3T`O7Yugl<0{BIfgvp`@A$onfF+_@afxFUtMk&b zN_08%7ytIHk21FVPsXIueI2U}hw)X8EDU4ag(0AhMJNBYBrW1ZF?#unh|WtUn1gL? zk69JwVo|coUd}=9?mt>Uy425G2PGsXTx|pW$9MW|iQOV-m(98~@99$lF5@|YbB+L5 z@9+1~TLcgaT^86w-IEMOJ?mfCmcqOTh4uu&KgqbD9tngJE59-GKC%uBSihy@&0bPa zXY1@-+NpFsyi$NPe!2QZ8?)1$!7Pi_a?z5C$Jw3B^Cm4W^O*zB9%VI!E%HV=hiqpC z5#vj*AxB|w$C}7BzuV%tcqZbfeRq*<+}D>JH$Wppe^lax{Kkk_b%JGm^N7Vp`jVia z61*oAm2;WQqDEfxNLgMBd6BGFskqwpz@r+~VF9hZb-xPFYn%MFM#PyDZ)ho=SXM~j zX${1esz*-bD=qn~R3*aUi6up~93*B>^w$xX6q$0|N2OBvy>6}}VxIk3oq^Qh;j6oE z?~zJG(8XLJ;?v`1h(hd1xlG*kyN;_{dG#HmOa!iW=hqguS8mQty``>utn_6o~oOCe~>u65Bj**&>3o0SvG=Q zK4cmL^mVNqLOy z9Glu!s{cqKO(#qRdYQ)|urAI@Z%ecIkXqZNQD@(dfPp4<>{1eL9Mo46R?Q#X%m3gT zU;^_CRa$mDy5eUQf}ymVk~VZKYe`Cd7ABZ8DsRc;6~k*7*1HJmLL@P`T*>~pU2CFx zI{Np+Rn3nH6A#B0$JI#FtP<$K@|tertIOY%!O2l{Sh&)>9Mmy4@M~K&X!ymrTTDBY zcdMa$eacg(e5^?@o`~wQNB3-(YwrZ!^15+p)o`U^a89L0H&eb@Snv}wl-gkKjd8B) zIrM?Lu^zAzS{*XF-g3*2d)V?D#P3?J`Fh)E>A1vc;SbbUP0OR>qCxVE#s(;L1UU=V zb3{KSaFcy=8B9er?tf-RW0wjjraU#>7b~bu3}!0+yJu6r9UR_qZ!s6a>%hdSd8zMm zDIRbphdIgy!s)7r;tjUg~_@dp-nu^Ai|F8DmGpecWTN}3_ zR^ky66)84Q5Ks`15{js(bP$k^g{=idK4zrUU_-mmW%mk)eMcJ^Ln?z!fg&oiGDIQp*nRgoy<=_3Vqfv}Z^;mFy? zWuWzkWLJ=tOU-h?Ht6J|1jxGhp)Ff5{SbDUKf`Bo3V>^%@3jT@aJJWZ;Fq#lvI z|43*UT->vfD)sU8Gx?qEwbh~bn?gv`rhwfhu%=mc8&^ozu>fX(NiZ6CGLn158MNUU zvi{)$X~6bp)l(iJ4{qJlCpH{RS&#X+EWv)v>`b$%d7Rp~e84p?)?@Gn@(ti3 zqnN6!+lFH{a0!x&H|5>N7l9Goq@P+#B$G0`te{C7TA_IbUi{wY zF32lrKc~x7<=XagysN zeG?m8>rXlQ&TXX$NA=z`JGL#$FOQ8vQc}k$BT9#{*BI`>VB}Ww-pF^tu|Q;7Par)& zxhy)hSB=KpqdfWNBsJlk!@islwz3$u1HruI`FsJa2Z9fKyP|A}@UjG3r60bKU2Ds= zuKMucnz6(`e76-lg988pMlSWWJ_#Uj7%idItrFzlgPcj`;LXHLWibS`;xzU9dP+nS z4G;E8rI4}My`w3>v^SgkGHlKqVW*JK^0F=-cmVE;MCt#)9k-Nfk;b}qd*1vnA=SU) zWX|ShLGl0FVO3tu92BaDGbbGt0zE4NGoD>IoMgrYysobrWM^R;L!B5+eEV%|BEEfNUF5m_v9UwJMh?e6$7Iy*@jj%oOb(a* z+3lde`N6|5D2`+4Cl7xsY$YB{Pkh$@w&y24cr2?mqN$ot{9OiOQDXU`-7*At1rLmmN+aC$^Gm#JcUkOT)g7&dOw_I{7`Nh;=|u+ z0hkbX5;`eK*P?q#YlXD`w-&%KhIWDng|U_72tzIFD(0kb%!jZ#N7SrO7~l8b?ibvr z6@>YmOb0**Y%ck&((^_|kdJs1vmz~wpc|`$Vh>Q)Gi}Kta2+xZsB!=fGYh&Il4g6k z&#MZV&+}!T80zH=k&KU;|7Sj}?P@tpLic*_rS-qmmEwHEVM1~kmS?wDuuBj6k$$`9 zc?n=b$1!r+Y3j2hYQplh{(UF|GGDEs_%6QO3jrM|9T*VE;^defL};kXa6H-mCHL)C z+)o1KEH#8DKX4d4j7^IzljEA=4%D-lt>js^k7})^!eHF6kKJOu86NQ9q$ETYJp$0nc*+GCRIYdUSyM@~xX&^|ydy>=jY+I2$ zc(9o~8$|7#emeb@c5CqgYsp_+WwB7Ziqdw9fHM}E|~Ft)-v=?Lcx7$(J8;|yT7i#ecwd~Xrw zJHIcAzHw=^yM%--d|Q6RpKKL=2zS7lw?aaEriT*Cqd+&u(L$-G!iLfK%dEX!58MXJ zjp&{dz=ciXSNrQJEGB#yw*16kmn}TYQetnng_L{&JfGH6Mf3VW>~>>H1n>PaQdI84=|~$kt#Z;1OU8=_zf|Zhia-Y~>E&)cyaWv?PvJSaDRkvN$4`SH?>CRkUi{PfO;TnB@s|0c7A4w4O+aL)56-TZ7X_`XZ{R$ZRc#JQD zq3AIc-`G)yu&pbT|1K*WmK#E*BP%2isJW6MiCmKGpos-bmDvZDxmAf7(7gQKp+6m^sKVFLw6uZfG3v^fiEJEKy0Pky8bQkDKlfOibYL~EChwSw9_L{5UEv-gH&3%GS%VbU!VlOqNQ*O^IJvwez@vC+X! zU&7emv{RnKZw_giIN!QUC()CsGb)oSAM&ga1l=p5T+LJOB5E2U)iLRrHeIbLRxw}X z2E|o|n&0|L)+Ncs1gDSK)ue0rnSF7-F&IxNBJzI;(kXUy9gng0>&S79*p(%8B-!f3 zjlt@n3l?_*b6dSWgYzfI@75(E0*wjLNL-!FR#3w{RaZ((=(^1JO*&?v%PwGc4c$7` z;)T1y>xTPSB(f_nh=9*w^}*`2p;3`vnJ^&x@`coE_26R*4Yb#7&~{_P0>Oljw*X+b z+&ZHenIg7j%o*oM6~3PdVDnR-UF+hoOnuNjMb<;xxdAX3DdO`ozom`_c?Sghn3TIo zTN*!A7^{(agl-A4S&4Z=h0uq$l#G@EykpagE@w!2bW^dbj+5nvEOGAjer^Ee#yLw} z!1kaFLP|;tW)$5x{jJ|GUf(-Df7OugeA=?U9^IpK1-@}wHlGLTpLV0Ctl@bwaGij* z!x|Y5*+~Z@R<@4&Zuc{Yld0lG{zZosSEoTFiecF1_w&6`QhOyK`n1Sn^HODpLM#PT zyBwvZOAZJPY{xd3abr6#BOjmoM?Ue8?u&HPEA*2=jwWP%LQ~7D?j=sf|IN?!Xa$^L zV_0vn9xRgQ%Ncs3gl*~~JRcm`dR#!Q-nQh-p?jg5vfSJnqnk{;w+3sXke5z(tWx18 z;;du$jKEZD(NZ^`K3TDZBj;BseoI-cPp2PjwmFNvKe(qM10Ldc?4BuZ##IU^zK~q{ z+(Tvrz8R7 zXMvdp(=+eXY{T5_3UG6rfc5P-weO3FK`~z3`p`hRIep<$MDuu zTCuC8$v+W1SJXo9m~?X`e`uwRaN~iB-@PGk?plYj0*GGp-lxRKps*QB=>Q=H%a4?+ z)j>$>c~_;Me$46stxq9c0eEwjGVk=u4Ur+>WBjYu8s1I+={wo9Qpc3he<1Nd|Iya4l&gE`G{yD46$nptgoJ%Mjwgx)! zO+1W~7q}$ADvFB8w-i?a>PYY`qGgMaL6*aV3T;LMUzO8lCcR0*LvGq_df*X9=k{*z zwGh*7TAsc4_a-z9_E?`ZiC{S96o^sn$fUBUAgD>UMKy))qh{9YoQpp&d`D9IkZJyd z;dqxbzL+pVR*AWVw6X3x@?U_)-~Sd4ank+PSv@!YP#4MPB&sdvdrUm*DTV95Do*?O zhoc+xef|07b`Goh|Fe1i8u3hHPAuXtE`8x2@yS1?g7Y&cT~3nIRXpTh#X0{2s{Kbk zGxJ{ap-`yAv+;AdXoy~%me*Ic^VD6>)ZyLR(#c@U3 zsFS}Fb^hz}g&m3Q23=#>oZq&F6LYaRct=kLG*k57E`aUOE!@9+IsF@^)n5b2X~cvN ztD1|WLLIJhk^@g`2@S^-{YC=yl^Cb*E136ZF1%3ZKd`aXIahgjKpgr)c%;I=OwF!6bsXR??XZ2`ze?K1?Z_Vg?;S+`9~p;*gm-VQ9pzYC z=Ey$3WsLLC(Hc|yBam)`|ELf<_BRADkz+eD+CCDmcaYyb;gY`C5-%;jGruz!!5xrz zw@MfX5FgjK3#HsGUdIjm_WX#L9qHz$VT?1J_~yflARXS%%Xg3Vl>7pSs^@cfL(30s zc6?Ra`OLGZuWOeR(a%(Wv3wEX9n@7*!hoB@0tns>WW@chD{(;1TlzQNV(@JbWhPl_ z3T==6wEiS?>|Ac|7n7Vf!z)eThd%0^=}s(;au=8i!Yfo#=lu9I40G^ z88`k%k%rd)cEPEg3p6EU0KYRI&S&c399UASe1A?orw%h<4}~LV*FTm3btXYW#gYAL zmMS2MYR39+7&rz?J8gr%N>3sP1sMh3T~*MfUgea)4?H9%&c1U;nZchsbc z9i)?b(t*Y4K{r<-9MLYiq=qRHC%ARLek%n5@cpKjnMQr+M8RLnBLV>lF1}?#cZ+ zJ>g}%3q!u~4m(s#_2-96tP!JU{BB^*gGHvi$k$5;I3yWM0=!U6PtbTwws-6|ODl=9 zaCvb5xkH5s*WvnPTd$8aO1WnL(Cq{~C~2f9SD>Wuc@jm+p7(6zB-byk_fg(`{=#@! zXYylC<6o&8x0Z<<08X!5@oOoJY7?#Vo%U;(e$B=dT@rAkHOD{6Sl{!j1uuB)nMqyt zknCY_j=Ry@XDVe5YVeoCRwqkt=e53xIjcOlA3!7*0?{vpSAX*sEF|s$QUewfy?b;x z(E;p_fg?Wpk_yoQZVCSK7S5P*_y%5x9&GdwXazJQauxFqXgP`zjH9`LJ)_vGmg&pzu(U1?BW6?DT~Xp zLJ_QT1QfUbs9;|ffy15d=z@_e!$P%7v|@Rp#pl%!>jv`;W$h;{V_H#MRvjNVqNE5tP zlW}w*14rG)Al=G``G>GCD?*nDc=z%F9MFBLR`sB9;CWz9V4{c4XZN3D{=s3{cm z!u)Nz?o!INXdnDDFGgy#?{fZd$zg(;y-^1tW0@fe0JlNVqaL8oF-oGb3Td0G^9N|w zP+0NeU~b>*pY4^Od)KXu8?a@KesB_pmjgA~y8bQN(v9{BA@8Y9o9|leah%sbH-6^2 z%3r1wq27jmfUOQoaUXx=+<{~oNRZ+i>>k~^GleU$fuUII>aQft5h$N0`H^2P0Ei&| zRN(m>bX?9BB`jJX?bM)4)t>vd?**-0_|s+2 zZ*A}Ze9Rs?kh79A*mH-J*FQB=mr+q-x;0E#f=R=YfZC%puO{IT?~l=Eaabt5T-gut z$3gw=cS~W(BUB7=Jm2wX22M1$N`kc+}^O-)G9aoqLNuVw&CWLCe=?&}DrZ5nO1 z6tWlJ_^eSk{TTCGwJb&jQP$W43SSS+fO|G<{%NcAS&w7gF=Hpr^123R9iHo)t&}jsqTT5p+Bo|1 zV?WIOMQa~aTUnkczTBsL$Bq(w%e>5vc@pg?%8YfIU_)t-^qh}cak86*<(1-2&9_-4GnZx-mMy845oHOs$ z@9W1JJTn+P%uu#XK1QD{^-l`c{{W=2RYXoDPHGx+YqU-(5kXLFWfdV=1^0(g->_PO zTUr2lE&ZU9#@13td$mC7@`6l?idtQm8n~ZFnVhCcnuxRr@{2y5FzQvXOC1>oEP-&} zdbpvAa1yLttL$vnA}rciS7BAxKU{C7?`EQuH%Ra0V07Vd(xw+~euc1&`-xVcHe&j`4KMtiAv(r;O408#d^0B> z8&jXA;i;tZCi-X}mvmTgt7wW$VQlDDgkeQI;mtICgd3;ql7T7Uhj^Hn0fr9+n*>6ruda5iGgp&IdPvzo!lt?eXIg@Djt;BY%v@wf;0n%2Ar@x5XTQM3GG+5NHwTZr(U75t zhK1?Xq=mE`vqZQ=Nj@?HU5KJUFYpL1?5_B>+7{bTGyDZpUNdioLO=ry_s^f?(2I^-J0?hJ(k z>GV#gpp%AJBiP5qCsAElVShaPK4Am(bcO>r0_^)5rg?>(4&ES`KFRfeG!OK&_bb?R zGlh)IP-g0qiXuNr=px?#2(=dLaR4bj$vi6fG2qnKMZ|_nsjZvyfy9bc1Vd217;+^OG+^Q0HX3t}2$VZB->y*xVzmnj+v=K06LchK*eAE(t5xwwOd&*M98* zAtfrzxvBX1eHV)E7<@RuHtv1fhQK)klP3!090FWYpaVWP=AVo5Vbc5-@-3TxI9!?5z^vO6`A4d)8i&ZNKc$tfr;v$g%UJD3iLY>yBjctK zoCn)j@0aAPC@|CA{U~ zLhm*In~hNSaSwd&U@(w2Dl2U=S}>XGw=ubw5%ZE@htIJ|wJ@!g9`Lh*Zw`AHC?8oB z>S}O@ZYHM5=h}KUn@k%A`i8l$aQ1@^9m2qX40j~;aJ_o=psI9l@j)Z2D|d`svHGN> zYT!s??)6$r`*`+vV_WbRoeQ^e(tF784!Guh5`{QYKQKW|dD}i@@rD4w=eevGuu6x{ z4LK@l2qjiW#|W!pS*z0?MBhR83Xc0Rv@S;!=PxdN$o1Q5X7WOblQ*)Lz^#w5v|{EL zv}{d0RF)l@cZn|z-8*ymcp;{;bX5#o=ALGBLoo1OvaRP>@Fe}aCiiF7r6g*MaJCzG zz#N>j1V)*MeVos)*^F%n9LcY>%{Z>SynsdpEqpdWp#@c2LxaCEH=K~~q~o(gZ5e(S zwr`cTpI(k_o!k$2ptAfXqs(L8cBaFk7zq4co&{fWQj-F?;|twaB@oereyouT+@ed` zQyods!;2-}N+(mv^gX_Iir=IoqWEV&60>-YW7+}F4+|;~PRZ6ib7dE=df*5)^-j|^ z9ktG0Z-Q9aczf^d{w<%9g6!ETSz$p}+wJA935Hmsx3Pb`lYrXu5L>k^yhn&KH$qM`g?%h zKU8-&)iy^YDec(h|Lv#uFc4ahW@?U*uzmdD0Q zkN48PaeeY_D)-Xu-dko9REJg#$y(blmVRoGwww0T|5Gpv(Jo@AIt20!UU<_rfwyNX zTq)2RWG_xIZDC2lP1&GhgGa%e_J(G$JD+R$He)3fAK#v|AGi-f?-o`2L%K#f%*E>7X$HJIIP!J9!YR|)}a)V231Fk_f&c@6Q4c!m|=V4f+ZE0!dz{`o-Vhp&^ z;f1TF>;Ap1eAI7MlKeud%lxN(_N00kvTP;!m0qALi+m-79|W^p76m}qIer7$$V_c& z8fO<^7dQYF>7vRKREmGj2W1AvOS5GG3-e-~6u;rUSQ6bf<%II}(oJ7&;+U-T;0P-{ zc6}3!J@FpV0t0Zk#m5tM5mwf#L|^%z!HzMjFW#G?*V)hmiK-ENU1GRRcOFSt8SA<(<7!|6o%^ZBge6>p3FPje%JMZcHuCD@O4iQ#Fd(Db7!J>Ca6bKfE;laNyWKba~ zB}rsspQzq>Rj5Dq)DRLbA4|ySZ2U^og))tGB^Xi!=vJOGly)c9LiyWX+r4AVwj|dj zA$$g7B_*Dhnrui#PF5Q;huW5-({UQu85diJnhcZsJcPW| zZ!tWB1ZTI-by3CAC<XandxgI6)rd5v!MQroX6QqhpPe^ z!uBayvl3makpy91^Y@jE+vDuJqhUqf-$P^FHhU~hyF)X(gm4N9A7JsYc^89}1fjz!xNG7<#U{CP6mR%ZFG7g>WFBue~|@ z;oJ}R#Ve;8ooB&^UfB9fZcU_^;|@FAg%RWgF7X}t3ZI%>AbLI1uhqVD1 z`oKa;^?A6;me79BY&|j5q|bSJwDfyG(2CPpf?^JixC+l;5dec9$-}B@=MJb_2P_NG z(EzjL2$#i~tM4(1gb$_hxMFYvPAH&6=B7Dq(Vx0*lZuUqkMXn_n!dws$>xP;&^t|B z3-|hzGv$zQlW9}w1Zi8S%z?0s1;BA5^SN*ju6e2T_!G054-J(Uzn+U91h_U51y_#K8ZSYWIRqwyPCzDuTfmKX>K3S|=|x4%*74MLY;YJqVphhXo> zv$*s-jA~;zf|TwK?e4vZSf9P$9A4abBLhs|JV|fq*z92^=T~2yA7*lR_q@O#QAz;@ z+Oh8+qMS&|lrg}&<=XF2$J=ayE?V@q`cZG!$X$g5$*QFJp;2WOeb-0X9%`+VIgHZH zT?82N#&st#Nfds&(?u=0@IVBV1{b?!4e6D zpk13{2#I1T!-ATNsP=^(g=H{;GS~bMfzSjkd9s zY+aL#l?G3>lEWnrh<^zAzrsg>bE@rcx)mYo`*M%xE%f{86sojje-fIkKh5z~1gaQ; zCScDlu7|=HFV}fz$y%We*=tQtv7{@=V`vM*@};EJ@Qbv29Pa z#ush?G|KtLjU^|5i}NUgp0zfi5lYh`TQ=yL;_pZ*DH?(f=eC#=;7H}-t82T)SP0fP z+nb8Z1sWQVp6Ha#{Q)YDWYY-A6op8)je&tr`~0Fh_ega%U18K#%6eM zcf34rPdtfE&l2B&Js?S5^C-5Vdht)-g)dJZKy+`~fB7HEG z@J=^~o8rkMoN_G^dLDr|PbG7auatf4T-CJ13P($iQ($l=s1m$JD|U9MT9AUbY5VWz z?>KSF#M!;>``nG3_u3s^N)Br4pT2Qld`qnCsF$wuyMU(0Hv_=f@4EX3jnr5TVryUANJem=tZ zo}>Usl}pN$vsSfmAa1WeO<+HBI*MF0?7pq#zTQ)?X_&tMQV2qQaCQD2`%?Pc+*|_` zQv=4Gy1L#KUMBSCDlu>{unX-u>ZVN@8LF_0p05~IDhwg3(a>KfszA0CqNcMtF~S%O z>)YKklXvpy_?cO;mahY6W*Ajk`}x~ER;#_)wZ5)>?`TK#^*_0=Q_=fm&IUy1JNJ|5 zlNF|~a~3NzN>?A=ZD1TD77@{x1~vGFe6@4}6s%g3K#l!rqSEcY-@nhX6dHFGhCVAg zPGMZacE_S8i6H{HPu0`#SEO0W`lr+54qY$VG*CkvAr}m8+cFgGK22xnP+z6_GK71K z9T`8LZ9BWNQ#z@#srfoF#8$lDEPl}Sff@R}^It5pnKbp!NCR%GRc_HvJ`x$=HJ~wR zo)4hlpl=iwt0^xoSeGu}t7{YPS$b_ubt-SyLi$R9$KIPOn5^NN)yh1vgd&VEH#NHy0DFx)t>rZCNRe)w>`u$00oo^PE~Ciy@+^DH&!K!(sug%0B& zD^Ds;g(1_mV{fHv7hpqAA*H@jRxvHJ;;DH;>XviF$B#ZKQ#9ves|7r8E}LrgzbKpC zrbWIbM5JTtM>a=eqdibai6U$wcu=1FR!J+_!ED$pZX>7!EI%v7xuc0DgNk9ys)1Ben$ zeVwlPvFHZLMepX_E{72j55bw0C9b+L>i zO|zkMlHs>Mz zFS>EmV}4LCNDa{REN6o-bleUrxbX!maNuA^X=-ylA%jy0#*;!qDlND`&Q8OdKC!jo z1riKu?FHbSJC>JJhs`WoX9(Vuul;-FeS*yykrX8vCKV&oRqOk1EwQv=Nt6GGdrgwo zr{~pj?}J{ab1)ZujXt+n;84)=J>b6b(#nuoj+YxQPr7f}y67Fdy1)5Q+9|)UPVk33 zzFgcbv)7ldOlLkHfsq&yWGxkg}Sr{`~}Z5?4HLCnGT!l znsiH|2u~1Ymmn}z9N`$v)3@QtmtdVf_Xq}tneeRKIK^b%pV5aK2&RTCo|AbXcq}mz zsD*iuflwX3;nTp#wpT7~Ux&BxkE`Y@5i^8JaU-?L0fKYvcf#@n*EGAU>#4#+%>8;n3lVd>=`w#W@rl+&zodEh}#KD6GBBa-UOID5sZZ*DdqtF2k4Ml|vpnY(KSSL=Jr@e581i(kDk5(+xXb{~82YxUvxR zA~W%dt~OvQXfeS8+w1KGGxgac29VUZ@S92!o+TRVt=5DU7rxyCte{sX630s- zX@L;-7rW7+kjt>(kT;b-guokiNY4IHDC|kFT^_WK$nsKNE3edRFxhlxW!8*_!6Md* ziY~iHOEski4dA%r+IzLiY>JtKF|^?cQjY!kkc_1ay)>hmKqZ!zkW!xu;S0$W`~vkM ziW)n63qa(Alc#xvXCat7-8qRG?v^K-6t6F9RLC5Tv}g!j=R?E@!xD#hV+EZyffkQv z)1PP}4GA$rt^$m3{WtDq_MAYfMgy>#pAI>+e7mnTaZ39WiLHU6bHQaO>Q=h?ShR9z zovEQzZ;yCaw4{V}rcuA_kqv}g5|xlStB>PMC*QvHbdEs-Xs+bVG)m|Rwhu-HOBsBX z;t4;>c44P`-0!fZd$~98eKo$1>$o#|lK6Q(2>fR`=H}Q*;I@^$XR}8&x36;5*|2+H zyz~&g;%+ys&@SK+=LI^GB&1H8sT!g#7$*|P+~g>yaJ;pVPY=BR$BE<_tS}PzEe)gMpNvXBd$!t z(1$*bpK%?+RSQpY(l29P5_14`NQwQVTo z!;8QM(XMT6Gf6ciheJu6{q-a2pI8Zfe<<W92+b%Yq%zVHbJQ5_Rrnf1!LQodEJQIL}R2plik5f~Y|JLfS zBG9P1nAR~e<2?N&V}9+GP%ZV9e$3%LXLkq?t{d?IMG#yZY1P~9b#yU^MG-SflJwt{1cwHazJmZ#p`#R{_#qrv|20T13L3LWte*tL$- zCzFl_qe!!P;2`zS9>|`rmlak+0O=tldU1qDG2!&~W3}h+r0e&Tsi4+vApR-e$Wu|+ zil;DlsyZS_eoni;wVwdDVXvH>8mdXzOW&JMp+rp{-LMQoLF|Lw3*({Ep~3dortF0V z1Lt0y0Ux3}X)haw;Tm3J1veAvs426c*l$8q2S92XxW_ZN$@pOEV&GZS;s@Dp!P;t5 zirK;;B{HXy^rYls*<^SrETJ8e`XPx^qI%O4vCv}ZHzojZ9n=impv@ykC$=v!3rEAc zm$YySm<@GEM@H!(A$fjCp4C^_c1Q??Ui=iA6cR+PJY}Cew7Vj)7#phMzfH^Hb|E}l z&pwRN%ROcrrDH>k(5}OynPzH}Wu+jVppK%WdaCD`sjJC4$Wr{mGsX^CW5suim6G(n z_a@S@NM66g7XD`qJjB-qe&v1F;9#zL=rdP^wa{B5^>{kvmh|YpjfKigW`D3Z5-O&6Vzc4JX{zo zEY9Z}GI~bpEi#X<=4X`U-h))NeT4m1@a=!ac{yIUx+2ty19{d3+mn_lQUXJ*Y! z#A7^dkK0?8_-GwPl(4swh>@X@5z0Z|NAiKC(H`C8AK6d;n5|+X@;~(JI_w47`7b7k z?kiNdG42M<-4kJgC=DfSyU;hSCHdc1LxQ_k_rkSSaPykC6~q3lXTEuow9HcIx``FI z+o8pQ%!*z%BRFs0)6ddihg4x(Xuy%RhCbF7Ot%?ouv>vrGJL)JA(*A^n80DF2)lt= zR>A90lElGaJn)B}a^dXmKM8N>i-1@P&!v>5VepvK1I?@`?F`Q!FDABtDh_~-4?mG4 zK{YM&`Ra_V7P0nGJR9DI*lv|W;7AAEEVVQ8)ysRV{Q@!{0d9vRmLcepX{#_)_8r{0`~OeqMlB?v+xa!@Q

OZ_i>b^O}#`GT{d0NcR$vOBl8 zPq*%n{9au!FvdIW?Uups8Xl4xU0X|x{PB!=WPI1I{gd}^Ydma8CQ@DN-BI!><=~(? zpZJcVcqvL#A8$`4up$*oU;gXN+04L3RW@F4T0 z4WXn-<0jv4xmHN`XtVCv2SsBqNkg`HiJQf_z1xP$Z#C@Qs5PX!Ctoq_BIbstH{LAZyow}UClv(3Lq8+Y9^5g zizo3|hCEAF|MY-IpTT-uu~NP=B&g50D3Vy+k(4c&6Qj-j=&_vz@(qYxFnu7(*gzLh z{$458;w1Kviql!nH`8V*d1oMr8C1RH)}TC2zG+V8T4{Z?|Hq^v#4Djp;F=TUci`g6n~tO621`Am@~axf_Ef9NIqJzmeoIER+N8YFls(%71zchaFH(% z>t5)t@hQ{{8Y^scI2)jLATqj*Zzi=E{>RE8t-2oMAT- zWEa{P_S&umZaWjV#8B=PRz?XNus#2ap6FkI{YF&{b8y>8b$^~*>^8rYS?T4!*|aA< zG#%v#xAFtQtBYaEcr1Rb<_h5Lp9$tW1$!p~)>HP6%7JlC9F)Lh<=Ex%=*)+Af*hLW zRnc;b1@&(in+ollThAkz(?jxpKIDn>7O=iP^ za>->W$?=Nqi=|o}j4cj?f8qs4h0p@@)$J?ADfCCkm#dlFAEH-q)9w_io>2Pc4oeog zZ%(qH>P@;g5{`Q|`X#+R$Ff*~Hh%ulH-aA+7;Cro?VC!~x{-PjFn>rbs;H{jGgdJ|>I2Yh%reB4rn8_kPo>#bk4 zxxFs*1-0~y>7*3?gO2>4JY^r_-ClbBsMn5APMvA}UnQAj9JK?RGR!^2!>P}z zQ3nwFOXo9^e^aztDam;fHv2t*Q#ovu>3^^{R Entering new LLMChain chain...\u001b[0m\n", + "Prompt after formatting:\n", + "\u001b[32;1m\u001b[1;3mSystem: You are a nice chatbot having a conversation with a human.\n", + "Human: hi\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'question': 'hi',\n", + " 'chat_history': [HumanMessage(content='hi', additional_kwargs={}, example=False),\n", + " AIMessage(content='Hello! How can I assist you today?', additional_kwargs={}, example=False)],\n", + " 'text': 'Hello! How can I assist you today?'}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from langchain.prompts import (\n", + " ChatPromptTemplate,\n", + " MessagesPlaceholder,\n", + " SystemMessagePromptTemplate,\n", + " HumanMessagePromptTemplate,\n", + ")\n", + "from langchain.chains import LLMChain\n", + "\n", + "# LLM\n", + "llm = ChatOpenAI()\n", + "\n", + "# Prompt \n", + "prompt = ChatPromptTemplate(\n", + " messages=[\n", + " SystemMessagePromptTemplate.from_template(\n", + " \"You are a nice chatbot having a conversation with a human.\"\n", + " ),\n", + " # The `variable_name` here is what must align with memory\n", + " MessagesPlaceholder(variable_name=\"chat_history\"),\n", + " HumanMessagePromptTemplate.from_template(\"{question}\")\n", + " ]\n", + ")\n", + "\n", + "# Notice that we `return_messages=True` to fit into the MessagesPlaceholder\n", + "# Notice that `\"chat_history\"` aligns with the MessagesPlaceholder name\n", + "memory = ConversationBufferMemory(memory_key=\"chat_history\",return_messages=True)\n", + "conversation = LLMChain(\n", + " llm=llm,\n", + " prompt=prompt,\n", + " verbose=True,\n", + " memory=memory\n", + ")\n", + "\n", + "# Notice that we just pass in the `question` variables - `chat_history` gets populated by memory\n", + "conversation({\"question\": \"hi\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "eb0cadfd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", + "Prompt after formatting:\n", + "\u001b[32;1m\u001b[1;3mSystem: You are a nice chatbot having a conversation with a human.\n", + "Human: hi\n", + "AI: Hello! How can I assist you today?\n", + "Human: Translate this sentence from English to French: I love programming.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'question': 'Translate this sentence from English to French: I love programming.',\n", + " 'chat_history': [HumanMessage(content='hi', additional_kwargs={}, example=False),\n", + " AIMessage(content='Hello! How can I assist you today?', additional_kwargs={}, example=False),\n", + " HumanMessage(content='Translate this sentence from English to French: I love programming.', additional_kwargs={}, example=False),\n", + " AIMessage(content='Sure! The translation of \"I love programming\" from English to French is \"J\\'adore programmer.\"', additional_kwargs={}, example=False)],\n", + " 'text': 'Sure! The translation of \"I love programming\" from English to French is \"J\\'adore programmer.\"'}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "conversation({\"question\": \"Translate this sentence from English to French: I love programming.\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c56d6219", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", + "Prompt after formatting:\n", + "\u001b[32;1m\u001b[1;3mSystem: You are a nice chatbot having a conversation with a human.\n", + "Human: hi\n", + "AI: Hello! How can I assist you today?\n", + "Human: Translate this sentence from English to French: I love programming.\n", + "AI: Sure! The translation of \"I love programming\" from English to French is \"J'adore programmer.\"\n", + "Human: Now translate the sentence to German.\u001b[0m\n", + "\n", + "\u001b[1m> Finished chain.\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "{'question': 'Now translate the sentence to German.',\n", + " 'chat_history': [HumanMessage(content='hi', additional_kwargs={}, example=False),\n", + " AIMessage(content='Hello! How can I assist you today?', additional_kwargs={}, example=False),\n", + " HumanMessage(content='Translate this sentence from English to French: I love programming.', additional_kwargs={}, example=False),\n", + " AIMessage(content='Sure! The translation of \"I love programming\" from English to French is \"J\\'adore programmer.\"', additional_kwargs={}, example=False),\n", + " HumanMessage(content='Now translate the sentence to German.', additional_kwargs={}, example=False),\n", + " AIMessage(content='Certainly! The translation of \"I love programming\" from English to German is \"Ich liebe das Programmieren.\"', additional_kwargs={}, example=False)],\n", + " 'text': 'Certainly! The translation of \"I love programming\" from English to German is \"Ich liebe das Programmieren.\"'}" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "conversation({\"question\": \"Now translate the sentence to German.\"})" + ] + }, + { + "cell_type": "markdown", + "id": "43858489", + "metadata": {}, + "source": [ + "We can see the chat history preserved in the prompt using the [LangSmith trace](https://smith.langchain.com/public/dce34c57-21ca-4283-9020-a8e0d78a59de/r).\n", + "\n", + "![Image description](/img/chat_use_case_2.png)" + ] + }, + { + "cell_type": "markdown", + "id": "3f35cc16", + "metadata": {}, + "source": [ + "## Chat Retrieval\n", + "\n", + "Now, suppose we want to [chat with documents](https://twitter.com/mayowaoshin/status/1640385062708424708?s=20) or some other source of knowledge.\n", + "\n", + "This is popular use case, combining chat with [document retrieval](/docs/use_cases/question_answering).\n", + "\n", + "It allows us to chat with specific information that the model was not trained on." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a01e7b5", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install tiktoken chromadb" + ] + }, + { + "cell_type": "markdown", + "id": "88e220de", + "metadata": {}, + "source": [ + "Load a blog post." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "1b99b36c", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.document_loaders import WebBaseLoader\n", + "\n", + "loader = WebBaseLoader(\"https://lilianweng.github.io/posts/2023-06-23-agent/\")\n", + "data = loader.load()" + ] + }, + { + "cell_type": "markdown", + "id": "3662ce79", + "metadata": {}, + "source": [ + "Split and store this in a vector." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "058f1541", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.text_splitter import RecursiveCharacterTextSplitter\n", + "\n", + "text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)\n", + "all_splits = text_splitter.split_documents(data)\n", + "\n", + "from langchain.embeddings import OpenAIEmbeddings\n", + "from langchain.vectorstores import Chroma\n", + "\n", + "vectorstore = Chroma.from_documents(documents=all_splits, embedding=OpenAIEmbeddings())" + ] + }, + { + "cell_type": "markdown", + "id": "603d9441", + "metadata": {}, + "source": [ + "Create our memory, as before, but's let's use `ConversationSummaryMemory`." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "f89fd3f5", + "metadata": {}, + "outputs": [], + "source": [ + "memory = ConversationSummaryMemory(llm=llm,memory_key=\"chat_history\",return_messages=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "28503423", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.chat_models import ChatOpenAI\n", + "from langchain.chains import ConversationalRetrievalChain\n", + "\n", + "llm = ChatOpenAI()\n", + "retriever = vectorstore.as_retriever()\n", + "qa = ConversationalRetrievalChain.from_llm(llm, retriever=retriever, memory=memory)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "a9c3bd5e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'question': 'How do agents use Task decomposition?',\n", + " 'chat_history': [SystemMessage(content='', additional_kwargs={})],\n", + " 'answer': 'Agents can use task decomposition in several ways:\\n\\n1. Simple prompting: Agents can use Language Model based prompting to break down tasks into subgoals. For example, by providing prompts like \"Steps for XYZ\" or \"What are the subgoals for achieving XYZ?\", the agent can generate a sequence of smaller steps that lead to the completion of the overall task.\\n\\n2. Task-specific instructions: Agents can be given task-specific instructions to guide their planning process. For example, if the task is to write a novel, the agent can be instructed to \"Write a story outline.\" This provides a high-level structure for the task and helps in breaking it down into smaller components.\\n\\n3. Human inputs: Agents can also take inputs from humans to decompose tasks. This can be done through direct communication or by leveraging human expertise. Humans can provide guidance and insights to help the agent break down complex tasks into manageable subgoals.\\n\\nOverall, task decomposition allows agents to break down large tasks into smaller, more manageable subgoals, enabling them to plan and execute complex tasks efficiently.'}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa(\"How do agents use Task decomposition?\")" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "a29a7713", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'question': 'What are the various ways to implemet memory to support it?',\n", + " 'chat_history': [SystemMessage(content='The human asks how agents use task decomposition. The AI explains that agents can use task decomposition in several ways, including simple prompting, task-specific instructions, and human inputs. Task decomposition allows agents to break down large tasks into smaller, more manageable subgoals, enabling them to plan and execute complex tasks efficiently.', additional_kwargs={})],\n", + " 'answer': 'There are several ways to implement memory to support task decomposition:\\n\\n1. Long-Term Memory Management: This involves storing and organizing information in a long-term memory system. The agent can retrieve past experiences, knowledge, and learned strategies to guide the task decomposition process.\\n\\n2. Internet Access: The agent can use internet access to search for relevant information and gather resources to aid in task decomposition. This allows the agent to access a vast amount of information and utilize it in the decomposition process.\\n\\n3. GPT-3.5 Powered Agents: The agent can delegate simple tasks to GPT-3.5 powered agents. These agents can perform specific tasks or provide assistance in task decomposition, allowing the main agent to focus on higher-level planning and decision-making.\\n\\n4. File Output: The agent can store the results of task decomposition in files or documents. This allows for easy retrieval and reference during the execution of the task.\\n\\nThese memory resources help the agent in organizing and managing information, making informed decisions, and effectively decomposing complex tasks into smaller, manageable subgoals.'}" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qa(\"What are the various ways to implemet memory to support it?\")" + ] + }, + { + "cell_type": "markdown", + "id": "d5e8d5f4", + "metadata": {}, + "source": [ + "Again, we can use the [LangSmith trace](https://smith.langchain.com/public/18460363-0c70-4c72-81c7-3b57253bb58c/r) to explore the prompt structure.\n", + "\n", + "### Going deeper \n", + "\n", + "* Agents, such as the [conversational retrieval agent](/docs/use_cases/question_answering/how_to/conversational_retrieval_agents), can be used for retrieval when necessary while also holding a conversation.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ff8925f-4c21-4680-a9cd-3670ad4852b3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/extras/use_cases/chatbots/index.mdx b/docs/extras/use_cases/chatbots/index.mdx deleted file mode 100644 index 9eee4f5d90..0000000000 --- a/docs/extras/use_cases/chatbots/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Chatbots - -Since language models are good at producing text, that makes them ideal for creating chatbots. -Aside from the base prompts/LLMs, an important concept to know for Chatbots is `memory`. -Most chat based applications rely on remembering what happened in previous interactions, which `memory` is designed to help with. - -The following resources exist: -- [ChatGPT Clone](/docs/modules/agents/how_to/chatgpt_clone.html): A notebook walking through how to recreate a ChatGPT-like experience with LangChain. -- [Conversation Agent](/docs/modules/agents/agent_types/chat_conversation_agent.html): A notebook walking through how to create an agent optimized for conversation. - - -Additional related resources include: -- [Memory concepts and examples](/docs/modules/memory/): Explanation of key concepts related to memory along with how-to's and examples. - -More end-to-end examples include: -- [Voice Assistant](./voice_assistant.html): A notebook walking through how to create a voice assistant using LangChain. diff --git a/docs/extras/use_cases/chatbots/voice_assistant.ipynb b/docs/extras/use_cases/chatbots/voice_assistant.ipynb deleted file mode 100644 index 7969caf6f6..0000000000 --- a/docs/extras/use_cases/chatbots/voice_assistant.ipynb +++ /dev/null @@ -1,482 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Voice Assistant\n", - "\n", - "This chain creates a clone of ChatGPT with a few modifications to make it a voice assistant. \n", - "It uses the `pyttsx3` and `speech_recognition` libraries to convert text to speech and speech to text respectively. The prompt template is also changed to make it more suitable for voice assistant use." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from langchain import OpenAI, LLMChain, PromptTemplate\n", - "from langchain.memory import ConversationBufferWindowMemory\n", - "\n", - "\n", - "template = \"\"\"Assistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "{history}\n", - "Human: {human_input}\n", - "Assistant:\"\"\"\n", - "\n", - "prompt = PromptTemplate(input_variables=[\"history\", \"human_input\"], template=template)\n", - "\n", - "\n", - "chatgpt_chain = LLMChain(\n", - " llm=OpenAI(temperature=0),\n", - " prompt=prompt,\n", - " verbose=True,\n", - " memory=ConversationBufferWindowMemory(k=2),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "import speech_recognition as sr\n", - "import pyttsx3\n", - "\n", - "engine = pyttsx3.init()\n", - "\n", - "\n", - "def listen():\n", - " r = sr.Recognizer()\n", - " with sr.Microphone() as source:\n", - " print(\"Calibrating...\")\n", - " r.adjust_for_ambient_noise(source, duration=5)\n", - " # optional parameters to adjust microphone sensitivity\n", - " # r.energy_threshold = 200\n", - " # r.pause_threshold=0.5\n", - "\n", - " print(\"Okay, go!\")\n", - " while 1:\n", - " text = \"\"\n", - " print(\"listening now...\")\n", - " try:\n", - " audio = r.listen(source, timeout=5, phrase_time_limit=30)\n", - " print(\"Recognizing...\")\n", - " # whisper model options are found here: https://github.com/openai/whisper#available-models-and-languages\n", - " # other speech recognition models are also available.\n", - " text = r.recognize_whisper(\n", - " audio,\n", - " model=\"medium.en\",\n", - " show_dict=True,\n", - " )[\"text\"]\n", - " except Exception as e:\n", - " unrecognized_speech_text = (\n", - " f\"Sorry, I didn't catch that. Exception was: {e}s\"\n", - " )\n", - " text = unrecognized_speech_text\n", - " print(text)\n", - "\n", - " response_text = chatgpt_chain.predict(human_input=text)\n", - " print(response_text)\n", - " engine.say(response_text)\n", - " engine.runAndWait()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calibrating...\n", - "Okay, go!\n", - "listening now...\n", - "Recognizing...\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\jaden\\AppData\\Roaming\\Python\\Python310\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Hello, Assistant. What's going on?\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "\n", - "Human: Hello, Assistant. What's going on?\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Hi there! It's great to hear from you. I'm doing well. How can I help you today?\n", - "listening now...\n", - "Recognizing...\n", - " That's cool. Isn't that neat? Yeah, I'm doing great.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Hello, Assistant. What's going on?\n", - "AI: Hi there! It's great to hear from you. I'm doing well. How can I help you today?\n", - "Human: That's cool. Isn't that neat? Yeah, I'm doing great.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " That's great to hear! What can I do for you today?\n", - "listening now...\n", - "Recognizing...\n", - " Thank you.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Hello, Assistant. What's going on?\n", - "AI: Hi there! It's great to hear from you. I'm doing well. How can I help you today?\n", - "Human: That's cool. Isn't that neat? Yeah, I'm doing great.\n", - "AI: That's great to hear! What can I do for you today?\n", - "Human: Thank you.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " You're welcome! Is there anything else I can help you with?\n", - "listening now...\n", - "Recognizing...\n", - " I'd like to learn more about neural networks.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: That's cool. Isn't that neat? Yeah, I'm doing great.\n", - "AI: That's great to hear! What can I do for you today?\n", - "Human: Thank you.\n", - "AI: You're welcome! Is there anything else I can help you with?\n", - "Human: I'd like to learn more about neural networks.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Sure! Neural networks are a type of artificial intelligence that use a network of interconnected nodes to process data and make decisions. They are used in a variety of applications, from image recognition to natural language processing. Neural networks are often used to solve complex problems that are too difficult for traditional algorithms.\n", - "listening now...\n", - "Recognizing...\n", - " Tell me a fun fact about neural networks.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Thank you.\n", - "AI: You're welcome! Is there anything else I can help you with?\n", - "Human: I'd like to learn more about neural networks.\n", - "AI: Sure! Neural networks are a type of artificial intelligence that use a network of interconnected nodes to process data and make decisions. They are used in a variety of applications, from image recognition to natural language processing. Neural networks are often used to solve complex problems that are too difficult for traditional algorithms.\n", - "Human: Tell me a fun fact about neural networks.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Neural networks are inspired by the way the human brain works. They are composed of interconnected nodes that process data and make decisions, just like neurons in the brain. Neural networks can learn from their mistakes and improve their performance over time, just like humans do.\n", - "listening now...\n", - "Recognizing...\n", - " Tell me about a brand new discovered bird species.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: I'd like to learn more about neural networks.\n", - "AI: Sure! Neural networks are a type of artificial intelligence that use a network of interconnected nodes to process data and make decisions. They are used in a variety of applications, from image recognition to natural language processing. Neural networks are often used to solve complex problems that are too difficult for traditional algorithms.\n", - "Human: Tell me a fun fact about neural networks.\n", - "AI: Neural networks are inspired by the way the human brain works. They are composed of interconnected nodes that process data and make decisions, just like neurons in the brain. Neural networks can learn from their mistakes and improve their performance over time, just like humans do.\n", - "Human: Tell me about a brand new discovered bird species.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " A new species of bird was recently discovered in the Amazon rainforest. The species, called the Spix's Macaw, is a small, blue parrot that is believed to be extinct in the wild. It is the first new species of bird to be discovered in the Amazon in over 100 years.\n", - "listening now...\n", - "Recognizing...\n", - " Tell me a children's story about the importance of honesty and trust.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Tell me a fun fact about neural networks.\n", - "AI: Neural networks are inspired by the way the human brain works. They are composed of interconnected nodes that process data and make decisions, just like neurons in the brain. Neural networks can learn from their mistakes and improve their performance over time, just like humans do.\n", - "Human: Tell me about a brand new discovered bird species.\n", - "AI: A new species of bird was recently discovered in the Amazon rainforest. The species, called the Spix's Macaw, is a small, blue parrot that is believed to be extinct in the wild. It is the first new species of bird to be discovered in the Amazon in over 100 years.\n", - "Human: Tell me a children's story about the importance of honesty and trust.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Once upon a time, there was a young boy named Jack who lived in a small village. Jack was always honest and trustworthy, and his friends and family knew they could always count on him. One day, Jack was walking through the forest when he stumbled upon a magical tree. The tree told Jack that if he was honest and trustworthy, he would be rewarded with a special gift. Jack was so excited, and he promised to always be honest and trustworthy. Sure enough, the tree rewarded Jack with a beautiful golden apple. From that day forward, Jack was always honest and trustworthy, and he was rewarded with many more magical gifts. The moral of the story is that honesty and trust are the most important things in life.\n", - "listening now...\n", - "Recognizing...\n", - " Wow, Assistant, that was a really good story. Congratulations!\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Tell me about a brand new discovered bird species.\n", - "AI: A new species of bird was recently discovered in the Amazon rainforest. The species, called the Spix's Macaw, is a small, blue parrot that is believed to be extinct in the wild. It is the first new species of bird to be discovered in the Amazon in over 100 years.\n", - "Human: Tell me a children's story about the importance of honesty and trust.\n", - "AI: Once upon a time, there was a young boy named Jack who lived in a small village. Jack was always honest and trustworthy, and his friends and family knew they could always count on him. One day, Jack was walking through the forest when he stumbled upon a magical tree. The tree told Jack that if he was honest and trustworthy, he would be rewarded with a special gift. Jack was so excited, and he promised to always be honest and trustworthy. Sure enough, the tree rewarded Jack with a beautiful golden apple. From that day forward, Jack was always honest and trustworthy, and he was rewarded with many more magical gifts. The moral of the story is that honesty and trust are the most important things in life.\n", - "Human: Wow, Assistant, that was a really good story. Congratulations!\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Thank you! I'm glad you enjoyed it.\n", - "listening now...\n", - "Recognizing...\n", - " Thank you.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Tell me a children's story about the importance of honesty and trust.\n", - "AI: Once upon a time, there was a young boy named Jack who lived in a small village. Jack was always honest and trustworthy, and his friends and family knew they could always count on him. One day, Jack was walking through the forest when he stumbled upon a magical tree. The tree told Jack that if he was honest and trustworthy, he would be rewarded with a special gift. Jack was so excited, and he promised to always be honest and trustworthy. Sure enough, the tree rewarded Jack with a beautiful golden apple. From that day forward, Jack was always honest and trustworthy, and he was rewarded with many more magical gifts. The moral of the story is that honesty and trust are the most important things in life.\n", - "Human: Wow, Assistant, that was a really good story. Congratulations!\n", - "AI: Thank you! I'm glad you enjoyed it.\n", - "Human: Thank you.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " You're welcome!\n", - "listening now...\n", - "Recognizing...\n", - " Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way? Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way?\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Wow, Assistant, that was a really good story. Congratulations!\n", - "AI: Thank you! I'm glad you enjoyed it.\n", - "Human: Thank you.\n", - "AI: You're welcome!\n", - "Human: Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way? Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way?\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Yes, there are several online brands that offer photo editing and other creative tools without the need to download any software. Adobe Photoshop Express, Pixlr, and Fotor are some of the most popular online photo editing tools. Freq is an online music production platform that allows users to create and share music without downloading any software.\n", - "listening now...\n", - "Recognizing...\n", - " Our whole process of awesome is free.\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Thank you.\n", - "AI: You're welcome!\n", - "Human: Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way? Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way?\n", - "AI: Yes, there are several online brands that offer photo editing and other creative tools without the need to download any software. Adobe Photoshop Express, Pixlr, and Fotor are some of the most popular online photo editing tools. Freq is an online music production platform that allows users to create and share music without downloading any software.\n", - "Human: Our whole process of awesome is free.\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " That's great! It's always nice to have access to free tools and resources.\n", - "listening now...\n", - "Recognizing...\n", - " No, I meant to ask, are those options that you mentioned free? No, I meant to ask, are those options that you mentioned free?\n", - "\n", - "\n", - "\u001b[1m> Entering new LLMChain chain...\u001b[0m\n", - "Prompt after formatting:\n", - "\u001b[32;1m\u001b[1;3mAssistant is a large language model trained by OpenAI.\n", - "\n", - "Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n", - "\n", - "Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n", - "\n", - "Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n", - "\n", - "Assistant is aware that human input is being transcribed from audio and as such there may be some errors in the transcription. It will attempt to account for some words being swapped with similar-sounding words or phrases. Assistant will also keep responses concise, because human attention spans are more limited over the audio channel since it takes time to listen to a response.\n", - "\n", - "Human: Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way? Do you know of online brands like Photoshop and Freq that you don't have to download in some sort of way?\n", - "AI: Yes, there are several online brands that offer photo editing and other creative tools without the need to download any software. Adobe Photoshop Express, Pixlr, and Fotor are some of the most popular online photo editing tools. Freq is an online music production platform that allows users to create and share music without downloading any software.\n", - "Human: Our whole process of awesome is free.\n", - "AI: That's great! It's always nice to have access to free tools and resources.\n", - "Human: No, I meant to ask, are those options that you mentioned free? No, I meant to ask, are those options that you mentioned free?\n", - "Assistant:\u001b[0m\n", - "\n", - "\u001b[1m> Finished chain.\u001b[0m\n", - " Yes, the online brands I mentioned are all free to use. Adobe Photoshop Express, Pixlr, and Fotor are all free to use, and Freq is a free music production platform.\n", - "listening now...\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[6], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m listen(\u001b[39mNone\u001b[39;49;00m)\n", - "Cell \u001b[1;32mIn[5], line 20\u001b[0m, in \u001b[0;36mlisten\u001b[1;34m(command_queue)\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mlistening now...\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 19\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m---> 20\u001b[0m audio \u001b[39m=\u001b[39m r\u001b[39m.\u001b[39;49mlisten(source, timeout\u001b[39m=\u001b[39;49m\u001b[39m5\u001b[39;49m, phrase_time_limit\u001b[39m=\u001b[39;49m\u001b[39m30\u001b[39;49m)\n\u001b[0;32m 21\u001b[0m \u001b[39m# audio = r.record(source,duration = 5)\u001b[39;00m\n\u001b[0;32m 22\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mRecognizing...\u001b[39m\u001b[39m'\u001b[39m)\n", - "File \u001b[1;32mc:\\ProgramData\\miniconda3\\envs\\lang\\lib\\site-packages\\speech_recognition\\__init__.py:523\u001b[0m, in \u001b[0;36mRecognizer.listen\u001b[1;34m(self, source, timeout, phrase_time_limit, snowboy_configuration)\u001b[0m\n\u001b[0;32m 520\u001b[0m \u001b[39mif\u001b[39;00m phrase_time_limit \u001b[39mand\u001b[39;00m elapsed_time \u001b[39m-\u001b[39m phrase_start_time \u001b[39m>\u001b[39m phrase_time_limit:\n\u001b[0;32m 521\u001b[0m \u001b[39mbreak\u001b[39;00m\n\u001b[1;32m--> 523\u001b[0m buffer \u001b[39m=\u001b[39m source\u001b[39m.\u001b[39;49mstream\u001b[39m.\u001b[39;49mread(source\u001b[39m.\u001b[39;49mCHUNK)\n\u001b[0;32m 524\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(buffer) \u001b[39m==\u001b[39m \u001b[39m0\u001b[39m: \u001b[39mbreak\u001b[39;00m \u001b[39m# reached end of the stream\u001b[39;00m\n\u001b[0;32m 525\u001b[0m frames\u001b[39m.\u001b[39mappend(buffer)\n", - "File \u001b[1;32mc:\\ProgramData\\miniconda3\\envs\\lang\\lib\\site-packages\\speech_recognition\\__init__.py:199\u001b[0m, in \u001b[0;36mMicrophone.MicrophoneStream.read\u001b[1;34m(self, size)\u001b[0m\n\u001b[0;32m 198\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mread\u001b[39m(\u001b[39mself\u001b[39m, size):\n\u001b[1;32m--> 199\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpyaudio_stream\u001b[39m.\u001b[39;49mread(size, exception_on_overflow\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m)\n", - "File \u001b[1;32mc:\\ProgramData\\miniconda3\\envs\\lang\\lib\\site-packages\\pyaudio\\__init__.py:570\u001b[0m, in \u001b[0;36mPyAudio.Stream.read\u001b[1;34m(self, num_frames, exception_on_overflow)\u001b[0m\n\u001b[0;32m 567\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_is_input:\n\u001b[0;32m 568\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mIOError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mNot input stream\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 569\u001b[0m paCanNotReadFromAnOutputOnlyStream)\n\u001b[1;32m--> 570\u001b[0m \u001b[39mreturn\u001b[39;00m pa\u001b[39m.\u001b[39;49mread_stream(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_stream, num_frames,\n\u001b[0;32m 571\u001b[0m exception_on_overflow)\n", - "\u001b[1;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], - "source": [ - "listen(None)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "lang", - "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.10.10" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -}