添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本文介绍如何部署和运行适用于 JavaScript 的企业 聊天应用示例。 此示例使用 Azure AI 搜索中的 JavaScript、Azure OpenAI 服务和 检索扩充生成(RAG) 实现聊天应用,以获取有关租赁属性的解答。 租赁属性聊天应用由 markdown 文件 (*.md) 中的数据种子设定,包括隐私策略、服务条款和支持。

  • 演示 JavaScript - fullstack 视频
  • 演示 JavaScript - Python 后端视频的前端
  • 按照本文中的说明操作,你将:

  • 将聊天应用部署到 Azure。
  • 获取有关租赁属性网站信息的解答。
  • 更改设置以更改答复的行为。
  • 完成本文后,可以使用自定义代码和数据开始修改新项目。

    本文是一系列文章的一部分,介绍如何使用 Azure OpenAI 服务和 Azure AI 搜索生成聊天应用。 该系列中的其他文章包括:

  • Python
  • 体系结构概述

    下图显示了聊天应用的简单体系结构:

    体系结构的关键组件包括:

  • 用于托管交互式聊天体验的 Web 应用程序。
  • 用于从自己的数据获取答案的 Azure AI 搜索资源。 在应用启动期间引入数据。
  • 要提供的 Azure OpenAI 服务:
    • 用于增强自有数据搜索性能的关键字。
    • 来自 OpenAI 模型的解答。
    • 来自 ada 模型的嵌入
    • 此体系结构中的大多数资源使用基本定价层或消耗定价层。 消耗定价基于使用量,这意味着你只需为使用的部分付费。 完成本文将收取一定费用,但费用极少。 完成本文后,可以删除资源以停止产生费用。

      详细了解 示例存储库 中的成本。

      开发容器 环境提供了完成本文所需的所有依赖项。 可以在 GitHub Codespaces(在浏览器中)或在本地使用 Visual Studio Code 运行开发容器。

      若要使用本文,需要满足以下先决条件:

      Codespaces(建议) Visual Studio Code
    • Azure 订阅 - 免费创建订阅
    • Azure 帐户权限 - Azure 帐户必须具有 Microsoft.Authorization/roleAssignments/write 权限,例如 用户访问管理员 所有者
    • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以通过在 https://aka.ms/oai/access 上填写表单来申请对 Azure OpenAI 的访问权限。 如果有任何问题,请在此存储库上提出问题以联系我们。
    • GitHub 帐户
    • Azure 订阅 - 免费创建订阅
    • Azure 帐户权限 - Azure 帐户必须具有 Microsoft.Authorization/roleAssignments/write 权限,例如 用户访问管理员 所有者
    • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以通过在 https://aka.ms/oai/access 上填写表单来申请对 Azure OpenAI 的访问权限。 如果有任何问题,请在此存储库上提出问题以联系我们。
    • Azure 开发人员 CLI
    • Docker Desktop - 启动 Docker Desktop (如果尚未运行)
    • Visual Studio Code
    • 开发容器扩展
    • 打开开发环境

      现在从安装了完成本文所需的所有依赖项的开发环境开始。

      GitHub Codespaces(建议) Visual Studio Code

      GitHub Codespaces 运行由 GitHub 托管的开发容器,将 Visual Studio Code 网页版 作为用户界面。 对于最简单的开发环境,请使用 GitHub Codespaces,以便预先安装完成本文所需的合适的开发人员工具和依赖项。

      所有 GitHub 帐户每月可以使用 Codespaces 最多 60 小时,其中包含 2 个核心实例。 有关详细信息,请参阅 GitHub Codespaces 每月包含的存储和核心小时数

    • 开始在 Azure-Samples/azure-search-openai-javascript GitHub 存储库的 main 分支上创建新的 GitHub Codespace。

    • 右键单击以下按钮,然后选择“在新窗口中打开链接”,以便同时提供开发环境和文档

      在 GitHub Codespaces 中打开此项目

    • 在“ 创建 codespace ”页上,查看 codespace 配置设置,然后选择“ 新建 codespace

    • 等待 Codespace 启动。 此启动过程会花费几分钟时间。

    • 在终端的屏幕底部,使用 Azure Developer CLI 登录到 Azure。

      azd auth login
      
    • 从终端复制代码,然后将其粘贴到浏览器中。 按照说明使用 Azure 帐户进行身份验证。

    • 本文中的剩余任务需要在此开发容器的上下文中完成。

      适用于 Visual Studio Code 的开发容器扩展要求在本地计算机上安装 Docker。 扩展使用 Docker 主机在本地托管开发容器,该主机已预安装完成本文所需的合适的开发人员工具和依赖项。

    • 在空目录的上下文中打开 Visual Studio Code

    • 确保在 Visual Studio Code 中安装了开发容器扩展

    • 在编辑器中打开新终端。

      可以使用主菜单导航到“终端”菜单选项,然后选择“新建终端”选项。

    • 当系统第一次提示你选择位置时,请选择你附近的位置。 此位置用于大多数资源,包括托管。

    • 如果系统提示你输入 OpenAI 模型的位置,请选择你附近的位置。 如果可以使用与第一个位置相同的位置,请选择该位置。

    • 等待应用部署完成。 部署可能需要 5-10 分钟才能完成。

    • 成功部署应用程序后,终端中会显示一个 URL。

    • 选择标记为 Deploying service web 的 URL 在浏览器中打开聊天应用程序。

      使用聊天应用从 Markdown 文件获取答案

      聊天应用预加载 Markdown 文件目录中租赁信息。 可以使用聊天应用询问有关租赁过程的问题。 以下步骤将引导你完成使用聊天应用的过程。

    • 在浏览器中,在页面底部的文本框中选择或输入 什么是退款策略

    • 从答案中,选择“ 显示思维过程”。

    • 在右窗格中,使用选项卡了解如何生成答案。

      使用查询上下文摘要而不是整个文档 当同时检查 Use semantic rankerUse query-contextual summaries 时,LLM 使用从排名最高的文档中的关键段落(而不是所有段落)中提取的标题。 建议后续问题 让聊天应用根据答案建议后续问题。 矢量 + 文本意味着搜索结果基于文档的文本和文档嵌入。 矢量意味着搜索结果基于文档嵌入。 文本意味着搜索结果基于文档的文本。 流式聊天完成响应 流式处理响应,而不是等待,直到完整的答案可用于响应。

      以下步骤将引导你完成更改设置的过程。

    • 在浏览器中,选择“开发人员设置”选项卡。

    • 检查“使用查询上下文摘要”,而不是检查框,然后再次询问相同的问题。

      What happens if the rental doesn't fit the description?
      

      聊天以更简洁的答案返回,如下所示。

      清理 Azure 资源

      本文中创建的 Azure 资源的费用将计入你的 Azure 订阅。 如果你预计将来不需要这些资源,请将其删除,以避免产生更多费用。

      运行以下 Azure Developer CLI 命令以删除 Azure 资源并删除源代码:

      azd down --purge
      

      清理 GitHub Codespaces

      GitHub Codespaces Visual Studio Code
    • 使用 Azure OpenAI 最佳做法解决方案体系结构构建聊天应用
    • 使用 Azure AI 搜索在生成式 AI 应用中进行访问控制
    • 使用 Azure API 管理构建可供企业使用的 OpenAI 解决方案
    • 使用混合检索和排名功能超越矢量搜索
  •