如何在 node.js 中跟踪用户对特定聊天机器人消息的回复
how to trace user reply to a specific chatbot message in node.js
我想知道如何捕捉用户对特定聊天机器人问题的回复?我的意思是,例如,如果用户向聊天机器人询问天气,而聊天机器人通过询问用户在哪个城市进行回应。然后我想追踪用户对该问题的回答。这样就可以使用该城市来调用该城市的天气 api。我不知道如何跟踪用户对该问题的回复。有谁知道这是否可能以及如何实现?
..我通过在聊天机器人提问时设置一个全局变量解决了这个问题
global.variable = 1;
当用户回复传入短信事件时,我可以检查是否设置了全局标志。这表明这是用户提出问题后的回复。然后我可以从该消息中获取消息文本城市。这对我来说很好用,但如果有人知道更好的选择,请告诉我
为了让多个用户可以同时访问聊天机器人,最好跟踪每个用户,以及每个用户的对话状态。对于 Messenger API,这将是:
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
对象中存储每个用户的答案。您也可以使用数据库来存储它。
我想知道如何捕捉用户对特定聊天机器人问题的回复?我的意思是,例如,如果用户向聊天机器人询问天气,而聊天机器人通过询问用户在哪个城市进行回应。然后我想追踪用户对该问题的回答。这样就可以使用该城市来调用该城市的天气 api。我不知道如何跟踪用户对该问题的回复。有谁知道这是否可能以及如何实现?
..我通过在聊天机器人提问时设置一个全局变量解决了这个问题
global.variable = 1;
当用户回复传入短信事件时,我可以检查是否设置了全局标志。这表明这是用户提出问题后的回复。然后我可以从该消息中获取消息文本城市。这对我来说很好用,但如果有人知道更好的选择,请告诉我
为了让多个用户可以同时访问聊天机器人,最好跟踪每个用户,以及每个用户的对话状态。对于 Messenger API,这将是:
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
对象中存储每个用户的答案。您也可以使用数据库来存储它。