使用 deploy()Agent Framework Python API 中的函数在马赛克 AI 模型服务上部署 AI 代理。 部署创建具有内置可伸缩性、监视和协作工具的服务终结点。
部署的代理会自动与 MLflow 3 评估和监视 功能集成,包括实时跟踪、查看应用以获取利益干系人反馈和监视。
Requirements
MLflow 3
- 在 Unity 目录中注册代理。
- 安装 MLflow 3.1.3 或更高版本,以通过
deploy()的databricks.agentsAPI 部署代理。 - 从 Databricks 笔记本外部部署代理需要
databricks-agentsSDK 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.agentsAPI 部署代理,请安装 MLflow 2.13.1 或更高版本。 - 从 Databricks 笔记本外部部署代理需要
databricks-agentsSDK 版本 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 试验,从而提供监视和调试的即时可见性。
|
| 启用生产监视(beta 版) | 配置自动化质量评估,以在生产环境流量上运行评分器。 请参阅 生产监视。 |
| 启用推理表 | 创建用于记录用于审核和分析的请求输入和响应的表。
|
| 记录 REST API 请求并查看应用反馈 | 将 API 请求和反馈记录到推理表。 警告:反馈模型已弃用,将在将来的版本中删除。 升级到 MLflow 3,改用 log_feedback API。 请参阅 “收集用户反馈”。
|
MLflow 2
deploy() 操作 |
Description |
|---|---|
| 创建模型服务终结点 | 创建一个可缩放的 REST API 终结点,该终结点通过自动负载均衡为面向用户的应用程序提供服务。 |
| 预配安全身份验证 | 自动提供生存期较短的凭据,使代理能够访问具有最低所需权限的 Databricks 托管资源 (矢量搜索索引、Unity 目录函数等)。 Databricks 在颁发凭据之前验证终结点所有者是否具有适当的权限,从而阻止未经授权的访问。 对于非 Databricks 资源,请将具有机密的环境变量传递给 deploy()。 请参阅配置从模型服务终结点对资源的访问权限。 |
| 启用审阅应用 | 提供 Web 界面,利益干系人可以与代理交互并提供反馈。 参见通过标记现有跟踪来收集反馈和期望。 |
| 启用推理表 | 创建用于记录用于审核和分析的请求输入和响应的表。 警告: 请求日志和评估日志已弃用,将在将来的版本中删除。 有关迁移指南,请参阅 请求日志和评估日志弃用 。 |
| 记录 REST API 请求和查看应用反馈(已弃用) | 将 API 请求和反馈记录到推理表。 警告:反馈模型已弃用,将在将来的版本中删除。 升级到 MLflow 3,改用 log_feedback API。 请参阅 “收集用户反馈”。
|