Nejlepší způsob, jak ukládat odpovědi od uživatelů na Facebooku bot chatu?

hlasů
4

Budování Facebook messenger bot pomocí Claudia JS a plán na hostování na AWS Lambda.

Chci se zeptat uživateli řadu otázek.

Když uživatel odpoví odpověď, musím šetřit, které později a jednou jsem mít všechny informace, které potřebuji, budu projít odpovědi na zvolenou funkci.

Jaký je nejlepší způsob, jak tyto informace uložit?

Myslel jsem, že nějaké cache vrstvu, jako REDIS ale proto, že je uložen v paměti RAM I ztratí, když lamda serveru vypne. MongoDB má zřejmě hodně režijních nákladů při připojování ale bude přinejmenším vytrvalý.

Snad jen jednoduchý MySQL server?

Jak se všichni ostatní to udělat? Mám pocit, že existuje jednoduché řešení, které jsem chybí.

Položena 13/09/2016 v 05:47
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
5

Nejprve se budu odpovídat na tu část o tom, jak to dělám : Jsem pomocí MongoDB. Pohrával jsem s myšlenkami, které jste zmínil, ale rychle přešel v paměti řešení (Memcached, REDIS) se ze stejného důvodu. Mé konečné řešení sestoupil buď relační DB nebo NoSQL jako MongoDB. Chcete-li být upřímný, v měřítku mého projektu, jsem si nemyslel, že o robustně porovnání výkonu mezi různými typy DB.

S mým Zvláštním znakem „cestovní mapy“, jsem se rozhodl jít s Mongo přiblížit více „OOP“ styl při jednání s uživatelem „objekt“, aniž by museli explicitně definovat třídu uživatelů, díky normalizované struktury Mongo. Chápu, že totéž by se dalo udělat pro MySQL také jen, že zpracování jsondat je více „objektově jako“ pro mě flask, tedy user = getUserFromMongo, což mi dává dict v Pythonu pak můžu jen dělat user['first_name']. Kódy belows vysvětlí tuto jednoduchost:

Komunikovat s MongoDB (Nějak to byl pocit, že ... ne museli psát SQL příkazy pro jednoduchou interakci databáze v kolejích)

Mé údaje o objekt uživatel MongoDB uživatel

A konečně, pokud jde o tom, jak se mi podaří vstup uživatele , přijala jsem koncept Wit.ai tohoto context. Nevím, jak to dělají přesně to, ale contextpro mě je typ konverzace účel, co se děje. Používám ji jako hromada, a jakmile je aktuální kontext je hotovo, pop off dat kontextu uživatele. U každé zprávy bot obdrží, bude program získat aktuální kontext a řídit tok. Kdykoliv dojde k neznámé chybě (zpracování výjimek), s největší pravděpodobností proto, že uživatel něco říká bot nerozumí, jsem vymazat contextúdaje, taky.

Dobrá část o MongoDB je, že mohu formovat contextvšak chci, a zacházet s ní stejně jako objekt. Jednoduchý jeden je podobný {name: yelp-search, stage:ask-for-user-location}, a já si představit ty složité mohl být postaven na této struktuře, taky. Samozřejmě, že realizace stoh z contextnezabývá komplexní rozhovor s komplexním odkazem minulých.

I dal svůj projekt na GitHub , pokud chcete, aby se na to podívat.

Odpovězeno 15/09/2016 v 20:17
zdroj uživatelem

hlasů
3

Mám také použít mysql pro Chatbot ale jsem použil NodeJS pro backend app.For tomto MySQL modulu by bylo velmi užitečné.

Musíte uložit aktuální stav uživatelů na otázku odpovědět zasedání a také uložit odpověď sám ze strany uživatele a je třeba, aby se přepínač nebo if-else-if pouzdro pro kladení otázek na uživatele na základě jeho stavu jako switch (stát) av případech spínače jen aktualizovat to state.and máte uživatele facebook-id v objektu události Chatbot , takže můžete ukládat data každého jednotlivého uživatele s jejich stavem a otázka-odpověď na jiné tabulky.

Pro např definovat vlajky {1,2,3}

o autorovi stav bude 1 v inscenační takže zeptejte se ho například pro otázky-1 pouze a uložit to jako odpověď-1, můžete to udělat tím, že je to stát checking, a po tomto stavu aktualizace až 2.

takže tímto způsobem, můžete požádat každého studenta otázku podle jejich stavu a odpovědět na něj.

Udělal jsem totéž v přesném výše uvedeným způsobem.

Doufám, že to bude užitečné pro vás.

Odpovězeno 16/09/2016 v 09:38
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more