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 中的 responseaction 回复动作是相关联的

1.1.4 训练模型

terminal 中执行这个命令即可

rasa train
image-20241212172311911

1.1.5 测试对话

rasa shell

也是在 terminal 中用一下这个命令

image-20241212172518853

直接开始聊,但是没在nlu中定义的问题会有提示,比如我这个 hi

END

以上就是最简单 rasa 实现了,涉及到了 domain.ymldata\nlu.ymldata\rules.yml

posted @ 2024-12-12 19:15  goicandoit  阅读(3)  评论(0编辑  收藏  举报