Vertex AI Conversation 功能创建了一个特殊的 Dialogflow 代理,称为“数据存储区代理”。通过此功能,您可以提供网站链接或文档(数据存储区),Google 会解析您的内容并创建由大型语言模型提供支持的虚拟客服。这是通过创建称为“数据存储处理程序”的特殊状态处理程序实现的。使用这些数据存储区处理程序,数据存储区代理可以与最终用户就内容进行对话。
您可以指定域名和/或上传任意数量的文档,Google 会将这些文档编入索引。此信息可供您的代理实时访问。 这可将针对您的公开或私有数据运行的 Google 搜索算法的强大功能和准确性与 Dialogflow 的自然对话功能相结合。
如需了解如何创建新的数据存储区代理,请参阅 Vertex AI Conversation 简介。
混合代理简介
如果您已有 Dialogflow CX 代理,则可以将此代理升级为混合代理,它将精确对话控制(流程、参数、意图、条件、转换等)与数据存储区处理程序生成功能相结合。
在此次升级过程中,您可能希望针对代理的某些对话场景删除或暂时停用意图路由(同时测试数据存储区处理程序),因为数据存储区处理程序可以更轻松地处理这些场景。
建议为数据存储区处理程序创建以下场景:
- 可以通过贵组织的文件或网站回答的问题。
- 不需要查询数据库的常见问题解答。
建议不要为数据存储区处理程序使用以下场景:
- 未对所需问题做出回答的内容。
- 需要查询数据库或服务器请求的问题。
- 需要隐去数据的场景。
- 需要确定代理响应的场景。
输入评估顺序
Dialogflow 按以下顺序评估混合代理的最终用户输入:
- 表单填写时的参数输入。
- 范围内的路由的 intent 匹配。
- 包含 FAQ 数据存储区内容的数据存储区处理程序。
- 包含非结构化数据存储内容的数据存储区处理程序。
为现有代理添加或修改数据存储区处理程序
数据存储区处理程序是一种特殊类型的 Dialogflow 状态处理程序。这意味着您可以将它们应用于流或页面,并且使用相同的范围规则对其进行评估。
如需添加或修改数据存储区处理程序,请执行以下操作:
- 转到 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择代理。
- 选择与数据存储区处理程序关联的流。这通常是默认启动流程。
- 选择与数据存储区处理程序关联的页面。 这通常是初始页。
- 在页面数据中点击添加状态处理程序,然后选择数据存储区。
- 如果您需要创建数据存储区,系统会将您转到 Vertex AI Search and Conversation 界面。请参阅数据存储区信息,以便进行选择。
- 如果您已有数据存储区,请点击修改数据存储区。
- 根据需要进行更新,并在完成后保存。 请参阅下文,了解数据存储区专用设置。
代理响应
在代理响应部分,您可以提供引用生成式答案的自定义响应。使用代理说部分中的 $request.knowledge.questions[0]
提供生成式答案。
数据存储区响应选项
您可以更新链接上限字段,以指明生成式答案应提供的补充链接数量上限。
处理对话偏离
最终用户可能会在对话过程中询问澄清性问题。 例如,在收集信用卡信息时,用户可能想要说明什么是 CVV。在这种情况下,您的代理应回答问题并返回收集必要的信用卡信息。为此,您可以创建一个具有可回答问题的数据存储区的数据存储区处理程序,将该处理程序应用于处理信用卡信息收集流程的流程初始页,并设置此处理程序返回到“当前页面”的转换目标。
处理不需要的 intent 匹配
如果您的代理在应该使用数据存储区处理程序时匹配意图,您可以尝试以下解决方法:
- 删除或修改模糊的训练短语,确保您的所有训练短语都准确处理预期意图,并且不会与您的数据存储区内容冲突。
- 使用反例以避免 intent 匹配。
数据存储区过滤
在某些情况下,您可能只希望某些数据存储区可用于查询,具体取决于会话参数值。例如,您可以为商品类别创建唯一的数据存储区。要针对商品类别完成数据存储区过滤,请执行以下操作:
- 将会话参数设置为产品类别。
- 创建条件路由,以便检查会话参数的值并转换到具有所需数据存储区处理程序的特定页面。
- 数据存储区处理程序应转换回调用页面,以便对话可以继续。
个性化
要使生成式回答与最终用户更相关,您可以向 Dialogflow 提供用户相关信息。
此信息以 JSON 格式提供。 没有所需的架构,因此您可以随意定义对象属性。 该 JSON 会按原样发送到大型语言模型,因此描述性属性名称和值可以获得最佳结果。
例如:
{
"subscription plan": "Business Premium Plus",
"devices owned": [
{"model": "Google Pixel 7"},
{"model": "Google Pixel Tablet"}
]
}
使用 Dialogflow API 进行个性化设置
您可以在发送检测意图请求时向 Dialogflow 提供此数据。此信息必须在每个检测意图请求中提供,因为它不会在会话中保留。
请在 Sessions.detectIntent
方法的 queryParams.endUserMetadata
字段中提供此信息。
选择会话引用的协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 会话资源 | 会话资源 |
RPC | 会话接口 | 会话接口 |
C++ | SessionsClient | 不可用 |
C# | SessionsClient | 不可用 |
Go | SessionsClient | 不可用 |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 不可用 | 不可用 |
Python | SessionsClient | SessionsClient |
Ruby | 不可用 | 不可用 |
使用 Dialogflow Messenger 进行个性化设置
您可以将这些数据提供给 Dialogflow Messenger 集成。请参阅 setContext 方法。
搜索配置
为了更好地控制代理行为并提高答案的质量,我们提供增强和过滤搜索配置,可让您提升、掩埋和过滤文档。
借助提升控件,您可以通过对特定文档应用提升值(大于零表示排名较高,小于零表示排名较低)来更改搜索结果排名。
借助过滤器控件,您可以根据指定的过滤条件保留或移除搜索结果。
此信息以 JSON 格式提供给 Dialogflow 请求。JSON 的格式取决于搜索控件类型。
增强控制
以下搜索配置介绍了增强控制:
"searchConfig": {
"boostSpecs": [
{
"dataStores": [ "DATASTORE_ID" ],
"spec": [
{
"conditionBoostSpecs": {
"condition": "CONDITION",
"boost": "1.0"
}
}
]
}
]
}
过滤器控件
以下搜索配置介绍了过滤器控件:
"searchConfig": {
"filterSpecs": [
{
"dataStores": [ "DATASTORE_ID" ],
"filter": "CONDITION"
}
]
}
使用 Dialogflow API 设置搜索配置
您可以在发送检测意图请求时向 Dialogflow 提供此数据。此信息必须在每个检测意图请求中提供,因为它不会在会话中保留。
请在 Sessions.detectIntent
方法的 queryParams.searchConfig
字段中提供此信息。
选择会话引用的协议和版本:
协议 | V3 | V3beta1 |
---|---|---|
REST | 会话资源 | 会话资源 |
RPC | 会话接口 | 会话接口 |
C++ | SessionsClient | 不可用 |
C# | SessionsClient | 不可用 |
Go | SessionsClient | 不可用 |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 不可用 | 不可用 |
Python | SessionsClient | SessionsClient |
Ruby | 不可用 | 不可用 |
使用 Dialogflow Messenger 设置搜索配置
您可以将这些数据提供给 Dialogflow Messenger 集成。
如需应用搜索控件,在将 DF Messenger 代码中嵌入网站时,需要将以下代码段添加到代码中:
<script>
document.addEventListener('df-messenger-loaded', () => {
const dfMessenger = document.querySelector('df-messenger');
const searchConfig = { ... }
dfMessenger.setQueryParameters(searchConfig);
});
</script>
请参阅 setQueryParameters 方法。