Commencez avec les points de terminaison privés de chat pour Python

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.

Diagramme montrant l’architecture réseau d’une application de conversation RAG de base.

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.

Diagramme montrant l’architecture réseau avec tous les services à l’intérieur d’un réseau virtuel Azure.

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.

Diagramme montrant un sous-réseau d’application de conversation et un sous-réseau principal au sein du réseau virtuel.

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.

Diagramme montrant le point de terminaison privé et la zone DNS privée pour Azure OpenAI 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.

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.

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

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

    Ouvrir dans GitHub Codespaces.

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

    Capture d’écran montrant l’écran de confirmation avant de créer un espace de code.

  4. Attendez que l’espace de code 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 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.

  1. Exécutez la commande suivante pour configurer cette solution pour l’accès public :

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Enabled
    

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

  2. 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 true
    
  3. Déployez la solution avec la commande suivante :

    azd up
    

    L’approvisionnement des ressources est la partie la plus longue du processus de déploiement. Attendez que le déploiement se termine avant de continuer.

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

  1. Exécutez la commande suivante pour utiliser une passerelle VPN pour accéder au réseau virtuel :

    azd env set AZURE_USE_VPN_GATEWAY true
    
  2. Exécutez la commande suivante pour désactiver l’accès public :

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Disabled
    
  3. Exé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 provision
    
  4. Une 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.

  1. Connectez-vous au tableau de bord GitHub Codespaces .

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

    Capture d’écran montrant tous les espaces de code en cours d’exécution, y compris leur état et leurs modèles.

  3. Ouvrez le menu contextuel de l’espace de code, puis sélectionnez Supprimer.

    Capture d’écran montrant le menu contextuel d’un espace de code unique avec l’option Supprimer mise 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 traité, ajoutez-le à la page web des problèmes du référentiel.