赞
踩
在研究chatbot的时候,找到了Rasa这个Apache License的对话机器人,所以想进行开发。但是搜索网络文章,大抵都是几年前的,那时的Rasa还是Rasa Core与Rasa NLU分离的状态,与现在的Rasa有了很大不同,所以想写这个导引,一是记录自己的学习经历,二是为之后的人在环境配置上减少一些时间。
同时,对初学者来说,可能Rasa X是个非常好用的工具,但是Rasa X只支持2.x版本,所以本文也是针对2.x版本进行介绍。
本人习惯使用conda作为工具
conda create -n rasa python=3.8
之后不要忘记安装pip(第一次conda虚拟环境需要安装pip,否则用的仍然是base的pip)
conda install pip
Rasa 2.x只支持3.6-3.8,所以需要指定python版本,并且需要用到cuda10.1
这个命令安装Rasa X同时安装Rasa
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple
这边挺容易失败,多试几次。
在Rasa中我用到了SpaCy,所以需要下载相关包,
pip install -U pip setuptools wheel
pip install -U spacy[cuda113,transformers,lookups]
python -m spacy download zh_core_web_trf
第三个包比较大,所以不好安装,基本很难成功,建议直接github开代理下载之后传到服务器用pip安装。
rasa init
即可,在当前目录创建项目,所以可以先mkdir
一个目录。初始化以后,一个项目就出现了,此时需要设置的部分有config.yml
,stories.yml
,rules.yml
,domain.yml
,nlu.yml
。其中前两个需要关注。
其中,stories的数据需要标注intent,这个数据需要自己标记。如果想使用无标记数据,可以使用端到端方式,policy部分需要选TEDPolicy
给予一个端到端的config.yml
:
language: zh pipeline: - name: SpacyNLP model: zh_core_web_lg - name: SpacyTokenizer - name: SpacyEntityExtractor - name: SpacyFeaturizer pooling: mean - name: CountVectorsFeaturizer - name: CountVectorsFeaturizer analyzer: char_wb min_ngram: 1 max_ngram: 4 - name: DIETClassifier epochs: 100 - name: EntitySynonymMapper - name: ResponseSelector epochs: 100 retrieval_intent
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。