Ja najpierw odpowiedzieć na część o jak ja to robię : Używam MongoDB. I bawił się z ideami pan wspomniał, ale szybko przeszedł w pamięci rozwiązań (memcached, Redis) z tego samego powodu. Moje ostateczne rozwiązanie sprowadza się do jednej relacyjnej DB lub NoSQL jak MongoDB. Szczerze mówiąc, w skali mojego projektu, ja nie sądzę o solidnie porównanie wydajności między typami DB.
Z moją szczególną cechę „mapy drogowej”, postanowiłem pójść z Mongo zbliżyć się bardziej „OOP” styl w kontaktach z użytkownikiem „obiekt”, bez konieczności jednoznacznie zdefiniować klasę użytkownika, dzięki znormalizowanej konstrukcji Mongo. Rozumiem, że to samo można zrobić dla MySQL, też, tylko że przetwarzanie jsondanych jest bardziej „przedmiot-like” dla mnie flask, to znaczy user = getUserFromMongo, co daje mi dict w Pythonie to mogę po prostu zrobić user['first_name']. Kody belows wyjaśni tę prostotę:
(Jakoś to było uczucie jak ... nie konieczności pisania poleceń SQL do bazy danych w prosty interakcji Rails)
Moje dane użytkownika obiekt na MongoDB

Wreszcie, jeśli chodzi o sposób zarządzać wprowadzania danych przez użytkownika , I przyjął koncepcję Wit.ai użytkownikiem context. Nie wiem jak oni to robią dokładnie, ale contextdla mnie jest to rodzaj celu rozmowy, która się dzieje. Używam go jak stos, i tak szybko, jak obecny kontekst jest zrobione, pop go dane kontekście użytkownika. Do każdej wiadomości bot odbiera program dostanie bieżący kontekst i skierować przepływ. Ilekroć pojawia się nieznany błąd (wyjątki przeładunkowe), najprawdopodobniej dlatego, że użytkownik mówi coś bot nie rozumie, ja wyczyścić contextdane, too.
Dobre strony o MongoDB jest to, że mogę kształtować contextjednak chcę i traktować go tylko jako obiekt. Prosty jeden jest jak {name: yelp-search, stage:ask-for-user-location}, a ja sobie wyobrazić skomplikowanych może być zbudowany na tej struktury, too. Oczywiście, realizacja stos z contextnie zajmuje się kompleksowym rozmowie z kompleksowego odniesienia przeszłości.
I umieścić mój projekt na Github jeśli chcesz spojrzeć na niego.