微信机器人(3):自定义机器人
上节回顾
自定义机器人
从上节我们知道,回复的消息的逻辑最终通过获取一个Bot
实例,然后调用它的reply
函数实现,如下图所示。
而在bot 的 reply
函数中,会 return 一个 reply 实例,本节我们先了解一下文本类消息。后续章节我们再详细理解这个Reply的其他实现。
接下来我们创建自己的机器人类,我们在bot文件夹下,创建一个upfinder
文件夹,在upfinder
中创建一个UpfinderAiBot(Bot)
类,具体实现如下图所示。
自定义的UpfinderAiBot
继承自 Bot
,实现了 reply
函数,我们在reply中实现了一个文本消息的回复逻辑,这样当微信收到别人消息时,就会自动回复一条你好,我是upfinder
的文本类型消息。
配置机器人
从上节可知,具体使用哪个机器人进行回复,是通过bot_factory
来确定的,具体代码如下
在create_bot(bot_type)
的函数中,通过判断传递进来的bot_type
参数,构造不同的 Bot实例, 我们在这里补充 UpfinderAIBot
的创建,并增加 值为upfinder
的bot_type
机器人类型常量,具体代码如下图。
启用机器人
以上流程我们已经实现了自定义机器人的创建和配置流程,接下来我们启用自己的机器人,
首先通过上边源码分析可知,获取机器人时,会根据 config.json
的model 字段的配置去创建不同的机器人。所以我们只需要将config.json
的配置文件中 “model”: "upfinder"
,这样将我们机器人的配置项与配置文件对应上,如下图
自此,我们机器人的配置就算完成了,启动项目,登录微信后,当收到消息时,就会通过我们自定义的机器人进行回复了。
重点回顾
下边我们将自定义机器人实现与配置的主要流程进行一个回顾总结:
- 自定义机器人类并继承bot类
- 实现自定义机器人类的reply函数,实现机器人的回复功能
- 在机器人构造工厂
bot_factory.py
中实现对自定义机器人的配置 - 修改
config.json
文件中的 model字段与机器人构造工厂中定义的常量保持一致 - 启动项目
下节预告
下节我们将丰富我们这个自定义的机器人的功能,实现一个自动售货的机器人,比如我们会通过回复特定词语,自动化的实现获取商品列表,商品介绍,下单,付款等流程