首页  >  文章  >  web前端  >  使用 LlamaIndex.ts 和 Azure OpenAI 构建 RAG 应用程序:入门!

使用 LlamaIndex.ts 和 Azure OpenAI 构建 RAG 应用程序:入门!

WBOY
WBOY原创
2024-09-10 18:30:30603浏览

AI가 우리가 일하고 기술과 상호 작용하는 방식을 지속적으로 형성함에 따라 많은 기업은 지능형 애플리케이션 내에서 자체 데이터를 활용할 수 있는 방법을 찾고 있습니다. ChatGPT 또는 Azure OpenAI와 같은 도구를 사용해 본 적이 있다면 생성 AI가 어떻게 프로세스를 개선하고 사용자 경험을 향상시킬 수 있는지 이미 잘 알고 계실 것입니다. 그러나 진정으로 맞춤화되고 관련성이 높은 응답을 위해서는 애플리케이션에 독점 데이터가 통합되어야 합니다.

여기서 데이터 검색과 AI 기반 응답을 통합하는 구조화된 접근 방식을 제공하는 검색 증강 생성(RAG)이 등장합니다. LlamaIndex와 같은 프레임워크를 사용하면 이 기능을 솔루션에 쉽게 구축하여 비즈니스 데이터의 잠재력을 최대한 활용할 수 있습니다.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

앱을 빠르게 실행하고 살펴보고 싶으신가요? 여기를 클릭하세요.

RAG(검색 증강 생성)란 무엇입니까?

검색 증강 생성(RAG)은 관련 정보에 액세스하고 자신의 데이터를 통합하기 위한 검색 구성 요소를 포함하여 AI 텍스트 생성을 향상시키는 신경망 프레임워크입니다. 이는 두 가지 주요 부분으로 구성됩니다:

  • 리트리버: 대량의 문서를 검색하여 주어진 쿼리와 관련된 구절이나 정보를 찾는 밀집 검색기 모델(예: BERT 기반)입니다.
  • 생성기: 쿼리와 검색된 텍스트를 입력으로 사용하여 일관되고 상황에 맞게 풍부한 응답을 생성하는 시퀀스-시퀀스 모델(예: BART 또는 T5 기반)입니다.

검색자는 관련 문서를 찾고 생성자는 이를 사용하여 보다 정확하고 유익한 응답을 생성합니다. 이러한 조합을 통해 RAG 모델은 외부 지식을 효과적으로 활용하여 생성된 텍스트의 품질과 관련성을 향상시킬 수 있습니다.

LlamaIndex는 RAG를 어떻게 구현합니까?

LlamaIndex를 사용하여 RAG 시스템을 구현하려면 다음 일반 단계를 따르세요.

데이터 수집:

  • PDF, API 또는 SQL 데이터베이스와 같은 다양한 소스에서 데이터를 가져오는 데 도움이 되는 SimpleDirectoryReader와 같은 문서 로더를 사용하여 LlamaIndex.ts에 문서를 로드하세요.
  • SentenceSplitter를 사용하여 큰 문서를 관리하기 쉬운 작은 덩어리로 나눕니다.

인덱스 생성:

  • VectorStoreIndex를 사용하여 이러한 문서 청크의 벡터 인덱스를 생성하면 임베딩을 기반으로 효율적인 유사성 검색이 가능합니다.
  • 복잡한 데이터 세트의 경우 재귀 검색 기술을 사용하여 계층적으로 구조화된 데이터를 관리하고 사용자 쿼리를 기반으로 관련 섹션을 검색할 수도 있습니다.

쿼리 엔진 설정:

  • asQueryEngine을 유사성TopK와 같은 매개변수와 함께 사용하여 벡터 인덱스를 쿼리 엔진으로 변환하여 검색해야 하는 상위 문서 수를 정의합니다.
  • 고급 설정을 위해서는 각 에이전트가 특정 문서를 담당하고 최상위 에이전트가 전체 검색 프로세스를 조정하는 다중 에이전트 시스템을 만드세요.

검색 및 생성:

  • 사용자 쿼리를 기반으로 관련 문서 청크를 검색하는 목적 함수를 정의하여 RAG 파이프라인을 구현합니다.
  • RetrieverQueryEngine을 사용하면 CohereRerank와 같은 도구를 사용하여 검색된 문서의 순위를 다시 매기는 등 선택적 사후 처리 단계와 함께 실제 검색 및 쿼리 처리를 수행할 수 있습니다.

실용적인 예를 위해 Azure OpenAI를 사용하여 완전한 RAG 구현을 시연하는 샘플 애플리케이션을 제공했습니다.

실용적인 RAG 샘플 애플리케이션

이제 LlamaIndex.ts(LlamaIndex의 TypeScipt 구현) 및 Azure OpenAI를 사용하여 RAG 애플리케이션을 구축하고 이를 Azure Container Apps에 서버리스 웹 앱으로 배포하는 데 중점을 둘 것입니다.

샘플 실행을 위한 요구 사항

  • Azure 개발자 CLI(azd): 백엔드, 프런트엔드, 데이터베이스를 포함한 전체 앱을 쉽게 배포할 수 있는 명령줄 도구입니다.
  • Azure 계정: 애플리케이션을 배포하려면 Azure 계정이 필요합니다. 시작하려면 크레딧이 포함된 무료 Azure 계정을 받으세요.

GitHub에서 시작하기 프로젝트를 찾을 수 있습니다. 필요할 때 자유롭게 편집할 수 있도록 이 템플릿을 포크하는 것이 좋습니다.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

상위 수준 아키텍처

시작하기 프로젝트 애플리케이션은 다음 아키텍처를 기반으로 구축되었습니다.

  • Azure OpenAI:处理用户查询的 AI 提供程序。
  • LlamaIndex.ts:帮助提取、转换和矢量化内容 (PDF) 以及创建搜索索引的框架。
  • Azure 容器应用:托管无服务器应用程序的容器环境。
  • Azure 托管身份:确保一流的安全性并消除处理凭据和 API 密钥的需要。

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

有关部署哪些资源的更多详细信息,请检查我们所有示例中可用的 infra 文件夹。

用户工作流程示例

示例应用程序包含两个工作流程的逻辑:

  1. 数据摄取:获取数据、矢量化数据并创建搜索索引。如果您想添加更多文件,例如 PDF 或 Word 文件,您应该在此处添加它们。

      npm run generate
    
  2. 服务提示请求:应用程序接收用户提示,将其发送到 Azure OpenAI,并使用向量索引作为检索器来增强这些提示。

运行示例

在运行示例之前,请确保您已预配必要的 Azure 资源。

要在 GitHub Codespace 中运行 GitHub 模板,只需单击
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

在您的 Codespaces 实例中,从终端登录您的 Azure 帐户:

azd auth login

使用单个命令配置、打包示例应用程序并将其部署到 Azure:

azd up

要在本地运行并尝试应用程序,请安装 npm 依赖项并运行应用程序:

npm install
npm run dev

应用程序将在您的 Codespaces 实例中的端口 3000 或浏览器中的 http://localhost:3000 上运行。

结论

本指南演示了如何使用 LlamaIndex.ts 和 Azure OpenAI 构建部署在 Microsoft Azure 上的无服务器 RAG(检索增强生成)应用程序。通过遵循本指南,您可以利用 Azure 的基础架构和 LlamaIndex 的功能来创建强大的 AI 应用程序,这些应用程序可根据您的数据提供上下文丰富的响应。

我们很高兴看到您使用这个入门应用程序构建的内容。请随意 fork 它并喜欢 GitHub 存储库以接收最新的更新和功能。

以上是使用 LlamaIndex.ts 和 Azure OpenAI 构建 RAG 应用程序:入门!的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn