你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
仅适用于:Foundry (经典版)门户。 本文不适用于新的 Foundry 门户。
详细了解新门户。
注意
本文中的链接可能会打开新 Microsoft Foundry 文档中的内容,而不是你现在正在查看的 Foundry (经典)文档。
在本文中,您将部署一个企业聊天 Web 应用,该应用在 Microsoft Foundry 门户中使用您的数据与大型语言模型结合。
数据源使用特定数据为模型提供依据。 模型基础意味着通过使用你的数据来理解你的问题上下文。 不会更改已部署的模型本身。 数据在原始数据源中保持独立存储且确保安全。
本教程中的步骤包括:
- 配置资源。
- 添加您的数据。
- 使用数据测试模型。
- 部署 Web 应用。
先决条件
重要
本文为集线器为基础的项目提供旧版支持。 它不适用于 Foundry 项目。 请参阅 如何知道我拥有哪种类型的项目?
SDK 兼容性说明:代码示例需要特定Microsoft Foundry SDK 版本。 如果遇到兼容性问题,请考虑 从基于中心迁移到 Foundry 项目。
- 具有活动订阅的Azure帐户。 如果没有订阅,请创建一个 free Azure 帐户,其中包括免费试用订阅。
- 如果没有项目, 请创建一个基于中心的项目。
部署的Azure OpenAI聊天模型。 请完成 Foundry 沙盒快速入门 以创建此资源(如果您还没有的话)。
产品数据的本地副本。 GitHub上的Azure-Samples/rag-data-openai-python-promptflow 存储库包含用于本教程场景的零售产品示例信息。 该文件
product_info_11.md包含有关本教程示例的 TrailWalker 徒步旅行鞋的产品信息。 将 ZIP 文件中的示例 Contoso Trek 零售产品数据加载到本地计算机。Microsoft.Web 资源提供程序已在所选订阅中注册,以便可以部署到 Web 应用程序。 有关注册资源提供程序的详细信息,请参阅 “注册资源提供程序”。
在Azure订阅中添加角色分配所需的权限。 只有特定Azure资源的所有者才能通过角色分配授予权限。
Foundry 门户和 Azure 门户
在本教程中,你将在 Foundry 门户中执行一些任务,并在Azure门户中执行一些任务。
Foundry 门户是基于 Web 的环境,用于生成、训练和部署 AI 模型。 作为开发人员,可以在其中生成和部署聊天 Web 应用程序。
Azure门户允许管理员管理和监视Azure资源。 作为管理员,可以使用门户为从 Web 应用访问所需的不同Azure服务设置设置。
配置资源
重要
若要在 Azure 订阅中添加角色分配,您必须具备必要的权限。 仅特定Azure资源的所有者才允许通过角色分配授予权限。 可能需要让Azure订阅所有者(可能是 IT 管理员)为你完成本部分。
若要使资源在 Web 应用中正常工作,在 Azure 门户中设置正确的权限。
首先,确定需要在 Foundry 门户中设置的资源。
打开 Foundry 门户,然后选择用于部署 Azure OpenAI 聊天模型的基于中心的项目。
从左窗格中选择 管理中心 。
选择项目中的连接资源 。
确定需要配置的三个资源:Azure OpenAI、Azure AI 搜索,以及对应于 workspaceblobstore 的 Azure Blob 存储。
提示
如果未在表中看到 “类型” ,请选择右上角的 “列 ”,然后添加或重新排序 所选列。 如果有多个 Azure OpenAI 资源,请使用包含已部署聊天模型的资源。
在 Azure 门户中搜索其中每个名称。 在新的浏览器选项卡中打开每一个,以便可以在它们之间切换。
完成后,将打开三个新的浏览器选项卡: 搜索服务、 Foundry 和 blobstore 容器。 为了设置资源,请保持所有三个选项卡都打开,以便在它们之间切换。
启用托管身份
在 Azure 门户中 Search 服务资源的浏览器选项卡中,启用托管标识:
- 在左窗格中的 “设置”下,选择“ 标识”。
- 将 状态 切换到 “打开”。
- 选择“ 保存”。
在 Azure 门户中 Foundry 资源的浏览器选项卡中,启用托管标识:
- 在左窗格中的 “资源管理”下,选择“ 标识”。
- 将 状态 切换到 “打开”。
- 选择“ 保存”。
设置搜索的访问控制
在 Azure 门户中 Search 服务资源的浏览器选项卡中,设置 API 访问策略:
- 在左窗格中的 “设置”下,选择 “密钥”。
- 在 API 访问控制下,选择 “两者”。
- 出现提示时,选择“ 是 ”以确认。
分配角色
对以下步骤中的每个资源重复此模式。
为任何资源分配基于角色的访问控制(RBAC)的一般模式是:
- 导航到给定资源的Azure门户。
- 在 Azure 门户左侧页面,选择 访问控制(IAM)。
- 选择“ + 添加>添加角色分配”。
- 搜索需要分配的角色并选择它。 然后选择“ 下一步”。
- 向自己分配角色时:
- 选择 “用户”、“组”或服务主体。
- 选择 “选择成员”。
- 搜索您的名称并选择它。
- 将某个角色分配给另一资源时:
- 选择 “托管标识”。
- 选择 “选择成员”。
- 使用下拉列表查找要分配的资源类型。 例如 Foundry 工具或搜索服务。
- 从显示的列表中选择资源。 可能只有一个,但仍需要选择它。
- 继续执行向导,然后选择“查看 + 分配” 以添加角色分配。
使用以下步骤为本教程中设置的资源分配角色:
在浏览器选项卡中为 Azure 门户中的 Search 服务分配这些角色:
- 连接到Foundry托管标识的搜索索引数据读取器
- 搜索服务参与者 到 Foundry 托管标识
- 分配自己为贡献者(若要查找贡献者,请切换到顶部的特权管理角色选项卡。所有其他角色都在职务功能角色选项卡中。
在Azure门户中Foundry的浏览器选项卡中分配这些角色:
- 认知服务 OpenAI 参与者到搜索服务托管身份
- 自己的贡献者。
在 Azure 门户的Azure Blob 存储浏览器选项卡中分配这些角色:
- 存储 Blob 数据贡献者 至 Foundry 托管标识
- 将 Blob 数据读取器 存储到 搜索服务 托管标识
- 对自己贡献者
你已经完成资源的设置。 如果需要,现在可以关闭Azure门户浏览器选项卡。
添加数据并再次尝试聊天模型
在 Foundry 操场快速入门(这是本教程的先决条件)中,您将看到模型在没有您的数据时的表现。 将数据添加到模型,以便它可以回答有关你的产品的问题。
若要完成本部分,需要一个产品数据的本地副本。 在 GitHub 上的 Azure-Samples/rag-data-openai-python-promptflow 存储库中,包含与本教程场景相关的示例零售产品信息。 具体而言, product_info_11.md 该文件包含有关与本教程示例相关的 TrailWalker 徒步旅行鞋的产品信息。
将 ZIP 文件中的示例 Contoso Trek 零售产品数据加载到本地计算机。
按照以下步骤在聊天操场中添加数据,以帮助助手回答有关产品的问题。 你不会更改已部署的模型本身。 数据单独安全地存储在Azure订阅中。
请转到 Microsoft Foundry 中的项目。
从左窗格中选择 “操场 ”。
选择 “试用聊天操场”。
从 “部署 ”下拉列表中选择已部署的聊天模型。
在聊天操场左侧,选择“ 添加数据>+ 添加新数据源”。
在 “数据源 ”下拉列表中,选择“ 上传文件”。
选择“ 上传>上传文件 ”以浏览本地文件。
选择要上传的文件。 选择之前下载或创建的产品信息文件。 现在添加所有文件。 稍后将无法在同一操场会话中添加更多文件。
选择 Upload,将文件上传到Azure Blob 存储帐户。 然后选择“ 下一步”。
选择Azure AI 搜索服务。
对于 矢量索引名称,请输入 产品信息 ,然后选择“ 下一步”。
在“矢量设置”下的“搜索设置”页上,取消选中“将此搜索资源添加矢量搜索”复选框。 此设置有助于确定模型如何响应请求。 然后选择“ 下一步”。
注意
如果您添加矢量搜索,可以在此处以额外费用获得更多选项。
查看设置并选择“ 创建矢量索引”。
在操场中,可以看到数据引入正在进行中。 此过程可能需要几分钟时间。 在继续操作之前,请等到数据源和索引名称出现在状态的位置。
现在,你可以与模型聊天,询问与之前相同的问题(“TrailWalker 徒步旅行鞋有多少”),这一次,它使用数据中的信息来构造响应。 可以展开 引用 按钮以查看已使用的数据。
部署 Web 应用
如果对 Foundry 门户中的体验感到满意,请将模型部署为独立的 Web 应用程序。
在 Azure 门户中查找资源组
在本教程中,将 Web 应用部署到 与 Foundry 中心相同的资源组。 你将在 Azure 门户中为 Web 应用设置身份验证。
请按照下列步骤在 Azure 门户中进入资源组:
转到 Foundry 中的项目。 从左窗格中选择 管理中心 。
在 Project 标题下,选择 Overview。
选择资源组名称以在Azure门户中打开资源组。 在此示例中,资源组命名
rg-sdg-ai为 。现在,你正在Azure门户中查看部署中心的资源组的内容。 记下资源组名称和位置。 你将在下一部分使用此信息。
使此页面在浏览器选项卡中保持打开状态。稍后将返回到它。
部署 Web 应用
在您的订阅中发布将创建一个 Azure 应用服务。 根据所选 的定价计划 ,可能会产生费用。 完成应用后,请从Azure门户将其删除。
部署 Web 应用:
重要
在将应用部署到 Web 应用之前,注册 Microsoft.Web 作为资源提供程序。
完成上一部分中的步骤,将数据 添加到 测试环境。 可以采用或不采用自己的数据来部署 Web 应用,但必须要有一个已部署的模型,如 Foundry 操场快速入门中所述。
选择“ 部署 > ...”作为 Web 应用。
在 “部署到 Web 应用 ”页上,输入以下详细信息:
- 名称:Web 应用的唯一名称。
- Subscription:你的Azure订阅。 如果没有看到任何可用的订阅,请先注册Microsoft。Web作为资源提供程序。
- 资源组:选择要在其中部署 Web 应用的资源组。 使用与中心相同的资源组。
- 位置:选择要在其中部署 Web 应用的位置。 使用与中心相同的位置。
- 定价计划:选择 Web 应用的定价计划。
- 在 Web 应用中启用聊天历史记录:对于本教程,未选择聊天历史记录框。 如果启用该功能,则用户有权访问其单个以前的查询和响应。 有关详细信息,请参阅 聊天历史记录备注。
选择“ 部署”。
等待应用部署。 此过程可能需要几分钟时间。
准备就绪后,工具栏上将启用 “启动 ”按钮。 暂时不要启动应用程序,并且不要关闭聊天操场页面,稍后还要返回。
配置 Web 应用身份验证
默认情况下,只能访问 Web 应用。 在本教程中,添加身份验证以限制对Azure租户成员的访问。 用户使用其Microsoft Entra帐户登录以访问你的应用。 如果需要,可以按照相似的步骤添加另一个身份提供者。 应用仅使用用户的登录信息来验证他们是租户的成员。
使用 Azure 门户返回到浏览器选项卡,或在新的浏览器选项卡中打开 Azure 门户。查看部署 Web 应用的资源组的内容。 可能需要刷新视图才能查看 Web 应用。
从资源组中的资源列表中选择 应用服务 资源。
在 “设置”下的“可折叠”左侧菜单中,选择“ 身份验证”。
如果看到Microsoft在此页上列出了标识提供者,则无需进一步操作。 可以跳过下一步。
使用以下设置添加身份提供者:
- 身份提供程序:选择 Microsoft 作为身份提供程序。 此页上的默认设置仅将应用限制为租户,因此无需在此处更改任何其他设置。
- 租户类型:员工
- 应用注册:创建新的应用注册
- 名称: Web 应用服务的名称
- 支持的帐户类型:当前租户 - 单租户
- 限制访问:需要身份验证
- 未经身份验证的请求:HTTP 302 已找到重定向 - 推荐用于网站
使用 Web 应用
你几乎在那里 现在可以测试 Web 应用。
如果更改了设置,请等待大约 10 分钟才能使身份验证设置生效。
返回到 Foundry 门户中打开聊天操场页的浏览器选项卡。
选择 “启动 ”以打开已部署的 Web 应用。 如果出现提示,请接受权限请求。
如果在沙盒中没有看到 “启动”,请从左侧窗格中选择 “Web 应用”,然后从列表中选择你的应用以将其打开。
如果身份验证设置尚未处于活动状态,请关闭 Web 应用的浏览器选项卡,并在 Foundry 门户中返回到聊天操场。 稍等片刻,然后重试。
在 Web 应用中,询问与之前相同的问题(“TrailWalker 徒步鞋多少钱”)。 这一次,应用使用数据中的信息来构造响应。 展开 引用 按钮以查看使用的数据。
了解聊天历史记录
使用聊天历史记录功能,用户可以查看其以前的查询和响应。
部署 Web 应用时启用聊天历史记录。 选中 “Web 应用”复选框中的“启用聊天历史记录 ”。
重要
启用聊天历史记录会在资源组中创建 Cosmos DB 实例 ,并为使用的存储产生 额外的费用 。 删除 Web 应用不会自动删除 Cosmos DB 实例。 若要删除 Cosmos DB 实例和所有存储的聊天,请转到Azure门户中的关联资源并将其删除。
启用聊天历史记录后,用户可以在应用的右上角显示或隐藏它。 显示历史记录时,可以重命名或删除对话。 当他们登录到应用时,对话按从最新到最早的排序,并根据对话中的第一个查询进行命名。
如果删除 Cosmos DB 资源但保留工作室中启用的聊天历史记录选项,则用户会看到连接错误,但可以继续使用没有聊天历史记录的 Web 应用。
更新 Web 应用
使用操场添加更多数据或使用不同的方案测试模型。 准备好使用新模型更新 Web 应用时,请选择“ 部署 > ...”再次作为 Web 应用 。 选择 “更新现有 Web 应用”,然后从列表中选择现有的 Web 应用。 新模型部署到现有的 Web 应用。
清理资源
若要避免不必要的Azure成本,请删除本快速入门中创建的资源(如果不需要这些资源)。 在 Azure 门户中管理资源。