为生成式 AI 应用程序部署代理

使用 deploy()Agent Framework Python API 中的函数在马赛克 AI 模型服务上部署 AI 代理。 部署创建具有内置可伸缩性、监视和协作工具的服务终结点。

部署的代理会自动与 MLflow 3 评估和监视 功能集成,包括实时跟踪、查看应用以获取利益干系人反馈和监视。

Requirements

MLflow 3

  • 在 Unity 目录中注册代理
  • 安装 MLflow 3.1.3 或更高版本,以通过deploy()databricks.agents API 部署代理。
  • 从 Databricks 笔记本外部部署代理需要 databricks-agents SDK 1.1.0 或更高版本。

安装必备组件:

# Install prerequisites
%pip install mlflow>=3.1.3 databricks-agents>=1.1.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

MLflow 2.x

Important

Databricks 建议使用 MLflow 3 部署代理,因为某些 MLflow 2 日志记录功能将弃用。 请参阅 详细的部署作

  • 在 Unity 目录中注册代理
  • 要使用deploy()databricks.agents API 部署代理,请安装 MLflow 2.13.1 或更高版本。
  • 从 Databricks 笔记本外部部署代理需要 databricks-agents SDK 版本 0.12.0 或更高版本。

安装必备组件:

# Install prerequisites
%pip install mlflow>=2.13.1 databricks-agents>=0.12.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

使用 deploy() 部署代理

将代理部署到模型服务终端。

from databricks import agents

deployment = agents.deploy(uc_model_name, uc_model_info.version)

# Retrieve the query endpoint URL for making API requests
deployment.query_endpoint

调用 deploy()时,Databricks 会自动设置生产基础结构,并通过执行以下作将代理与 MLflow gen AI 功能集成:

警告

如果要从存储在 Databricks Git 文件夹中的笔记本部署代理,则默认情况下,MLflow 3 实时跟踪将不起作用。

若要启用实时跟踪,请先将试验设置为非 Git 关联的试验 mlflow.set_experiment() ,然后再运行 agents.deploy()

默认情况下,deploy() 函数执行以下作:

  • 创建一个模型服务终结点 ,用于托管具有自动缩放和负载均衡的代理
  • 为代理预配安全身份验证 以访问基础资源
  • 通过 MLflow 试验跟踪和对生产流量进行自动化质量评估,实现实时监视
  • 使用“审阅应用”设置利益干系人协作以收集反馈

有关详细信息,请参阅 详细部署作

自定义部署

传递附加参数至 deploy(),以定制部署。 例如,可以通过传递 scale_to_zero_enabled=True,为空闲终结点启用缩放到零功能。 这降低了成本,但增加了为初始查询提供服务的时间。

有关更多参数,请参阅 Databricks Agents Python API

检索和删除代理部署

检索或管理现有代理部署。 请参阅 Databricks 代理 Python API

from databricks.agents import list_deployments, get_deployments, delete_deployment

# Print all current deployments
deployments = list_deployments()
print(deployments)

# Get the deployment for a specific agent model name and version
agent_model_name = ""    # Set to your Unity Catalog model name
agent_model_version = 1  # Set to your agent model version
deployment = get_deployments(model_name=agent_model_name, model_version=agent_model_version)

# List all deployments
all_deployments = list_deployments()

# Delete an agent deployment
delete_deployment(model_name=agent_model_name, model_version=agent_model_version)

从属资源的身份验证

代理通常需要向其他资源进行身份验证才能在部署任务时完成任务。 例如,代理可能需要访问矢量搜索索引来查询非结构化数据。

有关身份验证方法的信息,包括何时使用它们以及如何设置它们,请参阅 AI 代理的身份验证

详细的部署动作

下表列出了调用 deploy() 导致的详细部署操作。 部署可能需要长达 15 分钟才能完成。

MLflow 3

deploy() 操作 Description
创建模型服务终结点 创建一个可缩放的 REST API 终结点,该终结点通过自动负载均衡为面向用户的应用程序提供服务。
预配安全身份验证 自动提供生存期较短的凭据,使代理能够访问具有最低所需权限的 Databricks 托管资源 (矢量搜索索引、Unity 目录函数等)。
Databricks 在颁发凭据之前验证终结点所有者是否具有适当的权限,从而阻止未经授权的访问。
对于非 Databricks 资源,请将具有机密的环境变量传递给 deploy()。 请参阅配置从模型服务终结点对资源的访问权限
启用审阅应用 提供 Web 界面,利益干系人可以与代理交互并提供反馈。 参见通过标记现有跟踪来收集反馈和期望
启用实时跟踪 实时将所有代理交互记录到 MLflow 试验,从而提供监视和调试的即时可见性。
  • 从终结点写入到当前活动的 MLflow 试验的跟踪(使用 mlflow.set_experiment()
  • 终结点中的所有代理共享用于跟踪存储的相同试验
  • 跟踪还会写入推理表以进行长期存储
启用生产监视(beta 版) 配置自动化质量评估,以在生产环境流量上运行评分器。 请参阅 生产监视
启用推理表 创建用于记录用于审核和分析的请求输入和响应的表。
  • 警告: 请求日志和评估日志已弃用,将在将来的版本中删除。 请改用 MLflow 3 实时跟踪。 有关迁移指南,请参阅 请求日志和评估日志弃用
  • 所有代理都使用 AI 网关推理表 进行日志记录
  • 流式处理响应仅记录与ResponsesAgentChatAgentChatCompletion架构兼容的日志字段
记录 REST API 请求并查看应用反馈 将 API 请求和反馈记录到推理表。
警告:反馈模型已弃用,将在将来的版本中删除。 升级到 MLflow 3,改用 log_feedback API。 请参阅 “收集用户反馈”。
  • 创建反馈模型以接受和记录来自“审阅应用”的反馈。
  • 此模型在与您已部署代理相同的 CPU 型号服务端点中进行服务。

MLflow 2

deploy() 操作 Description
创建模型服务终结点 创建一个可缩放的 REST API 终结点,该终结点通过自动负载均衡为面向用户的应用程序提供服务。
预配安全身份验证 自动提供生存期较短的凭据,使代理能够访问具有最低所需权限的 Databricks 托管资源 (矢量搜索索引、Unity 目录函数等)。
Databricks 在颁发凭据之前验证终结点所有者是否具有适当的权限,从而阻止未经授权的访问。
对于非 Databricks 资源,请将具有机密的环境变量传递给 deploy()。 请参阅配置从模型服务终结点对资源的访问权限
启用审阅应用 提供 Web 界面,利益干系人可以与代理交互并提供反馈。 参见通过标记现有跟踪来收集反馈和期望
启用推理表 创建用于记录用于审核和分析的请求输入和响应的表。
警告: 请求日志和评估日志已弃用,将在将来的版本中删除。 有关迁移指南,请参阅 请求日志和评估日志弃用
记录 REST API 请求和查看应用反馈(已弃用) 将 API 请求和反馈记录到推理表。
警告:反馈模型已弃用,将在将来的版本中删除。 升级到 MLflow 3,改用 log_feedback API。 请参阅 “收集用户反馈”。
  • 创建反馈模型以接受和记录来自“审阅应用”的反馈。
  • 此模型在与您已部署代理相同的 CPU 型号服务端点中进行服务。

后续步骤