Wechaty基于个人微信的对话式人机交互界面应用

1,033 阅读2分钟

前言

最近看了GDG[社区说]关于wechaty的直播,对wechaty实现个人微信的对话式交互还挺感兴趣的,看完直播后也实际操作了一把,算是入门了,确实简单有趣易上手,这个号称 6 行代码构建基于个人微信的对话式人机交互界面应用,果然名不虚传。

Wechaty(聊天机器人)

Wechaty是一个开源的对话机器人SDK,支持个人号微信。它是一个使用Typescript构建的Node.js应用。支持多种微信接入方案,包括网页,iPad,iOS,Windows,Darwin(OSX / Mac) 和 Docker多个平台。 Wechaty 帮助开发者实现一个让用户无感知的在IM平台与接入的机器人对话或交互。开发者在IM平台扫码接入,自由选择底层并设计应用层,最终实现智能对话。

Demo

  • Step 1: 将 wechaty-getting-started 仓库克隆至本地
git clone https://github.com/wechaty/wechaty-getting-started.git
cd wechaty-getting-started
  • Step 2: 安装依赖包
npm install
  • Step3: 命令行输入指令
WECHATY_LOG=verbose WECHATY_PUPPET=wechaty-puppet-wechat npm start

即可启动基于 web 版微信的 wechaty 机器人。

image.png

  • Step4 启动命令后,界面会生成一个二维码,然后使用自己的微信号扫码登录,确认登陆后自己的微信号变化身为机器人了。接下来就可以测试看了,任意打开聊天对话框,当对方发送的关键字中带有 "ding" 的消息后,自己的微信号会自动回复 "dong" 。

image.png

image.png

以上简单几步操作就可以让个人微信号变成微信聊天机器人了。

遇到的坑点就是安装依赖包的时候,有些资源下载不下来,后来切换网络就可以了。

终端界面

image.png

在终端,我们可以看到微信机器人的聊天内容,哈哈,所以不要随便扫描陌生人的二维码。

核心代码分析

1. package.json
  "scripts": { 
    "start:wechat:web": "cross-env WECHATY_LOG=verbose WECHATY_PUPPET=wechaty-puppet-wechat npm start"
  },

"start:wechat:web",是指用web协议来启动wechaty,核心代码是

WECHATY_LOG=verbose WECHATY_PUPPET=wechaty-puppet-wechat npm start

WECHATY_PUPPET指定了当前机器人登录的是微信的网页版协议(wechaty-puppet-wechat)。直接执行这段代码即可启动服务。

2. ding-dong-bot.ts
async function onMessage (msg: Message) {
  log.info('StarterBot', msg.toString())

  if (msg.text() === 'ding') {
    await msg.say('dong')
  }
}

msg.text() 收到的内容如果包含'ding',则执行msg.say('dong'),机器人自动回复'dong'。

行业前景

Wechaty 不仅支持微信聊天机器人,还支持WeCom(企业微信)、Official、WhatsApp、DingTalk(钉钉)、Lark(飞书)、Gitter、5G RCS(5G chatbot)。 在未来,在对话式人机交互界面会有很巨大的机会,因为人工智能强大一定程度之后,自然语言交流会成为人机交互的趋势;Wechaty 作为一个优秀的开源项目,也将会帮助更多企业实现商业落地。

image.png

参考资料

wechaty-[GDG社区说]视频回放地址

wechaty官方文档

wechaty - github