Partager via


Commencez avec « Chat avec vos propres données » pour .NET

Cet article explique comment déployer et exécuter le Chat avec votre propre exemple de données pour .NET. Cet exemple implémente une application de conversation en C#, Azure OpenAI Service et Retrieval Augmented Generation (RAG) dans Recherche Azure AI pour obtenir des réponses sur les avantages des employés dans une entreprise fictive. L’application de discussion pour les employés est amorcée par des fichiers PDF comprenant un guide des employés, un document sur les avantages sociaux et une liste des rôles et des attentes de l’entreprise.

Dans cet article, vous découvrirez comment :

  • Déployez 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, commencez à 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 de Azure service OpenAI et de Recherche Azure AI.

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

Vue d’ensemble architecturale

Dans cet exemple d’application, une société fictive appelée Contoso Electronics fournit l’expérience de l’application de conversation à ses employés pour poser des questions sur les avantages, les stratégies internes et les descriptions et rôles de travail.

L'architecture de l’application de conversation est illustrée dans le diagramme suivant :

Diagramme montrant l’architecture du client à l’application back-end.

  • Interface utilisateur : l’interface de conversation de l’application est une application Blazor WebAssembly. Cette interface accepte les requêtes utilisateur, achemine les requêtes vers le serveur principal de l’application et affiche les réponses générées.
  • Backend : le serveur principal de l’application est une API minimale ASP.NET Core minimal. Le back-end héberge l’application web statique Blazor et orchestre les interactions entre les différents services. Les services utilisés dans cette application sont les suivants :
    • Recherche Azure AI : indexe les documents des données stockées dans un compte stockage Azure. Les documents peuvent ainsi faire l’objet d’une recherche à l’aide de fonctionnalités de recherche vectorielle.
    • Azure OpenAI Service : fournit les modèles de langage volumineux (LLM) pour générer des réponses. Microsoft Agent Framework est utilisé conjointement avec le Azure OpenAI Service pour orchestrer les flux de travail IA plus complexes.

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 compléter cet article, il y a des frais, mais c’est minime. Lorsque vous avez terminé avec l’article, supprimez les ressources pour éviter de continuer à engager des frais.

Pour plus d’informations, consultez Azure Samples : Coût dans le répertoire d'exemples.

Prerequisites

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 poursuivre dans la lignée de cet article vous avez besoin des prérequis suivants :

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 l’environnement de développement le plus simple, utilisez GitHub Codespaces afin que vous ayez les outils de développement et les dépendances appropriés préinstallés pour terminer cet article.

Importante

Tous les comptes GitHub peuvent utiliser des espaces de code pour jusqu’à 60 heures gratuites chaque mois avec 2 instances principales. Pour plus d'informations, consultez stockage mensuel inclus et heures centrales de GitHub Codespaces.

  1. Démarrez le processus pour créer un espace de code GitHub sur la branche main du référentiel Azure-Samples/azure-search-openai-demo-csharp GitHub.

  2. Pour que l’environnement de développement et la documentation soient disponibles en même temps, cliquez avec le bouton droit sur le bouton droit sur le bouton suivant Open in GitHub Codespaces, puis sélectionnez Ouvrir le lien dans les nouvelles fenêtres.

    Bouton Ouvrir dans GitHub Codespaces.

  3. Sur 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 la création d’un codespace.

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

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

    azd auth login
    
  6. Copiez le code à partir du terminal, puis collez-le dans un navigateur. Suivez les instructions pour vous authentifier auprès de 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 l’application de conversation sur Azure

Importante

Les ressources Azure créées dans cette section entraînent des coûts immédiats, principalement dus à la ressource Recherche Azure AI. Ces ressources peuvent entraîner des coûts même si vous interrompez la commande avant qu’elle ne soit entièrement exécutée.

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

    azd up
    
  2. Lorsque vous y êtes invité, entrer un nom d’environnement court et en minuscules. Par exemple : myenv. Il est utilisé comme partie 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, sélectionnez un emplacement proche de vous. Si le premier emplacement choisi est également disponible, sélectionnez-le.

  6. Attendez que l’application soit déployée. Le déploiement peut prendre jusqu’à 20 minutes.

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

  8. Sélectionnez cette URL étiquetée Deploying service web 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 des informations sur les avantages 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.

  1. Dans le navigateur, accédez à la page Conversation depuis le volet de navigation gauche.

  2. Sélectionnez ou saisissez « Qu’est-ce qui est inclus dans mon plan Northwind Health Plus qui n’est pas dans le standard ? » dans la zone de texte du chat. Votre réponse est similaire à l’image suivante.

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

  3. Dans la réponse, sélectionnez une citation. Une fenêtre contextuelle s’ouvre pour afficher la source des informations.

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

  4. Naviguez entre les onglets en haut de la zone de réponse pour comprendre comment la réponse a été générée.

    Tab Descriptif
    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 Cela permet d’afficher la page source qui contient la citation.
  5. Lorsque vous avez terminé, revenez à l’onglet de réponse.

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.

Réglage Descriptif
Remplacer le modèle d’invite Il s’agit de l’invite utilisée pour générer la réponse.
Récupérer ces nombreux résultats de recherche Il s’agit du 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 Il s’agit de la catégorie de documents exclus des résultats de la recherche.
Utiliser le classeur sémantique pour la récupération Il s’agit d’une fonctionnalité de Recherche Azure AI qui utilise le Machine Learning pour améliorer la pertinence des résultats de recherche.
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.
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.

Les étapes suivantes vous guident tout au long du processus de modification des paramètres.

  1. Dans le navigateur, sélectionnez l’icône d’engrenage en haut à droite de la page.

  2. Si elle n’est pas sélectionnée, cochez la case Suggérer des questions de suivi et posez la même question.

    What is included in my Northwind Health Plus plan that is not in standard?
    

    Il est possible que la conversation retourne des suggestions de réponse aux questions.

  3. Sous l’onglet Paramètres, désélectionnez Utiliser le classeur sémantique pour la récupération.

  4. Posez à nouveau la même question.

    What is my deductible?
    
  5. Quelle est la différence dans les réponses ?

    La réponse qui a utilisé le classeur sémantique a fourni une réponse unique. La réponse sans classement sémantique a retourné une réponse moins directe.

Nettoyer les ressources

Pour terminer, nettoyez les ressources Azure et GitHub CodeSpaces que vous avez utilisées.

Nettoyer les ressources Azure

Les ressources Azure créées dans cet article sont facturées à 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 CLI Azure développeur suivante pour supprimer les ressources Azure et supprimer le code source :

azd down --purge

Nettoyer les espaces de code GitHub

La suppression de l’environnement GitHub Codespaces garantit que vous pouvez optimiser la quantité d’heures de travail gratuites par cœur que vous obtenez pour votre compte.

Importante

Pour plus d'informations sur les droits de votre compte GitHub, consultez GitHub Codespaces : stockage inclus mensuellement et heures de base.

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

  2. Recherchez vos espaces de code en cours d’exécution provenant du référentiel Azure-Samples/azure-search-openai-demo-csharp GitHub.

    Capture d’écran de tous les codespaces en cours d’exécution, avec leur état 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 offre des informations de dépannage.

Si votre problème n'est pas résolu, connectez-vous au Issues du référentiel.

Étapes suivantes