简介
在构建聊天机器人时,对话处理非常重要。其中对于自然语言处理的需求日渐增长。wit.ai 提供了强大的自然语言处理 API,可以方便快捷地构建自然对话式应用程序。botkit-middleware-witai 是一款 npm 包,可方便地将 Wit.ai 封装到 Botkit 的中间件中,实现自然语言处理。
本篇文章将介绍 botkit-middleware-witai 的使用教程,包括:
- 安装 botkit-middleware-witai
- 训练机器人模型
- 编写 Botkit 代码
- 运行机器人
安装 botkit-middleware-witai
要使用 botkit-middleware-witai,需要先安装 Botkit 和 botkit-middleware-witai 两个 npm 包。
npm install --save botkit botkit-middleware-witai
训练机器人模型
要使用 Botkit 和 wit.ai 必须先去其官网注册并创建应用程序。然后就可以开始训练模型了。在训练过程中,我们需要提供一些问题及对应的回答来训练机器人。
训练完成后,我们需要获取到 Wit.ai API 的 token,以及训练好的模型的 ID。
编写 Botkit 代码
在代码中,我们首先需要引入 botkit 和 botkit-middleware-witai。
const Botkit = require('botkit'); const { witai } = require('botkit-middleware-witai');
然后,我们需要初始化一个 Botkit 实例,并设置 witai 的参数,如下所示:
const controller = Botkit.slackbot({}); controller.middleware.receive.use(witai({ token: WIT_TOKEN, minimum_confidence: 0.5, model: WIT_MODEL_ID, }));
其中,WIT_TOKEN 是我们在 wit.ai 上获取的 token;minimum_confidence 表示机器人判断用户意图的最低置信度,此处为 0.5;model 是我们在 wit.ai 上训练好的模型 ID。
在对话过程中,如果机器人接收到用户的消息,我们可以通过 middleware.receive.sequence 方法来指定机器人的回应。在序列中,我们可以通过 context 中的 entities 对象来获取解析出的实体信息。
controller.hears('', 'direct_mention,mention', witai.middlewares.hears, (bot, message) => { const intent = message.intents[0]; const context = message.wit!; // handle the intent and context. });
在上述代码片段中,middlewares.hears 是 botkit-middleware-witai 提供的函数,用于解析用户意图和上下文信息。在消息接收和回复的中间,如果用户在输入时提到了机器人的名称,Botkit 将调用 hears。
在回复消息时,我们可以通过 context 对象中的 entities 属性访问到传递给 Wit.ai 的所有实体。
运行机器人
在编写 Botkit 代码后,需要在终端中运行机器人。在运行之前,需要去 Slack 上生成一个机器人 Token,然后将其配置到环境变量中,如下所示:
export SLACK_BOT_TOKEN=<your bot token>
然后,我们可以使用下面的命令来启动机器人:
node bot.js
运行以上命令后,机器人就会开始监听我们的消息。如果收到了以机器人名称开头的消息,则机器人会自动解析意图并给出相应的回答。
结论
使用 botkit-middleware-witai,可以方便地将自然语言处理引入到聊天机器人中,提升机器人的智能程度和自然性。本篇文章介绍了 botkit-middleware-witai 的使用方法,涉及到安装包,训练模型,编写 Botkit 代码以及运行机器人,希望能够对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c82ccdc64669dde4d2f