将 AI 代理工具连接到外部服务

重要说明

此功能目前以公共预览版提供。

了解如何使用 HTTP 请求将 AI 代理工具 连接到外部应用程序,如 Slack、Google Calendar 或任何具有 API 的服务。 代理可以使用外部连接的工具自动执行任务、发送消息以及从第三方平台检索数据。

要求

创建 Unity Catalog 函数工具

创建 HTTP 连接并测试其正常运行后,请创建使用连接的 Unity 目录函数。 以下示例创建一个 Unity Catalog 函数工具,该工具可供代理用于将消息发布到 Slack:

CREATE OR REPLACE FUNCTION main.default.slack_post_message(
  text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
  conn => 'test_sql_slack',
  method => 'POST',
  path => '/api/chat.postMessage',
  json => to_json(named_struct(
    'channel', "C032G2DAH3",
    'text', text
  ))
)).text

请参阅 CREATE FUNCTION(SQL 和 Python)

在代理代码中创建工具

若要使用 Python 将 HTTP 请求发送到外部服务,请使用 库中的 databricks-sdk 函数。 此函数使用 Unity Catalog 连接向外部服务发送进行身份验证的 HTTP 请求。

所需的权限:连接对象上的 USE CONNECTION

以下示例从代理代码内部发出外部 HTTP 请求。

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod

WorkspaceClient().serving_endpoints.http_request(
  conn="connection_name",
  method=ExternalFunctionRequestHttpMethod.POST,
  path="/api/v1/resource",
  json={"key": "value"},
  headers={"extra_header_key": "extra_header_value"},
)
  • conn:连接对象,用于指定主机、端口、base_path 和访问凭据。
  • method:用于进行调用的 HTTP 请求方法。 例如 GETPOSTPUTDELETE
  • path:用于在 base_path 后连接以调用服务资源的路径。
  • json:与请求一起发送的 JSON 正文。
  • headers:用于指定请求头的映射。

示例笔记本

以下笔记本演示如何创建连接到 Slack、OpenAI 和 Azure AI 搜索的 AI 代理工具。

Slack 消息传送代理工具

获取笔记本

Microsoft Graph API 代理工具

获取笔记本

Azure AI 搜索代理工具

获取笔记本