摘要:利用微信公众号开发一个聊天机器人。
在上一篇文章里,我们已经完成了聊天机器人的基本框架,现在我们要让它更进一步。
机器鹦鹉
上篇文章里的实现服务器只能给指定的用户回复消息,这是因为我们把回复里的toUser字段写死了。正确的做法应该是从收到的消息里解析出fromUser字段,然后填在回复的toUser字段,这样就可以跟任意用户对话了。为了免去处理XML的麻烦,从现在开始,我们将彻底放弃上一篇文章里的代码,转而使用现成的框架WeRoBot。
首先还是使用pip安装WeRoBot。
pip install WeRoBot
WeRoBot的用法,在它的文档里已经写得比较详细了,只需要依葫芦画瓢就可以写出一个简单的机器人。
import werobot
robot = werobot.WeRoBot(token='你的Token')
@robot.text
def echo(message):
return message.content
robot.run()
这段代码实现了一个会学舌机器鹦鹉,它接收文本消息并将消息内容原样返回。WeRoBot把消息验证和XML处理都封装好了,因此这段代码比之前的要简单许多。
女神Alice
解决了接收和回复消息的基本问题,接下来就要给我们的机器人添加“智能”了。感谢科学家和程序员们的辛勤劳动,我们并不需要自己编写复杂的算法,只需要增加短短的几行代码就可以召唤一个专属女神Alice陪你聊天了!首先要安装aiml模块。
pip install aiml
改造一下刚才的代码,完成从鹦鹉到女神的飞跃!
import werobot
import aiml
import os
os.chdir('/usr/lib/python2.7/site-package/aiml/alice')
alice = aiml.Kernel()
alice.learn("startup.xml")
alice.respond('LOAD ALICE')
robot = werobot.WeRoBot(token='你的Token')
@robot.text
def echo(message):
return alice.respond(message.content)
robot.run()
你可以尝试调戏一下自己的机器人,效果绝对超乎想像,反正我是被震惊到了。不过……只能用English。
现在,让我们来了解一下女神Alice的身世。Alice是"Artificial Linguistic Internet Computer Entity"的缩写,是由Richard Wallace开发的自然语言聊天机器人,曾经多次活动人工智能领域的大奖。如果你仔细阅读了上面的代码,就会注意到/usr/lib/python2.7/site-package/aiml/alice这个目录。这里就是Alice的智慧所在,里面有很多扩展名为aiml的文件,这些文件定义了Alice对各种问题的回答方式。如果你打开这些aiml文件看一下,就会对女神的心思了然于胸了。想了解更多关于AIML的信息,请访问官方网站。PandoraBots提供了一些帮助创建AIML机器人的工具。
不管Alice有多么善解人意,本质上来讲,她都是按照预先写好的规则来回复,她的“智慧”取决于我们提供的规则库。接下来将尝试采用当下最火热的机器学习的方式来实现更加智能的聊天机器人。