Azure Search OpenAI JavaScript示例:打造智能企业数据问答系统
在人工智能快速发展的今天,如何让企业数据与先进的大语言模型结合,创造出智能、高效的问答体验,成为许多开发者关注的焦点。Azure Search OpenAI JavaScript示例项目为我们提供了一个绝佳的解决方案,展示了如何利用Azure OpenAI和Azure AI Search的强大功能,构建类似ChatGPT的企业数据问答系统。
项目概述
该项目是一个基于TypeScript的示例应用,展示了如何使用检索增强生成(RAG)模式来创建类似ChatGPT的体验。它利用Azure OpenAI Service访问ChatGPT模型(gpt-35-turbo),并使用Azure AI Search进行数据索引和检索。
项目包含示例数据,可以直接尝试端到端的体验。在这个示例应用中,我们使用了一个虚构的公司Contoso Real Estate,该应用允许其客户询问有关产品使用的支持问题。示例数据包括描述其服务条款、隐私政策和支持指南的一系列文档。
主要特性
- 聊天和问答界面
- 提供多种选项帮助用户评估回答的可信度,如引用、源内容跟踪等
- 展示了数据准备、提示构建以及模型(ChatGPT)与检索器(Azure AI Search)之间交互协调的可能方法
- 用户界面中直接提供设置选项,可以调整行为并尝试不同选项
- 可选的性能跟踪和Application Insights监控
系统架构
该应用由多个组件组成:
- 搜索服务: 提供搜索和检索功能的后端服务。
- 索引服务: 对数据进行索引并创建搜索索引的服务。
- Web应用: 提供用户界面并协调用户与后端服务之间交互的前端Web应用程序。
部署指南
前提条件
要部署和运行此示例,你需要:
- Azure账户: 如果你是Azure新用户,可以免费获取Azure账户。
- 启用了Azure OpenAI服务访问权限的Azure订阅: 你可以通过此表单申请访问权限。
- Azure账户权限: 你的Azure账户必须具有特定的权限,如
Microsoft.Authorization/roleAssignments/write
。
部署步骤
- 安装Azure Developer CLI。
- 克隆项目代码。
- 运行
azd auth login
进行身份验证。 - 运行
azd up
进行部署。这将配置Azure资源并部署示例到这些资源,包括基于./data
文件夹中的文件构建搜索索引。
部署完成后,你将看到一个URL打印到控制台。点击该URL即可在浏览器中与应用程序交互。
使用指南
- 在Azure中:导航到由azd部署的Azure Static Web App。URL在azd完成时打印出来(作为"Endpoint"),或者你可以在Azure门户中找到它。
- 本地运行:导航到http://127.0.0.1:5173。
在Web应用中:
- 尝试在聊天或问答上下文中讨论不同主题。对于聊天,尝试跟进问题、澄清、要求简化或详细解释答案等。
- 探索引用和来源。
- 点击"设置"尝试不同选项,调整提示等。
最佳实践与注意事项
-
OpenAI容量: 默认TPM(每分钟令牌数)设置为30K。你可以通过更改
infra/main.bicep
中的参数来增加容量。 -
Azure存储: 建议在生产部署中使用
Standard_ZRS
SKU以提高弹性。 -
Azure AI Search: 默认搜索服务使用
Standard
SKU和免费语义搜索选项。根据你的应用需求,可能需要调整设置。 -
Azure Container Apps: 默认设置使用1个vCPU核心和2 GB RAM,启用了自动缩放。你可以根据负载定义自己的自动缩放规则。
-
身份验证: 默认情况下,部署的应用是公开可访问的。建议限制对经过身份验证的用户的访问。
-
网络: 建议在虚拟网络内部署。如果应用仅供内部企业使用,请使用私有DNS区域。
结语
Azure Search OpenAI JavaScript示例项目为开发者提供了一个强大的起点,展示了如何结合Azure OpenAI和Azure AI Search的优势,创建智能、高效的企业数据问答系统。通过遵循本文提供的部署指南和最佳实践,开发者可以快速构建和定制自己的智能搜索应用,为企业用户提供类似ChatGPT的交互体验,同时确保数据的安全性和隐私性。
随着人工智能技术的不断进步,我们相信这样的解决方案将在企业知识管理、客户支持等领域发挥越来越重要的作用。我们鼓励开发者深入探索此项目,并基于自身需求进行创新和扩展,共同推动智能搜索技术的发展与应用。