Utiliser l’application web Azure OpenAI
Avec Azure AI Studio, Azure OpenAI Foundry, les API et les SDK, vous pouvez utiliser l’application web autonome personnalisable pour interagir avec les modèles Azure OpenAI Service à l’aide d’une interface utilisateur graphique. Les principales fonctionnalités incluent :
- Connectivité avec plusieurs sources de données pour prendre en charge une génération enrichie d’interrogation et de récupération augmentée, notamment Recherche Azure AI, Prompt Flow, etc.
- Historique des conversations et collecte des commentaires des utilisateurs via Cosmos DB.
- Authentification avec contrôle d’accès en fonction du rôle via Microsoft Entra ID.
- Personnalisation de l’interface utilisateur, des sources de données et des fonctionnalités à l’aide de variables d’environnement (sans code via le portail Azure).
- Prise en charge de la modification du code source de l’application web sous-jacente en tant que référentiel open source.
Vous pouvez déployer l’application avec Azure AI Foundry ou d’Azure OpenAI Studio, ou par le biais d’un déploiement manuel via le portail Azure ou Azure Developer CLI via votre ordinateur local (voici les instructions disponibles dans le référentiel). Selon votre canal de déploiement, vous pouvez précharger une source de données pour discuter via l’application web, mais cela peut être modifié après le déploiement.
Pour les débutants Azure OpenAI qui aspirent à discuter avec leurs données via l’application web, Azure AI Foundry est le moyen recommandé pour le déploiement initial et la configuration de la source de données.
Considérations importantes
- Cette application web et la plupart de ses fonctionnalités sont en préversion, ce qui signifie que les bogues peuvent se produire et que toutes les fonctionnalités peuvent ne pas être terminées. Si vous trouvez un bogue ou si vous avez besoin d’aide, déclenchez un problème dans le dépôt GitHub associé.
- La publication d’une application web crée une instance d’Azure App Service dans votre abonnement. Cela peut entraîner des coûts en fonction du plan de tarification que vous sélectionnez. Lorsque vous avez terminé avec votre application, vous pouvez la supprimer et toutes les ressources associées à partir du portail Azure.
- Les modèles GPT-4 Turbo avec Vision ne sont pas actuellement pris en charge.
- Par défaut, l’application est déployée avec le fournisseur d’identité Microsoft déjà configuré. Le fournisseur d’identité limite l’accès à l’application aux membres de votre locataire Azure. Pour ajouter ou modifier l’authentification :
Accédez au Portail Azure et recherchez le nom de l’application que vous avez spécifié lors de la publication. Sélectionnez l’application web, puis sélectionnez Authentification dans le menu de gauche. Sélectionnez Ajouter un fournisseur d'identité.
Sélectionnez Microsoft en tant que fournisseur d'identité. Les paramètres par défaut de cette page limitent l’application à votre locataire. Vous n’avez donc pas besoin de modifier autre chose ici. Sélectionnez Ajouter.
Les utilisateurs sont maintenant invités à se connecter avec leur compte Microsoft Entra pour accéder à votre application. Vous pouvez suivre un processus similaire pour ajouter un autre fournisseur d’identité si vous préférez. L’application n’utilise les informations de connexion de l’utilisateur d’aucune autre manière que pour vérifier que l’utilisateur est membre de votre locataire. Pour plus d’informations sur la gestion de l’authentification, consultez ce guide de démarrage rapide sur l’authentification pour les applications web sur Azure App Service.
Personnalisation de l’application à l’aide de variables d’environnement
Vous pouvez personnaliser la logique front-end et back-end de l’application. L’application fournit plusieurs variables d’environnement pour des scénarios de personnalisation courants tels que la modification de l’icône dans l’application.
Ces variables d’environnement peuvent être modifiées via le portail Azure après le déploiement de l’application web.
- Dans le portail Azure, recherchez et sélectionnez la page App Services.
- Sélectionnez l’application web que vous venez de déployer.
- Dans le menu de gauche de l’application, sélectionnez Paramètres > variables d’environnement.
- Pour modifier une variable d’environnement existante, cliquez sur son nom.
- Pour ajouter une seule nouvelle variable d’environnement, cliquez sur Ajouter dans la barre de menus supérieure du panneau.
- Pour utiliser l’éditeur JSON pour gérer les variables d’environnement, cliquez sur Modification avancée.
Lorsque vous personnalisez l’application, nous vous recommandons de :
Communiquer clairement comment chaque paramètre que vous implémentez affecte l'expérience utilisateur.
Mettre à jour les paramètres de l’application pour chacune de vos applications déployées afin d’utiliser de nouvelles clés API après la rotation des clés pour votre ressource Azure OpenAI ou Recherche Azure AI.
L’exemple de code source de l’application web est disponible sur GitHub. Le code source est fourni « tel quel » et en tant qu’exemple uniquement. Les clients sont responsables de toutes les personnalisations et implémentations de leurs applications web.
Modification de l’interface utilisateur de l’application
Les variables d’environnement pertinentes pour la personnalisation de l’interface utilisateur sont les suivantes :
UI_CHAT_DESCRIPTION
: il s’agit du texte de paragraphe plus petit indiqué sousUI_CHAT_TITLE
dans le centre de la page lors du chargement.- Type de données : texte
UI_CHAT_LOGO
: il s’agit de la grande image affichée au centre de la page lors du chargement.- Type de données : URL d’image
UI_CHAT_TITLE
: il s’agit du texte volumineux affiché au centre de la page lors du chargement.- Type de données : texte
UI_FAVICON
: il s’agit du favicon affiché dans la fenêtre/l’onglet du navigateur.- Type de données : URL d’image
UI_LOGO
: ce logo apparaît en haut à gauche de la page et à gauche du titre.- Type de données : URL d’image
UI_TITLE
: titre affiché dans la fenêtre/l’onglet du navigateur. Il apparaît également en haut à gauche de la page par le logo.- Type de données : texte
UI_SHOW_SHARE_BUTTON
: ce bouton apparaît en haut à droite de la page et permet aux utilisateurs de partager une URL de liaison à l’application web.- Type de données : booléen, doit entrer True ou False, par défaut la valeur True si elle est vide ou non spécifiée.
UI_SHOW_CHAT_HISTORY_BUTTON
: ceci s’affiche en haut à droite de la page et à gauche du UI_SHOW_SHARE_BUTTON.- Type de données : booléen, doit entrer True ou False, par défaut la valeur True si elle est vide ou non spécifiée.
Pour modifier l’interface utilisateur de l’application, suivez les instructions de l’étape précédente pour ouvrir la page des variables d’environnement de votre application web. Ensuite, utilisez la modification avancée pour ouvrir l’éditeur JSON. En haut du JSON (après le caractère [
), collez le bloc de code ci-dessous et personnalisez les valeurs en conséquence :
{
"name": "UI_CHAT_DESCRIPTION",
"value": "This is an example of a UI Chat Description. Chatbots can make mistakes. Check important info and sensitive info.",
"slotSetting": false
},
{
"name": "UI_CHAT_LOGO",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_CHAT_TITLE",
"value": "This is an example of a UI Chat Title. Start chatting",
"slotSetting": false
},
{
"name": "UI_FAVICON",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_LOGO",
"value": "https://learn-bot.azurewebsites.net/assets/Contoso-ff70ad88.svg",
"slotSetting": false
},
{
"name": "UI_TITLE",
"value": "This is an example of a UI Title",
"slotSetting": false
},
Activation de l’historique des conversations à l’aide de Cosmos DB
Vous pouvez activer l’historique des conversations pour vos utilisateurs de l’application web. Lorsque vous activez la fonctionnalité, les utilisateurs ont accès à leurs requêtes et réponses précédentes individuelles.
Pour activer l’historique des conversations, déployez ou redéployez votre modèle en tant qu’application web avec Azure OpenAI Studio ou Azure AI Foundry et sélectionnez Activer l’historique des conversations dans l’application web.
Important
L’activation de l’historique des conversations crée une instance Azure Cosmos DB dans votre groupe de ressources et entraîne des frais supplémentaires pour le stockage que vous utilisez au-delà des niveaux gratuits.
Après avoir activé l’historique des conversations, vos utilisateurs peuvent l’afficher et le masquer dans le coin supérieur droit de l’application. Lorsque les utilisateurs affichent l’historique des conversations, ils peuvent renommer ou supprimer des conversations. Vous pouvez modifier si les utilisateurs peuvent accéder à cette fonction avec la variable d’environnement UI_SHOW_CHAT_HISTORY_BUTTON
spécifiée dans la section précédente. Étant donné que les utilisateurs sont connectés à l’application, les conversations sont automatiquement ordonnées de la plus récente à la plus ancienne. Les conversations sont nommées en fonction de la première requête de la conversation.
Remarque
Les régions Azure populaires telles que la région USA Est peuvent rencontrer des périodes de forte demande, où il se peut qu’il ne soit pas possible de déployer une nouvelle instance de Cosmos DB. Dans ce cas, choisissez de déployer dans une autre région telle que USA Est 2 ou réessayez votre déploiement jusqu’à ce qu’il réussisse. Si le déploiement de Cosmos DB échoue, votre application sera disponible à son URL spécifiée, mais l’historique des conversations ne sera pas disponible. L’activation de l’historique des conversations active également le bouton Afficher l’historique des conversations en haut à droite.
Le déploiement avec l’option d’historique des conversations sélectionnée remplit automatiquement les variables d’environnement suivantes. Il n’est donc pas nécessaire de les modifier, sauf si vous souhaitez changer d’instance Cosmos DB. Il s'agit de :
AZURE_COSMOSDB_ACCOUNT
: il s’agit du nom du compte Cosmos DB déployé avec votre application web.- Type de données : texte
AZURE_COSMOSDB_ACCOUNT_KEY
: il s’agit d’une variable d’environnement alternative qui est utilisée uniquement lorsque les autorisations ne sont pas accordées via Microsoft Entra ID et que l’authentification basée sur la clé est utilisée à la place.- Type de données : texte. Cela n’est normalement pas présent ou rempli.
AZURE_COSMOSDB_DATABASE
: il s’agit du nom de l’objet de base de données dans Cosmos DB déployé avec votre application web.- Type de données : texte, doit être
db_conversation_history
- Type de données : texte, doit être
AZURE_COSMOSDB_CONTAINER
: il s’agit du nom de l’objet conteneur de base de données dans Cosmos DB déployé avec votre application web.- Type de données : texte, doit être
conversations
- Type de données : texte, doit être
AZURE_COSMOSDB_ACCOUNT
: il s’agit du nom du compte Cosmos DB déployé avec votre application web.- Type de données : texte
Collecte des commentaires des utilisateurs
Pour collecter les commentaires des utilisateurs, vous pouvez activer un ensemble d’icônes « pouce vers le haut » et « pouces vers le bas » qui s’affichent sur chacune des réponses du chatbot. Cela permet aux utilisateurs d’évaluer la qualité d’une réponse et d’indiquer où des erreurs se produisent à l’aide d’une fenêtre modale « fournir des commentaires négatifs ».
Pour activer cette fonctionnalité, définissez la variable d’environnement suivante sur True :
AZURE_COSMOSDB_ENABLE_FEEDBACK
: il s’agit du nom du compte Cosmos DB déployé avec votre application web.- Type de données : type de données : booléen, doit entrer True ou False
Cela peut être effectué à l’aide des options d’édition avancée ou de modification simples, comme expliqué précédemment. Le code JSON à coller dans l’éditeur JSON d’édition avancée est le suivant :
{
"name": "AZURE_COSMOSDB_ENABLE_FEEDBACK",
"value": "True",
"slotSetting": false
},
Connexion à Recherche Azure AI et téléchargement de fichiers en tant que source de données
Utilisation d’Azure AI Foundry
Suivez ce tutoriel sur l’intégration de Recherche Azure AI à AI Foundry et le redéploiement de votre application.
Utilisation d’Azure OpenAI Studio
Suivez ce tutoriel sur l’intégration de Recherche Azure AI à OpenAI Studio et redéployez votre application.
Utilisation de variables d’environnement
Pour vous connecter à Recherche Azure AI sans redéployer votre application, vous pouvez modifier les variables d’environnement obligatoires suivantes à l’aide de l’une des options de modification décrites précédemment.
DATASOURCE_TYPE
: détermine la source de données à utiliser lors de la réponse aux requêtes d’un utilisateur.- Type de données : texte. Doit être défini sur
AzureCognitiveSearch
(ancien nom pour Recherche Azure AI)
- Type de données : texte. Doit être défini sur
AZURE_SEARCH_SERVICE
: il s’agit du nom de votre instance Recherche Azure AI.- Type de données : texte
AZURE_SEARCH_INDEX
: il s’agit du nom de l’index de votre instance Recherche Azure AI.- Type de données : texte
AZURE_SEARCH_KEY
: il s’agit de la clé d’authentification de votre instance Recherche Azure AI. Facultatif si vous utilisez Microsoft Entra ID pour l’authentification.- Type de données : texte
Autres scénarios de personnalisation utilisant des variables d’environnement
AZURE_SEARCH_USE_SEMANTIC_SEARCH
: indique s’il faut utiliser la recherche sémantique dans Recherche Azure AI.- Type de données : booléen, doit être défini sur
False
si la recherche sémantique n’est pas utilisée.
- Type de données : booléen, doit être défini sur
AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG
: spécifie le nom de la configuration de recherche sémantique à utiliser si la recherche sémantique est activée.- Type de données : texte, valeur par défaut
azureml-default
.
- Type de données : texte, valeur par défaut
AZURE_SEARCH_INDEX_TOP_K
: définit le nombre de documents principaux à récupérer à partir de Recherche Azure AI.- Type de données : entier, doit être défini sur
5
.
- Type de données : entier, doit être défini sur
AZURE_SEARCH_ENABLE_IN_DOMAIN
: limite les réponses aux requêtes liées uniquement à vos données.- Type de données : booléen, doit être défini sur
True
.
- Type de données : booléen, doit être défini sur
AZURE_SEARCH_CONTENT_COLUMNS
: spécifie la liste des champs de votre index Recherche Azure AI qui contiennent le contenu texte de vos documents, utilisé lors de la formulation d’une réponse de bot.- Type de données : texte, la valeur par défaut est
content
si le déploiement est effectué à partir d’Azure AI Foundry ou d’Azure OpenAI Studio,
- Type de données : texte, la valeur par défaut est
AZURE_SEARCH_FILENAME_COLUMN
: spécifie le champ de votre index Recherche AZURE AI qui fournit un identificateur unique des données sources à afficher dans l’interface utilisateur.- Type de données : texte, la valeur par défaut est
filepath
si le déploiement est effectué à partir d’Azure AI Foundry ou d’Azure OpenAI Studio,
- Type de données : texte, la valeur par défaut est
AZURE_SEARCH_TITLE_COLUMN
: spécifie le champ de votre index Recherche Azure AI qui fournit un titre ou un en-tête approprié pour votre contenu de données à afficher dans l’interface utilisateur.- Type de données : texte, la valeur par défaut est
title
si le déploiement est effectué à partir d’Azure AI Foundry ou d’Azure OpenAI Studio,
- Type de données : texte, la valeur par défaut est
AZURE_SEARCH_URL_COLUMN
: spécifie le champ de votre index Recherche Azure AI qui contient une URL pour le document.- Type de données : texte, la valeur par défaut est
url
si le déploiement est effectué à partir d’Azure AI Foundry ou d’Azure OpenAI Studio,
- Type de données : texte, la valeur par défaut est
AZURE_SEARCH_VECTOR_COLUMNS
: spécifie la liste des champs de votre index Recherche Azure AI qui contiennent des incorporations vectorielles de vos documents, utilisées lors de la simulation d’une réponse de bot.- Type de données : texte, la valeur par défaut est
contentVector
si le déploiement est effectué à partir d’Azure AI Foundry ou d’Azure OpenAI Studio,
- Type de données : texte, la valeur par défaut est
AZURE_SEARCH_QUERY_TYPE
: spécifie le type de requête à utiliser :simple
,semantic
,vector
,vectorSimpleHybrid
ouvectorSemanticHybrid
. Ce paramètre est prioritaire surAZURE_SEARCH_USE_SEMANTIC_SEARCH
.- Type de données : texte, nous vous recommandons de tester avec
vectorSemanticHybrid
.
- Type de données : texte, nous vous recommandons de tester avec
AZURE_SEARCH_PERMITTED_GROUPS_COLUMN
: spécifie le champ de votre index Recherche Azure AI qui contient les ID de groupe Microsoft Entra, déterminant le contrôle d’accès au niveau du document.- Type de données : texte
AZURE_SEARCH_STRICTNESS
: spécifie le niveau de rigueur pour le modèle limitant les réponses à vos données.- Type de données : entier, doit être défini entre
1
et5
, avec3
recommandé.
- Type de données : entier, doit être défini entre
AZURE_OPENAI_EMBEDDING_NAME
: spécifie le nom du déploiement de votre modèle de déploiement si vous utilisez la recherche vectorielle.- Type de données : texte
Le code JSON à coller dans l’éditeur JSON d’édition avancée est le suivant :
{
"name": "AZURE_SEARCH_CONTENT_COLUMNS",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_ENABLE_IN_DOMAIN",
"value": "true",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_FILENAME_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_INDEX",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_KEY",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_PERMITTED_GROUPS_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_QUERY_TYPE",
"value": "vectorSemanticHybrid",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_SEMANTIC_SEARCH_CONFIG",
"value": "azureml-default",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_SERVICE",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_STRICTNESS",
"value": "3",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_TITLE_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_TOP_K",
"value": "5",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_URL_COLUMN",
"value": "",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_USE_SEMANTIC_SEARCH",
"value": "true",
"slotSetting": false
},
{
"name": "AZURE_SEARCH_VECTOR_COLUMNS",
"value": "contentVector",
"slotSetting": false
},
Connexion au flux d’invite en tant que source de données
Les flux d’invite vous permettent de définir une logique de traitement et de RAG hautement personnalisable sur les requêtes d’un utilisateur.
Création et déploiement de votre flux d’invite dans le portail Azure AI Foundry
Suivez ce tutoriel pour créer, tester et déployer un point de terminaison d’inférence pour votre flux d’invite dans le portail Azure AI Foundry.
Activer les citations sous-jacentes à partir de votre flux d’invite
Lors de la configuration de votre flux d’invite pour afficher des citations lors de l’intégration de cette application web, il doit retourner deux sorties clés : une appelée documents
(vos citations) et une appelée reply
(votre réponse en langage naturel).
documents
est un objet JSON, qui doit contenir les éléments suivants.citations
est une liste qui peut contenir plusieurs éléments suivant le même schéma. l’objetdocuments
doit être généré et rempli en fonction de votre modèle RAG sélectionné.
{
"citations": [
{
"content": "string",
"id": 12345,
"title": "string",
"filepath": "string",
"url": "string",
"metadata": "string",
"chunk_id": None,
"reindex_id": None,
"part_index": None
}
],
"intent": "Your_string_here"
}
reply
se compose d’une chaîne retournée qui représente le langage naturel final à une requête utilisateur donnée. Votrereply
doit contenir des références à chacun des documents (sources) au format suivant :[doc1], [doc2]
, etc. L’application web analysereply
et traite les références, en remplaçant toutes les instances de[doc1]
avec de petits indicateurs numériques exposants qui renvoient directement audocuments
ordonnés qui sont renvoyés. Par conséquent, vous devez inviter votre LLM qui génère le langage naturel final pour inclure ces références, qui doivent également être passées dans votre appel LLM pour vous assurer qu’elles s’alignent correctement. Par exemple :
system:
You are a helpful chat assistant that answers a user's question based on the information retrieved from a data source.
YOU MUST ALWAYS USE CITATIONS FOR ALL FACTUAL RESPONSES. YOU MUST INCLUDE CITATIONS IN YOUR ANSWER IN THE FORMAT [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
Provide sort and concise answers with details directly related to the query.
## Conversation history for context
{% for item in chat_history %}
user:
{{item.inputs.query}}
assistant:
{{item.outputs.reply}}
{% endfor %}
## Current question
user:
### HERE ARE SOME CITED SOURCE INFORMATION FROM A MOCKED API TO ASSIST WITH ANSWERING THE QUESTION BELOW. ANSWER ONLY BASED ON THE TRUTHS PRESENTED HERE.
{{your_input_name_for_documents}}
FOR EACH OF THE CITATIONS ABOVE, YOU MUST INCLUDE IN YOUR ANSWER [doc1], [doc2], ... AND SO FORTH WHEN YOU ARE USING INFORMATION RELATING TO SAID SOURCE. THIS MUST BE RETURNED IN YOUR ANSWER.
### HERE IS THE QUESTION TO ANSWER.
{{question}}
Configuration des variables d’environnement pour intégrer le flux d’invite
Les variables d’environnement à modifier sont les suivantes :
AZURE_OPENAI_STREAM
: détermine si la réponse est chargée dans un format de streaming (chargement incrémentiel). Cela n’est pas pris en charge pour le flux d’invite et doit donc être défini surFalse
pour utiliser cette fonctionnalité.- Type de données : booléen, défini sur
True
si le flux d’invite n’est pas utilisé,False
si vous utilisez le flux d’invite
- Type de données : booléen, défini sur
USE_PROMPTFLOW
: indique s’il faut utiliser un point de terminaison déployé de flux d’invite existant. Si la valeur est définie surTrue
, les deuxPROMPTFLOW_ENDPOINT
etPROMPTFLOW_API_KEY
doivent être définies.- Type de données : booléen, doit être défini sur
False
si le flux d’invite n’est pas utilisé.
- Type de données : booléen, doit être défini sur
PROMPTFLOW_ENDPOINT
: spécifie l’URL du point de terminaison de flux d’invite déployé.- Type de données : texte, par exemple
https://pf-deployment-name.region.inference.ml.azure.com/score
- Type de données : texte, par exemple
PROMPTFLOW_API_KEY
: clé d’authentification pour le point de terminaison de flux d’invite déployé. Remarque : seule l’authentification basée sur des clés est prise en charge.- Type de données : texte
PROMPTFLOW_RESPONSE_TIMEOUT
: définit la valeur de délai d’expiration en secondes pour que le point de terminaison de flux d’invite réponde.- Type de données : entier, doit être défini sur
120
.
- Type de données : entier, doit être défini sur
PROMPTFLOW_REQUEST_FIELD_NAME
: nom de champ par défaut pour construire la demande de flux d’invite. Remarque :chat_history
est automatiquement construite en fonction de l’interaction. Si votre API attend d’autres champs obligatoires, vous devez modifier les paramètres de la requête sous la fonctionpromptflow_request
.- Type de données : texte, doit être défini sur
query
.
- Type de données : texte, doit être défini sur
PROMPTFLOW_RESPONSE_FIELD_NAME
: nom de champ par défaut pour traiter la réponse de la demande de flux d’invite.- Type de données : texte, doit être défini sur
reply
.
- Type de données : texte, doit être défini sur
PROMPTFLOW_CITATIONS_FIELD_NAME
: nom de champ par défaut pour traiter la sortie des citations de la demande de flux d’invite.- Type de données : texte, doit être défini sur
documents
.
- Type de données : texte, doit être défini sur
Connexion à d’autres sources de données
D’autres sources de données sont prises en charge, notamment :
- Azure Cosmos DB
- Elasticsearch
- Azure SQL Server
- Pinecone
- Index Azure Machine Learning
Pour obtenir des instructions supplémentaires sur l’activation de ces sources de données, consultez le référentiel GitHub.
Mise à jour de l’application web pour inclure les dernières modifications
Remarque
Depuis le 1er février 2024, l’application web nécessite que la commande de démarrage de l’application soit définie sur python3 -m gunicorn app:app
. Lors de la mise à jour d’une application publiée avant le 1er février 2024, vous devez ajouter manuellement la commande de démarrage à partir de la page Configuration App Service.
Nous recommandons d’extraire fréquemment les modifications de code source de l’application web de la branche main
pour garantir que vous disposez des correctifs de bogues, des versions d’API et des améliorations les plus récents. En outre, l’application web doit être synchronisée chaque fois que la version d’API utilisée est mise hors service. Pensez à cliquer sur les boutons Horloge ou Étoile du référentiel GitHub de l’application web pour être informé des modifications et des mises à jour apportées au code source.
Si vous n’avez pas personnalisé l’application web, vous pouvez utiliser ces étapes pour la synchroniser :
Accédez à votre application web sur le Portail Azure.
Dans le menu de gauche, sous Déploiement, sélectionnez Centre de déploiement.
Sélectionnez Synchroniser en haut du volet, puis confirmez que l’application sera redéployée.
Si vous avez personnalisé ou modifié le code source de l’application, vous devez mettre à jour le code source de votre application manuellement et le redéployer :
- Si votre application est hébergée sur GitHub, envoyez (push) vos modifications de code sur votre référentiel, puis utilisez les étapes de synchronisation ci-dessous.
- Si vous redéployez l’application manuellement (par exemple, avec Azure CLI), suivez les étapes de votre stratégie de déploiement.
Supprimer votre instance Cosmos DB
La suppression de votre application Web ne supprime pas automatiquement votre instance Cosmos DB. Pour supprimer votre instance Cosmos DB, ainsi que toutes les conversations stockées, vous devez accéder à la ressource associée sur le Portail Azure et la supprimer. Si vous supprimez la ressource Cosmos DB mais que vous conservez l’option d’historique des discussions sélectionnée lors des mises à jour ultérieures d’Azure OpenAI Studio, l’application avertit l’utilisateur d’une erreur de connexion. Cependant, l'utilisateur peut continuer à utiliser l'application Web sans accès à l'historique des discussions.
Activation de l'authentification Microsoft Entra ID entre les services
Pour activer Microsoft Entra ID pour l’authentification intra-service pour votre application Web, procédez comme suit.
Activer l'identité gérée sur votre ressource Azure OpenAI et Azure App Service
Vous pouvez activer l’identité managée pour la ressource Azure OpenAI et Azure App Service en accédant à « Identité » et en activant l’identité managée attribuée par le système dans le Portail Microsoft Azure pour chaque ressource.
Remarque
Si vous utilisez un modèle d’intégration déployé sur la même ressource utilisée pour l’inférence, vous n’avez besoin d’activer l’identité managée que sur une seule ressource Azure OpenAI. Si vous utilisez un modèle d’intégration déployé sur une ressource différente de celle utilisée pour l’inférence, vous devez également activer l’identité managée sur la ressource Azure OpenAI utilisée pour déployer votre modèle d’intégration.
Activer le contrôle d'accès basé sur les rôles (RBAC) sur votre ressource Azure Search (facultatif)
Si vous utilisez On Your Data avec Azure Search, vous devez suivre cette étape.
Pour permettre à votre ressource Azure OpenAI d’accéder à votre ressource Azure Search, vous devez activer le contrôle d’accès basé sur les rôles sur votre ressource Azure Search. En savoir plus sur l’activation des rôles RBAC pour vos ressources.
Attribuer des rôles RBAC pour permettre la communication intra-service
Le tableau suivant résume les attributions de rôles RBAC nécessaires pour toutes les ressources Azure associées à votre application.
Rôle | Destinataire | Ressource |
---|---|---|
Search Index Data Reader |
Azure OpenAI (inférence) | Recherche Azure AI |
Search Service Contributor |
Azure OpenAI (inférence) | Recherche Azure AI |
Cognitive Services OpenAI User |
Application web | Azure OpenAI (inférence) |
Cognitive Services OpenAI User |
Azure OpenAI (inférence) | Azure OpenAI (Incorporations) |
Pour attribuer ces rôles, suivez ces instructions pour créer les attributions de rôles nécessaires.
Modifications des paramètres de l'application
Dans les paramètres de l'application Web, accédez à « Variables d'environnement » et apportez les modifications suivantes :
- Supprimez la variable d’environnement
AZURE_OPENAI_KEY
, car elle n’est plus nécessaire. - Si vous utilisez On Your Data avec Azure Search et que vous utilisez l’authentification Microsoft Entra ID entre Azure OpenAI et Azure Search, vous devez également supprimer les variables d’environnement
AZURE_SEARCH_KEY
pour les clés d’accès à la source de données.
Si vous utilisez un modèle d'intégration déployé sur la même ressource que votre modèle utilisé pour l'inférence, aucune autre modification de paramètres n'est requise.
Toutefois, si vous utilisez un modèle d'intégration déployé sur une ressource différente, apportez les modifications supplémentaires suivantes aux variables d'environnement de votre application :
- Définissez la variable
AZURE_OPENAI_EMBEDDING_ENDPOINT
sur le chemin d'accès complet de l'API d'intégration pour la ressource que vous utilisez pour les intégrations, par exemple,https://<your embedding AOAI resource name>.openai.azure.com/openai/deployments/<your embedding deployment name>/embeddings
- Supprimez la variable
AZURE_OPENAI_EMBEDDING_KEY
pour utiliser l’authentification Microsoft Entra ID.
Une fois toutes les modifications des variables d’environnement terminées, redémarrez l’application Web pour commencer à utiliser l’authentification Microsoft Entra ID entre les services de l’application Web. Il faudra quelques minutes après le redémarrage pour que les modifications des paramètres prennent effet.