使用自己的 JavaScript 数据示例开始聊天
本文介绍如何使用 JavaScript的数据示例部署和运行
- 演示 JavaScript - 完整堆栈视频
- 演示 JavaScript - 前端与 Python 后端视频
按照本文中的说明进行操作,你将会:
- 将聊天应用部署到 Azure。
- 获取有关租赁属性网站信息的答案。
- 更改设置以更改响应的行为。
完成本文后,可以使用自定义代码和数据开始修改新项目。
本文是一系列文章的一部分,介绍如何使用 Azure OpenAI 服务和 Azure AI 搜索生成聊天应用。 该系列中的其他文章包括:
注意
本文使用一个或多个 AI 应用模板 作为本文中的示例和指南的基础。 AI 应用模板为你提供了维护良好、易于部署的参考实现,有助于确保 AI 应用的高质量起点。
体系结构概述
下图显示了聊天应用的简单体系结构:
显示从客户端到后端应用的体系结构的
聊天示例应用程序是为一家名为 Contoso Real Estate的虚构公司构建的,智能聊天功能让其客户能够询问有关产品使用的支持问题。 示例数据包括一组描述其服务条款、隐私策略和支持指南的文档。 在部署期间,文档将引入到体系结构中。
应用程序由多个组件组成,包括:
- 搜索服务:提供搜索和检索功能的后端服务。
- 索引器服务:为数据编制索引并创建搜索索引的服务。
- Web 应用:提供用户界面的前端 Web 应用程序,并协调用户与后端服务之间的交互。
成本
此体系结构中的大多数资源使用基本定价层或消耗定价层。 消耗定价基于使用情况,这意味着你只需为使用的内容付费。 若要完成本文,资源会产生费用,但费用最低。 阅读完文章后,你可以删除资源以免产生费用。
详细了解示例存储库中的
先决条件
开发容器 环境中包含完成本文所需的所有依赖项。 可以在 GitHub Codespaces(在浏览器中)或使用 Visual Studio Code 在本地运行开发容器。
若要使用本文,需要满足以下先决条件:
开放开发环境
按照以下说明部署预配置开发环境,其中包含完成本文所需的所有依赖项。
GitHub Codespaces 运行由 GitHub 托管的开发容器,Visual Studio Code for web 作为用户界面。 对于最直接的开发环境,请使用 GitHub Codespaces,以便预先安装正确的开发人员工具和依赖项来完成本文。
重要
所有 GitHub 帐户每月最多可使用 Codespaces 60 小时,其中包含两个核心实例。 有关详细信息,请参阅 GitHub Codespaces 每月包含的存储和核心小时数。
开始在
main
GitHub 存储库的Azure-Samples/azure-search-openai-javascript
分支上创建新的 GitHub Codespace 的过程。右键单击以下按钮,并选择 "在新窗口中打开链接",以便您可以同时访问开发环境和文档。
在 创建 codespace 页上,查看 codespace 配置设置,然后选择 创建新的 codespace
在创建新代码空间之前,
等待 Codespace 启动。 此启动过程可能需要几分钟时间。
在屏幕底部的终端中,使用 Azure 开发人员 CLI 登录到 Azure。
azd auth login --use-device-code
从终端复制代码,然后将其粘贴到浏览器中。 按照说明使用 Azure 帐户进行身份验证。
本文中的剩余任务发生在此开发容器的上下文中。
部署和运行
示例存储库包含将聊天应用部署到 Azure 所需的所有代码和配置文件。 以下步骤将指导完成将示例部署到 Azure 的过程。
将聊天应用部署到 Azure
重要
在本部分中创建的 Azure 资源会产生直接成本,主要来自 Azure AI 搜索资源。 即使你在完全执行命令之前中断命令,这些资源也会产生成本。
运行以下 Azure 开发人员 CLI 命令来预配 Azure 资源并部署源代码:
azd up
如果系统提示输入环境名称,请将其保留为短写和小写。 例如,
myenv
。 它用作资源组名称的一部分。出现提示时,选择要在其中创建资源的订阅。
当系统提示你第一次选择位置时,请选择你附近的位置。 此位置用于大多数资源,包括托管。
如果系统提示你输入 OpenAI 模型的位置,请选择你附近的位置。 如果与第一个位置相同的位置可用,请选择该位置。
等待应用部署。 部署可能需要 5-10 分钟才能完成。
应用程序成功部署后,终端中会显示一个 URL。
选择标记为
Deploying service web
的 URL,在浏览器中打开聊天应用程序。
使用聊天应用从 Markdown 文件获取答案
聊天应用预加载 Markdown 文件目录中的租赁信息。 可以使用聊天应用询问有关租赁过程的问题。 以下步骤将引导你完成使用聊天应用的过程。
在浏览器中,在页面底部的文本框内选择或输入 退款政策是什么。
从答案中选择“显示思维过程”。
在右窗格中,使用选项卡了解如何生成答案。
选项卡 描述 思考过程 这是聊天对话的脚本。 可以查看系统提示( content
)和用户问题(content
)。支持内容 这包括用于回答您问题的信息以及源材料。 开发人员设置中记录了源材料的引用数量。 默认值是 3。 引文 这会显示包含引文的原始页面。 完成后,选择隐藏按钮,该按钮在选项卡上方用 X 表示。
使用聊天应用设置更改响应行为
聊天应用的智能由 OpenAI 模型和用于与模型交互的设置确定。
设置 | 描述 |
---|---|
替代提示模板 | 这是用于生成答案的提示。 |
检索这么多搜索结果 | 这是用于生成答案的搜索结果数。 可以在引文的“思考过程”和“支持内容”选项卡中看到这些返回的来源。 |
排除类别 | 这是从搜索结果中排除的文档类别。 |
使用语义排名器进行检索 | 这是 Azure AI 搜索 的一项功能,它使用机器学习来提高搜索结果的相关性。 |
使用查询上下文摘要而不是整个文档 | 当同时检查 Use semantic ranker 和 Use query-contextual summaries 时,LLM 使用从排名最高的文档中的关键段落(而不是所有段落)中提取的标题。 |
建议后续问题 | 让聊天应用根据答案建议后续问题。 |
检索模式 | 向量 + 文本 意味着搜索结果基于文档的文本和文档的嵌入。 矢量意味着搜索结果基于文档嵌入。 文本 意味着搜索结果基于文档的文本。 |
流式处理聊天完成响应 | 实时传输响应,而不是等到有了完整的答案再进行响应。 |
以下步骤将引导你完成更改设置的过程。
在浏览器中,选择 开发人员设置 选项卡。
选中“使用查询上下文摘要,而不是”复选框,然后再次询问相同的问题。
What happens if the rental doesn't fit the description?
聊天返回了一种更简洁的答案,如下所示。
清理资源
清理 Azure 资源
本文中创建的 Azure 资源将计费给 Azure 订阅。 如果不希望将来需要这些资源,请将其删除,以避免产生更多费用。
运行以下 Azure 开发人员 CLI 命令以删除 Azure 资源并删除源代码:
azd down --purge
清理 GitHub Codespaces
删除 GitHub Codespaces 环境可确保可以最大程度地提高帐户获得的每核心免费小时数权利。
重要
有关 GitHub 帐户权利的详细信息,请参阅 GitHub Codespaces 每月包含的存储和核心小时数。
找到当前正在运行的、源自
Azure-Samples/azure-search-openai-javascript
GitHub 存储库的 Codespaces。打开代码空间的上下文菜单,然后选择 删除。
获取帮助
此示例存储库提供故障排除信息。
如果未解决问题,请将问题记录到存储库的问题部分。
后续步骤
- 获取本文中使用的示例的源代码
- 使用 Azure OpenAI 构建聊天应用 最佳做法解决方案体系结构
- 使用 Azure AI 搜索在生成式 AI 应用中进行访问控制
- 使用 Azure API 管理 生成企业就绪的 OpenAI 解决方案
- 使用混合检索和排名功能超越矢量搜索