- 入门指南
- 面向 Administrator
- RPA 工作流项目
- 应用程序项目
- 智能体流程
- Agents (智能体)
- Solutions (解决方案)
- API 工作流
- 测试

Studio Web 用户指南
将 Databricks Genie API 与 API 工作流集成
Databricks Genie 支持与企业数据进行自然语言交互,使您无需编写代码即可查询、分析和处理数据集。
本指南通过实际操作演示了如何与 Databricks Genie API 交互,以根据问题输入获取信息。它执行以下主要操作:
-
初始化变量— 设置必要的参数,例如令牌、URL 和 ID。
-
“获取令牌” — 发出 HTTP POST 请求,以获取用于身份验证的访问令牌。
-
发起对话— 将用户问题发送到 Genie API 以发起对话。
-
轮询消息补全— 输入“ Do While循环”,以重复检查 Genie 消息的状态,直到其变为“完成”。
-
检索查询结果— 消息完成后,它会从 Genie API 获取最终查询结果,并提供检索到的数据作为工作流输出。

先决条件
首先,您的Databricks工作区中需要有一个名为“项目限制”的 Genie 空间。
其目的是引用不同产品的运输限制,并提供有关运输详细信息的答案。
-
定义工作流输入。打开数据管理器并添加具有以下配置的新“输入”参数:
- 名称— 问题
- “类型” — 字符串
- 将其标记为“必填” 。
-
定义工作流变量。打开“数据管理器” > “变量” ,然后添加以下内容:
token(字符串)— 存储访问(可选)Databricks Genie API 所需的身份验证令牌。conversation_id(字符串)— 跟踪与“Databricks Genie API”相关的特定对话会话。当您发起对话时,API 会提供此 ID,您可以在后续请求中使用它来引用该正在进行的对话。message_id(字符串)— 引用对话中的特定消息。然后,使用此 ID 检索状态,并最终检索该特定消息的处理结果。attachment_id(字符串) — 指向与 Genie API 中的消息关联的特定附件(在这种情况下,该附件包含查询结果)。url(字符串)— 存储“Databricks Genie API 端点”的基本 URL。space_id(字符串)— 指向“数据块向导”中的特定空间。
-
添加HTTP活动以检索访问令牌,并进行如下配置:
- 显示名称—“获取令牌 HTTP 请求”
- 方法— POST
- 请求 URL —
https://accounts.cloud.databricks.com/oidc/accounts/{account_id}/v1/token - 标头—
{ "Authorization": "Basic <your_basic_token>", "Content-Type": "application/x-www-form-urlencoded" }{ "Authorization": "Basic <your_basic_token>", "Content-Type": "application/x-www-form-urlencoded" } - 请求正文—
"grant_type=client_credentials&scope=all-apis" ```The context output name for this activity is `HTTP_Request_1`."grant_type=client_credentials&scope=all-apis" ```The context output name for this activity is `HTTP_Request_1`.
-
将从上一个活动检索到的令牌分配给
token变量。添加“分配”活动并进行如下配置:- 至变量—
token - 设置值—
$context.outputs.HTTP_Request_1.content.access_token上下文输出名称HTTP_Request_1可能与工作流中使用的不同。
- 至变量—
-
添加一个HTTP活动以发起对话,并进行如下配置:
- 显示名称—“发起对话 HTTP 请求”
- 方法— POST
- 请求 URL —
https://{your-databricks-instance}/api/2.0/genie/spaces/{space_id}/start-conversation,或使用“表达式编辑器”将其构建为$context.variables.url + "/api/2.0/genie/spaces/"+ $context.variables.space_id +"/start-conversation"$context.variables.url + "/api/2.0/genie/spaces/"+ $context.variables.space_id +"/start-conversation" - 标头—
{"Authorization": "Bearer " + $context.variables.token}{"Authorization": "Bearer " + $context.variables.token} - 请求正文—
{"content": $workflow.input.question}{"content": $workflow.input.question}
确保已保存输出。您可以从此活动的输出中检索
conversation_id和message_id。此活动的上下文输出名称为HTTP_Request_2。 -
输入一个循环以检查 Genie 消息的状态,直至“完成”。添加一个“后条件循环”活动并将“条件”设置为
$context.outputs.HTTP_Request_3?.content?.status !== "COMPLETED",其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。这意味着只要消息状态不是“已完成”,循环就会继续。 -
在Do While循环内部:
- 添加一个HTTP活动以获取最后一条消息,并进行如下配置:
- 显示名称—“获取消息 HTTP 请求”
- 方法— GET
- 请求 URL —
https://{your-databricks-instance}/api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id},或使用“表达式编辑器”将其构建为[ $context.variables.url+"/api/2.0/genie/spaces/"+$context.variables.space_id+"/conversations/", $context.outputs.HTTP_Request_2.content.conversation_id, "/messages/", $context.outputs.HTTP_Request_2.content.message_id ].join('')[ $context.variables.url+"/api/2.0/genie/spaces/"+$context.variables.space_id+"/conversations/", $context.outputs.HTTP_Request_2.content.conversation_id, "/messages/", $context.outputs.HTTP_Request_2.content.message_id ].join('')
其中的
HTTP_Request_2是指“发起对话 HTTP 请求”活动。- 标头—
{"Authorization": "Bearer " + $context.variables.token}{"Authorization": "Bearer " + $context.variables.token} - 请求正文—
{"content": $workflow.input.question} ```The context output name for this activity is `HTTP_Request_3`.{"content": $workflow.input.question} ```The context output name for this activity is `HTTP_Request_3`.
- 在“获取消息 HTTP 请求”活动之后立即添加一个“IF 条件”活动,然后将“条件”设置为
$context.outputs.HTTP_Request_3?.content?.status === "COMPLETED",其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。 - 在Then (true) 分支上,添加一个赋值活动并进行如下配置:
- 至变量—
conversation_id - 设置值—
$context.outputs.HTTP_Request_3.content.conversation_id,其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。
- 至变量—
- 添加另一个“分配”活动:
- 至变量—
message_id - 设置值—
$context.outputs.HTTP_Request_3.content.message_id,其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。
- 至变量—
- 添加另一个“分配”活动:
- 至变量—
attachment_id - 设置值—
$context.outputs.HTTP_Request_3.content.attachments[0].attachment_id,其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。
- 至变量—
- 在“Else”分支上,添加“等待”活动,并将持续时间设置为一秒。这将指示工作流在重试之前等待片刻。
- 添加一个HTTP活动以获取最后一条消息,并进行如下配置:
-
退出循环并添加HTTP活动以执行 SQL 查询并按如下方式配置:
- 显示名称—“执行 SQL HTTP 请求”
- 方法— GET
- 请求 URL —
https://{your-databricks-instance}/api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id}/attachments/{attachment_id}/query-result,或使用“表达式编辑器”将其构建为$context.variables.url+"/api/2.0/genie/spaces/"+$context.variables.space_id+"/conversations/" + $context.variables.conversation_id + "/messages/" + $context.variables.message_id + "/attachments/" + $context.variables.attachment_id + "/query-result"$context.variables.url+"/api/2.0/genie/spaces/"+$context.variables.space_id+"/conversations/" + $context.variables.conversation_id + "/messages/" + $context.variables.message_id + "/attachments/" + $context.variables.attachment_id + "/query-result" - 标头—
{"Authorization": "Bearer " + $context.variables.token} ```The context output name for this activity is `HTTP_Request_3`.{"Authorization": "Bearer " + $context.variables.token} ```The context output name for this activity is `HTTP_Request_3`.
-
定义工作流输出。打开数据管理器并添加以下输入参数:
- 名称—row_count
- 类型— 数字
- 将其标记为“必填” 。并且
- 名称—data_数组
- 类型—数组
- 将其标记为“必填” 。
-
添加“响应”活动并进行如下配置:
- 响应—
{ "row_count": -75647404.57028332, "data_array": [ [], [], [ "ut et aute officia", "ex ut", "nisi non ut Lorem velit", "aliquip Duis consectetur irure id" ] ] }{ "row_count": -75647404.57028332, "data_array": [ [], [], [ "ut et aute officia", "ex ut", "nisi non ut Lorem velit", "aliquip Duis consectetur irure id" ] ] }
- 响应—
-
运行集成。部署后,即可使用任何自然语言查询调用工作流。一个示例问题:“将 SKU ENB-SP-200 运往古巴是否有任何限制?”
关键要点:
- 简单的设置– API 工作流提供了一种无需自定义代码即可连接 Genie 的快速方法。
- 一致的架构– Genie 响应基于 JSON,易于解析为 UiPath。
- 可扩展的集成– Responses 可用于应用程序、长时间运行的工作流或编排中。
- 快速原型构建– 工作自动化的设置只需几分钟,可以快速验证用例。