Databricks 平台上的生成式 AI 应用简介

马赛克 AI 同时支持简单和复杂的生成式 AI 应用,从检索扩充生成(RAG)聊天机器人到工具调用代理程序。 了解第一代 AI 应用和代理系统背后的关键概念,探索常见的设计模式,并掌握有关生成、评估和缩放 Gen AI 应用的教程。

了解第一代 AI 应用概念

熟悉基础第一代 AI 应用概念。

了解马赛克 AI 如何在第一代 AI 开发过程中应对关键挑战。

尝试使用 Mosaic AI 构建生成式 AI 应用程序

请从以下笔记本教程开始:

当你准备好挑战更复杂内容时,请查看高级指南和教程:

什么是生成式人工智能应用?

Gen AI 应用是一个应用程序,它使用生成 AI 模型(如 LLM、图像生成模型和文本转语音模型)创建新输出、自动化复杂任务或基于用户输入进行智能交互。 虽然第一代 AI 应用可以使用各种模型,但本指南侧重于 LLM 支持的应用程序。

虽然 LLM 支持的 GEN AI 应用可以采用不同的方式构建,但它们通常属于两种体系结构模式之一:

类型 1:一体化 LLM + 提示 类型 2(建议):代理系统
它是什么? 具有精心设计的提示的单个 LLM。 多个交互组件(LLM 调用、检索器、API 调用)协调在一起 - 从简单的链到复杂的多代理系统。
示例用例 内容分类: 使用 LLM 将客户支持票证分类为预定义主题。 智能助手: 结合文档检索、多个 LLM 调用和外部 API 来研究、分析和生成全面的报告。
最适用于 简单、专注的任务、快速原型以及清晰明确的提示。 复杂的工作流、需要多种功能的任务,以及需要对前面的步骤进行反射的任务。
主要优点 更简单的实现、更快的开发和较低的作复杂性。 更可靠、更易于维护、更好地控制和灵活性、更易于测试和验证以及组件级优化。
局限性 不太灵活,更难优化,功能有限。 更复杂的实现、更多的初始设置和需要组件协调。

对于大多数企业用例,Databricks 建议使用 代理系统 通过将系统分解为更小、定义完善的组件,开发人员可以更好地管理复杂性,同时保持企业应用程序所需的高级别控制和合规性。

马赛克 AI 具有适用于整体系统和代理系统的工具和功能,本文档的其余部分介绍如何构建这两种类型的 GEN AI 应用。

若要详细了解代理系统与整体模型背后的理论, 请参阅 Databricks 创始人的博客文章:

什么是代理系统?

代理系统是一个 AI 驱动的系统,可以自主感知、决定和采取行动,在环境中实现目标。 与仅在出现提示时生成输出的独立 LLM 不同,代理系统拥有一定程度的 代理。 基于现代 LLM 的代理系统使用 LLM 作为“大脑”,来解释上下文、推理下一步应该做什么,并进行 API 调用、信息检索和工具使用等操作以完成任务。

代理系统是具有 LLM 核心的系统。 该系统:

  1. 接收来自其他代理的用户请求或消息。
  2. 有关如何进行的理由:要提取哪些数据、要应用的逻辑、要调用的工具,或者是否需要从用户请求更多输入。
  3. 执行计划,并可能调用多个工具或委托给子代理。
  4. 返回答案或提示用户进行其他说明。

通过桥接常规智能(LLM的预训练能力)和数据智能(特定于企业的专业知识和数据API),代理系统能够启用高影响力的企业用例,例如高级客户服务流程、数据丰富的分析机器人,以及用于复杂操作任务的多代理调度。

代理系统可以做什么?

代理系统可以:

  • 动态规划行动
  • 将状态从一个步骤传递到下一步
  • 在不持续人工干预的情况下根据新信息调整其策略

当被询问时,独立 LLM 可能会输出旅行行程,而代理系统可以通过利用工具和 API 自动检索客户信息并自主完成航班预订。 通过将 LLM 中的“常规智能”与“数据智能”(特定于域的数据或 API)相结合,代理系统可以处理单个静态模型难以解决的复杂企业用例。

代理是一个连续性;提供模型来控制系统行为的自由度越多,应用程序就越具有代理性。 在实践中,大多数生产系统仔细限制代理的自主性,以确保合规性和可预测性,例如,要求人工批准风险作。

常规智能与数据智能

比较常规智能与数据智能的关系图。

  • 一般智能: 是指 LLM 从广泛的多样文本预训练中固有掌握的知识。 这对于语言流畅性和一般推理非常有用。
  • 数据智能: 指组织的特定于域的数据和 API。 这可能包括客户记录、产品信息、知识库或反映独特业务环境的文档。

代理系统将这两种观点混合在一起:它们从 LLM 的广泛、通用的知识开始,然后引入实时或特定于域的数据来回答详细问题或执行专用作。

代理系统示例

客户与第一代 AI 应用的交互流程图。

考虑客户与生成式 AI 代理之间的呼叫中心场景:

客户提出请求:“你能帮我退回最后一个订单吗?

  1. 原因和计划:鉴于查询的意图,代理“打算”:“查找用户最近的订单并检查我们的退货政策”。
  2. 查找信息 (数据智能):代理查询订单数据库以检索相关顺序并引用策略文档。
  3. 原因:代理检查该顺序是否适合返回窗口。
    • 可选的人工介入: 代理核实其他规则:如果项目属于特定类别或超出正常退货时限,请转交给人工处理。
  4. :代理触发退货过程并生成发货标签。
  5. 原因:客服代表会生成对客户的响应。

AI 代理响应客户:“完成! 下面是发货标签...”

这些步骤在 人工 呼叫中心环境中是自然而然的。 在代理系统的上下文中,LLM在系统调用专用工具或数据源以补充细节时进行推理。

代理系统使用的工具和数据源。

复杂性级别:从 LLM 到代理系统

生成 AI 系统时,可能会遇到多个级别的复杂性。

  • LLM (LLM + 提示)

    • 独立运行的 LLM 根据从大量训练数据集中获得的知识来响应文本提示。
    • 适用于简单查询或泛型查询,但通常与实际业务数据断开连接。

    LLM 对用户做出响应

  • 硬编码代理系统(“Chain”)

    • 开发人员协调确定性的预定义步骤。 例如,RAG 应用程序始终可以从向量存储中检索,并将结果与用户提示组合在一起。
    • 逻辑是固定的,LLM 不决定下一步调用的工具。

    硬编码的工具链

  • 工具调用代理系统

    • LLM 决定在运行时使用哪个工具以及何时使用它。
    • 此方法支持有关要调用的工具(例如 CRM 数据库或 Slack 发布 API)的动态上下文感知决策。

    AI 代理合理化计划,并使用工具执行该计划。

  • 多代理系统

    • 多个专用代理,每个代理都有自己的函数或域。
    • 协调器(有时是 AI 主管,有时基于规则)决定在每个步骤中调用哪个代理。
    • 代理可以相互传递任务,同时保留整个聊天流。

    协调器管理多个 AI 代理。

在构建任何 LLM 驱动的应用程序时,从简单开始。 在真正需要代理行为时引入更复杂的代理行为,以提高灵活性或模型驱动的决策。 确定性链为定义完善的任务提供可预测的基于规则的流,而更多的代理方法则以额外的复杂性和潜在延迟为代价。

马赛克 AI 代理框架 与这些模式无关,因此,随着应用程序需求的增长,可以轻松开始简单并朝着更高级别的自动化和自主发展。

代理系统中的工具

在代理系统的上下文中,工具是 LLM 可以调用的单 交互函数 来完成定义完善的任务。 AI 模型通常为每个工具调用生成参数,该工具提供简单的输入输出交互。 工具端没有多回合记忆功能。

一些常见的工具类别包括:

  • 检索或分析数据的工具
    • 矢量检索工具: 查询矢量索引以查找最相关的文本区块。
    • 结构化检索工具: 查询 Delta 表或使用 API 检索结构化信息。
    • 网络搜索工具: 搜索互联网或内部网络语料库。
    • 经典 ML 模型: 调用 ML 模型以执行分类或回归预测的工具,例如 scikit-learn 或 XGBoost 模型。
    • Gen AI 模型: 执行专用生成的工具,例如代码或图像生成,并返回结果。
  • 修改外部系统状态的工具
    • API 调用工具: CRM 接口、内部服务或其他第三方集成用于“更新运输状态”等任务。
    • 代码执行工具: 在沙盒中运行用户提供的(或在某些情况下,LLM 生成的)代码。
    • Slack 或电子邮件集成: 发布消息或发送通知。
  • 运行逻辑或执行特定任务的工具
    • 代码执行程序工具: 在沙盒(如 Python 脚本)中运行用户提供的或 LLM 生成的代码。

若要了解有关马赛克 AI 代理工具的详细信息,请参阅 AI 代理工具

工具的主要特征

代理系统中的工具:

  • 执行单个明确的操作。
  • 不要保留超出该调用的持续上下文。
  • 允许代理系统访问 LLM 无法访问的外部数据或服务。

工具错误处理和安全

由于每个工具调用都是外部操作,例如调用 API,因此系统应正常处理故障,例如超时、处理格式不正确的响应或无效输入。 在生产中,限制允许的工具调用数,如果所有工具调用都失败,请进行回退响应,并应用防护措施以确保代理系统不会重复尝试相同的失败作。

查看详细信息