Αναρωτιέμαι πώς να πιάσει μια απάντηση χρήστη σε μια συγκεκριμένη ερώτηση chatbot; Εννοώ για παράδειγμα, αν ο χρήστης ζητά την chatbot για τον καιρό και το chatbot ανταποκρίνεται πίσω ζητώντας από τον χρήστη για τον οποίο πόλης. Στη συνέχεια θα ήθελα να εντοπίζουν αυτό που ο χρήστης απαντά σε αυτό το ερώτημα. Έτσι ώστε η πόλη θα μπορούσε να χρησιμοποιηθεί για την κλήση ενός API του καιρού για την πόλη. Δεν ξέρω πώς να παρακολουθείτε την απάντηση του χρήστη στο ερώτημα αυτό. Ξέρει κανείς αν και πώς αυτό είναι δυνατό;
πώς να εντοπίσει την απάντηση του χρήστη σε ένα συγκεκριμένο μήνυμα chatbot στην node.js
..I να λυθεί με τη μια καθολική μεταβλητή, όταν η chatbot θέτει το ερώτημα
global.variable = 1;
Όταν ο χρήστης απαντά το εισερχόμενο συμβάν μήνυμα κειμένου ψήνεται και μπορώ να ελέγξετε αν η παγκόσμια σημαία έχει οριστεί. Αυτό δείχνει ότι αυτή είναι η απάντηση του χρήστη, μετά το θέμα ζητήθηκε. Στη συνέχεια μπορούν να πάρουν την πόλη κείμενο μήνυμα από αυτό το μήνυμα. Αυτό λειτουργεί καλά στη δική μου περίπτωση, αλλά αν κάποιος ξέρει μια καλύτερη εναλλακτική λύση παρακαλώ επιτρέψτε μου να ξέρω
Έτσι ώστε πολλοί χρήστες μπορούν να έχουν πρόσβαση στο chatbot ταυτόχρονα, είναι καλύτερο να παρακολουθείτε κάθε χρήστη, και την κατάσταση συνομιλίας του κάθε χρήστη. Στην περίπτωση του API Messenger, αυτό θα ήταν:
const users = {}
const nextStates = {
'What country are you in?': 'What city are you in?',
'What city are you in?': 'Let me look up the weather for that city...'
}
const receivedMessage = (event) => {
// keep track of each user by their senderId
const senderId = event.sender.id
if (!users[senderId].currentState){
// set the initial state
users[senderId].currentState = 'What country are you in?'
} else {
// store the answer and update the state
users[senderId][users[senderId].currentState] = event.message.text
users[senderId].currentState = nextStates[users[senderId.currentState]]
}
// send a message to the user via the Messenger API
sendTextMessage(senderId, users[senderId].currentState)
}
Στη συνέχεια θα έχετε την απάντηση για κάθε χρήστη αποθηκεύονται στο usersαντικείμενο. Μπορείτε επίσης να χρησιμοποιήσετε μια βάση δεδομένων για την αποθήκευση αυτή.













