admin管理员组

文章数量:1794759

Transformer课程 业务对话机器人Rasa 3.x Contextual Conversations

Transformer课程 业务对话机器人Rasa 3.x Contextual Conversations

Transformer课程 业务对话机器人Rasa 3.x Contextual Conversations

Rasa 官网

Learn more about Rasa: rasa Rasa documentation: rasa/docs Join the Rasa Community: forum.rasa Twitter: twitter/Rasa_HQ Facebook: www.facebook/RasaHQ Linkedin: www.linkedin/company/rasa Youtube :www.youtube/watch?v=aqe8zmUGh-s

Contextual Conversations

考虑上下文通常是提供良好用户体验的关键。本页是创建上下文对话模式的指南。

在上下文对话中,对话中前一步之外的内容会影响下一步应该发生的事情。例如,如果用户询问“有多少?”,仅仅从信中还不清楚用户在问什么。在助手说“你有邮件”的情况下,回答可能是“你的邮箱里有五封信”。在关于未付账单的对话中,回答可能是“你有三张逾期账单”。助手需要知道上一个操作才能选择下一个操作。

要创建上下文感知会话助手,您需要定义会话历史如何影响下一个响应。

例如,如果用户询问示例音乐会机器人如何开始,机器人会根据他们是否喜欢音乐做出不同的响应:

与喜欢音乐的用户的对话:

与不喜欢音乐的用户的对话:

Step-by-step Guide on Creating Contextual Conversation Patterns 1. Defining Slots

插槽是助理的内存。插槽存储您的助手稍后需要参考的信片段,可以根据插槽设置slot_was_set事件引导对话流程。有不同类型的插槽,每个插槽都以自己的方式影响会话流。

在音乐会机器人示例中,likes_music槽是一个布尔槽。如果为true,则bot发送一条介绍消。如果为false,则bot发送另一条消。在域中定义插槽及其类型: domain.yml

slots: likes_music: type: bool mappings: - type: custom 2. Creating Stories

故事是对话应该如何进行的例子。在上面的示例中,音乐会机器人对喜欢音乐的用户和不喜欢音乐的用户的响应不同,因为这两个故事: stories.yml

stories: - story: User likes music steps: - intent: how_to_get_started - action: utter_get_started - intent: affirm - action: action_set_music_preference - slot_was_set: - likes_music: True - action: utter_awesome - story: User doesn't like music steps: - intent: how_to_get_started - action: utter_get_started - intent: deny - action: action_set_music_preference - slot_was_set: - likes_music: False - action: utter_goodbye

这些故事根据用户的意图(肯定或否定)而有所不同。根据用户的意图,自定义操作会设置一个槽,进一步引导对话。

3. Configuring the TEDPolicy

除了添加故事来解释上下文之外,机器学习策略还可以帮助您的模型概括为看不见的对话路径。重要的是要理解,使用机器学习策略并不意味着放弃对助手的控制。如果基于规则的策略能够进行预测,则该预测将始终具有更高的策略优先级,并将预测下一个操作。

TED策略用于处理意外的用户行为。例如,在下面的对话中(摘自Rasa X上的对话):

stories: - story: Story from conversation with a2baab6c83054bfaa8d598459c659d2a on November 28th 2019 steps: - checkpoint: STORY_START - intent: greet - action: action_greet_user - slot_was_set: - shown_privacy: true - intent: ask_whoisit - action: action_chitchat - intent: ask_whatspossible - action: action_chitchat - intent: telljoke - action: action_chitchat - intent: how_to_get_started entities: - product: x - slot_was_set: - product: x - action: utter_explain_x - action: utter_also_explain_nlucore - intent: affirm - action: utter_explain_nlu - action: utter_explain_core - action: utter_direct_to_step2

在这里,我们可以看到用户首先完成了一些聊天任务,然后最终询问他们如何开始使用Rasa X。TED策略正确地预测了Rasa X应该向用户解释,然后还引导他们开始使用,而不需要先询问所有符合条件的问题。

由于机器学习策略已经推广到这种情况,您应该将此故事添加到您的训练数据中,以不断改进您的机器人,并帮助模型在将来更好地推广。RASAX是一个工具,可以帮助您改进您的机器人,使其更加上下文化。

Setting max_history

通常,只有一定数量的上下文与您的助手相关。max_history是Rasa对话管理策略的超参数,用于控制模型在对话中查看多少步骤以决定下一步要采取的操作。

在下面的故事中,用户连续三次请求帮助。前两次,机器人发送相同的信,但第三次,它将它们交给人工客服 stories.yml

stories: - story: user persists in asking for help steps: - intent: help - action: utter_help - intent: help - action: utter_help - intent: help - action: action_human_handoff

为了让模型了解这种模式,它至少需要知道前面的四个步骤,即四个的最大历史信max_history。如果max_history为3,则模型将没有足够的上下文来查看用户已经发送了两个帮助请求,并且永远不会预测人工切换操作。

通过将max_history 历史记录传递到配置文件中的策略设置,可以设置max_history ,例如:

config.yml

policies: - name: "TEDPolicy" max_history: 5

您需要确保将max_history设置得足够高,以便您的助手能够准确预测下一步要做什么。有关更多详细信,请参阅Featureizer上的文档。

Summary

以下是您可以应用的概念摘要,以使您的助手能够进行上下文对话:

  • 为上下文对话写故事

  • 使用插槽存储上下文信以供以后使用

  • 根据bot所需的上下文量,为策略设置最大历史记录

  • 使用TED策略对不可见的对话路径进行泛化

rasa 链接 rasa/docs/rasa/contextual-conversations

Rasa系列博客:
  • 业务对话机器人Rasa 3.x Internals及Rasa框架定制实战
  • 业务对话机器人Rasa核心算法DIET及TED论文详解
  • 业务对话机器人Rasa 3.x部署安装初体验
  • 业务对话机器人Rasa 3.x Playground
  • 业务对话机器人Rasa 3.x Command Line Interface
  • 业务对话机器人Rasa 3.x 命令 rasa shell 及rasa run
  • 业务对话机器人Rasa 3.x 命令rasa run actions、rasa test、rasa data split 、rasa data convert nlu
  • 业务对话机器人Rasa 3.x 命令rasa data migrate、rasa data validate、rasa export、rasa evaluate markers、rasa x
  • 业务对话机器人Rasa 3.x 会话驱动开发(Conversation-Driven Development)
  • 业务对话机器人Rasa 3.x 生成自然语言理解NLU数据
  • 业务对话机器人Rasa 3.x 写入会话数据(Writing Conversation Data)
  • 业务对话机器人Rasa 3.x 聊天和FAQs常见问题解答
  • 业务对话机器人Rasa 3.x docker安装部署
  • 业务对话机器人Rasa 3.x Handling Business Logic
  • 业务对话机器人Rasa 3.x Fallback and Human Handoff
  • 业务对话机器人Rasa 3.x Handling Unexpected Input

本文标签: 机器人课程业务TransformerConversations