我想用telepot
创建机器人,询问用户经常提问。
例如,首先询问'你的名字是什么。?'然后用户回复'用户名',然后问你多大了?并且用户回复他的年龄和......
我为用户和机器人之间的聊天编写了一个代码,但有时我会收到错误。请指导我如何使用telepot
制作此机器人。?
我希望使用telepot
答案 0 :(得分:0)
您正在寻找的是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
的实例。
我为用户和机器人之间的聊天编写了一个代码,但有时我会收到错误。
如果您的问题与您所遇到的错误相关,而不是如何与州保持对话,则需要提供有关您所遇到的错误以及何时出现错误的详细信息。