- 入门指南
- 数据安全性与合规性
- 组织
- 身份验证和安全性
- 许可
- 租户和服务
- 帐户和角色
- Ai Trust Layer
- 外部应用程序
- 通知
- 日志记录
- 数据导出
- 在您的组织中进行测试
- 故障排除
- 迁移到 Test Cloud
Connect an externally managed vector database, such as Databricks Vector Search or Azure AI Search, to UiPath agents via Context Grounding in Test Cloud.
使用您现有的向量数据库,将智能体响应存储在受信任的企业数据中,无需复制内容或更改当前架构。
本指南演示如何使用 API 工作流将外部管理的向量数据库(例如 Databricks向量搜索或 Azure AI 搜索)连接到 UiPath 智能体,从而使用自己的数据源启用检索增强生成 (RAG)。
学完本指南后,您将能够:
- 从 UiPath 智能体查询外部向量数据库。
- 以结构化上下文的形式返回最相关的内容。
- 智能体可以在您组织的数据中安全地实时做出响应。
何时使用“自带向量数据库 (BYOVD)”模式
在下列情况下,请使用 BYOVD:
- 您的数据已在外部向量存储中编入索引。
- 您希望智能体能够访问最新的企业知识。
- 您需要避免将数据复制或重新索引到 UiPath。
- 您需要对数据存储、安全性和嵌入进行完全控制。
工作方式
BYOVD 使智能体可以在您的可信数据源中基于生成式 AI 响应。您不依赖内置的上下文基础索引,而是使用API 工作流,这些工作流可以安全地查询外部向量数据库并将相关上下文返回给智能体的大型语言模型。
此方法使您可以灵活地将任何向量数据库与公共 API 集成,同时保持对数据访问、身份验证和检索逻辑的控制。
UiPath 通过充当智能体工具的 API 工作流来支持 BYOVD。在运行时:
- 用户查询:用户向智能体提交提示。
- 工具选择:智能体的 LLM 会确定需要其他上下文,并选择自定义向量搜索工具。
- 执行 API 工作流(仅适用于 StudioX 策略):智能体调用已发布的 API 工作流,将用户查询作为输入传递。
- 向量搜索:工作流会查询向量数据库,以检索语义最相关的内容。
- 上下文返回(字符串) :工作流以结构化 JSON 形式返回检索到的内容。
- 制定响应:智能体使用此上下文来生成基础、准确的响应。
此方法支持检索增强生成 (RAG),而无需原生提取到上下文基础服务中。
架构概述
BYOVD 解决方案由三个主要组件组成:
- 向量数据库:您的现有系统(例如 Databricks向量搜索或 Azure AI 搜索)。
- API 工作流: UiPath Integration Service 工作流:
- 接受查询。
- 调用向量数据库 API。
- 返回相关结果。
- 智能体工具:发布的 API 工作流,添加为智能体可以调用的工具。
安全性和凭据管理
在构建工作流之前,请安全存储所有 API 密钥和密码。不要在工作流中硬编码凭据。请改为使用 Orchestrator 凭据存储:
- 在 Orchestrator 中存储凭据(在Orchestrator 中存储): 在 Orchestrator 租户中添加 API 密钥和其他密码作为凭据资产。这可以实现对敏感信息的集中、安全管理。
- 在运行时检索凭据:在 API 工作流中,使用获取凭据活动以在工作流运行时访问存储的凭据。该活动以字符串形式返回用户名,并以
SecureString形式返回密码(例如 API 密钥),以防止密码在日志或工作流定义中公开。
先决条件
开始之前,请确保您:
- 包含索引数据的活动向量数据库(例如 Databricks向量搜索或 Azure AI 搜索)。
- 有效的 API 端点和身份验证凭据,作为凭据资产存储在 Orchestrator 中。
- 嵌入模型端点和密钥,也安全存储(仅适用于 Azure 客户端向量化)。
设置
您可以使用三种方法之一实施 BYOVD:模型原生端点、客户端向量化(其中 API 工作流执行向量化)或集成向量化。
以下部分提供了配置每种方法的分步说明。这些示例使用 Databricks 和 Azure AI 搜索,但相同的模式也适用于其他向量数据库。选择符合您的向量数据库处理查询向量化方式的设置。
Databricks向量搜索(模型原生端点)
当 Databricks 在原生处理查询向量化时,请使用此选项。
为什么使用此选项
- 简单配置
- 每个查询仅支持一次 API 调用
- 无需单独的嵌入模型
步骤
- 获取 Databricks 详细信息:
- 检索端点 URL。
- 将您的 Databricks 个人访问令牌存储为 Orchestrator 中的凭据资产。
- 在 Studio 中,创建一个新的 API 工作流项目并定义以下参数:
in_QueryText(String)in_TopK(Int32,默认值为5)out_Results(String)
- 使用“获取凭据”活动在运行时从 Orchestrator 检索 Databricks 个人访问令牌。
- 添加HTTP 请求活动以调用 Databricks 端点:
- 端点:Databricks 向量搜索端点
- 方法:
POST - 标头:
Authorization: Bearer <Personal Access Token> - 正文:构建 Databricks API 所需的 JSON 正文,以映射输入变量。
- 将工作流发布到 Orchestrator 租户。
- 将工作流作为工具添加到您的智能体中,并提供明确的名称和描述,供 LLM 使用。
Azure AI 搜索(客户端向量化)
当 Azure AI 搜索索引需要向量输入时,请使用此选项。
为什么使用此选项
- 对嵌入模型的完全控制
- 与现有向量索引的兼容性
步骤
- 获取 API 详细信息:
- 对于 Azure AI 搜索:检索端点 URL、索引名称,并将 API 密钥作为凭据资产存储在 Orchestrator 中。
- 对于嵌入模型:检索端点 URL,并将嵌入服务的 API 密钥作为凭据资产存储在 Orchestrator 中。
- 在 Studio 中,创建一个新的 API 工作流项目并定义以下参数:
in_QueryText(String)in_TopK(Int32,默认值为5)out_Results(String)
- 首先,对查询进行向量化:
- 查询 Azure AI 搜索:
- 添加“获取凭据”活动,以检索 Azure AI 搜索 API 密钥。
- 添加“HTTP 请求”活动并进行如下配置:
- 端点 (仅适用于 Azure AI 端点):您的 Azure AI 搜索端点。
- 方法:
POST。 - 标头:使用您的 Azure AI 搜索 API 密钥变量添加
api-key标头,如下所示:api-key: <API key>。 - “正文” :为 Azure AI 搜索向量搜索查询构建 JSON 正文,并嵌入
queryVector变量。
- 将工作流发布到 Orchestrator 租户。
- 将已发布的工作流作为工具添加到您的智能体中,并提供清晰的描述,供 LLM 使用。
Azure AI 搜索(集成的向量化)
当 Azure AI 搜索索引支持内置向量化时,请使用此选项。
为什么使用此选项
- 最简单的 Azure 设置
- 不可在工作流中嵌入调用
- 每个查询单个 API 请求
步骤
- 获取 API 详细信息:
- 检索 Azure AI 搜索端点 URL、索引名称,并将 API 密钥作为凭据资产存储在 Orchestrator 中。
- 在 Studio 中,创建一个新的 API 工作流项目并定义以下参数:
in_QueryText(String)in_TopK(Int32,默认值为5)out_Results(String)
- 添加“获取凭据”活动,以便从 Orchestrator 检索 Azure AI 搜索 API 密钥。
- 添加“HTTP 请求”活动并进行如下配置:
- 端点:
https://<service>.search.windows.net/indexes/<index-name>/docs/search?api-version=2023-11-01https://<service>.search.windows.net/indexes/<index-name>/docs/search?api-version=2023-11-01 - 方法:
POST - “标头”(在 Azure 中设置):使用您的 Azure AI 搜索 API 密钥变量添加
api-key标头,如下所示:api-key: <API key> - 正文:构建 JSON 正文,以使用查询文本执行向量搜索。Azure AI 搜索会自动处理向量化。
{ "vectorQueries": [ { "kind": "text", "text": "<%= in_QueryText %>", "fields": "contentVector", "k": "<%= in_TopK %>" } ], "select": "chunk, source_document" }{ "vectorQueries": [ { "kind": "text", "text": "<%= in_QueryText %>", "fields": "contentVector", "k": "<%= in_TopK %>" } ], "select": "chunk, source_document" }
- 端点:
- 将工作流发布到 Orchestrator 租户。
- 将已发布的工作流作为工具添加到您的智能体中,并为 LLM 提供清晰的描述。