1.1 简单实现
1.1.1 定义意图和实体
最简单的就是 data/nlu.yml
中编辑
version: "3.1"nlu:
- intent: greetexamples: |- 你好- 嗨- 早上好- 晚上好- intent: goodbyeexamples: |- 再见- 拜拜- 下次见- intent: ask_weatherexamples: |- 今天天气怎么样- 你能告诉我天气吗- 明天会下雨吗
1.1.2 定义响应
domain.yml
中编辑
version: "3.1"responses:utter_greet:- text: "你好!有什么我可以帮您的吗?"utter_goodbye:- text: "再见!祝您有美好的一天!"utter_weather:- text: "让我查一下天气信息。"session_config:session_expiration_time: 60carry_over_slots_to_new_session: true
其中 session_expiration_time 代表过期时间,60代表60分钟
carry_over_slots_to_new_session 决定会话过期并创建新会话时,是否将之前会话中填充的槽(slots)值保留并传递到新会话中
session_config
这部分不加也不影响最简单的使用
1.1.3 定义规则
编辑 data/rules.yml
version: "3.1"rules:
- rule: Greetsteps:- intent: greet- action: utter_greet- rule: Goodbyesteps:- intent: goodbye- action: utter_goodbye- rule: Ask Weathersteps:- intent: ask_weather- action: utter_weather
utter_ 是一个rasa的习惯用语,动作的时候一般会加,中文为:“说出”
我们在 domain 中已经定义了这些行为的响应,domain 中的 response
和 action
回复动作是相关联的
1.1.4 训练模型
terminal 中执行这个命令即可
rasa train
1.1.5 测试对话
rasa shell
也是在 terminal 中用一下这个命令
直接开始聊,但是没在nlu中定义的问题会有提示,比如我这个 hi
END
以上就是最简单 rasa 实现了,涉及到了 domain.yml
、data\nlu.yml
、data\rules.yml