jiangdongguo / ChitChatAssistant

(已不维护)Rasa中文聊天机器人
http://blog.csdn.net/andrexpert
534 stars 149 forks source link

RASA中文聊天机器人项目


RASA 开发中文指南系列博文:

注:本系列博客翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展,目的是为了更好的理解Rasa工作机制。与本系列博文配套的项目GitHub地址:ChitChatAssistant,欢迎starissues,我们共同讨论、学习!


1. 安装rasa

1.1 环境要求

1.2 安装步骤

1. 安装rasa

# 当前版本为1.9.5
# 该命令运行时间较长,会安装完所有的依赖
pip --default-timeout=500 install -U rasa

2. 安装mitie

# 在线安装Mitie
pip install git+https://github.com/mit-nlp/MITIE.git
pip install rasa[mitie]  # 注:由于第一步始终没成功过,没尝试过这个命令的意义

 由于自己在线安装尝试了很多次都拉不下来,因此只能走离线安装的方式,有三个步骤:

3. 安装jieba

# 安装Jieba中文分词
pip install jieba

2. 训练模型

 当所有样本和配置文件准备好后,接下来就是训练模型了,打开命令终端执行下面的命令,该命令会同时训练NLU和Core模型。

python -m rasa train --config configs/config.yml --domain configs/domain.yml --data data/
python -m rasa train --config configs/zh_jieba_supervised_embeddings_config.yml --domain configs/domain.yml --data data/
python -m rasa train --config configs/zh_jieba_mitie_embeddings_config.yml --domain configs/domain.yml --data data/

3. 运行服务

(1)启动Rasa服务

 在命令终端,输入下面命令:

# 启动rasa服务
# 该服务实现自然语言理解(NLU)和对话管理(Core)功能
# 注:该服务的--port默认为5005,如果使用默认则可以省略
python -m rasa run --port 5005 --endpoints configs/endpoints.yml --credentials configs/credentials.yml --debug

(2)启动Action服务

在命令终端,输入下面命令:

# 启动action服务
# 注:该服务的--port默认为5055,如果使用默认则可以省略
Python -m rasa run actions --port 5055 --actions actions --debug 

(3)启动server.py服务

python server.py

Rasa ServerAction ServerServer.py运行后,在浏览器输入测试:

http://127.0.0.1:8088/ai?content=查询广州明天的天气

终端调用效果为:

4. 更新日志

(1)V1.0.2020.02.15

(2)V1.1.2020.02.27

(3)V1.2.2020.04.10

5. License

Copyright 2020 Jiangdongguo

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.