随着自然语言处理(NLP)技术的飞速发展,人工智能助手在医疗、国防、管理等多个领域中的应用越来越广泛。目前市面上存在多种AI框架和工具,例如RASA、Dialogflow、Microsoft Bot Framework等,它们可以用于开发不同规模的聊天机器人。本文将简要介绍如何使用RASA框架来开发聊天机器人。
RASA框架简介
用户向聊天机器人发送的消息称为查询,而聊天机器人基于查询给出的反馈称为响应或动作。例如,用户可能会发送“好”,聊天机器人则需要识别出这是一个问候意图,并给出相应的问候响应。
意图可以被描述为用户输入的目的或意图。例如,“好”、“早上好”、“晚上好”等都可以被视为问候意图。而实体则是从用户输入中提取的有用信息,通常是对话中的名词。例如,在“想从德里预订到科钦的票”这句话中,德里和科钦都是实体(地点)。
RASA主要有两个组件:RASA NLU和RASA CORE。RASA NLU负责处理用户输入,识别意图并提取实体。而RASA CORE则接收RASA NLU的输出(一个包含意图、实体和其他信息的字典),并根据这些信息选择合适的回复并发送给用户。
在RASA的架构中,主要讨论四个部分:解释器、跟踪器、策略和动作。当用户向RASA聊天机器人发送消息时,消息会被接收并传递给解释器,解释器负责识别消息的意图并提取实体。同时,有一个跟踪器始终跟踪用户和机器人之间的对话状态,策略根据当前对话状态决定适当的机器人动作,选定的动作也会被跟踪器跟踪,然后作为回复发送给用户。
将在虚拟环境中安装RASA。首先,使用virtualenv在Windows上创建一个虚拟环境。
pip install virtualenv
创建一个名为my_env的虚拟环境:
virtualenv my_env
接下来,需要激活环境:
my_env\Scripts\activate.bat
虚拟环境成功创建并激活后,接下来需要在my_env中安装RASA:
pip install rasa
接下来是初始化项目:
rasa init
初始化项目后,会创建几个新文件,文件结构如下。这些文件由RASA填充了默认文本。
以下是一些重要文件的介绍:
nlu.yml
此文件包含用户可能发送的消息和相应的意图。此文件用于创建意图分类模型。当用户输入消息时,分类模型会自动对消息的意图进行分类。
stories.yml
此文件包含用户和聊天机器人之间的不同可能的样本交互。有了这个样本,机器人将了解用户输入的可能回复。
domain.yml
此文件包含不同的机器人响应,列出了创建nlu.yml文件时使用的意图和实体。
actions.py
这是一个Python文件,用于运行自定义动作。此文件可用于API调用或数据库查询。
可以根据上述文件中提供的数据训练模型。
rasa train
在终端运行上述代码后,rasa将开始训练nlu和core模型,并将训练好的模型存储在models文件夹中。
可以通过命令行与机器人进行交互:
rasa shell
rasa interactive