Commencez avec le chat en utilisant votre propre échantillon de données pour Python
Article
Cet article vous montre comment déployer et exécuter l’application de conversation avec votre propre exemple de données pour Python. Cet exemple met en œuvre une application de chat utilisant Python, Azure OpenAI Service et la RAG (Génération augmentée de récupération) dans la Recherche Azure AI pour obtenir des réponses sur les avantages sociaux d’une entreprise fictive. L’application est amorcée avec des fichiers PDF contenant le manuel des employés, un document sur les avantages sociaux, et une liste des rôles et attentes au sein de l’entreprise.
En suivant les instructions de cet article, vous devez :
Déployer une application de conversation sur Azure.
Obtenir des réponses sur les avantages sociaux des employés.
Modifiez les paramètres pour modifier le comportement des réponses.
Une fois cette procédure terminée, vous pouvez commencer à modifier le nouveau projet avec votre code personnalisé.
Cet article fait partie d’une collection d’articles qui vous montrent comment créer une application de conversation à l’aide d’Azure OpenAI et d’Azure AI Search.
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 qui sont faciles à déployer. Ils aident à garantir un point de départ de haute qualité pour vos applications IA.
Vue d’ensemble de l’architecture
Le diagramme suivant montre une architecture simple de l’application de conversation.
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.
Azure OpenAI pour fournir :
Des mots clés pour améliorer la recherche sur vos propres données.
Réponses du modèle Azure OpenAI.
Des embeddings du modèle ada.
Coût
La plupart des ressources de cette architecture utilisent un niveau tarifaire de base ou de consommation. La tarification de la consommation est basée sur l’utilisation, ce qui signifie que vous payez uniquement pour ce que vous utilisez. Il y a des frais pour compléter cet article, mais c’est minime. Une fois que vous avez terminé l'article, vous pouvez supprimer les ressources pour éviter de générer des frais.
Un environnement de conteneur de développement est disponible, avec toutes les dépendances nécessaires à l'achèvement de 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 utiliser cet article, vous avez besoin des prérequis suivants.
Autorisations de compte Azure. Votre compte Azure doit disposer d’autorisations Microsoft.Authorization/roleAssignments/write, telles que Administrateur d’accès utilisateur ou Propriétaire.
Autorisations de compte Azure. Votre compte Azure doit disposer d’autorisations Microsoft.Authorization/roleAssignments/write, comme 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 en tant qu’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 lien Ouvrir dans les nouvelles fenêtres pour que l’environnement de développement et la documentation soient disponibles en même temps.
Dans la page Créer un espace de code, passez en revue les paramètres de configuration de l’espace de code, puis sélectionnez Créer un espace de code.
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 placer le dépôt GitHub sur votre ordinateur local :
Bash
azd init -t azure-search-openai-demo
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 l’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.
Exécutez la commande Azure Developer CLI suivante pour provisionner les ressources Azure et déployer le code source :
Bash
azd up
Si vous êtes invité à entrer un nom d’environnement, gardez-le court et utilisez des lettres 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 Azure OpenAI ou pour la ressource Azure AI Document Intelligence, sélectionnez l’emplacement le plus proche de vous. Si le premier emplacement choisi est également disponible, sélectionnez-le.
Attendez 5 ou 10 minutes après le déploiement de l’application avant de continuer.
Une fois l’application déployée, une URL s’affiche dans le terminal.
Sélectionnez l’URL étiquetée (✓) Done: Deploying service webapp 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. Vos réponses peuvent varier à mesure que les modèles sous-jacents sont mis à jour.
Dans le navigateur, sélectionnez ou saisissez What happens in a performance review? (Que se passe-t-il lors d’un entretien d’évaluation ?) dans la zone de texte du chat.
Dans la réponse, sélectionnez une citation.
Dans le volet droit, utilisez les onglets pour comprendre comment la réponse a été générée.
Onglet
Description
Processus de réflexion
Cet onglet est un script des interactions dans la conversation. Vous pouvez afficher l’invite système (content) et votre question utilisateur (content).
Contenu de support
Cet onglet inclut les informations permettant de répondre à votre question et au matériel source. Le nombre de citations du document source est noté dans les paramètres du développeur. La valeur par défaut est 3.
Citation
Cet onglet affiche la page d’origine qui contient la citation.
Lorsque vous avez terminé, sélectionnez à nouveau l’onglet pour fermer le volet.
Utiliser les paramètres de l’application de conversation pour modifier le comportement des réponses
L’intelligence de la conversation est déterminée par le modèle Azure OpenAI et les paramètres utilisés pour interagir avec le modèle.
Setting
Description
Remplacer le modèle d’invite
Remplace l’invite utilisée pour générer la réponse en fonction de la question et des résultats de la recherche.
Température
Définit la température de la requête sur le modèle de langage volumineux (LLM) qui génère la réponse. Des températures plus élevées entraînent des réponses plus créatives, mais elles peuvent être moins ancrées.
Graine
Définit une valeur de départ pour améliorer la reproductibilité des réponses du modèle. La valeur de départ peut être n’importe quel entier.
Définit un score minimal pour les résultats de recherche provenant du reranker sémantique. Le score varie toujours entre 0 et 4. Plus le score est élevé, plus le résultat est sémantiquement pertinent par rapport à la question.
Récupérer ces nombreux résultats de recherche
Définit le nombre de résultats de recherche à récupérer à partir d’Azure AI Search. D’autres résultats peuvent augmenter la probabilité de trouver la réponse correcte. Mais d'autres résultats peuvent également amener le modèle à se « perdre en cours de route ». Vous pouvez voir ces sources retournées dans les onglets Processus de réflexion et Contenu de soutien de la citation.
Exclure la catégorie
Spécifie une catégorie à exclure des résultats de la recherche. Aucune catégorie n’est utilisée dans le jeu de données par défaut.
Utiliser le ranker sémantique pour la recherche
Activation de l'Azure AI Search avec classement sémantique, qui est un modèle qui reclasse les résultats de recherche selon la similarité sémantique de la requête de l’utilisateur.
Utiliser des légendes sémantiques
Envoie des légendes sémantiques au LLM au lieu du résultat de recherche complet. Une légende sémantique est extraite d’un résultat de recherche pendant le processus de classement sémantique.
Suggérer des questions de suivi
Demande au LLM de suggérer des questions de suivi en fonction de la requête de l’utilisateur.
Mode de récupération
Définit le mode de récupération pour la requête de la Recherche Azure AI. Vectors + Text (Hybride) utilise une combinaison de recherche vectorielle et de recherche en texte intégral. Vectors utilise uniquement la recherche vectorielle. Texte utilise uniquement la recherche en texte intégral. Le mode hybride est généralement optimal.
Diffuser en continu les réponses de saisie semi-automatique du chat
Diffuse en continu la réponse à l’interface utilisateur de conversation telle qu’elle est générée.
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 Suggérer des questions de suivi et posez la même question.
What happens in a performance review?
La conversation a retourné des questions de suivi suggérées, telles que les exemples suivants :
1. What is the frequency of performance reviews?
2. How can employees prepare for a performance review?
3. Can employees dispute the feedback received during the performance review?
Sous l’onglet Paramètres, décochez la case à cocher Utiliser le classeur sémantique pour la récupération.
Posez la même question.
What happens in a performance review?
Quelle est la différence dans les réponses ?
Avec le classement sémantique: lors d’une révision des performances chez Contoso Electronics, les employés ont la possibilité de discuter de leurs réussites et défis dans le milieu de travail (1). L’examen fournit des commentaires positifs et constructifs pour aider les employés à développer et à grandir dans leurs rôles (1). L’employé reçoit un résumé écrit de l’examen des performances, qui comprend une évaluation de ses performances, commentaires et objectifs pour l’année à venir (1). L’entretien d’évaluation est un dialogue bidirectionnel entre les managers et les employés (1).
Sans le classement sémantique: lors d’une révision des performances chez Contoso Electronics, les employés ont la possibilité de discuter de leurs succès et défis dans le milieu de travail. Des retours positifs et constructifs sont fournis pour aider les employés à se développer et à évoluer dans leurs fonctions (1). Un résumé écrit de l’entretien d’évaluation est remis, y compris un score de performances, des retours et des objectifs pour l’année à venir. L’entretien est un dialogue bidirectionnel entre les managers et les employés (1).
Nettoyer les ressources
Les étapes suivantes vous guident tout au long du processus de nettoyage des ressources que vous avez utilisées.
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 :
Bash
azd down --purge --force
Les commutateurs fournissent :
purge: les ressources supprimées sont immédiatement vidées pour pouvoir réutiliser les jetons Azure OpenAI par minute.
force : la suppression se produit de manière silencieuse, sans exiger le consentement de l’utilisateur.
La suppression de l'environnement GitHub Codespaces garantit que vous pouvez maximiser le nombre d'heures gratuites par cœur auxquelles vous avez droit pour votre compte.
Ouvrez le menu contextuel de l’espace de code, puis sélectionnez Supprimer.
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 et recherchez les commandes Conteneurs de développement.
Sélectionnez Conteneurs de développement : Réouvrir le dossier localement.
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 l’instance de conteneur, l’image conteneur et les volumes de Docker pour libérer davantage d’espace sur votre ordinateur local.
Créez un copilote IA pour Contoso Bike Shop. Intégrez Azure OpenAI et Cosmos DB pour permettre des recherches avancées de données, utilisez GPT-3.5 pour obtenir des résultats améliorés et déployez la solution sur Azure Kubernetes Service.
Découvrez comment ajouter l’équilibrage de charge à votre application pour étendre l’application de conversation au-delà des limites de quota de modèle et de jeton Azure OpenAI.
Commencez avec Java et effectuez des recherches dans vos propres données à l’aide d’un exemple d’application de chat mis en œuvre avec Azure OpenAI Service et Retrieval Augmented Generation (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 Azure AI pour les développeurs Python, notamment la documentation et les exemples de code.
Apprenez à évaluer efficacement les réponses dans votre application de chat basée sur RAG en utilisant Azure OpenAI. Générez des exemples de flux d’invite, exécutez des évaluations et analysez les résultats.
Découvrez comment utiliser efficacement des connexions sans clé pour l’authentification et l’autorisation auprès d’Azure OpenAI avec les blocs de construction de sécurité Azure OpenAI. Commencez à utiliser un exemple d’application de conversation simple implémenté à l’aide d’Azure OpenAI Service à l’aide de l’authentification sans clé avec Microsoft Entra ID. Déployez facilement avec Azure Developer CLI. Cet article utilise l’exemple de démarrage rapide de conversation azure AI Template.