AI가 우리가 일하고 기술과 상호 작용하는 방식을 지속적으로 형성함에 따라 많은 기업은 지능형 애플리케이션 내에서 자체 데이터를 활용할 수 있는 방법을 찾고 있습니다. ChatGPT 또는 Azure OpenAI와 같은 도구를 사용해 본 적이 있다면 생성 AI가 어떻게 프로세스를 개선하고 사용자 경험을 향상시킬 수 있는지 이미 잘 알고 계실 것입니다. 그러나 진정으로 맞춤화되고 관련성이 높은 응답을 위해서는 애플리케이션에 독점 데이터가 통합되어야 합니다.
여기서 데이터 검색과 AI 기반 응답을 통합하는 구조화된 접근 방식을 제공하는 검색 증강 생성(RAG)이 등장합니다. LlamaIndex와 같은 프레임워크를 사용하면 이 기능을 솔루션에 쉽게 구축하여 비즈니스 데이터의 잠재력을 최대한 활용할 수 있습니다.
앱을 빠르게 실행하고 살펴보고 싶으신가요? 여기를 클릭하세요.
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에서 시작하기 프로젝트를 찾을 수 있습니다. 필요할 때 자유롭게 편집할 수 있도록 이 템플릿을 포크하는 것이 좋습니다.
상위 수준 아키텍처
시작하기 프로젝트 애플리케이션은 다음 아키텍처를 기반으로 구축되었습니다.
- Azure OpenAI:处理用户查询的 AI 提供程序。
- LlamaIndex.ts:帮助提取、转换和矢量化内容 (PDF) 以及创建搜索索引的框架。
- Azure 容器应用:托管无服务器应用程序的容器环境。
- Azure 托管身份:确保一流的安全性并消除处理凭据和 API 密钥的需要。
有关部署哪些资源的更多详细信息,请检查我们所有示例中可用的 infra 文件夹。
用户工作流程示例
示例应用程序包含两个工作流程的逻辑:
-
数据摄取:获取数据、矢量化数据并创建搜索索引。如果您想添加更多文件,例如 PDF 或 Word 文件,您应该在此处添加它们。
npm run generate
服务提示请求:应用程序接收用户提示,将其发送到 Azure OpenAI,并使用向量索引作为检索器来增强这些提示。
运行示例
在运行示例之前,请确保您已预配必要的 Azure 资源。
要在 GitHub Codespace 中运行 GitHub 模板,只需单击
在您的 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中文网其他相关文章!

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),