对话机器人 Rasa (三):基于规则添加一个意图对应的回复

文章目录

    使用 Rasa rules.yml 是最简单的指定回复内容的方式,即,添加一条匹配规则。

    添加一个意图对应的回复,需要编辑三个文件。

    以回复用户的夸奖为例:

    nlu.yml

    意图识别:

    data/nlu.yml

    - intent: praise
      examples: |
        - 你真聪明
        - 你怎么这么聪明
        - 你太智能了
        - you are really smart
        - you are so clever
    

    domain.yml

    编辑返回的内容模板。domain.yml 中添加:

    version: "3.1"
    
    intents:
      - praise
    
    responses:
      utter_praise:
      - text: "谢谢夸奖,毕竟没有人比我更懂摸鱼啊。ChatGPT 也不如我"
    

    注意不要漏了 intents 里添加相应的意图,否则会在 shell 中看到警告信息:

    io.py:98: UserWarning: Parsed an intent ‘praise’ which is not defined in the domain. Please make sure all intents are listed in the domain.

    rules.yml

    一条匹配规则,将意图与回复关联。 data/rules.yml

    version: "3.1"
    
    rules:
    
    - rule: 面对别人的夸奖,要谦虚回复
      steps:
      - intent: praise
      - action: utter_praise
    

    这里的 rule 后面的描述,只是给自己看的注释。

    训练

    重新训练模型

    rasa train
    

    中文对话测试

    rasa shell 中进行测试:

    Your input ->  你真聪明
    谢谢夸奖,毕竟没有人比我更懂摸鱼啊。ChatGPT 也不如我
    
    Your input ->  so clever
    谢谢夸奖,毕竟没有人比我更懂摸鱼啊。ChatGPT 也不如我
    

    参考

    • Rules https://rasa.com/docs/rasa/rules/
    • rule 与 story 该如何选择 https://rasa.com/docs/rasa/writing-stories/

    查看合集

    📖 对话机器人 Rasa 中文系列教程

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式