【问题标题】:How can make conversation between bot and user with telepot如何使用 Telepot 在机器人和用户之间进行对话
【发布时间】:2020-01-29 19:53:30
【问题描述】:

我想用telepot 创建机器人,向用户提出常见问题。 例如,首先问“你叫什么名字。?”然后用户回复“用户名”,然后问你几岁?用户回复他的年龄和...

我为用户和机器人之间的聊天编写了代码,但有时我会出错。请指导我如何使用telepot. 制作这个机器人?

我想用telepot在机器人和用户之间进行对话

【问题讨论】:

    标签: python telepot


    【解决方案1】:

    我不再维护这个库。感谢您考虑 电话机。 - 维护者,nickoala


    您正在寻找的是DelegatorBot。 考虑this tutorial

    考虑这种情况。一个机器人想要有一个智能 与很多用户的对话,如果我们只能使用一个 处理消息的执行行(就像我们到目前为止所做的那样), 我们必须维护一些关于每个对话的状态变量 在消息处理函数之外。收到每一条消息, 我们首先要检查用户是否已经进行了对话 开始了,如果是这样,我们一直在谈论什么。为了避免这种 世俗,我们需要一种结构化的方式来维护“线程” 对话。

    DelegatorBot 为每个用户提供一个机器人实例,因此您不必考虑多个用户与其交谈时会发生什么。 (如果对您有帮助,请随时查看how I am using it。)
    本教程的示例是用户发送了多少消息的简单计数器:

    import sys
    import time
    import telepot
    from telepot.loop import MessageLoop
    from telepot.delegate import pave_event_space, per_chat_id, create_open
    
    class MessageCounter(telepot.helper.ChatHandler):
        def __init__(self, *args, **kwargs):
            super(MessageCounter, self).__init__(*args, **kwargs)
            self._count = 0
    
        def on_chat_message(self, msg):
            self._count += 1
            self.sender.sendMessage(self._count)
    
    TOKEN = sys.argv[1]  # get token from command-line
    
    bot = telepot.DelegatorBot(TOKEN, [
        pave_event_space()(
            per_chat_id(), create_open, MessageCounter, timeout=10),
    ])
    MessageLoop(bot).run_as_thread()
    
    while 1:
        time.sleep(10)
    

    此代码为每个用户创建一个MessageCounter 实例。

    我已经为用户和机器人之间的聊天编写了代码,但有时我会出错。

    如果您的问题是关于您遇到的错误而不是关于如何与 state 保持对话,您需要提供有关您遇到的错误以及这些错误何时出现的更多信息。

    【讨论】:

    • @alessandrobuffoli 你这是什么意思? (也许你应该问一个新问题,如果它是你要问的新问题。请随时在此处的评论中使用问题链接对我进行 ping)
    • 非常感谢,我想出了如何解决这个问题,但现在我有另一个问题,我在这里问了一个问题stackoverflow.com/questions/55194664/…Thankyou:)
    • @alessandrobuffoli 恐怕我还没有与电视节目合作过。我不知道你这个问题的答案。祝你好运!
    • 我可以仅将委托机器人用于机器人的一部分吗?仅用于功能或类似的东西?
    • @LeonardoScotti 我不知道,我已经有一段时间没有接触过了。但是你可能应该完全使用一个不同的库,因为这个库不再被维护并且不再适应电报 API 的变化。
    猜你喜欢
    • 1970-01-01
    • 2019-07-07
    • 2020-08-01
    • 2021-06-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多