借助 LangChain on Vertex AI(预览版),您可以利用 LangChain 开源库构建自定义的生成式 AI 应用,并将 Vertex AI 用于模型、工具和部署。借助 LangChain on Vertex AI(预览版),您可以执行以下操作:
- 选择您要使用的大语言模型 (LLM)。
- 定义用于访问外部 API 的工具。
- 在编排框架中构建用户和系统组件之间的接口。
- 将框架部署到托管式运行时。
系统组件
使用 OSS LangChain 和 Vertex AI 构建和部署自定义生成式 AI 应用包含四个组件:
组件 | 说明 |
---|---|
LLM |
当您向自定义应用提交查询时,LLM 会处理该查询并提供响应。 您可以选择定义一组与外部 API 通信的工具并将其提供给模型。处理查询时,模型会将某些任务委托给这些工具。这意味着对基础模型或经过微调的模型进行一次或多次模型调用。 如需了解详情,请参阅模型版本和生命周期。 |
工具 |
您可以选择定义一组与外部 API(例如数据库)通信的工具,并将其提供给模型。处理查询时,模型可以将某些任务委托给这些工具。 通过 Vertex AI 的托管式运行时进行的部署已经过优化(可根据 Gemini 函数调用使用工具),但支持 LangChain 工具/函数调用。如需详细了解 Gemini 函数调用,请参阅函数调用。 |
编排框架 |
借助 LangChain on Vertex AI,您可以在 Vertex AI 中利用 LangChain 编排框架。使用 LangChain 来决定您的应用的确定性。 如果您已经在使用 LangChain,则可以使用现有的 LangChain 代码在 Vertex AI 上部署应用。否则,您可以创建自己的应用代码,并在利用 Vertex AI 的 LangChain 模板的编排框架中构建代码。 如需了解详情,请参阅开发应用。 |
托管式运行时 | 通过 LangChain on Vertex AI,您可以将应用部署到 Reasoning Engine 管理的运行时。此运行时是一项 Vertex AI 服务,具有 Vertex AI 集成的所有优势:安全性、隐私性、可观测性和可伸缩性。只需进行简单的 API 调用,即可对应用进行生产化和扩容,快速将经过本地测试的原型转换为企业级部署。如需了解详情,请参阅部署应用。 |
您可以通过多种不同方式开发自定义生成式 AI 应用的原型并进行构建,这些应用通过基于 Gemini 等模型对工具和自定义函数进行分层,从而利用代理功能。当应用迁移到生产环境时,您需要考虑如何部署和管理代理及其底层组件。
LangChain on Vertex AI 组件的目的是帮助您专注于并自定义您最关注的代理功能的各个方面,例如自定义函数、代理行为和模型参数,而 Google 负责部署、扩缩打包、版本等。如果您在堆栈中的较低级别工作,则可能需要管理超出您的预期的内容。如果您在堆栈中的较高级别工作,则可能无法获得足够的开发者控制权。
运行时的系统流
当用户进行查询时,定义的代理会将查询的格式设置为 LLM 提示。LLM 会处理提示,并确定其是否要使用任何工具。
如果 LLM 选择使用某个工具,它会生成一个 FunctionCall
,其中包含调用该工具应使用的名称和参数。代理使用 FunctionCall
调用工具,并将工具的结果返回给 LLM。如果 LLM 选择不使用任何工具,它将生成由代理中继回用户的内容。
下图演示了运行时的系统流:
创建和部署生成式 AI 应用
构建生成式 AI 应用的工作流如下:
步骤 | 说明 |
---|---|
1. 设置环境 | 设置 Google 项目并安装最新版本的 Python 版 Vertex AI SDK。 |
2. 开发应用 | 开发可在 Reasoning Engine 上部署的 LangChain 应用。 |
3. 部署应用 | 在 Reasoning Engine 上部署应用。 |
4.使用应用 | 查询 Reasoning Engine 以获取响应。 |
5. 管理已部署的应用 | 管理和删除已部署到 Reasoning Engine 的应用。 |
6. (可选)自定义应用模板 | 为新应用自定义模板。 |
这些步骤如下图所示:
优势
- 可自定义:利用 LangChain 的标准化接口,可以采用 LangChain on Vertex AI 构建各种应用。您可以自定义应用的逻辑并纳入任何框架,从而提供高度的灵活性。
- 简化部署:Vertex AI 上的 LangChain 使用与 LangChain 相同的 API 来与 LLM 进行交互并构建应用。Reasoning Engine 运行时支持一键部署,可根据您的库生成合规的 API,因此 Vertex AI 上的 LangChain 可简化并加快使用 Vertex AI LLM 的部署。
- 与 Vertex AI 生态系统集成:Vertex AI 上的 LangChain 的 Reasoning Engine 使用 Vertex AI 的基础设施和预构建容器来帮助您部署 LLM 应用。您可以使用 Vertex AI API 与 Gemini 模型、函数调用和扩展程序集成。
- 安全、隐私且可扩缩:您可以使用单个 SDK 调用,而无需自行管理开发流程。利用 Reasoning Engine 托管运行时,您无需执行应用服务器开发、容器创建以及身份验证、IAM 和扩缩配置等任务。Vertex AI 会处理自动扩缩、区域扩展和容器漏洞。
使用场景
您可以使用 LangChain on Vertex AI 执行以下任务:
- 从自然语言故事中提取实体:从故事中提取角色、关系、事物和地点的列表。
Python 版 Vertex AI SDK 笔记本 - 使用函数调用提取结构化数据 - 使用自然语言查询和理解 SQL 数据库:让模型将像
What percentage of orders are returned?
这样的问题转换为 SQL 查询,并创建函数以将这些查询提交到 BigQuery。
博文 - 使用 Gemini 中的函数调用构建 AI 赋能的 BigQuery 数据探索应用 - 帮助客户与商家互动:创建与商家 API 相连的函数,使模型能够为像
Do you have the Pixel 8 Pro in stock?
或Is there a store in Mountain View, CA that I can visit to try it out?
这样的查询提供准确的答案
Python 版 Vertex AI SDK 笔记本 - 使用 Vertex AI Gemini API 和 Python SDK 进行函数调用 - 通过连接到公共 API 构建生成式 AI 应用,例如:
- 货币换算:创建一个连接到货币兑换应用的函数,使模型能够为像
What's the exchange rate for euros to dollars today?
这样的查询提供准确的答案
Codelab - 如何在 Gemini 中使用函数调用与 API 进行交互 - 获取给定位置的天气:创建一个连接到气象服务的 API 的函数,使模型能够为像
What's the weather like in Paris?
这样的查询提供准确的答案
Python 版 Vertex AI SDK 笔记本 - 使用 Vertex AI Gemini API 和 Python SDK 进行函数调用
博文 - 函数调用:用于将 Gemini 连接到外部系统、数据和 API 的原生框架 - 将地址转换为纬度和经度坐标:创建一个将结构化位置数据转换为纬度和经度坐标的函数。要求模型在像
I want to get the lat/lon coordinates for the following address: 1600 Amphitheatre Pkwy, Mountain View, CA 94043, US.
这样的查询中识别街道地址、城市、州和邮政编码
Python 版 Vertex AI SDK 笔记本 - 使用 Vertex AI Gemini API 和 Python SDK 进行函数调用
- 货币换算:创建一个连接到货币兑换应用的函数,使模型能够为像
- 解读语音指令:创建与车载任务相对应的函数。例如,您可以创建用于开启电台或启动空调的函数。将用户语音指令的音频文件发送到模型,要求模型将音频转换为文字,并识别用户想要调用的功能。
- 根据环境触发器自动执行工作流:创建用于表示可自动化的流程的函数。向模型提供来自环境传感器的数据,并要求模型解析和处理数据,以确定是否应激活一个或多个工作流。例如,一个模型可以处理仓库中的温度数据,并选择启用洒水器功能。
- 自动分配支持服务工单:为模型提供支持服务工单、日志和内容感知规则。让模型处理所有这些信息,以确定应将工单分配给谁。调用一个函数,将工单分配给模型建议的人员。
- 从知识库中检索信息:创建用于检索并汇总给定主题方面的学术文章的函数。使模型能够回答有关学术主题的问题,并为其答案提供引用。