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