构建可调用 5e SRD 并返回结构化 Unattended 数据的 Unattended Query API 工作流。
步骤 1 - 构建 Designer Query API 工作流
API 工作流是作为 API 端点发布的轻量级工作流。您构建一个包含Open5e 5e SRD 超级搜索的模型:一个输入、一个 HTTP 请求、一个输出。发布后,它将显示在智能体构建器中,作为智能体可以调用的工具。
此步骤包含六个子步骤;预算 10–15 分钟来完成。
新建 API 工作流项目
从云端工作区中选择“新建” 。在“开始构建”对话框中,在“任务自动化”下选择“API 工作流” 。
选择类型,将立即创建项目,不会提示名称,因此您将在下一步中重命名。
重命名解决方案和默认工作流。在项目资源管理器中打开每个名称的上下文菜单,然后选择“重命名” :
- 解决方案名称:
Monster Query - 5e SRD - 工作流名称:
API Query - 5e Monsters
配置输入和输出
选择Data Manager (左侧栏的剪贴板图标),以访问工作流的数据变量。
向工作流添加一个输入参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
searchName | 字符串 | 是 | 要搜索的生物名称或部分名称 |
添加一个输出参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
monsterResults | 数组 | 是 | 结果列表 UiPath |
添加 HTTP 请求
- 在工作流画布中,选择“+活动”,以打开活动菜单。选择“HTTP” 。该活动在画布上显示为“HTTP 请求” 。
- 打开活动上下文菜单,然后选择“重命名” 。将其命名为
HTTP Request - Open5e Monster Query。 - 在属性窗格中,确认“身份验证”为“手动身份验证” , “方法”为“GET” 。两者都是新活动的默认值,因此通常无需更改任何内容。
- 将URL设置为
https://api.open5e.com/v2/creatures/。 - 将活动输出重命名为
searchResults。
设置“查询参数”属性:
打开“查询参数”属性,该属性将打开包含“键”列和“值”列的“字典编辑器” ,然后添加以下字段:
| 密钥 | 值 |
|---|---|
name__icontains | searchName 输入参数 - 请参阅下方的警告 |
document__key | srd-2014 |
limit | 10 |
fields | key,name,type,size,challenge_rating,alignment |
name__icontains接受searchName变量,您必须从变量选取器中选取它,而不是输入它。在“值”字段中,首先输入@以打开选取器,然后选择“搜索名称” - 不使用选取器会将输入作为文本字符串发送,并且 API 将返回 HTTP 200 而没有结果。然后,该字段将该值呈现为芯片,存储的值为 $input.searchName。
每个参数的作用:
name__icontains:不区分大小写的部分匹配;dragon将返回“Red Robot 成体”、“ Blue Robot 刚体”等document__key: srd-2014:筛选官方 5e SRD;如果没有,结果包括数据库中的每个发布者,包括第三方内容limit: 10:候选对象的上限为 10;足以使智能体在不会淹没其上下文的情况下进行推理fields:限制仅响应智能体所需的字段;完整的 v2 生物对象要大得多,并且会浪费令牌预算
Open5e 会忽略它无法识别的查询参数,并返回 HTTP 200。如果 document__key 拼写错误,或使用 v1 拼写 document__slug,则筛选器将静默删除:调用成功,运行为绿色,并且智能体接收来自每个发布者的生物,而不是 SRD。goblin 搜索在应用筛选条件下返回 2 个结果,在不应用筛选条件下返回 29 个结果,因此请检查结果计数,确保结果数量很少,而不是目录。
HTTP 请求属性引用
该活动公开了标准 HTTP 构建模块。您将为调用的每个 API 配置大多数;对于公共 API,您可以跳过一些步骤,例如以下 API:
- 身份验证:OAuth 2.0、API 密钥和基本身份验证的预构建选项。此处设置为“手动身份验证”,因为 Open5e 不需要任何身份验证。对于经过身份验证的 API,请选择适当的选项并提供凭据。
- 标头:随每个请求发送的键/值对。常见用途:
Authorization: Bearer <token>表示基于令牌的 API,Accept: application/json用于控制响应格式和 API 版本控制标头。 - 正文:与 POST、PUT 和 PATCH 请求一起使用,以发送 JSON、表单数据或原始内容。不适用于 GET 请求,此类请求通过查询参数在 URL 中携带参数。
- 查询参数:附加到 URL 的键/值对。要引用工作流参数,请输入
@以打开变量选取器,然后选择参数 - 字段存储$input.<name>并将其显示为芯片。@是选取器的触发字符,而非您可以输入的参考语法。有关在 Studio Web 中变量和表达式的更多信息,请参阅配置活动。 - 输出(重命名为
searchResults) :接收完整的 HTTP 响应,包括状态代码、标头和正文。非默认重命名可使响应表达式可读。
添加响应
-
在工作流画布中,选择“HTTP 请求”后的“+” ,然后选择“响应” 。
“响应”活动定义 API 工作流返回给调用者的内容(在本例中,为智能体工具在调用工作流时收到的内容)。您在此处的响应正文中输入的任何内容都将成为智能体推理的工具输出。
-
将响应正文设置为:
{ "monsterResults": $context.outputs.searchResults.content.results }{ "monsterResults": $context.outputs.searchResults.content.results }
$context.outputs包含此工作流中活动的所有命名输出。searchResults是您在“HTTP 请求”活动中重命名的输出变量; .content.results导航到 Open5e 包含其数据的响应信封中,一直到实际的 Unattended 条目数组。有关更多信息,请查看关于使用 Javascript 访问工作流数据的 UiPath 文档。
测试工作流
- 在工具栏中选择“调试” 。
- 在输入面板中,将
searchName设置为dragon或goblin,然后运行工作流。 - 请先验证响应是否包含包含巨大条目的
monsterResults数组,然后再继续操作。
成功的响应最多包含 10 个条目,每个条目包含 key、name、alignment 和 challenge_rating,以及嵌套的 type 和 size 对象。搜索 goblin 将返回 Goblin 和 Hobgoblin。如果看到空数组,请尝试其他搜索词;并非每个生物名称在 SRD 中都有完全匹配项。
发布到您的订阅源
发布可以在 Orchestrator 中将工作流注册为可部署的流程。这使其可以在 Agent Builder 的“可用资源”列表中发现:构建器显示您工作区中已发布的工作流,而不是本地保存在 Studio Web 中的草稿。
- 在工具栏中选择“发布” 。
- 在发布对话框中,选择“对于我” ,以发布到您的个人工作区订阅源。个人工作区订阅源是与 Orchestrator 工作区绑定的私有包存储库;发布“属于我”后,此工作流仅对您可见,您正是开发和测试的作用域。有关详细信息,请参阅 UiPath 文档中的个人工作区。
- 选择“发布”以确认。
工作流未出现在步骤 3 的“可用资源”中?工作流必须先发布(而不仅仅是保存),然后才能作为工具查看。如果未显示,请返回此处并确认已成功完成发布,然后刷新智能体构建器。
工作流发布后,下一部分将在 Agent Builder 中作为可连接的工具使用。