azure-search-openai-demo - 演示如何利用 Azure OpenAI 和认知搜索来实现对组织内容的信息搜索和发现

Created at: 2023-02-09 05:00:54
Language: Python
License: MIT

ChatGPT + 企业数据与 Azure OpenAI 和认知搜索

此示例演示了使用检索增强生成模式对自己的数据创建类似 ChatGPT 的体验的几种方法。它使用 Azure OpenAI Service 访问 ChatGPT 模型 (gpt-35-turbo),并使用 Azure 认知搜索进行数据索引和检索。

存储库包含示例数据,因此可以进行端到端尝试。在此示例应用程序中,我们使用名为 Contoso Electronics 的虚构公司,该体验允许其员工询问有关福利、内部策略以及职位描述和角色的问题。

RAG 架构

特征

  • 聊天和问答界面
  • 探索各种选项,以帮助用户通过引用、跟踪源内容等来评估响应的可信度。
  • 显示模型 (ChatGPT) 和检索器(认知搜索)之间的数据准备、提示构造和交互编排的可能方法
  • 直接在 UX 中进行设置,以调整行为并尝试选项

聊天屏幕

开始

重要:若要部署和运行此示例,需要一个为 Azure OpenAI 服务启用访问权限的 Azure 订阅。你可以在此处请求访问权限。

先决条件

  • Azure Developer CLI(从此处安装)
  • Python(从这里安装)
    • 重要:Python 和 pip 包管理器必须在 Windows 中的路径中,安装程序脚本才能正常工作。
  • 节点.js(从此处安装)
  • Git(从这里安装)
  • Powershell (pwsh) (从这里安装)
    • 重要:确保可以从 PowerShell 命令运行 pwsh.exe。如果此操作失败,则可能需要升级 PowerShell。

安装

从零开始:

  1. 创建一个新文件夹并在终端中切换到它
  2. 运行“azd up -t azure-search-openai-demo”
    • 对于目标位置,当前支持此示例中使用的模型的区域为“美国东部”或“美国中南部”。有关地区和型号的最新列表,请查看此处

部署或重新部署存储库的本地克隆:

  • 只需运行“azd up”

本地运行:

  • 运行或运行“VS Code 任务:启动应用”以在本地启动项目。
    ./app/start.cmd

** AZURE 资源成本 ** 默认情况下,此示例将创建具有每月成本的 Azure 应用服务和 Azure 认知搜索资源。如果要通过更改 infra 文件夹下的参数文件来避免此成本,则可以将它们切换到每个版本的免费版本(尽管需要考虑一些限制;例如,每个订阅最多可以有 1 个免费的认知搜索资源。

快速入门

  • 在 Azure 中:导航到 azd 部署的 Azure WebApp。azd 完成后将打印出 URL(作为“终结点”),也可以在 Azure 门户中找到它。
  • 本地运行:导航到 127.0.0.1:5000

进入网络应用后:

  • 在聊天或问答上下文中尝试不同的主题。对于聊天,请尝试跟进问题,澄清,要求简化或详细说明答案等。
  • 探索引文和来源
  • 单击“设置”以尝试不同的选项,调整提示等。

资源

注意

注意:本演示中使用的 PDF 文档包含使用语言模型(Azure OpenAI 服务)生成的信息。这些文档中包含的信息仅用于演示目的,并不反映 Microsoft 的意见或信念。Microsoft 对本文档所含信息的完整性、准确性、可靠性、适用性或可用性不作任何明示或暗示的陈述或保证。微软保留所有权利。

常见问题

:当 Azure 认知搜索支持搜索大型文档时,为什么我们需要将 PDF 分解为块?

:由于令牌限制,分块允许我们限制我们发送到 OpenAI 的信息量。通过分解内容,它使我们能够轻松找到可以注入 OpenAI 的潜在文本块。我们使用的分块的 menthod 利用了一个滑动的文本窗口,这样结束一个块的句子将开始下一个块。这使我们能够减少丢失文本上下文的机会。