gpt4 book ai didi

javascript - Hubot 嵌套命令

转载 作者:行者123 更新时间:2023-12-03 04:28:29 25 4
gpt4 key购买 nike

我想创建一个树形问答机器人,用 hubot 提供支持服务,但我一直不知道如何做。我希望 Hubot 在有人进入房间时提出问题(使用 robots.enter),尽管这不适用于 Rocket.Chat,但我找到了解决方法。但是,如果我想问一个问题并等待用户回复以保存他们的回复并问他们另一个问题,我该怎么做?

我尝试嵌套 res.send,但它不允许我这样做,从而在 CoffeeScript 上出现索引错误

最佳答案

如果您想要预先构建的东西,有几个框架脚本可以提供此功能:

https://github.com/lmarkus/hubot-conversation https://www.npmjs.com/package/hubot-dynamic-conversation

hubot-conversation 更加 JavaScript 一点(讽刺的是,更加动态一点),而 hubot-dynamic-conversation 则以构建对话流的 JSON 模型为中心。

如果您不喜欢这些选项中的任何一个,您始终可以使用 robots.listen 的组合来实现自己的流程,以动态匹配消息,并使用 Brain 来跟踪状态。

示例(我尚未实际测试过,但应该给出正确的想法):

module.exports = (robot) ->
robot.respond /hello$/, (res) ->
res.reply 'Why hello there! How are you today?'
# Record that we are mid-conversation
convs = robot.brain.get('conversations')
convs = convs.push(message.user.name)
robot.brain.set('conversations', convs)

robot.listen(
# If we are mid-conversation, respond to whatever they say next
(message) -> message.user.name in robot.brain.get('conversations')
(response) ->
response.reply 'I hope you have a great rest of the day!'
# Record that we are done conversing
convs = robot.brain.get('conversations')
convs = convs.splice(convs.indexOf(message.user.name), 1)
robot.brain.set('conversations', convs)
)

关于javascript - Hubot 嵌套命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com