Dialogflow CX 代理是负责与最终用户同时对话的虚拟客服。它是一种自然语言理解模块,能够理解人类语言的细微差别。Dialogflow 可以在对话过程中将最终用户输入的文字和音频转换为应用和服务可以理解的结构化数据。您可以设计并构建 Dialogflow 代理来负责您的系统所需的各种对话。
Dialogflow 代理类似于人类呼叫中心代理。 二者都需要经过训练,以处理预期的对话场景,并且内容不必过于明确。
创建代理
如需创建代理,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 创建或选择 Google Cloud 项目。
- 点击创建代理。
- 选择自动生成以创建数据存储区代理,或选择构建您自己的代理以创建其他类型的代理。
- 填写基本代理设置表单:
- 点击保存。
API
如果您尚未为项目配置位置信息设置,则必须先使用控制台配置这些设置,然后再使用该 API 创建代理。目前,您无法使用 API 配置位置信息设置。
如需创建代理,请参阅 Agent
类型的 create
方法。
为代理参考选择协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 代理资源 | 代理资源 |
RPC | 代理接口 | 代理接口 |
C++ | AgentsClient | 不可用 |
C# | AgentsClient | 不可用 |
Go | AgentsClient | 不可用 |
Java | AgentsClient | AgentsClient |
Node.js | AgentsClient | AgentsClient |
PHP | 不可用 | 不可用 |
Python | AgentsClient | AgentsClient |
Ruby | 不可用 | 不可用 |
代理数据
Dialogflow 代理充当虚拟代理的设置和数据的顶级容器。
如需访问代理的数据,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 为代理选择 Google Cloud 项目。
- 在列表中找到代理。
- 点击代理显示名。
- 按照其他指南中的说明更新流程、页面等。
API
请参阅要更新数据的指南。
以下数据与代理相关联:
如需详细了解数据在不同级别如何应用,请参阅数据应用级别。
代理设置
要访问代理设置,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 点击代理设置。
- 根据需要更新设置。
- 点击保存。
API
请参阅 Agent
类型的 get
和 patch/update
方法。
为代理参考选择协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 代理资源 | 代理资源 |
RPC | 代理接口 | 代理接口 |
C++ | AgentsClient | 不可用 |
C# | AgentsClient | 不可用 |
Go | AgentsClient | 不可用 |
Java | AgentsClient | AgentsClient |
Node.js | AgentsClient | AgentsClient |
PHP | 不可用 | 不可用 |
Python | AgentsClient | AgentsClient |
Ruby | 不可用 | 不可用 |
以下各小节介绍了代理设置的不同类别。
基本设置
以下通用设置可用于代理:
-
代理的用户可读名称。
-
代理的默认时区。
-
您的代理支持的默认语言。 创建代理后,默认语言无法更改。 不过,您可以执行以下操作:
-
锁定代理
指示代理是否处于锁定状态。 无法修改已锁定的代理。
-
启用 Cloud Logging
指示是否为代理启用 Cloud Logging。
启用互动日志记录
指示您是否希望 Google 收集和存储已隐去的最终用户查询,以提高质量。
-
启用 BigQuery Export
指示是否已启用 BigQuery Export。
BigQuery 数据集
BigQuery 数据集名称。
BigQuery 表
BigQuery 表名称。
-
您可以启用 intent 建议。
-
在本部分中,您可以为自定义载荷模板创建说明和载荷。
机器学习设置
Dialogflow 使用机器学习 (ML) 算法来了解最终用户输入、将这些输入与意图相匹配,以及提取结构化数据。 Dialogflow 会根据您提供的训练语句和内置在 Dialogflow 中的语言模型进行学习。它会根据这些数据构建一个模型,用于决定应将哪个意图与最终用户输入匹配。 您可以为代理的每个流应用独有的机器学习设置,并且 Dialogflow 创建的模型在每个流中都是唯一的。
您可以使用以下代理范围的机器学习设置:
-
如果此功能已启用并且用户输入中含有拼写或语法错误,则系统将按照正确写入的方式匹配意图。检测意图响应将包含更正后的最终用户输入。例如,如果最终用户输入“I want a applle”,则系统将按照最终用户输入“I want an apple”那样执行处理。这也适用于涉及系统和自定义实体的匹配项。
拼写更正功能支持英语、法语、德语、西班牙语和意大利语。所有 Dialogflow CX 区域均提供此功能。
警告和最佳做法:
- 拼写更正无法更正 ASR(自动语音识别)错误,因此我们不建议为使用 ASR 输入的代理启用该功能。
- 更正后的输入可能匹配错误的意图。您可以通过将常见的误匹配短语添加到反例来解决此问题。
- 拼写更正会略微增加代理的响应时间。
- 如果某个代理使用了行业术语来定义,则可能并不希望采用更正。
您可以使用以下特定于流的机器学习设置:
-
这可以是以下类型之一:
- 标准 NLU:标准 NLU 技术。将自 2024 年 3 月 1 日起迁移到高级 NLU。
- 高级 NLU(默认):高级 NLU 技术。这种 NLU 类型的效果优于标准,尤其是对于大型代理和数据流。
-
如果启用,则流会在使用控制台进行更新时进行训练。对于大型流,这可能会导致控制台界面延迟,因此您应该停用此设置,并根据需要为大型流进行手动训练。
-
为了过滤掉假正例结果,同时仍然保证可与代理相匹配的自然语言输入的多样性,您可以调整机器学习分类阈值。此设置用于控制意图匹配所需的最小意图检测置信度。
如果意图匹配的置信度分数小于阈值,则会调用无匹配事件。
-
指示自流数据的最新更新以来,流是否经过训练。
-
使用此按钮手动训练流。
语音和 IVR 设置
以下语音设置可用:
-
-
请参阅自动语音自适应。
-
本部分提供有关语音功能的附加高级设置。您可以开启或关闭这些高级设置。
您可以在代理设置(适用于整个代理)、流程设置(适用于整个流程和替换代理设置)、页面设置(适用于页面以及替换流程和代理设置)和 fulfillment 设置(适用于 fulfillment 和替换页面、流程和代理设置)中找到这些设置。 其中的部分设置可在每个级别使用,具体取决于级别的设置相关性。
如果在这些较低级别选择自定义选项,更新后的代理级别设置不会传播到流、页面和执行方式级别。如果自定义选项包含多个设置,而您只想更新其中一部分设置,那么如果您想让其他设置与代理级设置相同,可能还需要更新其他设置。
-
设置用于语音识别的语音模型。 此设置特定于语言,因此您可以针对不同的语言选择不同的模型。
如需了解 Dialogflow CX 电话网关,请参阅限制。
如需了解详情,请参阅语音模型。
-
控制识别最终用户音频输入中语音结束的灵敏度。其值范围为 0(灵敏度较低,不太可能结束语音)到 100(灵敏度较高,更有可能结束语音)。
-
如果启用了此设置,语音结束灵敏度设置值将用作一个量规,以确定相对音频静音超时,从而确定语音结束。
如果停用此设置(默认设置),则语音结束灵敏度设置值用于确定 Google Cloud Speech-To-Text 提供的机器学习模型的语音结束。
虽然语音结束灵敏度设置默认情况下仅支持
en-US
语言标记,但启用基于超时的高级语音结束灵敏度设置可让您为 Dialogflow 支持的所有语言和语音模型配置语音结束灵敏度。 -
Dialogflow 停止等待最终用户音频输入的持续时间(以秒为单位)。默认值为 5 秒,最大值为 60 秒。 对于此超时,Dialogflow 会调用无输入事件。
-
启用后,最终用户可以中断 Dialogflow 响应音频。中断后,Dialogflow 将停止发送音频,并将处理下一个最终用户输入。
如果消息队列中有多个消息,并且消息被与启用了打断功能的网页、流或代理关联的 fulfillment 加入队列,则队列中的所有后续消息也会启用打断功能。在这种情况下,在启用了打断功能的情况下,集成将停止对所有已加入队列的消息播放音频。
-
启用部分响应后,此设置允许取消部分响应播放。如果消息队列中的消息是由允许取消的执行方式创建的,且又向该队列中添加了其他消息,则系统会取消该消息的播放。 如果您希望开始播放初始消息,但当实际的网络钩子在初始消息播放完成之前生成了另一条消息,那么就可以取消该播放操作,这会非常有用。
-
如果提供,则与请求关联的任何音频数据都将保存到 Cloud Storage 存储桶中:
音频已保存 适用的请求 最终用户音频输入 DetectIntent、StreamingDetectIntent、AnalyzeContent、StreamingAnalyzeContent 为响应合成文字转语音 (TTS) 音频 AnalyzeContent、StreamingAnalyzeContent 将 Storage Object Creator 角色授予项目中的以下服务账号:
格式为
one-click@df-cx-ALPHANUMERIC_VALUE-ALPHANUMERIC_VALUE.iam.gserviceaccount.com
的服务账号(如果您使用合作伙伴内置电话集成)。格式为
service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com
的服务账号(如果您使用 Dialogflow CX 电话网关集成)。要在 IAM 中查找此服务账号,请选中包括 Google 提供的角色授权选项。
-
-
多模态
请参阅通话配套应用。
共享设置
请参阅访问权限控制。
语言设置
向代理添加其他语言支持。如需完整的语言列表,请参阅语言参考。
安全设置
请参阅安全设置。
高级设置
目前,唯一的高级设置适用于情感分析。
导出和恢复代理
您可以将代理导出到文件中,然后使用该文件恢复代理。
代理导出包含所有代理数据,但以下数据除外:
代理恢复操作会覆盖所有目标代理数据(包括所有流版本),但以下情况除外:
- 环境:所有自定义环境在目标代理中都保持不变。只要关联的环境存在,目标代理中自定义环境引用的流版本就会继续存在。但是,这些过时的流版本未列出,代理也没有可选择的流版本。
- Vertex AI Conversation Apps:与 Vertex AI Conversation App 的关联在目标代理中保持不变。(换句话说,GenAppBuilderSettings 中
engine
的值)这意味着,数据存储区代理只能恢复到其他现有的数据存储区代理中,因为生成的代理还需要与 Vertex AI Conversation 应用具有关联。 Vertex AI Conversation Data Stores:根据以下规则,系统将在目标代理中覆盖对数据存储区的所有引用:
- 如果目标代理未与应用关联,则无法恢复引用了数据存储区的代理。尝试这样做会导致错误消息。如需解决此问题,您可以从头开始创建新的数据存储区代理。(或者,您也可以通过向现有的代理添加数据存储区状态处理程序,将代理转变为数据存储区代理。在这种情况下,系统将指导您将关联的应用添加到代理。)
- 如果目标代理与应用相关联,则恢复后所有数据存储区引用都将更新:其 Google Cloud 项目 ID 和位置将更新以匹配目标代理的应用。集合 ID 和数据存储区 ID 将保持不变。这意味着,在执行恢复操作之前,您需要将所有具有匹配类型的 ID 的数据存储区添加到目标代理的应用中。
示例:如果源代理引用名为
projects/123/locations/eu-west2/collections/default_collection/dataStores/myDataStore1
的数据存储区,而目标代理的应用名为projects/321/locations/us-east1/collections/default_collections/engines/app123
,则目标代理中生成的数据存储区引用将变为:projects/321/locations/us-east1/collections/default_collection/dataStores/myDataStore1
导出时,您可以选择导出文件格式。 如果您对代理数据使用源代码控制版本控制,则应以 JSON 格式导出。当您恢复代理时,Dialogflow 会自动确定文件格式。
如需导出或恢复代理,请执行以下操作:
控制台
- 打开 Dialogflow CX 控制台。
- 为代理选择 Google Cloud 项目。
- 点击列表中代理的选项 more_vert 菜单。
- 点击导出或恢复按钮。
- 按照说明完成操作。
API
请参阅 Agent
类型的 export
和 restore
方法。
为代理参考选择协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 代理资源 | 代理资源 |
RPC | 代理接口 | 代理接口 |
C++ | AgentsClient | 不可用 |
C# | AgentsClient | 不可用 |
Go | AgentsClient | 不可用 |
Java | AgentsClient | AgentsClient |
Node.js | AgentsClient | AgentsClient |
PHP | 不可用 | 不可用 |
Python | AgentsClient | AgentsClient |
Ruby | 不可用 | 不可用 |
如果代理大小超过上限,请使用 Cloud Storage 选项来导出和恢复代理。
如果您使用 GitHub,另请参阅 GitHub 导出/恢复指南。
删除代理
如需删除代理,您需要一个提供完整访问权限或修改权限的角色。如需了解详情,请参阅访问权限控制指南。
要删除代理,请按以下步骤操作:
控制台
- 打开 Dialogflow CX 控制台。
- 为代理选择 Google Cloud 项目。
- 点击列表中代理的选项 more_vert 菜单。
- 点击 delete 删除按钮。
- 在对话框中确认删除。
API
请参阅 Agent
类型的 delete
方法。
为代理参考选择协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 代理资源 | 代理资源 |
RPC | 代理接口 | 代理接口 |
C++ | AgentsClient | 不可用 |
C# | AgentsClient | 不可用 |
Go | AgentsClient | 不可用 |
Java | AgentsClient | AgentsClient |
Node.js | AgentsClient | AgentsClient |
PHP | 不可用 | 不可用 |
Python | AgentsClient | AgentsClient |
Ruby | 不可用 | 不可用 |
如果删除项目,则与该项目关联的所有 Dialogflow CX 代理和数据都会立即删除。