Remarque
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.
Cet article explique comment déployer et exécuter l’exemple d’application de conversation d’entreprise pour Python accessible par des points de terminaison privés.
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 préchargée de fichiers PDF qui incluent le manuel de l'employé, un document sur les avantages sociaux, et une liste des rôles et attentes de la société.
En suivant les instructions de cet article, vous devez :
- Déployez une application de conversation sur Azure pour l’accès public dans un navigateur web.
- Redéployez une application de conversation avec des points de terminaison privés.
Une fois cette procédure terminée, vous pouvez commencer à modifier le nouveau projet avec votre code personnalisé et à le redéployer, sachant que votre application de conversation est accessible uniquement via le réseau privé.
Vue d’ensemble de l’architecture
Le déploiement par défaut crée une application de conversation avec des points de terminaison publics.
Pour les applications de conversation enrichies avec des données privées, la sécurisation de l’accès à votre application de conversation est cruciale. Cet article présente une solution à l’aide d’un réseau virtuel.
Dans le réseau virtuel, il existe un sous-réseau distinct pour l’application Azure App Service et les autres services Azure principaux. Cette structure facilite l’application de différentes règles de groupe de sécurité réseau à chaque sous-réseau.
Au sein du réseau virtuel, les services utilisent des points de terminaison privés pour communiquer entre eux. Chaque point de terminaison privé est associé à une zone DNS (Domain Name System) privée pour résoudre le nom du point de terminaison privé en adresse IP au sein du réseau virtuel.
Étapes de déploiement
Déployez la solution deux fois. Déployez une fois avec l’accès public pour vérifier que l’application de conversation fonctionne correctement. Déployez à nouveau avec un accès privé pour sécuriser votre application de conversation à l’aide d’un réseau virtuel.
Conditions préalables
Vous avez besoin d’un environnement de conteneur de développement 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. Créez-en un gratuitement.
- 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. - Un compte GitHub.
Coût d’utilisation pour les exemples de ressources
La plupart des ressources utilisées dans cette architecture se trouvent sous des niveaux tarifaires de base ou basés sur la consommation. Ce modèle tarifaire signifie que vous payez uniquement pour ce que vous utilisez et que les frais sont généralement minimes pendant le développement ou les tests.
Le déploiement avec la mise en réseau privée ajoute un coût supplémentaire à votre déploiement. Lorsque vous avez terminé l’évaluation ou le déploiement de l’application, supprimez toutes les ressources approvisionnées pour éviter les frais en cours.
Pour obtenir une répartition détaillée des coûts attendus, consultez la section Avant de commencer dans le référentiel GitHub pour l’exemple.
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 l’environnement de développement le plus simple, utilisez GitHub Codespaces afin que vous disposiez des outils de développement et des dépendances appropriés préinstallés pour terminer cet article.
Importante
Tous les comptes GitHub peuvent utiliser GitHub Codespaces pour jusqu’à 60 heures gratuites chaque mois avec deux instances principales. Pour plus d’informations, consultez Stockage et heures par cœur inclus chaque mois avec GitHub Codespaces.
Lancez le processus de création d'un nouvel espace de code
mainGitHub sur la branche du référentiel GitHub Azure-Samples/azure-search-openai-demo.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 l’espace de code 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 :
azd auth loginCopiez le code à partir du terminal, puis collez-le dans un navigateur. Suivez les instructions pour vous authentifier auprès de votre compte Azure.
Les tâches restantes de cet article se produisent dans le contexte de ce conteneur de développement.
Paramètres personnalisés
Cette solution configure et déploie l’infrastructure en fonction des paramètres personnalisés que vous configurez à l’aide de l’interface CLI Azure développeur. Le tableau suivant décrit les paramètres personnalisés de cette solution.
| Réglage | Description |
|---|---|
AZURE_PUBLIC_NETWORK_ACCESS |
Contrôle la valeur de l’accès au réseau public sur les ressources Azure prises en charge. Les valeurs valides sont Enabled ou Disabled. |
AZURE_USE_PRIVATE_ENDPOINT |
Contrôle le déploiement de points de terminaison privés, qui connectent les ressources Azure au réseau virtuel. La valeur TRUE signifie que les points de terminaison privés sont déployés pour la connectivité. |
AZURE_USE_VPN_GATEWAY |
Contrôle le déploiement d’une passerelle VPN pour le réseau virtuel. Si vous n’utilisez pas ce paramètre et désactivez l’accès public, vous avez besoin d’une autre façon de vous connecter au réseau virtuel. La TRUE valeur signifie qu’une passerelle VPN est déployée pour la connectivité. |
Déployer l’application de conversation
Le premier déploiement crée les ressources et fournit un point de terminaison accessible publiquement.
Exécutez la commande suivante pour configurer cette solution pour l’accès public :
azd env set AZURE_PUBLIC_NETWORK_ACCESS EnabledLorsque vous êtes invité à fournir un nom d’environnement, n’oubliez pas que le nom de l’environnement est utilisé pour créer le groupe de ressources. Entrez un nom significatif. Si vous êtes dans une équipe ou dans une organisation, incluez votre nom, comme dans
morgan-chat-private-endpoints. Notez le nom de l’environnement. Vous en avez besoin ultérieurement pour trouver les ressources dans le portail Azure.Exécutez la commande suivante pour inclure l’approvisionnement des ressources de réseau virtuel. N’oubliez pas que le déploiement ne limite pas l’accès avant le deuxième déploiement.
azd env set AZURE_USE_PRIVATE_ENDPOINT trueDéployez la solution avec la commande suivante :
azd upL’approvisionnement des ressources est la partie la plus longue du processus de déploiement. Attendez que le déploiement se termine avant de continuer.
À la fin du processus de déploiement, le point de terminaison de l’application s’affiche. Copiez ce point de terminaison dans un navigateur pour ouvrir l’application de conversation. Sélectionnez l’une des questions sur les cartes, puis attendez la réponse.
Notez l’URL du point de terminaison, car vous en avez besoin plus loin dans l’article.
Déployer l’application de conversation sur Azure avec un accès privé
Modifiez la configuration du déploiement pour sécuriser l’application de conversation pour l’accès privé.
Exécutez la commande suivante pour utiliser une passerelle VPN pour accéder au réseau virtuel :
azd env set AZURE_USE_VPN_GATEWAY trueExécutez la commande suivante pour désactiver l’accès public :
azd env set AZURE_PUBLIC_NETWORK_ACCESS DisabledExécutez la commande suivante pour modifier la configuration des ressources. Cette commande ne redéploie pas le code de l’application, car seule la configuration de l’infrastructure a changé.
azd provisionUne fois l’approvisionnement terminé, ouvrez à nouveau l’application de conversation dans un navigateur. L’application de conversation n’est plus accessible, car le point de terminaison public est désactivé.
Accéder à l’application de conversation
Pour accéder à l’application de conversation, utilisez un outil tel que passerelle VPN Azure ou Azure Virtual Desktop. N’oubliez pas que tout outil que vous utilisez pour accéder à l’application doit être sécurisé et conforme aux stratégies de sécurité de votre organisation.
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
Si vous ne vous attendez pas à avoir besoin des ressources Azure à l'avenir, supprimez-les pour éviter les coûts en cours.
Exécutez la commande CLI Azure développeur suivante pour supprimer les ressources Azure :
azd down --purge
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.
Importante
Pour plus d’informations sur les droits associés à votre compte GitHub, consultez Stockage et heures de base inclus chaque mois avec GitHub Codespaces.
Localisez vos codespaces en cours d'exécution qui proviennent du référentiel GitHub Azure-Samples/azure-search-openai-demo.
Ouvrez le menu contextuel de l’espace de code, 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 traité, ajoutez-le à la page web des problèmes du référentiel.
Contenu connexe
- Consultez le dépôt GitHub de l'application de chat d'entreprise .
- Créez une application de conversation en utilisant l'architecture de solution basée sur les meilleures pratiques d'Azure OpenAI.
- Découvrez le contrôle d'accès dans les applications d'IA générative avec Recherche Azure AI.