Commencez avec le chat en utilisant votre propre exemple de données pour Java
Article
Cet article vous montre comment déployer et exécuter le Chat avec votre exemple de données pour Java. Cet exemple implémente une application de chat utilisant Java, Azure OpenAI Service et Retrieval Augmented Generation (RAG) dans Azure AI Search pour obtenir des réponses sur les avantages sociaux des employés dans une entreprise fictive. L'application est lancée avec des fichiers PDF, comprenant le manuel des employés, un document sur les avantages et une liste des rôles et des attentes de l'entreprise.
Dans cet article, vous effectuez les tâches suivantes
Déployer une application de conversation sur Azure.
Obtenir des réponses sur les avantages sociaux des employés.
Modifier les paramètres pour modifier le comportement des réponses.
Une fois cet article terminé, vous pouvez commencer à modifier le nouveau projet avec votre code personnalisé.
Cet article fait partie d’un ensemble d’articles montrant comment créer une application de chat en utilisant Azure OpenAI Service et la Recherche Azure AI. Vous trouvez ci-dessous d’autres articles de cette collection :
Cet article utilise un ou plusieurs modèles d’application IA comme base pour les exemples et les conseils qu’il contient. Les modèles d’application IA vous fournissent des implémentations de référence bien gérées et faciles à déployer, qui constituent un point de départ de qualité pour vos applications IA.
Vue d’ensemble de l’architecture
Une architecture simple de l’application de conversation est illustrée dans le diagramme suivant :
Diagramme montrant l’architecture du client à l’application back-end.
Les principaux composants de l’architecture sont les suivants :
Une application web pour héberger l’expérience de conversation interactive.
Ressource sur la Recherche Azure AI pour obtenir des réponses à partir de vos propres données.
Un Azure OpenAI Service pour fournir :
Des mots clés pour améliorer la recherche sur vos propres données.
Des réponses du modèle OpenAI.
Incorporations à partir du modèle ada
Coût
La plupart des ressources de cette architecture utilisent un niveau tarifaire de base ou de consommation. Le niveau tarifaire Consommation est basée sur l’utilisation, ce qui signifie que vous payez uniquement ce que vous utilisez. Pour terminer cet article, il y a un frais, mais c’est minime. Lorsque vous avez fini de suivre les instructions de l’article, vous pouvez supprimer les ressources pour arrêter d’encourir des frais.
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 :
Permissions du compte Azure - votre compte Azure doit disposer de permissions Microsoft.Authorization/roleAssignments/write, telles que Administrateur d'accès utilisateur ou Propriétaire.
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.
Cliquez avec le bouton droit sur le bouton suivant, puis sélectionnez Ouvrir le lien dans les nouvelles fenêtres pour que l’environnement de développement et la documentation soient disponibles en même temps.
Sur la page Create codespace, examinez les paramètres de configuration du codespace, puis sélectionnez Create Codespace.
Capture d’écran de l’écran de confirmation avant de créer un nouveau codespace.
Attendez que le codespace démarre. Ce processus de démarrage peut prendre quelques minutes.
Dans le terminal en bas de l’écran, connectez-vous à Azure avec Azure Developer CLI.
Bash
azd auth login
Copiez le code à partir du terminal, puis collez-le dans un navigateur. Suivez les instructions pour vous authentifier avec votre compte Azure.
Les tâches restantes de cet article s’effectuent dans ce conteneur de développement.
L’extension Dev Containers pour Visual Studio Code nécessite l’installation de Docker sur votre ordinateur local. L’extension héberge le conteneur de développement localement à l’aide de l’hôte Docker avec les outils de développement et les dépendances appropriés préinstallés pour terminer cet article.
Créez un répertoire local sur votre ordinateur pour le projet.
Bash
mkdir my-intelligent-app && cd my-intelligent-app
Ouvrez Visual Studio Code dans ce répertoire :
Bash
code .
Ouvrez un nouveau terminal dans Visual Studio Code.
Exécutez la commande AZD suivante pour déplacer le dépôt GitHub sur votre ordinateur local.
Bash
azd init -t azure-search-openai-demo-java
Ouvrez la palette de commandes, puis recherchez et sélectionnez Dev Containers: Open Folder in Container (Conteneurs de développement : Ouvrir un dossier dans un conteneur) pour ouvrir le projet dans un conteneur de développement. Attendez que le conteneur de développement s’ouvre avant de continuer.
Connectez-vous à Azure avec Azure Developer CLI.
Bash
azd auth login
Copiez le code à partir du terminal, puis collez-le dans un navigateur. Suivez les instructions pour vous authentifier avec votre compte Azure.
Les exercices restants de ce projet ont lieu dans le contexte de ce conteneur de développement.
Déployer et exécuter
L’exemple de référentiel contient tous les fichiers de code et de configuration dont vous avez besoin pour déployer une application de conversation 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 son exécution complète.
Provisionnez les ressources Azure et déployez le code source en exécutant la commande suivante :
Bash
azd up
Si vous êtes invité à saisir un nom d'environnement, veillez à ce qu'il soit court et en minuscules, par exemple, myenv. Il est utilisé comme partie du nom du groupe de ressources.
Lorsque vous y êtes invité, sélectionnez un abonnement dans lequel créer les ressources.
Lorsque vous êtes invité à sélectionner un emplacement pour la première fois, sélectionnez un emplacement près de vous. Cet emplacement est utilisé pour la plupart des ressources, y compris l’hébergement.
Si vous êtes invité à entrer un emplacement pour le modèle OpenAI, sélectionnez un emplacement proche de vous. Si le premier emplacement choisi est également disponible, sélectionnez-le.
Attendez que l'application soit déployée, ce qui peut prendre 5 à 10 minutes.
Une fois l'application déployée avec succès, une URL s'affiche dans le terminal.
Sélectionnez cette URL étiquetée Deploying service web pour 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 conversation est préchargée avec les informations sur les avantages sociaux des employés à partir de fichiers PDF. Vous pouvez utiliser l’application de conversation pour poser des questions sur les avantages sociaux. Les étapes suivantes vous guident tout au long du processus d’utilisation de l’application de conversation.
Dans le navigateur, sélectionnez ou entrez Qu'est-ce qui est inclus dans mon plan Northwind Health Plus et qui n'est pas inclus dans le plan standard? dans la zone de texte du chat.
Dans le volet de droite, utilisez les onglets pour comprendre comment la réponse a été générée.
Onglet
Description
Processus de réflexion
Script des interactions dans le chat.
Contenu de support
Inclut les informations nécessaires pour répondre à votre question et le matériel source.
Citation
Affiche la page PDF qui contient la citation.
Lorsque vous avez terminé, sélectionnez à nouveau l’onglet sélectionné pour fermer le volet.
Utiliser les paramètres de l’application de conversation pour modifier le comportement des réponses
Le modèle OpenAI et les paramètres utilisés pour interagir avec le modèle déterminent l'intelligence de l'application de chat.
Capture d’écran des paramètres du développeur de conversation.
Setting
Description
Remplacer le modèle d’invite
Invite utilisée pour générer la réponse.
Récupérer ces nombreux résultats de recherche
Nombre de résultats de recherche utilisés pour générer la réponse. Vous pouvez voir ces sources retournées dans les onglets Processus de réflexion et Contenu pris en charge de la citation.
Catégorie exclue
Catégorie de documents exclus des résultats de la recherche.
Utiliser le ranker sémantique pour la récupération
Fonctionnalité d’Azure AI Search qui utilise le Machine Learning pour améliorer la pertinence des résultats de recherche.
Utiliser des résumés contextuels de requête au lieu de documents entiers
Lorsque Use semantic ranker et Use query-contextual summaries sont vérifiés, le LLM utilise des légendes extraites de passages clés, au lieu de tous les passages, dans les documents les mieux classés.
Suggérer des questions de suivi
L’application de conversation propose des questions de suivi en fonction de la réponse.
Mode de récupération
Vecteurs + texte signifie que les résultats de recherche sont basés sur le texte et les incorporations des documents. Vecteurs signifie que les résultats de recherche sont basés sur les incorporations des documents. Texte signifie que les résultats de recherche sont basés sur le texte des documents.
Diffuser en continu les réponses de saisie semi-automatique du chat
Diffusez la réponse au lieu d’attendre que la réponse complète soit disponible.
Les étapes suivantes vous guident tout au long du processus de modification des paramètres.
Dans le navigateur, sélectionnez l’onglet Developer Settings (Paramètres du développeur).
Cochez la case Proposer des questions de suivi et posez à nouveau la même question.
What is my deductible?
Le chat renvoie des suggestions de questions de suivi telles que celles-ci :
1. What is the cost sharing for out-of-network services?
2. Are preventive care services subject to the deductible?
3. How does the prescription drug deductible work?
Sous l’onglet Paramètres, désélectionnez Utiliser le ranker sémantique pour la récupération.
Poser à nouveau la même question ?
What is my deductible?
Quelle est la différence dans les réponses ?
Par exemple, la réponse, qui utilisait le ranker sémantique, a fourni une seule réponse : The deductible for the Northwind Health Plus plan is $2,000 per year.
La réponse sans classement sémantique a renvoyé une réponse, ce qui nécessitait plus de travail pour obtenir la réponse : Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount.
Nettoyer les ressources
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. Utilisez la commande suivante pour supprimer les ressources Azure et supprimer le code source :
Capture d’écran de tous les Codespaces en cours d’exécution, avec leur statut et leurs modèles.
Ouvrez le menu contextuel du codespace, puis sélectionnez Supprimer.
Capture d’écran du menu contextuel pour un codespace unique avec l’option supprimer mis en surbrillance.
Vous n’êtes pas nécessairement obligé de propre votre environnement local, mais vous pouvez arrêter le conteneur de développement en cours d’exécution et revenir à l’exécution de Visual Studio Code dans le contexte d’un espace de travail local.
Ouvrez la palette de commandes, recherchez les commandes Conteneurs de développement, puis sélectionnez Conteneurs de développement : rouvrir le dossier localement.
Capture d’écran de l’option de palette de commandes pour ré-ouvrir le dossier actuel dans votre environnement local.
Conseil
Visual Studio Code arrête le conteneur de développement en cours d'exécution, mais le conteneur existe toujours dans Docker dans un état arrêté. Vous avez toujours la possibilité de supprimer le instance de conteneur, l’image conteneur et les volumes de Docker pour libérer plus d’espace sur votre ordinateur local.
Comment a-t-on répondu à la question ?
L'application est séparée en deux applications
Une application JavaScript frontale utilisant le framework React avec l’outil de build Vite.
Une application Java back-end répond à la question.
L’API backend /chat suit le processus pour obtenir la réponse :
Créer des options RAG : constituez un ensemble d'options utilisées pour générer une réponse.
Créer une approche en utilisant les options RAG : Utilisez une combinaison de modèles basés sur la récupération et la génération pour créer une approche permettant de générer une réponse précise et naturelle.
Exécutez l’approche avec les options RAG et la conversation précédente : utilisez l’approche et les options RAG pour générer une réponse basée sur la conversation précédente. La réponse inclut des informations sur les documents utilisés pour générer la réponse.
Commencez à utiliser Python et effectuez une recherche sur vos propres données à l’aide d’un exemple d’application de conversation implémenté à l’aide d’Azure OpenAI Service et de la génération augmentée de récupération (RAG) dans Azure AI Search. Déployez facilement avec Azure Developer CLI. Cet article utilise l’exemple de modèle de référence Azure AI.
Cet article fournit une liste organisée de ressources sur les scénarios d’IA Azure pour les développeurs Java, notamment la documentation et les exemples de code.
Découvrez comment utiliser les puissants modèles Azure OpenAI, notamment GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo avec Vision, GPT-3.5-Turbo, DALL-E 3 et la série de modèles d’incorporation
Découvrez comment ajouter l’équilibrage de charge à votre solution Java pour étendre l’application de conversation au-delà des limites de quota de modèle et de jeton Azure OpenAI.
Cet article fournit une liste organisée de ressources sur les scénarios d’IA Azure pour les développeurs Go, notamment la documentation et les exemples de code.
Découvrez comment utiliser efficacement des modèles modals Azure OpenAI pour générer des réponses aux messages utilisateur et aux images chargées. Déployez facilement avec Azure Developer CLI.