Maison > interface Web > js tutoriel > le corps du texte

Créer une application RAG avec LlamaIndex.ts et Azure OpenAI : Pour commencer !

WBOY
Libérer: 2024-09-10 18:30:30
original
601 Les gens l'ont consulté

Alors que l'IA continue de façonner notre façon de travailler et d'interagir avec la technologie, de nombreuses entreprises recherchent des moyens d'exploiter leurs propres données au sein d'applications intelligentes. Si vous avez utilisé des outils comme ChatGPT ou Azure OpenAI, vous savez déjà comment l'IA générative peut améliorer les processus et améliorer l'expérience utilisateur. Cependant, pour des réponses réellement personnalisées et pertinentes, vos applications doivent intégrer vos données propriétaires.

C'est là qu'intervient la génération de récupération augmentée (RAG), fournissant une approche structurée pour intégrer la récupération de données avec des réponses basées sur l'IA. Avec des frameworks comme LlamaIndex, vous pouvez facilement intégrer cette fonctionnalité dans vos solutions, libérant ainsi tout le potentiel de vos données d'entreprise.

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

Vous souhaitez exécuter et explorer rapidement l'application ? Cliquez ici.

Qu'est-ce que RAG - Génération augmentée par récupération ?

Retrieval-Augmented Generation (RAG) est un cadre de réseau neuronal qui améliore la génération de texte IA en incluant un composant de récupération pour accéder aux informations pertinentes et intégrer vos propres données. Il se compose de deux parties principales :

  • Retriever : Un modèle de récupération dense (par exemple, basé sur BERT) qui recherche dans un vaste corpus de documents pour trouver des passages pertinents ou des informations liées à une requête donnée.
  • Générateur : un modèle séquence à séquence (par exemple, basé sur BART ou T5) qui prend la requête et le texte récupéré en entrée et génère une réponse cohérente et enrichie contextuellement.

Le récupérateur trouve les documents pertinents et le générateur les utilise pour créer des réponses plus précises et informatives. Cette combinaison permet au modèle RAG d'exploiter efficacement les connaissances externes, améliorant ainsi la qualité et la pertinence du texte généré.

Comment LlamaIndex implémente-t-il RAG ?

Pour implémenter un système RAG à l'aide de LlamaIndex, suivez ces étapes générales :

Ingestion de données :

  • Chargez vos documents dans LlamaIndex.ts à l'aide d'un chargeur de documents tel que SimpleDirectoryReader, qui permet d'importer des données à partir de diverses sources telles que des PDF, des API ou des bases de données SQL.
  • Décomposez les documents volumineux en morceaux plus petits et plus faciles à gérer à l'aide de SentenceSplitter.

Création d'index :

  • Créez un index vectoriel de ces morceaux de documents à l'aide de VectorStoreIndex, permettant des recherches de similarité efficaces basées sur des intégrations.
  • Facultativement, pour les ensembles de données complexes, utilisez des techniques de récupération récursive pour gérer les données structurées hiérarchiquement et récupérer les sections pertinentes en fonction des requêtes des utilisateurs.

Configuration du moteur de requête :

  • Convertissez l'index vectoriel en moteur de requête en utilisant asQueryEngine avec des paramètres tels que similarityTopK pour définir le nombre de documents principaux à récupérer.
  • Pour des configurations plus avancées, créez un système multi-agents dans lequel chaque agent est responsable de documents spécifiques et un agent de niveau supérieur coordonne le processus global de récupération.

Récupération et génération :

  • Implémentez le pipeline RAG en définissant une fonction objective qui récupère les morceaux de documents pertinents en fonction des requêtes des utilisateurs.
  • Utilisez RetrieverQueryEngine pour effectuer la récupération et le traitement des requêtes, avec des étapes de post-traitement facultatives telles que le reclassement des documents récupérés à l'aide d'outils tels que CohereRerank.

Pour un exemple pratique, nous avons fourni un exemple d'application pour démontrer une implémentation complète de RAG à l'aide d'Azure OpenAI.

Exemple d’application pratique RAG

Nous allons maintenant nous concentrer sur la création d'une application RAG à l'aide de LlamaIndex.ts (l'implémentation TypeScipt de LlamaIndex) et Azure OpenAI, et la déployer en tant qu'applications Web sans serveur sur Azure Container Apps.

Conditions requises pour exécuter l'exemple

  • Azure Developer CLI (azd) : un outil de ligne de commande pour déployer facilement l'intégralité de votre application, y compris le backend, le frontend et les bases de données.
  • Compte Azure : vous aurez besoin d'un compte Azure pour déployer l'application. Obtenez un compte Azure gratuit avec quelques crédits pour commencer.

Vous trouverez le projet de démarrage sur GitHub. Nous vous recommandons de créer ce modèle afin de pouvoir le modifier librement en cas de besoin :

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

Architecture de haut niveau

L'application de projet de démarrage est construite sur la base de l'architecture suivante :

  • Azure OpenAI: 사용자의 쿼리를 처리하는 AI 공급자입니다.
  • LlamaIndex.ts: 콘텐츠(PDF)를 수집, 변환, 벡터화하고 검색 색인을 생성하는 데 도움이 되는 프레임워크입니다.
  • Azure Container Apps: 서버리스 애플리케이션이 호스팅되는 컨테이너 환경
  • Azure Managed Identity: 최고 수준의 보안을 보장하고 자격 증명 및 API 키를 처리할 필요가 없습니다.

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

어떤 리소스가 배포되는지에 대한 자세한 내용은 모든 샘플에 포함된 infra 폴더를 확인하세요.

사용자 작업 흐름의 예

샘플 애플리케이션에는 두 가지 워크플로에 대한 논리가 포함되어 있습니다.

  1. 데이터 수집: 데이터를 가져와 벡터화하고 검색 색인을 생성합니다. PDF나 Word 파일과 같은 파일을 더 추가하려면 여기에서 추가해야 합니다.

      npm run generate
    
    Copier après la connexion
  2. 프롬프트 요청 제공: 앱은 사용자 프롬프트를 수신하여 Azure OpenAI로 보내고, 벡터 인덱스를 검색기로 사용하여 이러한 프롬프트를 보강합니다.

샘플 실행

샘플을 실행하기 전에 필요한 Azure 리소스를 프로비저닝했는지 확인하세요.

GitHub Codespace에서 GitHub 템플릿을 실행하려면
을 클릭하세요. Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Codespaces 인스턴스의 터미널에서 Azure 계정에 로그인합니다.

azd auth login
Copier après la connexion

단일 명령을 사용하여 샘플 애플리케이션을 Azure에 프로비저닝, 패키지 및 배포합니다.

azd up
Copier après la connexion

애플리케이션을 로컬에서 실행하고 사용해 보려면 npm 종속성을 설치하고 앱을 실행하세요.

npm install
npm run dev
Copier après la connexion

앱은 Codespaces 인스턴스의 포트 3000 또는 브라우저의 http://localhost:3000에서 실행됩니다.

결론

이 가이드에서는 Microsoft Azure에 배포된 LlamaIndex.ts 및 Azure OpenAI를 사용하여 서버리스 RAG(Retrieval-Augmented Generation) 애플리케이션을 구축하는 방법을 보여주었습니다. 이 가이드를 따르면 Azure의 인프라와 LlamaIndex의 기능을 활용하여 데이터를 기반으로 상황에 맞게 풍부한 응답을 제공하는 강력한 AI 애플리케이션을 만들 수 있습니다.

이 시작 애플리케이션으로 여러분이 무엇을 구축할지 기대됩니다. 최신 업데이트와 기능을 받으려면 자유롭게 포크하고 GitHub 저장소에 좋아요를 누르세요.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!