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:
(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

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.