跳到主要内容
版本:1.11.1

元数据与属性

本章节将讲解:什么是元数据、属性,以及对话平台如何利用元数据和属性来实现个性化的回复和响应

元数据定义

在与用户的每一次对话交互过程中,机器人除了能够通过NLP识别对话内容的关键信息外,会话所携带的一些原生信息如时间戳、情绪、用户属性等,能够更好的帮助机器人去做出更恰当的响应。我们将这类原生信息统一称作元数据(metadata)

元数据(metadata)包含以下几个常见的类型:

  1. 由外部创建并和消息一同通过对话接口传入的参数名称参数值,譬如时间戳、用户ID等信息。
  2. 通过用户ID查询到的,能够描述该用户画像的属性名称属性值,如用户职位、会员等级等。
  3. 模型基于消息进行计算,生成额外描述信息的参数名称参数值,如情绪分类等。

预设元数据

预设元数据是调用对话接口时,平台自动生成的信息。目前平台提供的预设元数据如下:

元数据名说明示例
timezone会话所在时区,详情见机器人管理Asia/Shanghai
agent_id回复的机器人id,详情见机器人管理8016
environment回复的环境,详情见训练发布与测试SKETCH

属性定义

属性是元数据中最常被使用的一类,通过属性往往能够实现绝大多数业务相关的个性化需求,譬如:

  • 针对不同业务属性或属性组的用户,回复不同的内容
  • 在回复内容中,拼接用户的属性值,使得机器人的话术更加准确且个性化
  • 将用户属性传递给第三方接口服务,为用户提供对话以外的更多能力

平台上提供了用户的属性管理能力,在平台上可以维护用户的属性和属性类型,并使用这些属性搭建对话流程。

属性分为“单值”和“多值”两种类型,他们在更新的策略上有所不同。

  • 单值属性只有一个值,被更新时,会将原属性值替换。
  • 多值属性可以有多个值,类似标签。可以在保留已有属性值的基础上,追加更多值。

预设属性

预设属性是创建用户时,平台自动为用户生成的信息,所有预设属性可以在属性管理界面看到。目前平台提供的预设属性如下:

属性名说明
channel用户所在的渠道id

用户属性的创建和管理

  1. 点击机器人菜单“搭建-自定义设置-属性”,就可以进入到属性管理页面,展示属性ID、属性名称、属性类型、及操作按钮: no-attribute-zh-v1.3

  2. 点击“新建属性”按钮,设置属性名称属性类型即可创建一个新的属性。 create-attribute-zh-v1.3

  • 单值类型一般为属性值之间互斥的属性。如会员与非会员、最高学历、性别等
  • 多值类型一般为可以同时标记多个的用户标签。如特长、偏好等

更改渠道用户的属性值

  1. 在创建用户后,可以调用接口来操作指定用户的属性值,调用可能用到的接口如下:
    1. 创建渠道用户:操作多个渠道用户接口/chatbot/v1alpha1/agents/{agentId}/channels/{channelId}/users/mutate
    2. 获取渠道用户属性值:获取用户的属性值接口/chatbot/v1alpha1/agents/{agentId}/channels/{channelId}/users/{username}/attribute-value
    3. 更改渠道用户的属性值:更改用户的属性值接口/chatbot/v1alpha1/agents/{agentId}/channels/{channelId}/users/{username}/attribute-value/mutate

通过元数据实现个性化回复

元数据通用的引用格式和渲染效果

引用格式{metadata=元数据名称}

渲染效果:如果元数据为空则渲染为空;如果元数据是多值,目前会将所有值用“,”拼接成一个字符串整体渲染。

在机器人回复内容中引用元数据值

FAQ答案、对话树的机器人问机器人回、以及对话流程中的消息发送询问填槽等单元均可生效。

在机器人发送消息的答案文本编辑区域中,用元数据值来渲染答案。

机器人会将对应引用文本直接用元数据值替换: answer-with-metadata-zh-v1.3

note
  • 如果测试时机器人无法发送消息,请复核metadata的引用格式是否错误。
  • 常见的错误类型是括号{}不成对导致的解析JSON报错,因此机器人无法发送消息。

运算赋值单元中将元数据值赋给词槽

在赋值运算单元-复制模式的“将词槽赋值为”的编辑区域中,用元数据值来赋值。

机器人会将对应元数据值赋给对应词槽: setvalue-with-metadata-zh-v1.3

将元数据值作为多槽单元的接口请求参数

在多槽接口单元的请求地址编辑区域中,用元数据值来渲染请求参数。

机器人会将请求参数中的引用直接用元数据值替换: webhook-with-metadata-zh-v1.3

在对话流程策略中使用元数据值

  1. 单元的分支跳转配置中,根据元数据值进行跳转
  2. 将属性值用于询问填槽单元超过询问次数后的兜底值