From 483380af32ba6765ed963963d89f96af11413ade Mon Sep 17 00:00:00 2001 From: HarshaSubbagari Date: Tue, 22 Jun 2021 14:45:51 -0400 Subject: [PATCH 01/12] Convertuing transcript from text to audiostream and posting it to lex via postContent --- src/lib/botClients/LexClient.ts | 45 ++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/lib/botClients/LexClient.ts b/src/lib/botClients/LexClient.ts index b49c66f..a03a24e 100644 --- a/src/lib/botClients/LexClient.ts +++ b/src/lib/botClients/LexClient.ts @@ -1,6 +1,8 @@ import LexRuntime from 'aws-sdk/clients/lexruntime'; import get from 'lodash.get'; import { BotClient } from './BotClient'; +import Polly from 'aws-sdk/clients/polly'; +import Fs from 'fs'; export default class LexClient extends BotClient { private botName: string; @@ -10,6 +12,10 @@ export default class LexClient extends BotClient { private sessionAttributes: any; private props: any; private lex: LexRuntime; + private Polly = new Polly({ + signatureVersion: "v4", + region: 'us-east-1' + }); constructor(botContext: any, userContext: any) { super(botContext, userContext); @@ -33,15 +39,52 @@ export default class LexClient extends BotClient { public async speak(inputText: string): Promise { console.log(`[${this.userId}] User: ${inputText}`); + let pollyParams = { + 'Text': inputText, + 'OutputFormat': 'pcm', + 'VoiceId': 'Joanna' + }; + + let audioStream = ''; + + Polly.synthesizeSpeech(pollyParams, (err, data) => { + if (err) { + console.log(err.code) + } else if (data) { + if (data.AudioStream instanceof Buffer) { + /**Fs.writeFile("./file.pcm", data.AudioStream, function(err) { + if (err) { + return console.log(err) + } + console.log("The file was saved!") + })**/ + audioStream = data.AudioStream; + } + } + }); + + //let lexFileStream = Fs.createReadStream("./file.pcm"); + const params = { botName: this.botName, botAlias: this.botAlias, userId: this.userId, inputText, sessionAttributes: this.sessionAttributes, + contentType: 'audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false', + inputStream: audioStream }; - this.lastResponse = await this.lex.postText(params).promise(); + + this.lastResponse = await this.lex.postContent(params, function(err, data) { + if (err) { + console.log(err, err.stack); + } + else { + console.log(data); + } + }).promise(); + this.sessionAttributes = this.lastResponse.sessionAttributes; const reply: string = this.lastResponse.message.trim(); From 5757211e7ce3198fc8a65704a5ba621670e385f5 Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:17:36 -0400 Subject: [PATCH 02/12] Update schedule-appointment-bot.feature Added chatpickle tests for silent responses and useAudioFiles for User Response --- .../schedule-appointment-bot.feature | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/examples/lex/chatpickle/schedule-appointment-bot.feature b/examples/lex/chatpickle/schedule-appointment-bot.feature index ebee194..470bca0 100644 --- a/examples/lex/chatpickle/schedule-appointment-bot.feature +++ b/examples/lex/chatpickle/schedule-appointment-bot.feature @@ -10,4 +10,35 @@ Feature: ScheduleAppointment Bot * Bot: /At what time/ * User: four pm * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ - * User: yes \ No newline at end of file + * User: yes + + Scenario: Non-Happy Path - Caller stays quiet. Bot should repeat the last prompt + Given the user begins a new chat with "ScheduleAppointment" + * User: I would like to book an appointment + * Bot: What type of appointment would you like to schedule? + * User: + * Bot: What type of appointment would you like to schedule? + * User: cleaning + * Bot: When should I schedule your cleaning? + * User: + * Bot: When should I schedule your cleaning? + * User: tomorrow + * Bot: /At what time/ + * User: + * Bot: /At what time/ + * User: four pm + * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ + * User: yes + + Scenario: Use File + Given the user begins a new chat with "ScheduleAppointment" + * User: likeToBookAppointment.pcm + * Bot: What type of appointment would you like to schedule? + * User: cleaning.pcm + * Bot: When should I schedule your cleaning? + * User: tomorrow.pcm + * Bot: /At what time/ + * User: fourPm.pcm + * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ + * User: yes.pcm + From 64d5446190694303a99d0aeec79ec820bf474920 Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:18:44 -0400 Subject: [PATCH 03/12] Update schedule-appointment-bot.feature --- .../schedule-appointment-bot.feature | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/examples/lex/chatpickle/schedule-appointment-bot.feature b/examples/lex/chatpickle/schedule-appointment-bot.feature index 470bca0..f850cf0 100644 --- a/examples/lex/chatpickle/schedule-appointment-bot.feature +++ b/examples/lex/chatpickle/schedule-appointment-bot.feature @@ -12,33 +12,4 @@ Feature: ScheduleAppointment Bot * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ * User: yes - Scenario: Non-Happy Path - Caller stays quiet. Bot should repeat the last prompt - Given the user begins a new chat with "ScheduleAppointment" - * User: I would like to book an appointment - * Bot: What type of appointment would you like to schedule? - * User: - * Bot: What type of appointment would you like to schedule? - * User: cleaning - * Bot: When should I schedule your cleaning? - * User: - * Bot: When should I schedule your cleaning? - * User: tomorrow - * Bot: /At what time/ - * User: - * Bot: /At what time/ - * User: four pm - * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ - * User: yes - - Scenario: Use File - Given the user begins a new chat with "ScheduleAppointment" - * User: likeToBookAppointment.pcm - * Bot: What type of appointment would you like to schedule? - * User: cleaning.pcm - * Bot: When should I schedule your cleaning? - * User: tomorrow.pcm - * Bot: /At what time/ - * User: fourPm.pcm - * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ - * User: yes.pcm From 996501eea6cb95a1373b61747cafe394c1a50ae5 Mon Sep 17 00:00:00 2001 From: HarshaSubbagari Date: Fri, 25 Jun 2021 09:29:34 -0400 Subject: [PATCH 04/12] Created directories for lexVoice --- examples/lexVoice/chatpickle/UserAudioResponses/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/test.txt diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/test.txt b/examples/lexVoice/chatpickle/UserAudioResponses/test.txt new file mode 100644 index 0000000..e69de29 From ce2308a907ebe672622d45a642bb53948cd9a73d Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:45:19 -0400 Subject: [PATCH 05/12] Add files via upload Added audio files --- .../chatpickle/UserAudioResponses/cleaning.pcm | Bin 0 -> 24000 bytes .../chatpickle/UserAudioResponses/fourPm.pcm | Bin 0 -> 34800 bytes .../likeToBookAppointment.pcm | Bin 0 -> 54800 bytes .../chatpickle/UserAudioResponses/tomorrow.pcm | Bin 0 -> 24800 bytes .../chatpickle/UserAudioResponses/yes.pcm | Bin 0 -> 24800 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/cleaning.pcm create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/fourPm.pcm create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/likeToBookAppointment.pcm create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/tomorrow.pcm create mode 100644 examples/lexVoice/chatpickle/UserAudioResponses/yes.pcm diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/cleaning.pcm b/examples/lexVoice/chatpickle/UserAudioResponses/cleaning.pcm new file mode 100644 index 0000000000000000000000000000000000000000..75b07ce1d4d673750cea20a15807979c646dbaa8 GIT binary patch literal 24000 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 Az5oCK literal 0 HcmV?d00001 diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/fourPm.pcm b/examples/lexVoice/chatpickle/UserAudioResponses/fourPm.pcm new file mode 100644 index 0000000000000000000000000000000000000000..e8d1df485acbff5e07c2cf87f34640fb16dcb29c GIT binary patch literal 34800 zcmYg&1)LK}^L9^?P1fCgS={w-4n6$fINa@U*Tdc2-Q67y4tIB7>~PqPO=gmeb$`!f z;s1VHzmbe|S65Y6*K|F-gyjA)-ydZ^Nn<*xKS*IZ$v;S9Kgr8-$-{EV&3=-|a!Fvh z$NVY#)7RI(_>=U)fjo1@!s<=o9?gfpKj}5o>DB*7SuB@cvY+&V>Gb^n=o!nUr|c&^VLCnb(IckQL*Mog z#|J;?KGW$Q=&q0MFr99LZuz!bINk)^@NGA6)ag3t+7G(Qe$o|ogId;}ZXP8c>ee^HW>D2%2PyIOmc~$>?ik$@g13KZO<1Cksv19D0Z#&A4 z{Gi;k!|W#=!r38q5SzZwr335$+Yj0Y%H8i}KWPukrQJC0_R&tZ3&&kQXeZmrwu82T zwt}|&*l%H*L7UjdAGCq3XX}2@T9!*|m`aCu*SFRGceaA9@Lki7 zD}9^3|4GZ)GNy0K*wP>SB{*9GS`1nQTIi$sYyn8$&u8=4Tx_{C7w2=?9MCK_+qdca zS!||{W-y(m`)C@|X(}l9I0a`@K$Cqm3HwQ)$-XPO*Y*4QZ~b~MO=c5)&*<+=!nsZp zeEV^1JRA3e#KGKiFK*O=+Ue|y9yfTap z1r7J@hcKN6{~rxvgK$2G4a7FUNBvlTAN6B>Ssx$uV!d(f&3b`)vcEvxebkld)R}c+ z9YLLZ#|}8tH+`=k+xw3Cc?X=g1L^zrKhE3YybWvXBmGRLR;;y;+W7XZ@VljtTCnEq zPi)QDAE2f_YVu>R|NaAa^?SM7pFf`X`P}d9f7BS~jaegX4Os(LA5<4qhy8}FHmD}6 zg{=mwj(v6ZE6#pp)mT+*`o78!s>~|mtTL`t^_}Hjuf!^`imZZfU(t6~ftCM3<=8Kv z++P*&Oa%?0Rz?}W__)*gtKj4LC*L~v`n_^K`UQLaPFWnw{@CYU z(XZ)uf9}h&GCnHJO5<3XmBf}y`gQ%T{=QCn`9I}V-q#+zO*$XB-280i|KwK@Tr@yJoELS4>ugX5z>pG~0O_%#medJ!#>&exEen;1d ze$?;f)}xp4QxmzR>OALO$!){`EI_Y0w@&?u+;&v)J^lZ`qd%W3@&CzPKhtHOtC3uN z<;pJiYOYp(>L*vW|C4mCHvXp*T^G5!%B?}KQP*lN>34E<^uPCVuj$X^YVfBvbKffC z)1l5=uAcPr{>PWzW?iRMAv0YAzoO68W%aPt^7X%3IQtEx@2lfV9bB*D>y>)HtmPxU zm+DjlzjDv?zM88Cz31q<_@C5s`KajQB9|9^uk(~E$N$Mm|E;$*_gEHk(d|{2j($zo zgDyq=`CQrPW#~Qpf4a!MqPJV`Q9miSKK;F1UFP(!JlGK2O=&=Vv>?H+N$_K)Uzt&-!6M5WYUw`{#}w z!!V-gBgEIKcCE@Wolz5QFJa*&W1gdIWdJ7r*I|oK6pL?GYlspAp|PJ1QypH%%Z-w5D+xT@G@94+exbyn|J)^h#5+tC< zntF7pAN45o7LGUZ#vRn7OW_u--SElcmQQB4eRW*utFME#JiRSk#{E`WtjLrnPv@2p3Em16w zzYpcE!Mz8t`)ep?A|mF!_^#W4GA5$OJi_muc%vM7#JaFFTnQj?WHlo3Ip|$~q4!*8 zC5bNcwcvaudh8X}1QxaiZMTpscy2OET8c8aqOR58e-i9_HR}5Z{d*!TI*`mp{Q4Vg zVmvrFgkIU$7e(&DH=8cMp=j|$^zNDXW?0N>k|XdRBUk`>^#=6NQ{Zh4q#Xsn`wF%7 z1)X5UNH{qTpA*YY(F}a^^&z9kNG8)R>^0TDCN?A1oChzm5fS2T))0IagBLr4-m@I_ z63;eyH+tGJ>Kn`Y>!p_ko^xY}Y$$UJ0p5CQ35k)>n znR!_>ykvVaoEcdL?$v{2o}q;GjAP#@r9D{*@(l8dfNfP|nb5*vc+pSvFrw$RM5S?b zAV!=?(DQic_9G1gM^|7Yk*o_1#P`ny#I;9Rad_GCtQ0E(UG>EMjw~IPatAeEq`$yx z+t7j~xD&;As?uqQ?$^O8Lzt7!fe$W?dYeN>f1#CUA=P`-g!%&U&IpWx)u6Q|@bY~z zA~b>>v;;S^Spj^dL_(%bQTm@41dIpF6DYAwzPdcbkCbSTbaA(vAa7aGAr`l6O` zERlqg&1mIs>@l4SNz{V{G(`)l;=LNM!d=WrrojtNWEW@y$U*mgXTaG7S`gCCi`qZp ziMOzhMyS0%ta1Tr`vbCH34OGIlH9DwX5qc1i=iMl6Uf+tSF@_WMGu0vk4 z@x0adE$D#Vu7s5PqSZT4$A9n(zr)ghL(5LWcAi2aAK{N?BNADNcR%6@7v@#=Lxx3B z!Wqn}e8E?2W7z34mO@UjMErV)y5{2DjgZ1i%&rtCJy6Foyeq?|#^KAlK7Jj61wKc8 zn=wXTgbfrSJ5b&^XtEVJU4j1Og0^O%?UA@nxU(p2Gb{&fM#&Cn?-|-05B=SN6*h)% zT7?np3$)mQnMed#3h53*HLjloXD3lpGVJSL@c9gNZ2~6) z;D0VdQUl0>4vr<;H=^bj*z+F$+Y8>g!@{k~M7d`VDYFPmtuY~-1LpE--@ecTF z1{0dx}hBfQQAjnavJ3EH=a0x`rEPxXyaw-fxqlc-k~*Tppl*M zpZDRT=A#9-!QoL@?Ns>j-yyA2Y$E9nz0CtBkTPb~PP6i40C^4D`HjUvzui#hVvI(6 z@ZMvbZ9tojR}Gdj6=jrwCFmaQG4!$&(qoW9H?j}+&f@n%=wk$QABDaUL*~FL{)89a z!2W?}R9PkR0qyt?l8Z%MRaqu6kiM|;`Y2DAz*%UrHKhF*&n|=J-r{#BTv?75T48TF zXwO&FXd!LDSu?btKg%Fh$$Az8*$sdvTMIsRz?a06E$l7r4@r!Nyu!&z)`HwZ->D3r zG!4F?8c9TrPf_L!7LL(k7As8_g6k8I*GgP}L>rTe_dY!$a1JPG2lEqZgmcS}@ zu>EuheGWg=hJB!C(I0Dr$M4|qDt$^9Y76KjwCpQJ*EQ(>C1J05z+WZE;Rbx3AKO6l zv6-|yJ&#fA8FZ6I^06Z{o8F_PVL6SU*$Q;HcAJ)jmobx~D7`yNVg=|Q7*l&NkzS#T zsf?1dm_&cWco_`~8pF2GezX{CM;%n7QRwY+@MJc|wEgs?wue4ISthoQwxB1VnU_?8 zk5~@bO4>l0M6&2H#4`(V=L}||U(+<&gSKT!q%KQ<6?A})iD&=OWwbM%DG6PubOS9x zn?Zsj(K>x@`#k+Zo1leR7y%i^>?V*vWwx6xhX)=5E2x29a+7tUOR14vB57ni2|@j9 znTPJAwJ>6bk*?58Ac=>Lcd}Bj&zfu^oe4>G$1@Y@IyRR+hQ|va^~q`2OI|XEykS+q z(``Im7vuaRRuEd<1Hbhzc|k{z2V@tUPRG+A^oa-PPg@Y<ikgU$jBA5v2Bo6y&ax8f>*Tm}GGt?i=la-dh8{W}Wsc?Mk0u zlx&6QBZtb`R}#&Y=B}fs-61!rm14$`dx5@?NWW``IisN&`b;Rh!mVdj4cocDxp)>r zA80*TRW6pyM}MoyDsbi567>Hg(B}&_pWK6vp3rdWW#edFeBoB)KH^$c=1;z`_4GOI zPo5EctrHvT%^g9!9z<5rMO0NsYwNUVCL7Lh<+=B1Oh^)#Gl+y+=h zqTx1MKnh`;>A=3ySu~a_fZiBPr_%<|K{t56ue2b^W86Uk40{ld^oB-$gY|dO&S-O&5cisuC8aP* zw1h`(j+#$$54p2MWmb9!_PLHSZ63)Y{on)dX)O^6O(eV7Y1me6dXoHZXu?(IrWmSl z3+Wh*SGSU7@SKZ@3|T(GIM5&crY|vY{R}I(J#-HZCKtJS+(XiatU;7sgx1uoS_O{^t><<#=g)C(E1kEirgW^xdq%zt`_>3jfK+3niXDi0V3Dh z2x5CMn7*sTah?JMbmUc7F(os(;jL0*elZAFw9V!3*r7l zg3QWNxoX@~(u6Ih#o1czvszC($@+3fiAE-n*6=Yq*&@=5OCz(;&$e;*5xERO|Jvjm z6E9PTb_3pd4hbPsse+zVNRJALlWgTm7*>(B;O-9Th_4(kn}D&sG`=98AWkU&uiOx0 zjzsEk0VEue(0YucPw_P{o!d!Du&OkPZlxBC)4|+&t`vDfYr}IM!1%TSH5VjL$a}Jb zbRvHE=4g)C{u(XE>XA^+%at;`=9(B(t~nP+9>J66X#J^7ccC{H=Smt18{>^-4Vm0P zl8yJr5(}vVf0u!Fh7uFLQO>afWCO;6tB9m8q2*QKmoCudG#K$nLwo@Q!dAB;Cg9NViji*ZTUYCiakp0pDD|5o_>GAs<^>OhQV{W0bohKDPKQM(7m06ogB zh*7x_>|r*!LMm|kImWd&%r{&yd@{x)*D6{#v48vl8vK{-Hl_7 zO^m-94;UI7UU8kdvK-;wkPpO7j*{u57Wth-BgQ+5akezP;5cfbE40$u0kxRAUx`xI z%Q5m*X@oRPDk5F=4)d1tYM#@co}QYX0-n;IBA)J^{+@lF1s=Pnv-dx5JtsjK=OHG`yH@BNT(&E$=GWBlqY;<1{lf{39g~B}Hm=Gfl5m$-}#J|PC zVyZYuIO$4uwdLnH1;-Ev=XhhM_I?i4G1ZyCKj-_nsB610PSnK1?ms|T+Pvi932My9$n>yU!D|E7SU&r$ zFby=0F|>l0Jwh#7KBc78*;7;8=^Du2bFOfzPAA`A=;mJK{VW&Leqrm#VlK?!;9|Mc z%tAxeWI4&(&V5pt@4CUy;y3aK_`7^Iukk^yU3?}#+Ih*5>{x8CYmcxOu^+V0b!>MA zx>^Zq#X!$gZ;WhK*U&m#K9gWs7Q8%SL~PNdztR#j1M_j`cPWH}VY~XKfL-*0!bgZO&Rk7tedS z18v3~HmaswevSNEntB^j$$0IFT;Kbvd%n;I{2t>~{!iC4S2>}(kSwfqo#Xd7>pASU zlh(I6Wpg5On&#xQ_OeAeitrVLQSK|=63S<7FF9$vZ=M?%680u)N&M)P4;k06>SI{*r}f7p+))SFx%^Ultsc_ju~G_eRCUf3=6TDJYx3f7M~k8;ASx2-2_N9}RW z@%-Py6n7;lk6MpiG~~0S2j7Y47*{mqN*=Ai%A%J`>?(D&)Y}pji;gewIK!FvB&t?O zLrX8iN!nh$EBBR`$q`CrrLa;q_dou?X9LobN5ZH zEPVpn1kMZ`8L-ddG~MQg(%wp2?=$h1YbO8PxyLCx`@x18ALjD%UHR?K-i|-)Wo&t@ zzvW!cK9Id7J0quob(byL@zD9u;dl30nrr_ucVF5*R$}Z;(?`_ zlrCGUYw=Ts)Xb(SX|az(Q~XC7LMbo*CS`dQ??Y*!++1m(+>nP$qdoORFMrrk$KK2K z#`dq>$X^jUc%xJ=YiR6huIoQFU|m33z!Xbuzrlt-*)M7tX}f!{5bvtVe|A>q|K%II z9=f^+D}=#<>T2oAx)9ntO<_h+paqb}n%~;yWbJqP zKhGsGM#$o8@@4tCyv+A?iLSqdHNqyLtgzU%mY?cu?>_;6l z`0m0b_i5>dTA8Gn_W92W5h5SNA5E>Fw?(1$#Wt1LQF2O&wM7>dSevmTv2j$LU}D}+ zwyFX03GXiN@6u9v9-=p^dO$s{G?Qm|hq>DcDj&ut@d1!TD^DN!AFU`CV480JVj1FZ z@PA`|Y-(U=#Tu&pC9B&ev~$hn)A@G%8~%~2myjt=6Zeb##W#XUxWspJ62}SK4y!9? zLe9RNqSjzrOZz9sdcLmE+x_0VQ8`8H8m5?s2R#Zu9_vc}nx|^P!9@?1h%eQ@3fjX7|f}oxL-stF4P;5q}MS^0+itt;r4;Dw#>p$FP|(Q92U-{qT_N9(Pe z^`^LIyPVDiPPcQqYl{1sv{Y-#-7@939Q4l@5aVw#S2uoRt<{23W4Gd34n5T2qh0NV zz2Xgbj%S8|lN>Spd)G$sy62?SRn_QM zu7uy0fZL(RqQ54V&v=#JTI5WLou%fLl8Rp{^d-;7#1fIa0wiv|GTI$4{O(#Id~~}d zO|8WWbH@;^9$@*kQgRQ^AEHU<;))lJiVeM;mAmvdSIV^CueaG?7ED(SzmU4xX}K`Q zw|KFOP+4#Zuf$jGe?05GpS_XN1#d~O(X&MK7iRM1oGcTSnrmU)0Am$X8Ilfz}7Xs>A>X0K+S zU~lgz>3r_I3fr{{UEGzuBjtta61L6|Vrd%mF2WjjIIT~<+C?lSN|fqZQY_ZC;L7xv zxQiimO^?(Co(e)e*HPi5r=fC@RW&a43p984+itkT+NtT%40jK)pxD!GkOEaV-NEfM zb~FWw4DMQDhNqOAKpPo4`L#FSHZSyZ8?Lcp+7P*u_ZROz zuSXiMR%ErgR|coCv~dtOgw0gvOXWNR#il|pVYL|VDJlJ;j8q$HGqg+Ue5Ja)+xyP# z5-W*T;gRrOxGuC2j6$qyBrL*Zzi#_xZDVa|9bh|Q-|b8m3VWzjT^mOB7|)s)1a=GS z87(EePCb=5uE6%fABz}@lr7LdJu$vzm}Wk~0u`fox4W*Vvm8i?p`TxSi=QRk@2=r1 zYok?DCdw}9f^1iI(tpS~!*F9y<0Y;&TdF>nGCf7avO>BLCH~|7Q|hK9X%{p?-Rc76 zg;dkK#N9zWDy$PC#5-a~x5M4ky;K}8M7si=)FxO>IXkmWIrptg?Bn_E;t1~uWfCpJ zT{AW?R|+^D{9i=dxUDITGdC3MUgTZTeT8e}-;{bk=D(mh#z|@cZ(Vm4&t9pcR@C5U zKIcC-V6Xpizf{9YdQ~yXCi%VWP&cy?hEJwcbErAOWZ+!tA#bQyjz8^q<7ms9#rEEt zN>zFp^E0h!jM`h;gAsr6BpE)XV#eySfn0pSHKLy|uQo zR<@n9H+F93+X|z^`R=yf#_~J$DoZsw{5}M{3^7EtPxw8(SN?<|9gD>k`8VH|lw#4= zfH1=g#o&GJ=AmB{fsFQ#&`-)XiMQ+}Sjh^QT?q z7M?OYjqwGv(_6-~OcY(C z`9GX59LpRJ9BIz+&i>B3h=W%1lU(b>;hy30pNM+v8m(qIuyT0m*v=^h@(wKYp-7V= zxANagtrznmsFl&I&6UT=&D4!-jxpUl%~HoQ!_REkL6(uPOOnJ zF~70!utIzD%}-qyvmt1A`fH~RJlB!(K6oHjJ=j!o}=!i?scAhQc0zsDy!X9r#xT!=o#Y2j!+MQWKuzfR_%CQ3eNixG_l%EQ&~w6x)0 zzhwWZ{v-X@npYU7l5*6ke3NZ*3uV3XQaPm@l3Pm;Jd51tMZ4(dIp*yte^)lDi`11$ zO?kh!x2K2u7QQk|!W-}|E8@5wjxqMxcB7-6b1C0IXdu4E7vB~6zWR-AL&WjUe{9IC z$npuz)0gGzT`;6zmCS32$0J1leuh!V9CYVYV*zu2^DWa>Lq~R2nJ#&~K~h;I7ISRO z@2mgJfKwKWUxGoP<+c1;Fs;OX#n(Bd2i1pC6VFVsvd~!Ajb8j6wvdJK>bSg362W_f z+u(jF`ni91d&C#Q0#_7Y*Rj)9)7I4X-nQQ{)YVR0;^`}2Qg3Q0L^SO2D;m%?tZ7XC zq>t&v^3}<=G*7dXMzK>ur}$qm$wtZKG(YhF;@{Q0%0Sp>d9&B*b;&vEbh6G^)o-!i zYrjRNQ-*=uR%Bb|!3zbG3&<=?qA%2I@^>$F_Yy^6pg7rG!23ZuFK?7DOTE20umIw& z>mKbM?+$Pu6N8kokjUr*B4iF;kHo0y~cwtaV?zuW2oV0GY=2w8qzzmef+7^ zt9ha_>!<&ncro%`&@xMgxtT={hziadd@LZpUn<$5y!X!bZkO|FC)j`7HA4;;#Jyo> zXny(@GskVX(FV@g({O^6pf{95Qc>?K&sc9!X{Y3pdP;S@fu2-%Kk+Ydi}*-b2SG4OY|C)cruj4=Q#av}vs}Wty6OEoq(h5b;u97Lndgd|#Q-jBcw~Fy5h$#!w zOQoAr+;O)fo&84lgt8x^6xT_MZZJ>FPQwi1%D(5g(hO1XKLN;-Q z49~d*q&4lQit-m}lawOQlOM>l#t$RvLf+hMwSd);+ z!IeUO2^|qyG-Oradvloa1@ouBYrD0!nAdAh&uH7=IbxKW$^vDIdPtj%Opu|_cE4gY3 zk1>0-zNv)zZQX=LdQqeh%J!NBB@LA(xmwbw_^uJeF{Gq)-7yRSfTKV zVQWLq2F6;-8HZw?^^#_xBWOM9Ps6oKN|wA&-X?cZMyWkDGqNsQXk&U%`=;i=D<;Yt zq)C|V8zIFZ29n(E#J#Q|{4VDJ=Nf#gWbjpZ3xCJC)_K^;JA3or`01|NLSuZDJn?Gs z6s-t3ZW!ce47eCPJN$n1`uK&36_Q3JK8xEHofg?8yh~U}`1|nu5re~Rp%;Rh`E!1= z4eKzYJPTQ=RrFtNnYvdw56)th(@HzFq&7-xuT|0#wX5nHwWhj7`7Ec)U8Mv`_3~cP zJH-nqio|@`*^__Z9?W(?0W-6tWN0?P9D?gK_O5J>OqyxO7C)`uVy;k%S zSD{aI6zU4ih1QriO9k0nLBeVwLyUD#^}O?@%R7`0>hH7(Ib!JPx5j^5kTt{;Rw`m~ z#EFPr5$D3|hRb0q!zP4{3QGw4E3{_FuArL%UoBzgEvCuFUC6u);r1Z^El`e@)z+xN z>IG%BGEV8L3{t8q4*7^YO!k+vq>Iurshu=j8Yc~v+DQJ=81ENP2M_0Y?tYKR)*th@ zRXvs90TVqAx7(fOnd_ivYby2lwU|IFz4I_{IyeRn{s)lqO25BFb;%OPE6&EVq+?mGjE^!FyhC{FgjmJ|{;hoe)oCsu-Xq5_0Q2;AdK8(|KajVPwVT>%t+!TQGidkK zz3OzeomyT^R=vu5<+<`kd4-uMi<+bsSL>-g)QM=5O)aDi!?#WhvXv*1vucOj?N*H35G;Nj3K~4Fqi$Fd&HgKHgGezUR-0YDCdtn;uW%u z%tNlGG06us#YZ4T{zYDW336GTz^R^-x=Q!ah44UaX+z|ilnc$|#AFT!k%X! zG?|Ph!^tr6H}<2DpP3GtMkbPRpfRA~q%SgT9gsI^fXrkOAZ|F|GwvcfSOy$LE97ZX zk?H=9`u>48oCiceH`)f$Z9waT<9hT@+5vOZlfly-WcnW?zi-4Fl@MPH1>R^Ac)JA& zs=)0OB$Y{1WJ!mBml4>;_;?tHvw@^1X@|^cb8ugeR3l}O@l1zC!;n*wfOPqaJnaog z?jSN-^N??Bhum->ARGLFy0g*uK+pY457Nza9k`h9qlI)8ejlcnk!k%7juL>``V~C& zM;=_y99=_+-;hW1C&|dKmeKR@$ceT^cC9O<*9ZIzAcM&uYytg8xEZt! zvO0qNmX7-aLX5hAkO%^gMbR!DH#ZUG?FZ81Iq*jsi-atSL3WKvXYe%`TATt@z*4dj zv>J9f1KJ#dI~{x+mWQRqfff(H(tj5-fK!v~U(Us#nOs3&5|2ptgLlo6@ko zYRCZoPW~hY&b&$ZTc;1DObEMuE>jAV33v0tmzJMDU&;oRvjZu_5%@32%<^Ar7_x!E+Aw z`y5v1g56;{5{RFCsJ%2P3m&VID&VswsSb%&LB_BGu9kpKGe`<7E}8^mOjBWV*}!`} zf}Q*eO>6{SW(IH-1HfGyU_R;~>sS{26-N)u14;vWQl|pIHBf6wc3GG zdyB7%`^c%DffesUe^`wy=uDvT{swZfKXRcR!Qr2fpswZIbwT=uIvJO=|i;mHEPH~>pfWEX+W(e=qm*IT;$KeM+7jo5y(y1q; zs;}-Efi_ISGt0n}jvLmk>PVqw$V4xJTo$3f%))UF zw)v2-zMfzW>|h6wH~JcZf1phr`+XVZ>F9nP;jXXSe1z6NLGJw}TvHuSo zd;|*TBU1 zC4cy%UXOAJvd*CmZ%SYh%mhb9AaQg=I z4qU$R)$|S)`X6f6`TPzZzJWWPpD$>GzFJnl^1;`(Eb#OQ}QGqmdw+I0(M=p~)?aj^?lz0KD*^z|S5TFeDNSo$~HjopL~jRx+xEjVpS){_&6LQkRfH-WAi4K%?)B5|v^D%>j68cFhF zyne_!k-e-dJ*FlorL~jvCStY(R#`2k+*e#$NBECt?55UGJ*|Ayo&XUP!iC@qzAAcH zO+*|s4Nb^pc$nH`2d5B)-eVUqlK;yb+Io!9b!lTQL<`g0v;#a~hE`6FR*6;zh>eBZ z1Va;MSDR>iwZ+^(!$HGX;|P*LUuh|94R^|L$XaNq=Q zYE@LPd|fSpsNgoUYm>G1w1HL*2&{>;JbZQox|W`T#|!~#V;=A&_gO{lqnbfqvb$Ut za)Mq%L{=M^xB8fS=myN#TA<_m0k5+R5!PU~LyM%NwNlzrnu->bWy5KHtq?th*kU$4 zueH;fX)A%@$zY z+fVGsp3kFWfZ>`4oZd~=7{2QX`oTwboYdoF;M;4!hd!Z%yyl8?%UEaaqI#Q-Az@ro z)G!2iz=h;IA>6MR%eK(tv?lq@(BE)|4MlABmd+x@48;u}SPD&NbID+CD%aeQ$n~e! zwOMRASq*_rEx8Jtp!6qg~?H_HDcg(M9|Ku$F<+ceewmkoxkZ-#EZ>XAa{`a z#x*8~X%yzPmvW1^0^D-+#VtUdB39tqa1+=q^(HIJ6+?Z`=xg8$4pDuayG{bQrSvsW zU=O+1WD>5p5GmD$6}JOsM~^>_u;)P8jX{60(tRWe91fuM*#mlol{D-l>$Ig>LG+{h z7>Am`du|3IS)ki#Q`U}{4F|bB+Fd2T_KIt5YR@&-mMB$K!p$+BHg@BVQJdC@F?_G6 zBmgri#b^%q%oxk5s#Q5czmSPsrr{ShO??I=*>2#LuAv{?z!!XZ$ZrfVNEd-DT?^!B zE5ZY-)&&Tpo#=Hpfb+Tr%v2{tGcuisal02ANIsL&=p%VqHp$PGWX%zMFJ#{k=gm^9 zXc^GOQlQhyA+Ge$@fcC-vL@Vb*0e9lK*SIG#`UW}8LvhJ7S3MLv54f#lKmtH z5z1qYr$>OL6xaY#pSILqv$fnOvO=q^mBspznTXgX;LG_U`-I+68<_W}bTvH(`97sn zfg-#HEA+!^0t4xX2&y8Z^fZuT3d&VjEi#k#1!`^`{J=>P!~%iLqVQM`fsgwPo;-9m zV$#xVGthG3tPH-|hLO))5$-1aOY_ik@Lva5d9ESJgW7gs1nEH}d?UZ52Z58_r_HC? z>;U(HwN%fkN#qT8j78C}S_^G5d1aVOOQ}xH3)Ji=ZW45|Rr?oMte5OEX#^Xe27fI= z!-0r|HeeJujp()zqTwzWId^HVv{YcAuK|C28#vQTT06EC_`%(%Hys|p%<7QNc%vXK z!S-@}*%K{{+%d$FuUagSVfV>E?h#uo#X(e(9 zTr|K;lMJ-uQCeSH1e^QIGWVj97su z-AW0&0}mX|RRu14D!D^Fz~tov`m;8C>N+4qpVLmTrEIbgh{D0Z(cNN`$X70ljH3%^ zdwAZt;Akzq0gP9B5@Xm%Y9adn1@;k&cr%eKLj=(dU()RnIlja?kWz^Gmm=1EPFDcC zz6?CHUdQ%|lP@Yq3u5F=|Y$8kP zVr?U{!($JnZuG=fh;bJq+Ik5OIhlBXvkn77b2t+)CT+%wlwicYk=z4P9wlmwC$G4Z zoQQsNlw2l5FguY0j^~hW+!}lt{=(JeB=8~7LF6_klO$FX-&|R2IPCtc8h}hfC2~M( zqkd8cYDxHhn5LanveYjaSzf4S^|TrdTx$t+wYpautz~FE)qmA*+F+o+U#cgx;rLoF zPc!K+bQpaAe06hpl{oSVu}p0;iaTNmF+>}d8oC->20Y4h)9mpR5V z-`vyk*22scEH5ox%~^g4=1YD7e%no-jc!9-%(65Fve*bb^J^`ywnr6}yviob`Xo#3 zy@xy-JR?0%-QUGgVte4_I*3z*C}F6uMFFUl|ab#y{> zY}BDh64?!NRx`qqL*55w2D$k~#DVX7Kh(Q#{?>RmHike|W)J)#0_Z zvp2Ut1&XYc^%vV``%W9NZn0+C2ibSq$J<_7Z`!vz-#N-SMmcUen+f-XR98OXxaSXV zE$?YbQ&!T4q^#j@zp|G6mRtVaLoSA|jOZUZGwM`yPHe-3r-^kEFDJB4?2xoLDJZFB z;)t?k>{iMRIme!H^v$2Ea-@GbaR*- zZSBkLA&$z(QoL~Nbfh}kI1W03ot!hm(aY|3{K~r=PWu?gHfLVfPFGR>l5?(06-Rjf z^H@D?r7GGX;@}dE&CFW@rUe}ejtjR$Rf#snSmLI{XC>xOb|i603zPpyDVH)LX-qOt`<^D&E6>|8)&RLGyjs(XM`(S%V@V3G+ z(ox+p(Gl;g>D=ushA{h)c%jZU15$Zd0r&w(Yic_FHzZ z{i&m)vm&3xZ{dIAd%9-1=DVKr;rx7OKE42d)|udZh+OJ5$n;NVV`m~?mp{V)D$eol zkvhp6)v8>AxqCoxkSq9kXs5`+aZM7tCeBa%nAAOWLwc(`{qp#y-$-emdNXZQYX8Ir zv3)U(G2VJ$B@uG_=xV{G|sGp#+Xb8YwSL5@PmiAB5axq1j| z#AfcR?k31qP4#H*TAm)B1b2HeL)JsISfU@uSEuR9v>3tfH118&(J z>lp{U!36oVR9Xs<+9KEW*7Likzt})n=Ti7&{;Bi2hvvnvh&=}$d~pxsZ#uaxZAO% zqYsAM_0RGfY1)9OxVgO4eG1u~Hv9p{J!@i)HM@IGA?qM3u_gmJm)AL;PjqFu)`(p^ zlf6xm6DlCrlBdZ6@-V%<<-HfYy*$N5muru!oof$22*|(s_GR|Xj?<35j%SXBd?%r< zNAsRj-cl!bz;8-mR!~IPu;{lj&0|g{j7hnZd?2-R9xhMU)c?|Kc?RWqk(`xqJN{u@ z{phUlULodyEYp6&J0htarMvDjLJwy%C-0bS`;y%}=T6RSYlN+iEx+xyo$&pHNb!mA zRqW+mBiB`~%E@wd#f;p?zw%nCuXmA`0L_*v403U<56;Vu{Ei9sX|~(emA1N$vyN!{ zImbt#xmWPcRyMNwrp=Z$K|MqLBYH*Gj{h~$mKcz-D_zXt$DKKo3LC+A(x@tpd$WCwAL zM20k6cr31yhNvsm=Q5T0D_7NKT0`xde9F_wQ(C(04R?=oy>||CPT}|Rv5sKd9b12l zHPswn9qsx5TxsG(?-s2cRy?&dT?_0GdMtco#Dd6MF`ner>FZN3CXG)imZx>Tv6Q)qcu-$>Rz2408_> z-vFcdhjXOkcgH(>K1Yyav+bRAzvDb`awXjzJUhH~v;<_M6a78@Awi~ykoZ~g{bH-f zjZ7+$HaTNVdWTdsWkFg_YNymW$?f86$Lx*195F8BUSN5k5wH?U>nk^x3VTMmW;ztx zDqBa}8teX?emSRehFj0sdOCJHTk$sjsf%}SlxHd5q_Xl!^*UnoM>K%e!B>1TvQFF7 zH!_jFBHMMuQ_}6^?>lS`m-C`CucM7^uC243IZisi@&kk&;&S(ExiK&rHw+(5j{@Vu z`$bNS+8Dhg_D+H|`AF*blp85mQzxdCNpqw=N)Ah`6yGs6IJ!&3{E(>uf0=g}3v-R> z0J*ehH;|5_oXo!3)+{F=XP5PgbuZB7=WNX#eVsObxlmgi@2((SR#e1@Gu24Cj!eMH zvZ{ygko-^T-IPzsZ&UK5YiUhW%_;ShHzW>-Ya5jwaV>mX z$Rx`&!*7V_Z)r2UTZCxA<7w!3rAJpH$o|? zbwT$1C1U*(SUGhEt2-UY;oQ*ntFl~E%5gUk2Z~#SeEbl{MSDK`d|M4$hHb00AN+9* z`&8#CSGc%QtmC<*zT`$2IZV1P4w(}^DXpEi%?IRq+_)@~J z;umq6XNZ(nL9SeD&VreVPQn_d4Fvzah58{Lw_{Dq2g&GdFaGChC#1RhI+oi~?YnH{ zt<`g)twXIZtWB-6t?`Z!Axr!w?)3Cl29wXGZk87Q2Loq^CB&vAjELPCLlYgThf|NF zmP{|6S~l5|nw(KG^=3lt*j3RhA_F3gVbud$nEv6m0wt59cs$kIOxWwn0OI@&u#Ru+ zcE@)|0q1>ZYjC{R-P!xf`_VgJ9st%u6wYa#6O_I5`?Bl;)^FCawsgDXEFzBfk`=f8gD&p(5vL%_5R!@?OX%dj?QuwD zl&i{Ne9KoLsazNC9@)+{HUwejgU1@ewW?9=D6jY4aMu*J@Xh#ojw-erIbE~4>_*w; zzNdcA|6TmnEqjo4yLFOngmblUOC0J6Q#LUbasE`xq@ZGv5wWXdPsN`|ZkU>#GA6B8 zp5V+pnKkmPPA{J(q!-WVk$f-47Bw*15z!~8fq9@6W!~%&uu2V!LkR9iLqv+-`4w`Gi^# zYcdx2-whfZ);yBLZcjL#^d-4WN@!|MdYjDK8HLlwrr%00mo_n_L-Nza<#7`u2Z!zq zITyUw62zTT&npYn9QnL32Jz>7XAP&t-aW^iz1`Z@Ufz)xD_ZXHcZCTax0Ip!X&bfH ztgE52sk|x9c){?>Xh*i&WH`lkVkUKo_DUY&9q&#TlY}n(HpdqG-_~i_+q0YGa5-PT zSN#6)`-+?g);9K*jtUOySS+M?zaZXhsxUg-Fv@R_|K^~Rp;aSRMm>)^k`$iYGqG~w zv!r*a85yfn3noraNKc-f(lEJMT${+}5nm&e(93})^Gm}>t|-e^Wa&4LS(IG6T|8EB z^#T?-)!x^6(G@8^Mch@(ZIkXRGu1ij94&y9F<1>wLn7AHO)yTvO1r6sKRCitv|~Vq z9F^j|GsMsQ5v&AT>Nsutkn=6O5GMD#XCKQhlD+7AjqHNfevY;HqAcoYD$Me{1X`q$ zd`1le=^N`urPDeKd=XS_*GNE)2dA-!p8-Nf#3o1(`@ z{}yvK!W%fseA!gOw3+LoQE8G_70UxP)Y9d^%9t*;0Q&>JwV2`>;fxW6diMfRGf1wk zD%8lOV|LEUwJ<(4HZ}fbC}rqkD8oI#j8tQ7g3?m9dRurdh*yM3t~`9SGu(L|z20jZ zXd7v3V!v&lZg<*_**%W;&cpm5*Gbn`VX3&yog~%A>Zd4`qixWRyMD<5+k(s?Z$rvN zZjL*f>RcuvvmUfGTC^kM$efxL!7;74hkrK_x`wlu3bA7u@bwmY1T z1-av_t~Ob!V|!xNHyN7^kJR&I9yxD#^mqQkfr^3c{*MAP0zQB9oZoUX{1&VSlB4Dv z%z2Vyg|1|Xzo1jDEB$34%695V5sWD zKY9Ue6%Qik1+UfN@@m^2`b2+=Ih}%R4XLl6$axsZ%htkM z<~-d&40_DkD?OC{u_p4tRsqQ+wX}VaTi#UpFGx!SyAGe{ie#03PVYkgA@xWYX+#c^ z47!;frs?=zOUZ8Inm%41sF%?n`b+xr`6GaY7?J%Z>uA>Gtm;{1fbWcbf9YN9`>)@p zW-iX!ko8;ExBeN%H8Pi-GOOEucR1Z1^(SpixD_)$c{98q>9b4@OrNtPjwWLx~N^T|o()fy3vgeg1^Y`p`{+)RNGj8{R zqx^|~!3UWw;DyuMvhx9?Fzw9q@uT!B0x**P7b(q7QU{$*?vUE_dm7FE;N#c|`WanF zO*)LGlk++Yl+?$f9WUr_<}yS!ifzFB77%(0o}vx;Rk%Q}!% zF*_A)RbSeHGxN(_1wQwMJ!RAp5k(SKC6!7FOKFtawMbNv5~)j*!sD97^~zH%@nu9) zPpa#&T+8|1)mPaqcaa9#CQCK!y&W}WB6SC=LIcc3Vgw!jSw;AKdYp~tS9vPmPAAeG z^i#HqH{;=K0&CBz(l<08AIN6X2pR)Vv0HQp>&K_F{`4ySnVn&O!6rOP88FI|$$sNY z!);8_hXy|O`}{1Yn13SD<_Bi9T~_|=joH<+B#auNPnSoT3_F)c}bC)C2{!~i0^7E;@0I$w|p+`txBieAnW3MO8$A&S=!q^x( zk)f)jHjK3YMxT;##<{?Sz!2z-ofsFs z;h*dOG3QD4P>kGVXU)$(om1LhA*T|MCT{mqB!o=dEnY|9&$@3-W_aYv)tM30X+r?t~g`@%dWTvwfwlw|KQ-(BAo-%8(j z^^E%7(@5FxV)AwAo%NnY(*p2T97#Tbu6_o*TY0jM*5_}{REzSxNZ~t9%#Ide`^jgd z5YfnOAon^NnZ_IAE>KB#=$~vIZ^{e7m$V_T!ZyRh`6*jW4Wp02^=-PWCj^@LX9EFV zD9|hCcutzXn}2yuDYOAe@KL{(0~)uSB>%}kZ~e5spIkv*Xkh(lpCfm7tg}yXuJiT_ zcShBY85$d#&?k9q-sF@y3FBg(gx67D_%^EDwD!J6$^m)3bGGM(RxP4s_(t`GcaE>9 zy39LBdE!`#d8r|0b5_TgYK$POjGv5?Mvl&nFW7OkTsPq#*U36zrkaiUc=(!bfWKxR zBSU{0hy~_v1$yEAz#Bm5NBk%+WuC!YX(#?Uf6T&Je;|36(&5mU`$;=;RbLQj?jMX9 zh_Zpb{>J`kIq^BQbGG}p1o{Rx_{02V;p<)n{r1xOPsRb`Ci#_jurB0|w6}4Lv2T>O zy7IaQsyyO$bfdVN@hl-W>F=b%iKk-RAt)B2U_YU+{^?vKysof247nvT} zHhi0U!Lwc&>DnYKc7LwV`i7MtH()c@CR@o(a+-Ey2D{HMn!Ukdv&~w`ORzhnfzi}R z2NI&Lz8pvhML(jKB4KPbD1kci4XhZO$1KctO*Cio3>?j8c7Brg8%0-bd)N^o7+EqDDB^zZev7}a`}(<-n?zX|lnbf{K!}mQAjQ0x#&6UE2gDrExm7*3+}SMW!lN`xX6(a z54B3Zh3;9dfJ;_BlGjSxtje?(al`)VLMyO8*;TfleFCqIneZlk0ZsIoxssZsD>-C* z3q%;vTO);r-qff>2GJGp%mIF^V|*p-``QsN1|l! zB6g#+z9R74?+JAASH<}9TD_0a0p*DPNV7P zv=Noa-+Fo2EPs*3v@$(NIW5V2yd(UCf8lx2rZncW*;ICxHHZGK#vDkihh@@ZYy;7bTgM0KJ0{sJv16u?0{Yn19dQ;*hk1!XpJWyCagZ3jEbBEC+KdDIfuvqH_ zyb+2@KRa%@T<&-;_hqRg!p}yYjVT_l$LEP(7wwAFwS}I%o-FTc-*xq*Z>(pzXQ1!3 z_D6&#>f6Y!;q`qBTthJjTHjH_{yO&s|AHN&o#{^M=H1M6c;))dzcB)Nk}m>U(`ofK zZ?aLeAXng-C_x)zoV`E& z6upX%$)ChUTaX1tS$$RDB+{8jZ>~QMQ~>6)n%+b&2eiR3Lp4r9BM;Zt!)~2nxXDHG z9ec+wnd_}TY?ghE^NjnhXP393dQ00IQ6%<7LcYXnapR(`u&KWCo^_sod2*ggH6(O`t=Y*OU^MR>ZOVqai>yQnqNtY&sGcbFHf zwqON&hgs#7GzyrY#zq-qm+{CrZES%ZV~6dwoZ7*<;^!G)ZCMWV%YOO~?aNBDZ8R@D z?d!mMeHEQY>JWvt0xG5>Sz%=AD}e!s)0gNm;6#ZrYU@1%SNyF5#{$K5sz1?J;P^&<9iT&uW^F-4=AMJ&~Jc$0jM zeH(m3w4|^-T9$fP`#k)9c!ls(jd*K$>w7l3K9Vz}61mf?Ic9HQ0Sog@sCzG1b$*Zc zG9U5b@L@l~f8-}w0d^bTs5-e0Jrb?I(PtVhNq+hf&7dCGcW>z$RttBpWuKwttPd~z z({v@P%jfYQfIM8n8dE=MMPHHKBpGedC1Vg~e5PVKsP{DjdLR9${yd+8tmb3VHu@cUHc4_Hsl?Gjk)Ye|VIc1Uz&N z_%_{zjs80~*+TX++sqSC&KYevJUp<5H_8kwxVngYz5)nKgluJ^^ZH#yHG0{)-9}jc#H7v zk;kJhMIVXU7hXIpTkWJ#HBMdZd*n+EFBf*icTC-=UDB$ly?qD0)7{5hFXc}iwWT-k z#F}Mof{#Ql+R%w~7Mq0@^%TnEJz5jJ^{?nBuxOVfZL?_<>gGBeRiUp*CnA$nQWI^; z9NLS$1A^gm*i+TH8#=j_xec>A^~_tmGy562wG&q5BC;6Y`3)&U%Oce)&;!42%r*ua zJB&W?gBWG}sAv0k`v(Tn^r6684kMfCB|05AsF8FmgRcfWk19yH%sIq#-*Is?BeyoLuoz?ECJut7b#*?F* zay@k3a2%9ogAej1bW;Vh0(9|FDnYxJ#n|07R)eL$%3n<1k{P5woj|wHC(uS^=vLB? z+(j)uMw-)ou#Wc7KCBA=6Kzl;%E%x-47Srq;8mybhrAx240~%C9ZLt{$$8KhILp%6 zm-HOU%-5tFDMO-&Wi&MYqfgKkFf+BsIKXrgPVO0Fpjqyd;baiX#%T5@{ORt)hh_s1 ze|zjZ!9G#b{gtP`SMx=v;b8;9>qS(LOhu}DMC=dis^wEltG%=gZGrYkJErx}zEUlp zOYQE9^Nw@ha@n1`!IU-2{+F}>-daB(-D_A+ppXu;CoB(aqL0{ETAaQomC%b$Mr)If z*~3!ksWc^@lM|!_T}1uRSc8C~*+Uz!Fd)9-%xLp3zL}5X-O*B&hgO&h&l|h>fNuc8 zB?`~~ge9@cEDfl&a`aQwlu2YRISd@pC#XZaz`L?XFNpGg+ zYkTrtW;ys9m4Gkd*Y;F-g)^_x-kt7Yo-!D}x)fG5A~JGs#P0BUVc%n zV8bz@)1CH!R^Ey7ZpZAyAd&$aWDMS=HJyiYxB!^&Q?wnM#T)$={}*6=p>baM|>io5=iFFV5U-QD(a(nZ@t z@X+-(yYaEGBU-`=?#@1DD!WXZ!di(#4s55@*c70?R!|9exwq)$jiL`Rr(6dCl{TX1 zI+9xS1lzzLLGHjt>B+r3i`C()`F`NBOYj~ZL?NP8>Qa!4faL&_Ig`-|M0wVmvYZl?tuNo z<4lyB0KGd(ItS0`cDc{2DV7Z1-fQ?;r7@Rq1^wE&(Ae4Z2iRi;p~+WZT;d|i`DElv zEOcN&+J&yg9BV~Zgb{iH_5Tv3m}6hVZeqmZ0Gq?QLT|KV(@~oKWEFV*_{d1Q1}NE@@Ud>ocflvRt@*221?ZQXxtDAk zq=EJ#jwg=$a-!=Cr7O6!27A4}LB9X^;?1rNrmUdLTq21Mf)v9aP)WK>|^|-H{ zFW~*!JI3>!dy%rtwaB?iKIwR3x7$;sreM-N1@zWA<^g!t!NLG{okdhc8`qdLE@Z0X@VF)R}p}2+m-Wkp5r6vUPy{ zhHrSBoy0iKKDL&9%UYpyMX?w7x+j1MTuEop(Xb2}W8|t9ZI3)yjsA5!bj=KQ2fB1C zFJW#pOTx#x89V`R+V)AS?F$_}<#eaRb=$RHneP6=BYW3*YoV{7p&nIJw6C>k+V@&7 zt+M7!5JiEDw zm*K})8}^XSM=2kHRQ3YDLm{fbGl7tINWH9XYxzH1XanuEQP#N{13@eD9HH9v?fwFTNcJ4mpm)&^FIAHW+{4ObOB$rC}m;*54!# zMty#PMhHi1SrV2^Wu$yDdx-b{2JOIjXvI#vEwtk|d;*^hz1Rg~Vo^L3w&P=V1!H@w zkT(O+?hFMp!aTMY><(|yODzW6<8IXa;ihGdfFEol_}8|#y|rzWW?+o5vYgKu=DO*c zs#J2nbg%H#_CEE__mx!VsgKmcT0^b2R$42fxwZ4^B;fhi`aHfS-r1fz?xOBa%3{|k z=Y2WT5%2ie-bCsRmd;0Du$yaU^49z)teHbVvpxoPwHe7nUKqb2&EtVvUTpl1*f{uEZ>YLxbI7&jb(S~r~ih&;KC`z!Mq(5GqUSThsog(67*T=>RE z+i%$CIzE>j&ZEwSu8~S(H*v4`wDZ36j`ZdF`l$QV*J_NGN8{=_b+$TGtpckj-M0kH zDypZxd!BN`73*r_TqU1(+_pcHVx^AYF~1A!<}owPoW*^xNIA-Wb6O1c+;*VKTagsx z!r#VYeDw%Y4K~^!*d;$fSKmN=NJ9-dh7wy6Ek`e;;TPzv9F_#s>JYsBJfwOlEPw&{ zmhE8+HiCS{Q(!&cg>G1d)V2uLgilxl)*2|>Z(tS8fabl(B=mMq@M7jnQ^!c$F>sdd z03yOBot2hC_s7Y*r@&g+!uGIZ7`=D}FRLWuIqf{oZu>|{E0Szx<`6WdlZZ&4fL+{-hnNc z<}2=t^}X`0_7?a43~s%x?lkvIg}7R}mOJkOv)tY>!+uOsq)uRdjmaH_K59#IJKlQ{ zEVB#H$!%x~y@jtlhO{N+Fb4WD?2(>i3dW&Mk;~A6K3H!pF>ZYV-#(F*$9L=n-98&% z^(AH&lYkX(h*I7dy?CJkzC|tg5i*re;bWl<>Yz{10P9+~rag2+Q{+@vSUI!!ac=T- zvxm9Iq-I&nd>n!g{`b)Q<7~OM!C(ZLW>0jia-_+}l(3+x<>yubgxhbWL?Wm21eW9kQc~eLwg$8zXv% zABgHZX0u@1p9x)5ke!B&UkeuBW%4r_jb2$J(g1U3wb1$vMcJQ6){;M9^%Ihc(VBkX ztJpVGGpyk2 z_ywTi^O#M{3Fc1osae7rXFas)0xu^J96opr1fBUi{aG7ELR18IU$@Dk8_1xZO#fz(EC zWfXGZ7g+80f$cAbaxf11{~UVu;Vgf!EDU8optW1U)Jxp^Wli|^bODPP2Y z!GUkH1LvWh74M=-{m3RKw7 z=3}!wkn}IDiop5ZL$r!9=&d)9)&r^E)qc)i66t*Ds3p&qpUIy&r#r7ZlU$u#8(q&_ z`M`oONSUTARyHYHl#R+S$~x>%Kv^!MP}dRHcvnT&OXrWylFln~7dZ>;1Qyr_B7po$ zl;#7$yCgRW+}6p~DzFl5L#ulOtxG)m9o=XgJ&gLCP8iZP-{@^L0Gp1}cn$yBoB9>~ z4m^QnBhDynls9S{ZH$rNo4g0@-xxjihvXylVGmPAtFZ4d_F4}XDTq+`c8eTzD8fB|D^w-Z_*DV zr5+>AXlBecE@MRHJJjkJl>V;pzA$M9Ecq|_4c^#XV@lu_IA;|FM&F zPP(SKnz>S4FPyWTpE;k%qvSB?q`D3r`BfRc@s846TO%Mhdjna%4K?(=Im^U+3@q~m zein7B9&EG|&{5T(qYi~Q!m(m%juzjlikv-ip6O0$Rj&gE) zc?s%bF=q$oGUo+gO9IYJ=Y8ih=L;;RQ*q@u?>c`&Y3$)_=q%{;I^W9|a7RnoE$?y+ za};yjv`@5`0xEEdR1Uqa?!amPiTE{XKwgcoid&D&g%}fihjD`T7*R?C5a>t*JfTN_`MD8PhC(pwd zT`#Y}vPs?`@5a3G7I~dKLGCVpiWI$YoN{b)%yA5WPfh{HEBh*YOM8_4KhhQ;D~CvB zrMEyzwg=+-5U{4>faxm>B>od?23RSwF|W22dVYY}#*8zs@R_g^^6;1J0z5Ph!jkC3 z8o?&24ok8FEW*CXg-=-mqyVc0`)WRVRTmg%MR^mntUJI8l8jbkGDhl{*%Uah6W}LL z143^Jm?X7M}FACagbz; z1}P4=BV%FZ*zN4|^kf6|jk90f+UaR0*C72~vtw2(c0(fx=t}=8Qau zI`TVEzw1#$+97VA3?}`ts59-MYYSVN^%7s9zuC}CG~e^n!0#Q$xZrk-6)cB6Tnpnw zrC~9A!kfc3?vAAoY=zC3r^@7cVU?zv?NI)ILqF&dtb#Zz-O2z@#RJ5QDhIxUzCdyA z0yaGktp78Ba6F4x6VGjh5sBersj1XOS`I$cEz(ixp7d0@E*;0-eZ+Cdkr?vgxpWg} zc7u`q1oGxDY`>P;A+PemkK~%|Kemg&w9Nw7Mmz8_q=6+Q87Te$5U00*XP*gvfDTA$ z3XqRE)@cioHZW&31~$tGYZM|wbiiC|OQ4)nt#I_N9F}3`z?RK2@0-`bnsNqAE~m_U z<|~uHQ`8M_iAY>m!m0&SbSv=6j|X4KB5-jW#!TNeAQ7ph0hd<=s7}Fku^G7XcZlZm zDOfDJfhXmApmi79*2CZ82zXtt+WxjZwdEihMH;Z&bnL&;izf5fry;|CX_bd_2_^zGi`IgB{KrY)xoDx8{0nkiX&iMbV99c1ZIto zfNqZk!umDxF$+392Z(qPncz?SHxXTNH_)dmfXM#=xjhW*BqDZi7jVur0wT69VnNkF zG>+2X*T{ni2P(E{;7Ex?S@;-yBu#NmRp5DLL}{_CDBw^Kw!-nFxtl#z#1J2G1AEVf=@E=u@o##&aRwVLp(s zOTkO98p~qv5d47hEi~5%pfvlygGWRT7V$CL;_GLi6m$Yx%jbyS(h5hNQR7=8Pej^2 zMJgNNY%AnLGvq`)uzfT`J?VjO+8xj7fcw9~x@+(o4@S<4$jO3pL&Q}X3=WRb$csr} z;~0f}9~)$75D_)U0390Q=IDcaM&ixB#g!rk^qAoH>5C_P1Fn?}yo-3FQ2fqb_`hPm zJr?ms4Zu?W8NNqpNEv7ku`P}5M<~n1z>!iES~@N_45iwe>jPdn5nr}wkVz#4$l*ee z!a)(tFERMtgKr*>uU-gOl>lBgEy%J`4%)sX?ka*ZT@crcCltq-GB}@(GA<&Uiddy0 zl5e@7lnK6#xbMRmu@y(9aA(or|11c;nUDxRmwfoId9lt55qqI^GVHw+EXk0h;5A8j z(}bWTmu6CYwHa(fmr{8k{BUq4D|nTTm?A>Ne-v9C{|^Ih zSU#LJEzrJLwp=@6588uk3CME`zhm$jVp$S?38g>|?uoSnTo=xuh^-v_-G#LRW+5*` zgQ$=Q;F_brlM#iS5!)C@93&pOn1Hp&!9?Wbhdj@RFOm9hX-LBtN`n-Kl)(2YiM7}l zM`BN$D-|qnp>HZmn~2~nwnD_V9LhyHVqJye;)WvGhGOE1Shk|1h;!l^u@^cgN{~1f z_m)HX30?8O@>3S)O5t~LosbU^d&Pd}2^H|GcwXqap^_-doOnj4W{9L z^5L9FtvC{Ai$T&*R{xhD;*7|fP=18+NL(WpaaPPBS`s=R%0p3aLb)og z5x>MeOt@SbvWFX8&%R1kZ`zLRU1$p1A768SzB% zEb;u%lN#aw2@%nVLwn*a>S8|>zqvl%G!)x8^k$*=2>tg^Y<3a1UBq>73H>Hwy|;n> z3&n&F#fk3#ZP*dox)bzZXXsxMf4&>EqKHc06a9-`|1N!?gL`A?11;SDU*4kuV6GDJ zj>UQ~;@gQOv>qDV6GviiFxF!G;p~U4_+6Y0{q}!f5qi#trw_#c5Yj)`8i*DlB;xqP zk=P4eCGHaM6MCo6^M|1g7!DbMmH|<>g4zcL%`px|4Y8x+CIv+!RLygiHml_ju^7Gn{z^j{He=?4+NhJF`T zROsk`cZZ%LjziD<@MOV6B%T*~?lQE_Az6+-nvi8!Rzg;Q&mt5>dNtbaHQ+M|$~bN$fYB@@8)0p1f_&I+f=wA>Y7$&cANB-u)0QBMQ;5rH3mC`5-q!!; zZ0NWDe=Y75*KZAqh;%Dhp|-)M6w3}QJA)#4p>_vF@HFj#{Uu~ya1rs0MVxC9=~~Fa zf8`Ktq)LN43%M8+!B!=rXMbSU3h`@Q#Tc!SYyVxYVPDAg|B7JX3bAnAfUPOy=6^-R z*!~-GJ1BR8EM0>~XaZiPa=!GHSuwaD%niiB`qYw6x&>tw%@b`ZJxP4+g literal 0 HcmV?d00001 diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/likeToBookAppointment.pcm b/examples/lexVoice/chatpickle/UserAudioResponses/likeToBookAppointment.pcm new file mode 100644 index 0000000000000000000000000000000000000000..6cd4df4003e257662e74c8df37cabd9531d01c29 GIT binary patch literal 54800 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 literal 0 HcmV?d00001 diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/tomorrow.pcm b/examples/lexVoice/chatpickle/UserAudioResponses/tomorrow.pcm new file mode 100644 index 0000000000000000000000000000000000000000..b487301bede6886fbb1ca47f1fe46d34e2d92c66 GIT binary patch literal 24800 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 literal 0 HcmV?d00001 diff --git a/examples/lexVoice/chatpickle/UserAudioResponses/yes.pcm b/examples/lexVoice/chatpickle/UserAudioResponses/yes.pcm new file mode 100644 index 0000000000000000000000000000000000000000..97302f28fe00200442c605b9fd94e4c8af5b450a GIT binary patch literal 24800 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 aIRHAUNWMvsFBIf!1^@9*uH?Ub*WiD87cUb4 literal 0 HcmV?d00001 From 9e76ecd134bb8ab94384e52952d957f428672d0e Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:46:21 -0400 Subject: [PATCH 06/12] Add files via upload Added chatpickle tests --- .../chatpickle/order-flowers-bot.feature | 27 ++++++++++++ .../schedule-appointment-bot.feature | 44 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 examples/lexVoice/chatpickle/order-flowers-bot.feature create mode 100644 examples/lexVoice/chatpickle/schedule-appointment-bot.feature diff --git a/examples/lexVoice/chatpickle/order-flowers-bot.feature b/examples/lexVoice/chatpickle/order-flowers-bot.feature new file mode 100644 index 0000000..ae3b4ad --- /dev/null +++ b/examples/lexVoice/chatpickle/order-flowers-bot.feature @@ -0,0 +1,27 @@ +Feature: OrderFlowers Bot + + Scenario: Anonymous orders roses for tomorrow at 4pm + Given the user begins a new chat with "OrderFlowers" + * User: I would like to order some flowers + * Bot: What type of flowers would you like to order? + * User: roses + * Bot: What day do you want the roses to be picked up? + * User: tomorrow + * Bot: /^Pick up the roses at what time on \d{4}-\d{2}-\d{2}\?$/ + * User: four pm + * Bot: /^Okay, your roses will be ready for pickup by 16:00 on \d{4}-\d{2}-\d{2}. Does this sound okay\?$/ + Then slots.FlowerType = roses + And sessionAttributes.FlowerType = undefined + + Scenario: Anonymous orders roses for tomorrow at 5pm but decides to cancel + Given the user begins a new chat with "OrderFlowers" + * User: I would like to order some flowers + * Bot: What type of flowers would you like to order? + * User: roses + * Bot: What day do you want the roses to be picked up? + * User: tomorrow + * Bot: /^Pick up the roses at what time on \d{4}-\d{2}-\d{2}\?$/ + * User: five pm + * Bot: /^Okay, your roses will be ready for pickup by 17:00 on \d{4}-\d{2}-\d{2}. Does this sound okay\?$/ + * User: no + * Bot: Okay, I will not place your order. \ No newline at end of file diff --git a/examples/lexVoice/chatpickle/schedule-appointment-bot.feature b/examples/lexVoice/chatpickle/schedule-appointment-bot.feature new file mode 100644 index 0000000..470bca0 --- /dev/null +++ b/examples/lexVoice/chatpickle/schedule-appointment-bot.feature @@ -0,0 +1,44 @@ +Feature: ScheduleAppointment Bot + + Scenario: Happy Path - Anonymous sets up cleaning appointment + Given the user begins a new chat with "ScheduleAppointment" + * User: I would like to book an appointment + * Bot: What type of appointment would you like to schedule? + * User: cleaning + * Bot: When should I schedule your cleaning? + * User: tomorrow + * Bot: /At what time/ + * User: four pm + * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ + * User: yes + + Scenario: Non-Happy Path - Caller stays quiet. Bot should repeat the last prompt + Given the user begins a new chat with "ScheduleAppointment" + * User: I would like to book an appointment + * Bot: What type of appointment would you like to schedule? + * User: + * Bot: What type of appointment would you like to schedule? + * User: cleaning + * Bot: When should I schedule your cleaning? + * User: + * Bot: When should I schedule your cleaning? + * User: tomorrow + * Bot: /At what time/ + * User: + * Bot: /At what time/ + * User: four pm + * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ + * User: yes + + Scenario: Use File + Given the user begins a new chat with "ScheduleAppointment" + * User: likeToBookAppointment.pcm + * Bot: What type of appointment would you like to schedule? + * User: cleaning.pcm + * Bot: When should I schedule your cleaning? + * User: tomorrow.pcm + * Bot: /At what time/ + * User: fourPm.pcm + * Bot: /\d{2}:\d{2} is available, should I go ahead and book your appointment\?/ + * User: yes.pcm + From 5eb35892f54832f1e4e435d1f0916bc034033aea Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:47:50 -0400 Subject: [PATCH 07/12] Add files via upload Added chatpickle config and readme files --- examples/lexVoice/README_LEX.md | 20 ++++++++++++++ examples/lexVoice/chatpickle.config.json | 33 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 examples/lexVoice/README_LEX.md create mode 100644 examples/lexVoice/chatpickle.config.json diff --git a/examples/lexVoice/README_LEX.md b/examples/lexVoice/README_LEX.md new file mode 100644 index 0000000..da02f1f --- /dev/null +++ b/examples/lexVoice/README_LEX.md @@ -0,0 +1,20 @@ +# AWS Lex Example + +This sample project, [examples/lex](./), is designed to be pointed at the OrderFlowers and ScheduleAppointment bots as provided by AWS as a blueprint. + +### Create a config file + +You need a [chatpickle.config.json](chatpickle.config.json) (or .js) in the root of your node.js project and it should be formatted like the example provided. + +### Create a chatpickle/ folder +You also need a [chatpickle/](chatpickle) folder in the root of your project. This is where you will put your gherkin feature files which can leverage the extended chatpickle syntax. + +### Setup a Lex Chatbot +To setup your own OrderFlowers and ScheduleAppointment bots from a blueprint in your AWS account, follow this [AWS Lex Guide](https://docs.aws.amazon.com/lex/latest/dg/gs-bp-create-bot.html). + +Or if you want to get started with chatpickling a custom lex bot, alter your project's chatpickle config; see example at [chatpickle.config.json](chatpickle.config.json) + +### Setup IAM Credentials +You will need to create IAM credentials that can invoke your bot. You can use the Amazon managed policies as shown below. Load them in your `.aws` directory or follow this [AWS CLI Configure Guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). + +![Lex Execution IAM Credentials](https://miro.medium.com/max/750/0*m55m6A95OcpcFRDa.png) \ No newline at end of file diff --git a/examples/lexVoice/chatpickle.config.json b/examples/lexVoice/chatpickle.config.json new file mode 100644 index 0000000..0f3f75c --- /dev/null +++ b/examples/lexVoice/chatpickle.config.json @@ -0,0 +1,33 @@ +{ + "bots": { + "OrderFlowers": { + "type": "LexVoice", + "context": { + "botName": "OrderFlowers", + "botAlias": "prod", + "region": "us-east-1" + } + }, + "ScheduleAppointment": { + "type": "LexVoice", + "context": { + "botName": "ScheduleAppointment", + "botAlias": "prod", + "region": "us-east-1" + } + } + }, + "users": { + "homer": { + "description": "Basic User Profile", + "context": { + "userId": "homer", + "userAttributes": { + "firstName": "Homer", + "lastName": "Simpson", + "address": "Springfield" + } + } + } + } +} \ No newline at end of file From d37bae3172909813242383246fcbd58b60d0ddca Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:48:45 -0400 Subject: [PATCH 08/12] Update package.json Added lexVoice script to package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7224720..a652976 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "build:other": "cp -r src/cucumberSupport dist/cucumberSupport", "start": "npm run example:lex", "example:lex": "npm run build && node dist/cli.js --cpPath examples/lex/", + "example:lexVoice": "npm run build && node dist/cli.js --cpPath examples/lexVoice/", "example:custom": "npm run build && node dist/cli.js --cpPath examples/custom/", "test": "jest --reporters=default --reporters=jest-junit", "lint": "eslint \"{scripts,src,test}/**/*.{js,ts}\"", From 78f97184810ef6e71742c5481a733ebd8984473e Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:51:49 -0400 Subject: [PATCH 09/12] Update LexClient.ts Reverted last change in this file. --- src/lib/botClients/LexClient.ts | 47 ++------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/src/lib/botClients/LexClient.ts b/src/lib/botClients/LexClient.ts index a03a24e..fb2addb 100644 --- a/src/lib/botClients/LexClient.ts +++ b/src/lib/botClients/LexClient.ts @@ -1,8 +1,6 @@ import LexRuntime from 'aws-sdk/clients/lexruntime'; import get from 'lodash.get'; import { BotClient } from './BotClient'; -import Polly from 'aws-sdk/clients/polly'; -import Fs from 'fs'; export default class LexClient extends BotClient { private botName: string; @@ -12,10 +10,6 @@ export default class LexClient extends BotClient { private sessionAttributes: any; private props: any; private lex: LexRuntime; - private Polly = new Polly({ - signatureVersion: "v4", - region: 'us-east-1' - }); constructor(botContext: any, userContext: any) { super(botContext, userContext); @@ -39,55 +33,18 @@ export default class LexClient extends BotClient { public async speak(inputText: string): Promise { console.log(`[${this.userId}] User: ${inputText}`); - let pollyParams = { - 'Text': inputText, - 'OutputFormat': 'pcm', - 'VoiceId': 'Joanna' - }; - - let audioStream = ''; - - Polly.synthesizeSpeech(pollyParams, (err, data) => { - if (err) { - console.log(err.code) - } else if (data) { - if (data.AudioStream instanceof Buffer) { - /**Fs.writeFile("./file.pcm", data.AudioStream, function(err) { - if (err) { - return console.log(err) - } - console.log("The file was saved!") - })**/ - audioStream = data.AudioStream; - } - } - }); - - //let lexFileStream = Fs.createReadStream("./file.pcm"); - const params = { botName: this.botName, botAlias: this.botAlias, userId: this.userId, inputText, sessionAttributes: this.sessionAttributes, - contentType: 'audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false', - inputStream: audioStream }; - - this.lastResponse = await this.lex.postContent(params, function(err, data) { - if (err) { - console.log(err, err.stack); - } - else { - console.log(data); - } - }).promise(); - + this.lastResponse = await this.lex.postText(params).promise(); this.sessionAttributes = this.lastResponse.sessionAttributes; - const reply: string = this.lastResponse.message.trim(); + const reply: string = this.lastResponse.message? this.lastResponse.message.trim(): null; console.log(`[${this.userId}] Bot: ${reply}`); From ab1f1113489570ddd4c31addc26a96861db49cb5 Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 09:53:33 -0400 Subject: [PATCH 10/12] Add files via upload Added LexVoiceClient --- src/lib/botClients/LexVoiceClient.test.ts | 36 +++++++ src/lib/botClients/LexVoiceClient.ts | 120 ++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 src/lib/botClients/LexVoiceClient.test.ts create mode 100644 src/lib/botClients/LexVoiceClient.ts diff --git a/src/lib/botClients/LexVoiceClient.test.ts b/src/lib/botClients/LexVoiceClient.test.ts new file mode 100644 index 0000000..59bd3df --- /dev/null +++ b/src/lib/botClients/LexVoiceClient.test.ts @@ -0,0 +1,36 @@ +// Need to bypass type safety of typescript to allow this approach for mocking to work. +// eslint-disable-next-line @typescript-eslint/no-var-requires +const LexRuntime = require('aws-sdk/clients/lexruntime'); +import LexVoiceClient from './LexVoiceClient'; + +jest.mock('aws-sdk/clients/lexruntime'); + +const lexRuntimePostTextPromise = jest.fn().mockReturnValue({ + promise: jest.fn().mockResolvedValue({ + sessionAttributes: { foo: 'bar' }, + message: 'This is a mocked message.', + }), +}); + +LexRuntime.mockImplementation(() => ({ + postContent: lexRuntimePostTextPromise, +})); + +test('LexVoiceClient.speak()', async (): Promise => { + const botContext = { + botName: 'OrderFlowers', + botAlias: 'prod', + region: 'us-east-1', + }; + const userContext = { + userId: 'homer', + userAttributes: { + firstName: 'Homer', + lastName: 'Simpson', + address: 'Springfield', + }, + }; + const botClient = new LexVoiceClient(botContext, userContext); + const reply = await botClient.speak('Hello World'); + expect(reply).toBe('This is a mocked message.'); +}); diff --git a/src/lib/botClients/LexVoiceClient.ts b/src/lib/botClients/LexVoiceClient.ts new file mode 100644 index 0000000..37b2402 --- /dev/null +++ b/src/lib/botClients/LexVoiceClient.ts @@ -0,0 +1,120 @@ +import LexRuntime from 'aws-sdk/clients/lexruntime'; +import get from 'lodash.get'; +import { BotClient } from './BotClient'; +import Polly from 'aws-sdk/clients/polly'; +const Stream = require('stream'); +const fs = require('fs'); +const path = require('path'); + +export default class LexVoiceClient extends BotClient { + + private botName: string; + private botAlias: string; + private userId: string; + private lastResponse: any; + private sessionAttributes: any; + private props: any; + private lex: LexRuntime; + private polly: Polly; + + constructor(botContext: any, userContext: any) { + super(botContext, userContext); + this.botName = this.botContext.botName; + this.botAlias = this.botContext.botAlias; + this.userId = `${this.userContext.userId}-${Date.now()}`; + this.lastResponse = null; + this.sessionAttributes = this.userContext.userAttributes; + + this.props = { + region: this.botContext.region, + }; + // Optional Auth Environment Variables + this.props.accessKeyId = process.env.chatpickle_access_id || undefined; + this.props.secretAccessKey = process.env.chatpickle_access_secret || undefined; + + this.lex = new LexRuntime(this.props); + + const pollyParams = { + accessKey: process.env.chatpickle_access_id || undefined, + secretAccessKey: process.env.chatpickle_access_secret || undefined, + signatureVersion: "v4", + region: 'us-east-1' + } + this.polly = new Polly(pollyParams); + + console.log(`[${this.userId}] New Conversation with ${this.botName}`); + } + + public async speak(inputText: string): Promise { + + console.log(`[${this.userId}] User: ${inputText}`); + + let audioStream: Buffer = null; + + if (inputText && inputText.indexOf('.pcm') >= 0) { + + const fileName = inputText.trim(); + try { + audioStream = fs.readFileSync('./examples/lexVoice/chatpickle/UserAudioResponses/' + fileName); + } catch (error) { + console.log("Exception occurred while reading audio file: " + error.message); + } + + } else { + + if (inputText === null) { + inputText = ''; + } + + let pollyParams = { + 'Text': inputText, + 'OutputFormat': 'pcm', + 'VoiceId': 'Joanna' + }; + + try { + const data = await this.polly.synthesizeSpeech(pollyParams).promise(); + if (data) { + if (data.AudioStream instanceof Buffer) { + audioStream = data.AudioStream; + } + } + } catch (err) { + console.log('Unexpected error while synthesizing polly speech ' + err.code); + } + } + + console.log('Calling bot with inputText: ' + inputText); + + const params = { + botName: this.botName, + botAlias: this.botAlias, + userId: this.userId, + sessionAttributes: this.sessionAttributes, + contentType: 'audio/x-l16; sample-rate=16000; channel-count=1', + inputStream: audioStream, + accept: 'text/plain; charset=utf-8' + }; + + + try { + this.lastResponse = await this.lex.postContent(params).promise(); + } catch (err) { + console.log(err, err.stack); + } + + let reply: string = null; + + if (this.lastResponse) { + this.sessionAttributes = this.lastResponse ? this.lastResponse.sessionAttributes : null; + reply = this.lastResponse.message ? this.lastResponse.message.trim() : null; + console.log(`[${this.userId}] Bot: ${reply}`); + } + + return reply; + } + + public async fetch(attributePath: string): Promise { + return await get(this.lastResponse, attributePath); + } +} From 0638c048b13a1e0f8354c759aae47c01a82dc34a Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 10:43:57 -0400 Subject: [PATCH 11/12] Update README_LEX.md Updated Readme file --- examples/lexVoice/README_LEX.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/lexVoice/README_LEX.md b/examples/lexVoice/README_LEX.md index da02f1f..6cf6178 100644 --- a/examples/lexVoice/README_LEX.md +++ b/examples/lexVoice/README_LEX.md @@ -1,6 +1,9 @@ # AWS Lex Example -This sample project, [examples/lex](./), is designed to be pointed at the OrderFlowers and ScheduleAppointment bots as provided by AWS as a blueprint. +This sample project, [examples/lex and examples/lexVoice](./), is designed to be pointed at the OrderFlowers and ScheduleAppointment bots as provided by AWS as a blueprint. +[examples/lex](./) uses the lex postText to post user responses and [examples/lexVoice](./) uses the lex postContent. + +Using the lexVoice, we can post audio content as the user response. Please take a look at [examples/lexVoice/chatpickle/schedule-appointment-bot.feature](./) where the audio file name is listed as the user response. Only pcm files are supported. We can also add mp3 and mpeg support in the future if needed. ### Create a config file @@ -17,4 +20,4 @@ Or if you want to get started with chatpickling a custom lex bot, alter your pr ### Setup IAM Credentials You will need to create IAM credentials that can invoke your bot. You can use the Amazon managed policies as shown below. Load them in your `.aws` directory or follow this [AWS CLI Configure Guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). -![Lex Execution IAM Credentials](https://miro.medium.com/max/750/0*m55m6A95OcpcFRDa.png) \ No newline at end of file +![Lex Execution IAM Credentials](https://miro.medium.com/max/750/0*m55m6A95OcpcFRDa.png) From 0c348342a870ba820bacefd5096ef10f5de1dea1 Mon Sep 17 00:00:00 2001 From: reddyharsha Date: Fri, 25 Jun 2021 10:45:11 -0400 Subject: [PATCH 12/12] Update README_LEX.md Updated ReadME --- examples/lexVoice/README_LEX.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/lexVoice/README_LEX.md b/examples/lexVoice/README_LEX.md index 6cf6178..347ec73 100644 --- a/examples/lexVoice/README_LEX.md +++ b/examples/lexVoice/README_LEX.md @@ -1,6 +1,6 @@ # AWS Lex Example -This sample project, [examples/lex and examples/lexVoice](./), is designed to be pointed at the OrderFlowers and ScheduleAppointment bots as provided by AWS as a blueprint. +This sample project, [examples/lex](./) and [examples/lexVoice](./), is designed to be pointed at the OrderFlowers and ScheduleAppointment bots as provided by AWS as a blueprint. [examples/lex](./) uses the lex postText to post user responses and [examples/lexVoice](./) uses the lex postContent. Using the lexVoice, we can post audio content as the user response. Please take a look at [examples/lexVoice/chatpickle/schedule-appointment-bot.feature](./) where the audio file name is listed as the user response. Only pcm files are supported. We can also add mp3 and mpeg support in the future if needed.