Mă întreb cum de a prinde un răspuns utilizator la o întrebare specifică chatbot? Adică, de exemplu, în cazul în care utilizatorul solicită chatbot pentru vreme și chatbot răspunde înapoi solicitând utilizatorului în ce oraș. Aș dori apoi să urmărească ceea ce utilizatorul răspunde la această întrebare. Așa că orașul ar putea fi utilizat pentru apelarea unui api meteo pentru oraș. Nu știu cum să urmăriți răspunsul utilizator la această întrebare. Stie cineva dacă și cum acest lucru este posibil?
Cum de a urmări răspunsul utilizatorului la un mesaj chatbot specific în node.js
sursa de către utilizator user3857472
În alte limbi...
..I rezolvat prin stabilirea unei variabile globale, atunci când chatbot pune întrebarea
global.variable = 1;
Atunci când utilizatorul răspunde viitoarei eveniment mesaj text este tras și eu pot verifica dacă pavilion la nivel mondial este setat. Acest lucru indică faptul că acesta este răspunsul utilizator după ce a fost pusă întrebarea. Pot primi apoi orașul mesaj text din acel mesaj. Aceasta funcționează bine în cazul meu, dar dacă cineva știe o alternativă mai bună vă rugăm să-mi spuneți
Așa că mai mulți utilizatori pot accesa simultan chatbot, cel mai bine este să țină evidența fiecărui utilizator, și starea de conversație fiecărui utilizator. În cazul API Messenger, acest lucru ar fi:
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)
}
Apoi , va avea răspunsul pentru fiecare utilizator stocat în usersobiect. Puteți utiliza , de asemenea , o bază de date pentru a stoca acest lucru.