A legjobb módja annak, hogy tárolja válaszokat felhasználók Facebook bot beszélgetés?

szavazat
4

Épület egy Facebook messenger bot segítségével Claudia JS és a terv hosting AWS Lambda.

Azt szeretném megkérdezni a felhasználó egy sor kérdésre.

Amikor egy felhasználó válaszol egy választ, azt meg kell menteni, hogy később, ha már az összes információt, amit kell, azt átadja a választ a funkciót.

Mi a legjobb módja annak, hogy mentse ezt az információt?

Arra gondoltam, néhány caching réteget, például Redis hanem azért, hogy a RAM-ban fogom elveszíteni, amikor lambda-kiszolgáló leállításakor. MongoDB nyilvánvalóan van egy csomó rezsi csatlakoztatásakor, de legalább állandó.

Talán csak egy egyszerű MySQL szerver?

Hogyan mindenki csinálni? Úgy érzem, van egy egyszerű megoldás, hogy én eltűnt.

A kérdést 13/09/2016 05:47
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
5

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

Interact MongoDB (Valahogy ez az érzés, mint ... nem kell írni SQL parancsok egyszerű adatbázis interakció Rails)

Használati tárgy adatok MongoDB használó

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.

Válaszolt 15/09/2016 20:17
a forrás felhasználó

szavazat
3

Azt is használják mysql ChatBot de én használtam NodeJS a backend app.For hogy mysql modul nagyon hasznos lenne.

Meg kell tárolni a felhasználók jelenlegi állapot a kérdés felelet és tárolja a válasz maga a felhasználó, és meg kell, hogy egy kapcsoló, vagy if-else-if esetben a kérdéseket, hogy a felhasználó alapuló állam kapcsoló (állami) és abban az esetben, kapcsoló csak frissíteni ez state.and van felhasználó facebook-id in event objektum chatbot így az adatok tárolására minden felhasználó külön-külön az állami és kérdés-válasz a másik tábla.

A pl meghatározása zászlók {1,2,3}

felhasználó állam lesz az 1. Kezdetben úgy kérjen tőle pl kérdés-1 csak, és tárolja ezt válasz-1, akkor ezt az ez állapotának ellenőrzése, és ezt követően a frissítési állapotot 2.

így, ezen a módon lehet kérni az egyes diák kérdést, mint egy saját állam és válaszoljon rá.

Tettem ugyanazt a pontos fenti módon.

Remélem, ez hasznos lenne az Ön számára.

Válaszolt 16/09/2016 09:38
a forrás felhasználó

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