Partager via


Prise en main de la conversation à l’aide de votre propre exemple de données pour Python

Cet article explique comment déployer et exécuter la conversation avec votre propre exemple de données pour Python. Cet exemple implémente une application de conversation à l’aide de Python, d’Azure OpenAI Service et de récupération d’une génération augmentée (RAG) dans Azure AI Search pour obtenir des réponses sur les avantages des employés dans une entreprise fictive. L’application est amorçage avec des fichiers PDF, notamment le manuel des employés, un document sur les avantages et une liste des rôles et attentes de l’entreprise.

En suivant les instructions de cet article, vous allez :

  • 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 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 Service et d’Azure AI Search.

Vous trouvez ci-dessous d’autres articles de cette collection :

Remarque

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 Recherche d’IA Azure 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. Il y aura un coût pour terminer cet article, mais il sera minimal. Lorsque vous avez terminé avec l’article, vous pouvez supprimer les ressources pour arrêter les frais.

En savoir plus sur le coût dans l’exemple de dépôt.

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 utiliser cet article, vous avez besoin des prérequis 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.
  • Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité. L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.
  • GitHub

Environnement de développement ouvert

Commencez maintenant par un environnement de développement sur lequel toutes les dépendances sont installées 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 codespaces pendant jusqu’à 60 heures gratuites chaque mois avec 2 instances principales. Pour plus d’informations, consultez Le stockage mensuel inclus et les heures de cœur GitHub Codespaces.

  1. Démarrez le processus pour créez un environnement GitHub Codespace sur la branche main du référentiel GitHub Azure-Samples/azure-search-openai-demo.

  2. 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.

    Ouvrir dans un GitHub Codespaces

  3. Dans la page Créer un codespace , passez en revue les paramètres de configuration du codespace, puis sélectionnez Créer un codespace

    Capture d’écran de l’écran de confirmation avant de créer un nouveau codespace.

  4. Attendez que le codespace démarre. Ce processus de démarrage peut prendre quelques minutes.

  5. Dans le terminal en bas de l’écran, connectez-vous à Azure avec Azure Developer CLI.

    azd auth login
    
  6. Copiez le code à partir du terminal, puis collez-le dans un navigateur. Suivez les instructions pour vous authentifier avec votre compte Azure.

  7. Les tâches restantes de cet article s’effectuent dans 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 entraîner des coûts même si vous interrompez la commande avant la fin de exécution.

  1. Exécutez la commande Azure Developer CLI suivante pour provisionner les ressources Azure et déployer le code source :

    azd up
    
  2. Si vous êtes invité à entrer un nom d’environnement, conservez-le en minuscules et en minuscules. Par exemple : myenv. Il est utilisé dans le cadre du nom du groupe de ressources.

  3. Lorsque vous y êtes invité, sélectionnez un abonnement dans lequel créer les ressources.

  4. 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.

  5. Si vous êtes invité à entrer un emplacement pour le modèle OpenAI ou pour la ressource Document Intelligence, sélectionnez l’emplacement le plus proche de vous. Si le premier emplacement choisi est également disponible, sélectionnez-le.

  6. Attendez 5 ou 10 minutes après le déploiement de l’application avant de continuer.

  7. Une fois l’application déployée avec succès, une URL s’affiche dans le terminal.

    Capture d’écran de l’application déployée comme indiqué à la fin du processus AZD CLI azd up.

  8. Sélectionnez cette URL étiquetée (✓) Done: Deploying service webapp pour ouvrir l’application de conversation dans un navigateur.

    Capture d’écran de l’application de conversation dans le navigateur montrant plusieurs suggestions d’entrée de conversation et la zone de texte de conversation pour entrer une question.

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.

  1. Dans le navigateur, sélectionnez ou entrez Que se passe-t-il dans une révision des performances ? dans la zone de texte de conversation.

    Capture d’écran de la première réponse de l’application de conversation.

  2. Dans la réponse, sélectionnez une citation.

    Capture d’écran de la première réponse de l’application de conversation avec sa citation encadrée en rouge.

  3. 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 Il s’agit d’un script des interactions dans la conversation instantanée. Vous pouvez afficher l’invite système (content) et votre question utilisateur (content).
    Contenu de support Cela inclut les informations permettant de répondre à votre question et le document 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 Cette opération affiche la page d’origine qui contient la citation.
  4. 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

L’intelligence de la conversation est déterminée par le modèle OpenAI et les paramètres utilisés pour interagir avec le modèle.

Capture d’écran des paramètres du développeur de conversation.

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 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.
Score de recherche minimal Définit un score minimal pour les résultats de recherche provenant de la recherche Azure AI. La plage de scores dépend de l’utilisation de vecteurs hybrides (par défaut), de vecteurs uniquement ou de texte.
Score minimal de reclassement Définit un score minimal pour les résultats de la recherche qui reviennent à partir du reranker sémantique. Le score est toujours compris entre 0 et 4. Plus le score est élevé, plus le résultat est sémantiquement pertinent pour la question.
Récupérer ces nombreux résultats de recherche Définit le nombre de résultats de recherche à récupérer à partir de la recherche Azure AI. D’autres résultats peuvent augmenter la probabilité de trouver la réponse correcte, mais peuvent conduire au modèle « perdu au milieu ». Vous pouvez voir ces sources retournées dans le processus de réflexion et les onglets De contenu de prise en charge de la citation.
Catégorie exclue Spécifie une catégorie à exclure des résultats de la recherche. Il n’existe aucune catégorie utilisée dans le jeu de données par défaut.
Utiliser le ranker sémantique pour la récupération Active le ranker sémantique Recherche d’IA Azure, un modèle qui classe à nouveau les résultats de la recherche en fonction de 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 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, et Text utilise uniquement la recherche en texte intégral. Hybride est généralement optimal.
Diffuser en continu les réponses de saisie semi-automatique de conversation 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.

  1. Dans le navigateur, sélectionnez l’onglet Paramètres du développeur.

  2. Cochez la case Questions de suivi suggérées 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 suivantes :

    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?
    
  3. Sous l’onglet Paramètres, désélectionnez Utiliser le ranker sémantique pour la récupération.

  4. Posez la même question ?

    What happens in a performance review?
    
  5. 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 auront la possibilité de discuter de leurs succès et défis dans le milieu de travail (1). L’examen fournira des commentaires positifs et constructifs pour aider les employés à développer et à développer leurs rôles (1). L’employé recevra un résumé écrit de l’examen des performances, qui comprendra une évaluation de son rendement, de ses commentaires et de ses objectifs pour l’année à venir (1). L’examen des performances est un dialogue bidirectionnel entre les gestionnaires 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 réussites et défis dans le milieu de travail. Des commentaires positifs et constructifs sont fournis pour aider les employés à développer et à grandir dans leurs rôles. Un résumé écrit de l’examen des performances est donné, y compris une évaluation des performances, des commentaires et des objectifs pour l’année à venir. L’examen est un dialogue bidirectionnel entre les gestionnaires et les employés (1).

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.

Exécutez la commande Azure Developer CLI suivante pour supprimer les ressources Azure et le code source :

azd down --purge --force

Les commutateurs fournissent :

  • purge : vide immédiatement les ressources supprimées. Cela vous permet de réutiliser le TPM Azure OpenAI.
  • force : la suppression se produit de manière silencieuse, sans exiger le consentement de l’utilisateur.

Nettoyer GitHub Codespaces

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.

  1. Connectez-vous au tableau de bord GitHub Codespaces (https://github.com/codespaces).

  2. Localisez vos codespaces en cours d’exécution provenant du référentiel GitHub Azure-Samples/azure-search-openai-demo.

    Capture d’écran de tous les Codespaces en cours d’exécution, avec leur statut et leurs modèles.

  3. 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.

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.

Étapes suivantes