Ο καλύτερος τρόπος για να αποθηκεύσετε τις απαντήσεις των χρηστών στο Facebook bot συνομιλίας;

ψήφοι
4

Η οικοδόμηση ενός ρομπότ αγγελιοφόρος Facebook χρησιμοποιώντας Claudia JS και το σχέδιο για τη φιλοξενία στην AWS Lambda.

Θέλω να ρωτήσω στο χρήστη μια σειρά από ερωτήματα.

Όταν ένας χρήστης απαντά με μια απάντηση, θα πρέπει να αποθηκεύσετε αυτό για αργότερα και αφού έχω όλες τις πληροφορίες που χρειάζομαι, θα περάσει τις απαντήσεις σε λειτουργία.

Ποιος είναι ο καλύτερος τρόπος για να αποθηκεύσετε αυτές τις πληροφορίες;

Σκεφτόμουν κάποια στρώμα caching, όπως Ρέντη, αλλά επειδή αυτό είναι αποθηκευμένο στη μνήμη RAM θα ​​το χάσει όταν ο διακομιστής LAMDA τερματίζεται. MongoDB έχει προφανώς πολλά γενικών εξόδων κατά τη σύνδεση, αλλά τουλάχιστον θα είναι επίμονη.

Ίσως μόνο ένα απλό διακομιστή mySQL;

Πώς όλοι οι άλλοι το κάνουν; Νιώθω σαν να υπάρχει μια απλή λύση που μου λείπει.

Δημοσιεύθηκε 13/09/2016 στις 05:47
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
5

Θα απαντήσω πρώτα το τμήμα σχετικά με το πώς το κάνω : Είμαι χρησιμοποιώντας ένα MongoDB. Θα έπαιζε με τις ιδέες που αναφέρατε, αλλά γρήγορα πέρασε λύσεις στη μνήμη (memcached, Ρέντη) με τον ίδιο λόγο. Τελική λύση μου κατέβηκε είτε σε σχεσιακή ΒΔ ή NoSQL όπως MongoDB. Για να είμαι ειλικρινής, σε κλίμακα του έργου μου, εγώ δεν σκέφτομαι σθεναρά τη σύγκριση των επιδόσεων μεταξύ των τύπων DB.

Με ιδιαίτερο χαρακτηριστικό μου «οδικό χάρτη», αποφάσισα να πάω με Mongo να προσεγγίσει μια περισσότερο στυλ «OOP» όταν ασχολείται με το χρήστη «αντικείμενο», χωρίς να χρειάζεται να ορίσει ρητά μια κατηγορία χρήστη, χάρη στην κανονικοποιημένη δομή του Mongo. Καταλαβαίνω το ίδιο θα μπορούσε να γίνει για MySQL, πάρα πολύ, απλά ότι η επεξεργασία jsonτων δεδομένων είναι πιο «αντικείμενο που μοιάζει με» για μένα και flask, δηλαδή user = getUserFromMongo, η οποία μου δίνει ένα dict στην Python τότε μόνο που μπορώ να κάνω user['first_name']. Οι κωδικοί belows θα εξηγήσει αυτή την απλότητα:

Αλληλεπιδρούν με MongoDB (Κάπως αυτό ήταν αισθάνεται σαν ... δεν χρειάζεται να γράψετε SQL εντολές για απλή αλληλεπίδραση βάση δεδομένων Rails)

χρήστη μου δεδομένα αντικειμένου στο MongoDB χρήστης

Τέλος, ως προς το πώς θα διαχειριστεί την είσοδο του χρήστη , που εξέδωσε η έννοια Wit.ai του context. Δεν ξέρω πώς το κάνουν ακριβώς, αλλά contextγια μένα είναι το είδος της συνομιλίας σκοπό που είναι σε εξέλιξη. Το χρησιμοποιώ σαν μια στοίβα, και μόλις το τρέχον πλαίσιο γίνεται, το ποπ από τα δεδομένα του πλαισίου του χρήστη. Για κάθε μήνυμα το bot λαμβάνει, το πρόγραμμα θα πάρει το σημερινό πλαίσιο και την κατεύθυνση της ροής. Κάθε φορά που εμφανίζεται ένα άγνωστο σφάλμα (εξαιρέσεις χειρισμός), πιθανότατα επειδή ο χρήστης λέει κάτι το bot δεν καταλαβαίνω, μπορώ να σβήσω τα contextδεδομένα, πάρα πολύ.

Το καλό μέρος για MongoDB είναι ότι μπορώ να διαμορφώσει το contextόμως θέλω και να το αντιμετωπίσουμε απλώς ως ένα αντικείμενο. Ένα απλό είναι, όπως {name: yelp-search, stage:ask-for-user-location}και φαντάζομαι σύνθετες μπορούσε να στηριχτεί σε αυτή τη δομή, πάρα πολύ. Φυσικά, η εφαρμογή στοίβα του contextδεν ασχολείται με το συγκρότημα συνομιλία με σύνθετη αναφορά παρελθόν.

Έχω βάλει το έργο μου στο Github αν θέλετε να ρίξετε μια ματιά σε αυτό.

Απαντήθηκε 15/09/2016 στις 20:17
πηγή χρήστη

ψήφοι
3

έχω χρησιμοποιήσει και MySQL για chatbot , αλλά έχω χρησιμοποιήσει NodeJS για το backend app.For αυτό mysql ενότητα θα ήταν πολύ χρήσιμη.

Θα πρέπει να αποθηκεύσετε την τρέχουσα κατάσταση των χρηστών για τη σύνοδο ερώτημα απάντηση και επίσης να αποθηκεύσει την ίδια την απάντηση από το χρήστη και θα πρέπει να κάνετε μια αλλαγή ή if-else-if περίπτωση για τις ερωτήσεις προς το χρήστη με βάση την κατάστασή του ως διακόπτης (κράτος) και σε περιπτώσεις διακόπτη ακριβώς ενημέρωση είναι state.and έχετε facebook-id χρήστη σε αντικείμενο περίπτωση chatbot ώστε να μπορείτε να αποθηκεύσετε τα δεδομένα του κάθε χρήστη ξεχωριστά με την κατάστασή τους και ερώτηση-απάντηση σε διαφορετικές πίνακα.

Για παράδειγμα ορίζουν σημαίες {1,2,3}

κατάσταση του χρήστη θα είναι 1 στις ξεκινώντας έτσι τον ρωτήσω για παράδειγμα ερώτηση-1 μόνο, και να αποθηκεύσετε αυτό ως απάντηση-1, μπορείτε να το κάνετε αυτό είναι κρατικό έλεγχο, και μετά από αυτή την κατάσταση ενημέρωσης για 2.

έτσι, με αυτόν τον τρόπο μπορείτε να ζητήσετε από κάθε μεμονωμένη ερώτηση φοιτητή και ανά κράτος τους και του απαντήσει.

Έχω κάνει το ίδιο με την ακριβή παραπάνω τρόπο.

Η ελπίδα αυτή θα είναι χρήσιμη σε σας.

Απαντήθηκε 16/09/2016 στις 09:38
πηγή χρήστη

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