Én először válaszolni azt a részt , hogy hogyan csinálom : Én használ egy MongoDB. Én játszottam az ötleteket, amit említett, de gyorsan áthúzott in-memory megoldások (Memcached, Redis) az ugyanezen okból. Saját végső megoldás jött le, hogy akár egy relációs DB vagy nosql mint MongoDB. Hogy őszinte legyek, én projekt skála, én nem gondolok erőteljesen eredményeinek összehasonlításával között DB típus.
Az én különleges jellemzője „útitervet”, úgy döntöttem, hogy menjen a Mongo való közeledés „OOP” stílus, ha foglalkoznak a felhasználó „tárgy”, anélkül, hogy kifejezetten meg kell határozni a felhasználói osztály, köszönhetően a normalizált szerkezete Mongo. Megértem az azonos lehetne tenni a MySQL is, csak hogy a feldolgozás jsonaz adatok több „tárgy-szerű” és nekem flask, azaz user = getUserFromMongo, ami nekem egy dict Python akkor én csak csinálni user['first_name']. A kódokat belows elmagyarázza az egyszerűség:
(Valahogy ez az érzés, mint ... nem kell írni SQL parancsok egyszerű adatbázis interakció Rails)
Használati tárgy adatok MongoDB

Végül, mint a hogyan kezelje a felhasználói input , én elfogadott Wit.ai fogalmát context. Nem tudom, hogyan csinálják, pontosan, de contextszámomra az a fajta beszélgetés célja, hogy folyik. ÉN használ ez, mint egy köteg, és amint a jelenlegi helyzetben történik, pop le összefüggésben adatokat a felhasználó. Minden üzenet a bot kap, a program lesz a jelenlegi helyzetben és közvetlen áramlását. Amikor ismeretlen hiba történik (kivétel kezelése), valószínűleg azért, mert a felhasználó mond valamit a bot nem értem, törölje a contextadatokat is.
A jó az egészben az, hogy MongoDB tudom alakítani a contextviszont szeretnék, és ennek kezelése csak, mint egy tárgy. Egy egyszerű, mint {name: yelp-search, stage:ask-for-user-location}, és gondolom bonyolultabb is épülhet, hogy a struktúra is. Persze, egy köteg végrehajtása contextnem foglalkozik komplex beszélgetés összetett múlt referencia.
Azt tette a projekt GitHub ha azt szeretnénk, hogy egy pillantást.