studio-web
latest
false
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Studio Web 用户指南

上次更新日期 2025年10月31日

将 Databricks Genie API 与 API 工作流集成

Databricks Genie 支持与企业数据进行自然语言交互,使您无需编写代码即可查询、分析和处理数据集。

本指南通过实际操作演示了如何与 Databricks Genie API 交互,以根据问题输入获取信息。它执行以下主要操作:

  • 初始化变量—设置必要的参数,例如令牌、URL 和 ID。
  • “获取令牌” — 发出 HTTP POST 请求,以获取用于身份验证的访问令牌。
  • 发起对话— 将用户问题发送到 Genie API 以发起对话。
  • 轮询消息补全— 输入“ Do While循环”,以重复检查 Genie 消息的状态,直到其变为“完成”
  • 检索查询结果— 消息完成后,它会从 Genie API 获取最终查询结果,并提供检索到的数据作为工作流输出。

docs image

先决条件

首先,您的Databricks工作区中需要有一个名为“项目限制”的 Genie 空间。

其目的是引用不同产品的运输限制,并提供有关运输详细信息的答案。

  1. (可选)创建 API 工作流
  2. 定义工作流输入。打开数据管理器并添加具有以下配置的新“输入”参数:
    • 名称— 问题
    • “类型” — 字符串
    • 将其标记为“必填”
  3. 定义工作流变量。打开“数据管理器” > “变量” ,然后添加以下内容:
    • 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 (字符串)— 指向“数据块向导”中的特定空间。
  4. 添加HTTP活动以检索访问令牌,并进行如下配置:
    • 显示名称—“获取令牌 HTTP 请求”
    • 方法— POST
    • 请求 URLhttps://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""grant_type=client_credentials&scope=all-apis"
    此活动的上下文输出名称为HTTP_Request_1
  5. 将从上一个活动检索到的令牌分配给token变量。添加“分配”活动并进行如下配置:
    • 至变量token
    • 设置值$context.outputs.HTTP_Request_1.content.access_token
    上下文输出名称HTTP_Request_1可能与工作流中使用的名称不同。
  6. 添加一个HTTP活动以发起对话,并进行如下配置:
    • 显示名称—“发起对话 HTTP 请求”
    • 方法— POST
    • 请求 URLhttps://{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_idmessage_id
    此活动的上下文输出名称为HTTP_Request_2
  7. 输入一个循环以检查 Genie 消息的状态,直至“完成”。添加一个“后条件循环”活动并将“条件”设置为$context.outputs.HTTP_Request_3?.content?.status !== "COMPLETED" ,其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。这意味着只要消息状态不是“已完成”,循环就会继续。
  8. Do While循环内部:
    1. 添加一个HTTP活动以获取最后一条消息,并进行如下配置:
      • 显示名称—“获取消息 HTTP 请求”
      • 方法— GET
      • 请求 URLhttps://{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}{"content": $workflow.input.question}
      此活动的上下文输出名称为HTTP_Request_3
    2. 在“获取消息 HTTP 请求”活动之后添加一个“IF 条件”活动,然后将“条件”设置为$context.outputs.HTTP_Request_3?.content?.status === "COMPLETED" ,其中HTTP_Request_3是指“获取消息 HTTP 请求”活动。
    3. Then (true) 分支上,添加一个赋值活动并进行如下配置:
      • 至变量conversation_id
      • 设置值$context.outputs.HTTP_Request_3.content.conversation_id ,其中HTTP_Request_3是指“获取消息 HTTP 请求” 活动。
    4. 添加另一个“分配”活动:
      • 至变量message_id
      • 设置值$context.outputs.HTTP_Request_3.content.message_id ,其中HTTP_Request_3是指“获取消息 HTTP 请求” 活动。
    5. 添加另一个“分配”活动:
      • 至变量attachment_id
      • 设置值$context.outputs.HTTP_Request_3.content.attachments[0].attachment_id ,其中HTTP_Request_3是指“获取消息 HTTP 请求” 活动。
    6. “Else”分支上,添加“等待”活动,并将持续时间设置为一秒。这将指示工作流在重试之前等待片刻。
  9. 退出循环并添加HTTP活动以执行 SQL 查询并按如下方式配置:
    • 显示名称—“执行 SQL HTTP 请求”
    • 方法— GET
    • 请求 URLhttps://{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}{"Authorization": "Bearer " + $context.variables.token}
    此活动的上下文输出名称为HTTP_Request_3
  10. 定义工作流输出。打开数据管理器并添加以下输入参数:
    • 名称—row_count
    • 类型— 数字
    • 将其标记为“必填”
    • 名称—data_数组
    • 类型—数组
    • 将其标记为“必填”
  11. 添加“响应”活动并进行如下配置:
    • 响应
      {
        "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"
          ]
        ]
      }
  12. 运行集成。部署后,即可使用任何自然语言查询调用工作流。一个示例问题:“将 SKU ENB-SP-200 运往古巴是否有任何限制?”

关键要点:

  1. 简单的设置– API 工作流提供了一种无需自定义代码即可连接 Genie 的快速方法。
  2. 一致的架构– Genie 响应基于 JSON,易于解析为 UiPath。
  3. 可扩展的集成– Responses 可用于应用程序、长时间运行的工作流或编排中。
  4. 快速原型构建– 工作自动化的设置只需几分钟,可以快速验证用例。
  • 先决条件

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo
信任与安全
© 2005-2025 UiPath。保留所有权利。