美文网首页
Rasa3.X解决实体对应多个意图的Slots

Rasa3.X解决实体对应多个意图的Slots

作者: 掉了西红柿皮_Kee | 来源:发表于2023-03-01 10:57 被阅读0次

    在实际路线管理的过程中,往往会出现多个意图需要填槽,比如实体station,可以在多轮对话中满足查询路线,查询票价以及查询首末班车时间等意图。如果单独为每个实体赋予特定意图,在slot填充的场景下,可能会出现意图的错乱。你可以设置一个闲置的intent用于实体的获取,而不影响到原有的意图填槽。
    首先是在domain.yml中配置闲置intent:

    version: "3.0"
    entities:
      - station
    intents:
      # 原有意图
      - ask_train_time
      - ask_route
      # 新增闲置意图
      - spare_intent
    

    并且在原始slot mapping的时候添加对闲置意图的匹配,如修改原有的slot的mapping为:

    slots:
      # for actions slots 
      start_station:
        type: text
        mappings:
          - type: from_entity
            entity: station
            role: departure
            # intent: ask_route     #原有意图
            intent: [ask_route, spare_intent]    # 修正之后的意图
      end_station:
        type: text
        mappings:
          - type: from_entity
            entity: station
            role: destination
            # intent: ask_route     #原有意图
            intent: [ask_route, spare_intent]   # 修正之后的意图
      station:
        type: text
        mappings:
          - type: from_entity
            entity: station
            # intent: ask_train_time   #原有意图
            intent: [ask_train_time, spare_intent]   # 修正之后的意图
    

    这样的话在检测到闲置意图spare_intent也会作为slot进行填充,从而解决了意图冲突的问题。注:针对该意图不需要做额外的action配置,只是作为闲置意图用于占位。


    仔细捋下来会觉得Rasa算是一个相对灵活的框架,以约定模板的方式提供了很多方便的配置。了解每个小类的设计之后,会觉得整个流程因为这些小的设置逐渐完善,甚至可以构建很复杂的对话场景。

    相关文章

      网友评论

          本文标题:Rasa3.X解决实体对应多个意图的Slots

          本文链接:https://www.haomeiwen.com/subject/sqbrldtx.html