IBM Cloud Docs
使用变量来管理对话信息

使用变量来管理对话信息

客户回复助手时,会分享有关自己的信息以及需要什么的信息。 助手会将此信息以及有关对话的其他信息作为 变量进行记忆。 您的助手可以使用变量来提供更个性化和定制化的体验,并让用户快速获得他们所需的解决方案。

变量是一个强大的工具,可用于构建更好的助手。 变量使以下所有优点成为可能:

  • 个性化定制。 针对每个客户提供最佳的虚拟助手体验。 当助手向客户打招呼时,会说 " 您好,Frank! 欢迎回来," 它告诉弗兰克,它记得他的名字,它以前也跟他谈过。 通过将此类信息存储在变量中,然后在助手的输出中引用这些信息,您可以个性化对话并帮助助手看起来更人性化。

  • 加速。 在对话过程中,您的客户回答问题并做出选择。 这些客户响应存储为变量,然后助手可以使用这些变量来指导对话。 通过选择正确的步骤,而不浪费客户的时间,您可以让他们尽快找到正确的解决方案。

  • 模块化。 某些信息对于许多不同的用途 (例如,客户的当前帐户余额或联系人信息) 可能很有用。 您可以使用变量来存储结果,然后随时随地访问结果,而不是在多个位置检索或重新计算此信息。

  • 隐私。 客户信息的隐私对所有企业都至关重要。 在助手中,您可以屏蔽变量以保护共享信息的隐私。 当您屏蔽变量以使其成为私有变量时,助手会在对话日志中使用星号来隐藏用户输入或助手响应中的机密信息。

用于屏蔽保密客户信息的功能仅可用于助手中的操作。 如果要从对话调用操作,那么隐私设置在操作步骤中可用,但不会屏蔽客户信息。

当用户的会话在 Web 聊天集成中的对话期间到期时,助手会丢失屏蔽的专用变量。 这是因为 Web 聊天无法将变量复制到新会话。 有关更多信息,请参阅 复制会话状态。{: note}。

变量只是信息片段的指定容器; 通过按名称引用此容器,助手可以在运行时存储或检索信息。 例如,名为 account_balance 的变量可能会存储客户的当前帐户余额,这是助手可以根据需要更新或检索的值。

变量存储的数据的特征是它包含的数据类型,例如文本,数字值,日期,甚至是多个值的列表。 可以对变量执行的操作因其数据类型而异。

操作变量和会话变量

IBM® watsonx™ Assistant 支持两种类别的变量:

  • 操作变量: 当步骤从客户收集信息时,客户响应会自动存储在 操作变量中。 您可以将操作变量视为短期内存: 它们仅在当前操作期间持久存在。

    操作变量的名称始终是定义客户响应的步骤的名称。 (不能更改操作变量的名称。) 例如,假设您定义了一个步骤,询问“您何时出生?”并接受日期值作为响应。 客户响应会自动存储为名为 When were you born? 的操作变量,然后您可以从同一操作中的任何后续步骤访问该变量。

    您可以通过在客户响应设置中选择 保护在此步骤中收集的数据 复选框来使操作变量成为私有变量。

  • 会话变量: 不一定与特定操作绑定的值可以存储为 会话变量。 会话变量是长期内存: 它们在用户与助手的交互中始终存在,并且助手可以从任何操作中引用这些变量。

    如果要使值可供其他操作使用,那么可以创建会话变量以存储来自操作变量的值。 您还可以根据另一个会话变量或通过使用表达式中定义的值来定义会话变量。 除了您创建的变量外,watsonx Assistant 还为全局值 (例如当前时间和日期) 提供了一组内置会话变量。

    要在对话日志中隐藏保密客户信息,可以在创建或编辑会话变量时选中 保护存储在此变量中的数据 复选框。

    会话变量可以帮助您将助手模块化,因为您可以编写单个操作来收集在多个位置所需的信息。 例如,您可能有一个问候操作,用于收集有关客户的基本信息,并将响应存储在会话变量中,然后任何操作都可以访问这些变量。

    您创建的会话变量仅在单个会话期间持久存储。 在会话结束时,将清除变量的值。 会话持续多久取决于客户访问助手的方式以及助手的配置方式。

创建会话变量

要添加可由任何操作访问的会话变量,请执行以下操作:

  1. 从“操作”页面中,单击 变量> 由您创建。 此列表显示您为助手创建的所有会话变量。

  2. 点击 “新变量”。

    您还可以从步骤编辑器创建新的会话变量。 有关更多信息,请参阅 在会话变量中存储值

  3. “名称”字段中,输入会话变量的名称。

    添加名称时,将生成标识。 名称中的任何空格在标识中都会替换为下划线 (_)。

  4. 可选: 添加类型以设置变量的响应类型。 (有关响应类型的更多信息,请参阅 选择响应类型。)

    从该字段中,还可以选择您创建的任何已保存的响应。 有关已保存的响应的更多信息,请参阅 保存和复用客户响应

    除了列出的类型外,还可以将变量创建为数组。 要创建数组变量,请选择 任何 作为类型,并在下一步中定义使用表达式 [] 来表示空数组的初始值。

  5. 可选: 添加初始值以在每个用户会话开始时设置变量的起始值。 例如,客户可以使用助手进行采购。 您可以初始化起始值为 0 的 付款到期 变量,然后在客户订购商品时将其添加到该值。

    要指定复杂对象或数组作为初始值,或者要根据其他变量计算初始值,可以编写表达式。 有关编写表达式的更多信息,请参阅 编写表达式

  6. 可选:添加描述。

  7. 可选: 如果会话变量包含机密信息,请选中 隐私 部分中的 保护存储在此变量中的数据 复选框。

  8. 单击应用

内置变量

除了您创建的变量外,watsonx Assistant 还提供了一组可从任何操作访问的内置变量。 在运行时,将使用相应的值自动设置这些变量。 例如,当前时间 会话变量始终提供用户时区中与客户交互时的当前时间。

要查看这些变量,请在“操作”页面上单击 变量

  • 按助手设置”页面显示为每个助手自动提供的内置会话变量。

  • 按集成设置”页面显示由客户用于连接到助手的集成自动提供的变量。 (如果未连接任何集成,那么不会设置这些变量。)

由助手设置:

由助手设置的变量
变量名称 变量标识 描述 示例
摘要自 digressed_from 客户离题前的最后一个操作 (如果未离题,则为空) 付款帐单
现在 now 用户时区中的当前日期和时间。 2021-08-11T11:28:02
当前时间 current_time 用户时区中的当前时间。 11:28:02
当前日期 current_date 用户时区中的当前日期。 2021-08-11
回退原因 fallback_reason 用户路由到回退操作的原因 步骤验证失败-已请求代理程序-无操作匹配
没有匹配项 no_action_matches_count 表示客户连续未识别的输入尝试的计数 3
会话历史记录 IBM Cloud 会话历史记录 来自客户对话的 24 条最新消息。 有关更多信息,请参阅 会话历史记录 [{u : 'book a flight', n : true}, {a : 'sure! from where?'}]

按集成设置:

由集成设置的变量
变量名称 变量标识 描述 示例
时区 timezone 用户的时区,由集成或 API 客户机指定。 缺省时区 (如果未由集成指定) 为全球标准时间。 America/New_York
语言环境 locale 用户的语言环境 (由集成或 API 客户机设置)。 语言环境可能会影响日期,时间和数字的理解和格式化。 en-gb
渠道名称 channel_name 用户正在与之交互的通道的名称。 Web chat

在会话变量中存储值

任何操作都可以将值存储在会话变量中,以使其可用于其他操作。 要在会话变量中存储值,请执行以下操作:

  1. 在步骤中,单击 设置变量值

  2. 单击设置新值

  3. 设置 下拉列表中,您的选择包括:

    设置变量值
    选择 描述
    会话变量 要在其中存储值的会话变量。 新值将替换先前存储的任何值。
    集成变量 要在其中存储值的会话变量。 新值将替换先前存储的任何值。
    表达式 直接编写表达式,而不首先选取变量。 有关更多信息,请参阅 编写表达式
    + 新会话变量 您可以创建新的会话变量,该变量将添加到助手的会话变量列表中。 有关更多信息,请参阅 创建会话变量
  4. 目标 下拉列表中,选项根据要设置的变量类型而有所不同。 可能的选项包括:

    设置变量值
    选择 描述
    按类型分类的标量值 为每个变量类型设置特定值。 选项因变量类型而异。 例如,对于日期变量,选项为 输入日期,您可以使用日期选取器来设置日期。 其他选项针对布尔值,确认,货币,日期,自由文本,数字,百分比和时间显示。
    表达式 编写表达式以定义会话变量的值。 有关表达式的更多信息,请参阅 编写表达式
    操作变量 选择操作变量以在另一个步骤中使用客户响应的值。 列出的选项与要设置的变量类型相匹配。
    会话变量 请选择另一个会话变量以使用其值。 列出的选项与要设置的变量类型相匹配。
    助手变量 选择内置系统变量以使用其值。 列出的选项与要设置的变量类型相匹配。
    集成变量 如果要设置集成变量,那么可以选择其他集成变量作为值。
  5. 要在同一步骤中设置更多变量值,请单击 设置新值

使用变量来管理对话流

您可以使用变量的其中一种方法是根据客户响应和运行时可用的其他值来选择通过对话的正确路径。 您可以通过定义步骤条件来执行此操作,这些条件确定是否根据运行时条件执行操作中的特定步骤。

通过基于操作变量定义条件,您可以根据客户对先前步骤的响应来控制是否执行步骤。 您还可以基于会话变量构建步骤条件,这些变量可以存储来自其他操作的信息。

有关步骤条件的更多信息,请参阅 定义步骤条件

使用变量来定制对话

您还可以在助手所说的内容中使用变量,动态引用对话期间收集的信息。 这对于确认客户提供的信息 (例如,You want to transfer $153.14 to your checking account. Is that correct?) 以及简单地个性化对话以使其更人性化 (Hi, John. How can I help you today?) 非常有用。

要在助手所说的内容中引用变量,请执行以下操作:

  1. 助手 字段中,开始输入响应的文本。

  2. 到达要插入对变量的引用的点时,请输入美元符号 ($) 或单击 插入变量 图标 (插入变量图标)。 此时将显示一个列表,其中显示可从中选择的变量。

  3. 单击变量以在文本中添加对它的引用。

当您引用变量时,将在助手的响应中使用缺省格式来显示该变量。 变量的格式可能与值的存储方式不同; 例如,缺省情况下,日期值 2021-08-11 的格式为 August 11, 2021

默认格式如下:

变量的缺省格式
Type 格式 示例
选项 由用户选择 Yes No
编号 仅数字 1000
日期 Mmm DD,YYYY Jun 30, 2021
时间 H:MM: SS AM 5:15:00 PM
货币 仅数字,无货币符号 20
Percent 仅数字,无百分比符号 20
自由文本 由用户输入 Please check that the apples aren't bruised

构建包含变量的助手响应时,可并置多个部分 (文本字符串和变量)。 单个响应可以包含不超过 30 个并置部分 (例如,15 个变量以及 15 个文本字符串)。

引用表达式

如果需要引用使用表达式计算的动态值,那么必须首先将此值指定给会话变量。 (有关如何执行此操作的更多信息,请参阅 在会话变量中存储值。) 然后,可以在 助手说 字段中引用会话变量。

请注意,在操作中不支持用于在助手输出中引用表达式的 <?...?> 语法。