rasa 最简单对话实现
1.1 简单实现
1.1.1 定义意图和实体
最简单的就是 data/nlu.yml
中编辑
version: "3.1"
nlu:
- intent: greet
examples: |
- 你好
- 嗨
- 早上好
- 晚上好
- intent: goodbye
examples: |
- 再见
- 拜拜
- 下次见
- intent: ask_weather
examples: |
- 今天天气怎么样
- 你能告诉我天气吗
- 明天会下雨吗
1.1.2 定义响应
domain.yml
中编辑
version: "3.1"
responses:
utter_greet:
- text: "你好!有什么我可以帮您的吗?"
utter_goodbye:
- text: "再见!祝您有美好的一天!"
utter_weather:
- text: "让我查一下天气信息。"
session_config:
session_expiration_time: 60
carry_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: Greet
steps:
- intent: greet
- action: utter_greet
- rule: Goodbye
steps:
- intent: goodbye
- action: utter_goodbye
- rule: Ask Weather
steps:
- 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