Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Simplifiez le développement d'applications d'IA avec RAG en utilisant vos propres données gérées par LlamaIndex, Azure Functions et les technologies Serverless. Ces outils gèrent automatiquement l'infrastructure et la mise à l'échelle, ce qui vous permet de vous concentrer sur la fonctionnalité du chatbot. LlamaIndex gère le pipeline de données tout au long du chemin, de l'ingestion à la réponse en streaming.
Vue d’ensemble de l’architecture
Le flux de l'application comprend
- L'utilisation de l'interface de chat pour saisir une requête.
- Envoi de la requête de l'utilisateur à l'API Serverless via des appels HTTP.
- La réception de la requête de l'utilisateur puis l'utilisation du framework LlamaIndex pour traiter et streamer la réponse. L'API sans serveur utilise un moteur pour créer une connexion avec le grand modèle de langage Azure OpenAI (LLM) et l'index vectoriel de LlamaIndex.
Une architecture simple de l’application de conversation est illustrée dans le diagramme suivant :
Cet exemple utilise LlamaIndex pour générer des embeddings et les stocker dans son propre magasin de vecteurs. LlamaIndex offre également une intégration avec d'autres magasins de vecteurs, y compris Azure AI Search. Cette intégration n'est pas démontrée dans cet exemple.
Où se trouve Azure dans cette architecture ?
L'architecture de l'application repose sur les services et composants suivants :
- Azure OpenAI représente le fournisseur d'IA auquel nous envoyons les requêtes de l'utilisateur.
- LlamaIndex est l’infrastructure qui nous aide à ingérer, transformer et vectoriser notre contenu (fichier PDF) et à créer un index de recherche à partir de nos données.
- Azure Container Apps est l'environnement de conteneurs dans lequel l'application est hébergée.
- Azure Managed Identity nous aide à garantir une sécurité optimale et vous évite, en tant que développeur, d'avoir à gérer des informations d'identification et des clés d'API.
LlamaIndex gère les données de l'ingestion à la recherche.
Pour implémenter un système RAG (Retrieval-Augmented Generation) à l’aide de LlamaIndex, les étapes clés suivantes sont mises en correspondance avec la fonctionnalité LlamaIndex :
| Process | Description | LlamaIndex |
|---|---|---|
| Ingestion de données | Importez des données à partir de sources telles que des PDF, des API ou des bases de données. | SimpleDirectoryReader |
| Segmenter les documents | Décomposez les documents volumineux en blocs plus petits. | SentenceSplitter |
| Création d'un index vectoriel | Créez un index vectoriel pour des recherches de similarité efficaces. | VectorStoreIndex |
| Récupération récursive (facultatif) à partir de l'index | Gérez des ensembles de données complexes grâce à la recherche hiérarchique. | |
| Conversion en moteur de recherche | Convertissez l'index vectoriel en moteur de requête. | asQueryEngine |
| Configuration avancée des requêtes (facultatif) | Utilisez des agents pour un système multi-agents. | |
| Mettre en œuvre le pipeline RAG | Définissez une fonction objective qui prend en compte les requêtes des utilisateurs et récupère les segments de documents pertinents. | |
| Effectuer la recherche | Traiter des requêtes et reclasser des documents. | RetrieverQueryEngine, CohereRerank |
Prérequis
Un environnement de conteneur de développement est disponible avec toutes les dépendances requises pour terminer cet article. Vous pouvez exécuter le conteneur de développement dans GitHub Codespaces (dans un navigateur) ou localement à l’aide de Visual Studio Code.
Pour suivre les instructions de cet article, vous devez disposer des éléments suivants :
- Un abonnement Azure - En créer un gratuitement
- Autorisations de compte Azure : votre compte Azure doit disposer d’autorisations Microsoft.Authorization/roleAssignments/write, telles que Administrateur de l’accès utilisateur ou Propriétaire.
- Un compte GitHub.
Environnement de développement ouvert
Utilisez les instructions suivantes pour déployer un environnement de développement préconfiguré contenant toutes les dépendances requises pour terminer cet article.
GitHub Codespaces exécute un conteneur de développement géré par GitHub avec Visual Studio Code pour le web comme interface utilisateur. Pour un environnement de développement le plus simple, utilisez GitHub Codespaces pour disposer des outils de développement et des dépendances appropriés préinstallés pour terminer cet article.
Important
Tous les comptes GitHub peuvent utiliser Des espaces de code pour jusqu’à 60 heures gratuites chaque mois avec deux instances principales. Pour plus d’informations, consultez Le stockage mensuel inclus et les heures de cœur GitHub Codespaces.
Ouvrez dans Codespaces.
Attendez que le codespace démarre. Ce processus de démarrage peut prendre quelques minutes.
Connectez-vous à Azure avec Azure Developer CLI dans le terminal en bas de l’écran.
azd auth loginComplétez le processus d’authentification.
Les tâches restantes de cet article s’effectuent dans ce conteneur de développement.
Déployer et exécuter
Le référentiel d’exemples contient tout le code et les fichiers de configuration dont vous avez besoin pour déployer l’application de chat serverless sur Azure. Les étapes suivantes vous guident tout au long du processus de déploiement de l’exemple sur Azure.
Déployer une application de conversation sur Azure
Important
Les ressources Azure créées dans cette section entraînent des coûts immédiats, principalement de la ressource Recherche Azure AI. Ces ressources peuvent accumuler des coûts même si vous interrompez la commande avant sa fin.
Pour provisionner les ressources Azure et déployer le code source, exécutez la commande CLI Azure Developer suivante :
azd upUtilisez le tableau suivant pour répondre aux invites :
Prompt Réponse Nom de l’environnement Gardez-le court et en minuscules. Ajoutez votre nom ou votre pseudo. Par exemple : john-chat. Il est utilisé comme partie du nom du groupe de ressources.Abonnement Sélectionnez l’abonnement pour créer les ressources. Emplacement (pour l’hébergement) Sélectionnez un emplacement près de chez vous dans la liste. Emplacement pour le modèle OpenAI Sélectionnez un emplacement près de chez vous dans la liste. Si le premier emplacement choisi est également disponible, sélectionnez-le. Attendez que l’application soit déployée. La fin du déploiement peut prendre 5 à 10 minutes.
Une fois l’application déployée, vous voyez deux URL affichées dans le terminal.
Sélectionnez cette URL étiquetée
Deploying service webapppour ouvrir l’application de conversation dans un navigateur.
Utiliser l’application de conversation pour obtenir des réponses à partir de fichiers PDF
L'application de chat est préchargée avec des informations sur les normes physiques pour le courrier postal domestique à partir d'un catalogue de fichiers PDF. Vous pouvez utiliser l'application de chat pour poser des questions sur la lettre d'envoi et les packages. Les étapes suivantes vous guident tout au long du processus d’utilisation de l’application de conversation.
Dans le navigateur, sélectionnez ou entrez Combien coûte l'envoi d'un gros package en France ?
LlamaIndex dérive la réponse en utilisant le fichier PDF et en diffusant la réponse.
La réponse provient d'Azure OpenAI avec l'influence des données PDF ingérées dans le magasin vectoriel de LlamaIndex.
Nettoyer les ressources
Pour nettoyer les ressources, il y a deux choses à faire :
- Ressources Azure, vous pouvez nettoyer les ressources avec Azure Developer CLI, azd.
- Votre environnement de développement ; GitHub Codespaces ou DevContainers via Visual Studio Code.
Nettoyage des ressources Azure
Les ressources Azure créées dans cet article sont facturées dans votre abonnement Azure. Si vous pensez ne plus avoir besoin de ces ressources, supprimez-les pour éviter des frais supplémentaires.
Exécutez la commande Azure Developer CLI suivante pour supprimer les ressources Azure et le code source :
azd down --purge
Nettoyer les environnements de développement
La suppression de l’environnement GitHub Codespaces vous permet d’optimiser le nombre d’heures gratuites par cœur que vous obtenez pour votre compte.
Important
Pour plus d’informations sur les droits de votre compte GitHub, consultez GitHub Codespaces mensuel inclus stockage et heures principales.
Connectez-vous au tableau de bord GitHub Codespaces.
Localisez vos codespaces en cours d’exécution provenant du référentiel GitHub
Azure-Samples/llama-index-javascript.
Ouvrez le menu contextuel,
..., pour le codespace, puis sélectionnez Supprimer.
Obtenir de l’aide
Cet exemple de référentiel propose des informations de résolution des problèmes.
Si votre problème n’est pas résolu, consignez votre problème dans les Problèmes du référentiel.