Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Créer des agents IA conversationnels avec Azure AI Foundry

By David SpenardSep 23, 202510 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Photo de Wanan Wanan sur Shutterstock

**Introduction**

Azure AI Foundry de Microsoft simplifie le développement de l'IA grâce à une plateforme unifiée pour concevoir, déployer et gérer des applications intelligentes. C'est votre hub de développement IA : modèles de langage, gestion des données et outils de déploiement réunis dans un seul environnement. La plateforme masque la complexité du développement de l'IA tout en préservant la flexibilité dont les développeurs ont besoin pour bâtir des solutions sophistiquées.

Nous commencerons par une interaction de chat simple afin de comprendre les capacités conversationnelles fondamentales d'un grand modèle de langage. Nous explorerons ensuite Azure AI Foundry Agent Service, qui permet de créer des agents spécialisés capables de traiter des tâches précises, de conserver le contexte de la conversation et de se connecter à des sources de données externes.

Je vous montrerai comment créer rapidement un agent de base reposant uniquement sur ses données d'entraînement, puis une version enrichie intégrant des sources de connaissances additionnelles pour des réponses plus précises. Pour finir, nous présenterons un exemple concret de code Python qui illustre comment intégrer ces agents directement dans vos applications, pour des solutions intelligentes et scalables.

Écosystème Azure AI Foundry

Composants d'un agent IA

**Portail Azure**

Pour cet exemple, nous allons procéder à une configuration standard d'Azure AI Foundry et d'un Agent Service via le portail Azure. Les prérequis se résument à quelques permissions à obtenir une fois votre abonnement Azure activé.

  • Disposer d'un abonnement Azure ; vous pouvez commencer gratuitement.
  • Vérifier que vous disposez des rôles Azure AI Account Owner et Azure AI Project Manager au niveau de l'abonnement.
  • Si vous configurez une configuration standard Azure AI Foundry, assurez-vous d'avoir les permissions nécessaires pour attribuer des rôles aux ressources requises (Cosmos DB, Azure AI Search, Azure Blob Storage). Pour en savoir plus sur les rôles RBAC propres à Azure AI Foundry Agent Service, consultez Azure AI Foundry Agent Service RBAC roles. Le rôle intégré requis est Role Based Access Administrator, qui apporte la permission clé Microsoft.Authorization/roleAssignments/write
  • Si vous rencontrez des erreurs concernant des enregistrements manquants ou des fournisseurs non enregistrés, vous devez enregistrer le fournisseur mentionné dans le message d'erreur.

Déployer le projet et l'agent IA de base

Utilisez ce modèle de déploiement personnalisé pour provisionner le projet Azure AI Foundry et l'agent nécessaires.

https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure-ai-foundry%2Ffoundry-samples%2Frefs%2Fheads%2Fmain%2Fsamples%2Fmicrosoft%2Finfrastructure-setup%2F40-basic-agent-setup%2Fbasic-setup.json

Le lien s'ouvre dans le portail Azure et crée un projet Azure AI Foundry dans lequel vous travaillez en environnement isolé pour explorer rapidement vos idées d'IA, prototyper, et bien plus encore.

Sélectionnez l'abonnement et le groupe de ressources, renseignez les autres champs (dont la localisation) et laissez tels quels tous les champs liés au modèle. Cela fournit les informations nécessaires à la création du projet et au déploiement d'un modèle GPT-4o.

Cliquez sur le bouton *Vérifier + créer* pour déployer le modèle. L'opération prend quelques minutes.

Formulaire du modèle de déploiement pour créer les ressources Azure AI Foundry

Une fois le déploiement terminé, cliquez sur *Accéder au groupe de ressources* pour visualiser les ressources créées.

Groupe de ressources affichant le projet déployé

En cliquant sur le lien du projet, vous accédez au portail Azure AI Foundry.

Lien pour accéder au projet

Portail Azure AI Foundry

Discuter avec le modèle

Une fois dans le portail Azure AI Foundry, si la page d'accueil ne vous redirige pas directement vers le Playground de votre projet, sélectionnez le nom du projet sur la page principale, puis cliquez sur Playgrounds. Le déploiement gpt-4o est sélectionné automatiquement et vous pouvez commencer à dialoguer avec le modèle. Essayez quelques prompts pour voir le résultat. N'hésitez pas à tester différentes instructions, à restreindre les réponses à un sujet précis ou à ajouter une source de données pour enrichir le modèle avec vos propres informations.

Par exemple, j'ai demandé au modèle de ne répondre qu'à des questions sur les tremblements de terre, puis je lui ai demandé une recette.

Playground de chat avec exemples d'instructions au modèle

Déployer le chatbot en application web

Une fonctionnalité intéressante est la possibilité de déployer un simple chatbot sous forme d'application web. Le déploiement prend plusieurs minutes ; il suffit ensuite de cliquer sur le lien pour ouvrir l'application web et l'essayer. Notez qu'il reste beaucoup à faire pour rendre une telle application réellement adaptée à la production, mais cela démontre à quel point il est facile de créer une application web de chat basique.

À côté du bouton *View code* en haut de l'interface du Chat playground, sélectionnez *Deploy as web app*.

Déployer le chatbot en application web

Pour lancer l'application web après son déploiement, rendez-vous dans *My assets/Web apps* et cliquez sur le lien de l'application web déployée.

Lancer l'application web

Vous remarquerez dans le Chat playground que les instructions transmises au modèle limitent ses réponses aux questions sur les tremblements de terre. Comme on le voit dans l'interface de chat de l'application web, le modèle a refusé de raconter une blague mais a bien répondu à une question sur un séisme. Toutefois, le modèle a été entraîné sur des données allant jusqu'à octobre 2023 uniquement. Dans la section suivante, je vous montrerai comment enrichir le modèle avec une source de données personnalisée, sans aucun réentraînement.

Exemple d'application web de chatbot

Utiliser un agent pour dialoguer avec le modèle

Créer un agent simple

Maintenant que vous comprenez bien le fonctionnement du dialogue avec un modèle, allons plus loin avec un agent qui encapsule cette fonctionnalité. Nous enrichirons ensuite les connaissances du modèle avec une source de données personnalisée, puis nous appellerons cet agent depuis un exemple Python simple.

Sélectionnez *Agents/New Agent* pour créer un nouvel agent. Donnez-lui un nom et un ensemble d'instructions. Ces instructions sont obligatoires et doivent décrire précisément ce que l'agent doit faire ; ici, il s'agira d'un agent qui répond exclusivement aux questions sur les tremblements de terre. Vous pouvez conserver gpt-4o comme déploiement par défaut, ainsi que les valeurs par défaut de Temperature et Top P. Les modifications de la configuration de l'agent sont enregistrées automatiquement.

Configuration de l'agent pour discuter de tremblements de terre

En cliquant sur le bouton *Try in playground*, vous pouvez tester l'agent comme vous dialoguiez précédemment directement avec le modèle.

Enrichir l'agent avec des connaissances supplémentaires

Azure AI Foundry propose plusieurs options pour intégrer des données personnalisées à vos applications et services IA. Cela dépasse le cadre de cet article, mais davantage d'informations sont disponibles ici.

À titre d'exemple simple, je vais ajouter un fichier PDF comme source de données pour enrichir mon agent de connaissances supplémentaires sur les tremblements de terre. J'ai téléchargé une copie PDF de la page Wikipédia consacrée au séisme de la péninsule du Kamtchatka en 2025, que vous pouvez télécharger ici si vous souhaitez suivre l'exemple et l'utiliser avec votre agent.

Une fois le PDF en main, cliquez sur le bouton *+Add* de la section Knowledge dans la configuration de l'agent, puis sélectionnez *Files* pour téléverser le fichier. Vous pouvez conserver les valeurs par défaut pour créer un nouveau vector store, puis cliquer sur *Upload and save*.

Fichier PDF téléversé pour enrichir l'agent de connaissances supplémentaires sur les séismes

En cliquant à nouveau sur *Try in playground*, vous pouvez cette fois interroger l'agent sur le séisme de juillet 2025.

Discussion avec l'agent après ajout d'une source de données

Exemple Python pour appeler l'agent

Maintenant que vous comprenez bien le fonctionnement d'un agent de base dans Azure AI Foundry, essayons un peu de code Python pour appeler directement le endpoint du modèle. Mais d'abord, récupérez le endpoint du projet Azure AI Foundry depuis la page Overview, ainsi que l'Agent ID depuis la page de l'agent.

Page Overview affichant le endpoint du projet Azure AI Foundry

Page de l'agent affichant l'Agent ID

Copiez ce code source en local dans un fichier nommé agent_earthquake_chat.py. C'est un exemple Python simple et un peu fantaisiste, qui n'est en aucun cas adapté à un usage en production :)

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder

import os

endpoint = os.getenv("AZURE_FOUNDRY_ENDPOINT")
agent_id = os.getenv("AZURE_FOUNDRY_AGENT_ID")

if not endpoint or not agent_id:
    raise EnvironmentError("AZURE_FOUNDRY_ENDPOINT and AZURE_FOUNDRY_AGENT_ID must be set in your environment.")

project = AIProjectClient(
    credential=DefaultAzureCredential(),
    endpoint=endpoint)

agent = project.agents.get_agent(agent_id)

thread = project.agents.threads.create()
print(f"Created agent thread, ID: {thread.id}")
print("Type 'quit' to exit the chat.")

# Initial message
message = project.agents.messages.create(
    thread_id=thread.id,
    role="user",
    content="Hi Agent"
)

run = project.agents.runs.create_and_process(
    thread_id=thread.id,
    agent_id=agent.id)

if run.status == "failed":
    print(f"Run failed: {run.last_error}")
else:
    messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
    for message in messages:
        if message.text_messages:
            print(f"{message.role}: {message.text_messages[-1].text.value}")

# Chat loop
while True:
    user_input = input("You: ").strip()
    if user_input.lower() == "quit":
        print("Conversation ended. See you next time.")
        break

    # Add user message
    project.agents.messages.create(
        thread_id=thread.id,
        role="user",
        content=user_input
    )

    # Run agent again
    run = project.agents.runs.create_and_process(
        thread_id=thread.id,
        agent_id=agent.id)

    if run.status == "failed":
        print(f"Run failed: {run.last_error}")
        continue

    # Display latest response
    messages = list(project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING))
    for message in reversed(messages):
        if message.role == "assistant" and message.text_messages:
            print(f"Agent: {message.text_messages[-1].text.value}\n")
            break

Voici, étape par étape, les instructions et commandes pour exécuter votre script dans un environnement Python isolé, sans aucune dépendance aux packages globaux.

  1. Depuis le même dossier que le code source téléchargé, créez un environnement Python virtuel :
python3 -m venv foundry-env

2. Activez l'environnement :

source foundry-env/bin/activate

3. Mettez à jour pip (recommandé) :

pip install --upgrade pip

4. Installez les dépendances Azure requises :

pip install azure-ai-projects azure-identity

5. Définissez les variables d'environnement de l'agent Azure AI Foundry avec vos propres valeurs :

export AZURE_FOUNDRY_ENDPOINT="https://foundryyizp.services.ai.azure.com/api/projects/foundry-demo-project"
export AZURE_FOUNDRY_AGENT_ID="asst_ABCfRyUC7X4AenJN3wyRY7AJ"

6. Exécutez votre script :

python agent_earthquake_chat.py

Exemple de discussion via Python

(foundry-env) david@Mac azure-ai-foundry % python agent_earthquake_chat.py
Created agent thread, ID: thread_Y9FxpLWwVELeY3wlNoE1K6ez
Type 'quit' to exit the chat.
MessageRole.USER: Hi Agent
MessageRole.AGENT: Hello! How can I assist you with earthquake-related information today?
You: What is Azure AI Foundry?
Agent: I'm here to assist with earthquake-related information only. Let me know if you have any questions about earthquakes!

You: What was the tsunami impact of the July 2025 earthquake not far from Russia?
Agent: The July 2025 earthquake off the coast of Kamchatka, Russia, had widespread tsunami impacts. Tsunami waves reached heights of up to 15 meters in some Russian regions, causing local panic and destruction, particularly in Severo-Kurilsk, Komandorsky Islands, and nearby areas. Coastal regions as far as Hawaii, Alaska, and Japan observed increased wave activity, with localized alerts issued in the Pacific Rim. Evacuations were prompted in Japan and parts of the United States due to concerns of waves exceeding several meters in height【8:0†source】【8:1†source】【8:19†source】.

You: Give me 10 bullet points explaining what happens when an earthquake occurs.
Agent: Here are 10 key points explaining what happens during an earthquake:

1. **Rupture at Fault Line**: Earthquakes begin when stress in Earth's crust surpasses the strength of the rocks, causing a sudden rupture along fault lines.

2. **Release of Energy**: This rupture releases a burst of energy in the form of seismic waves, propagating through the Earth.

3. **Seismic Waves Propagate**:
   - *Primary Waves (P-Waves)*: Travel fastest and move through solids, liquids, and gases.
   - *Secondary Waves (S-Waves)*: Slower than P-waves and cannot travel through liquids.

4. **Ground Shaking**: These seismic waves cause the ground to shake, with the intensity depending on the earthquake's magnitude and depth.

5. **Surface Displacement**: In some cases, visible breaks or shifts appear at the Earth's surface along the fault line.

6. **Aftershocks**: Smaller earthquakes occur as the crust adjusts to the changes caused by the mainquake.

7. **Tsunamis** (if under ocean): Submarine earthquakes displace water, potentially generating tsunamis that radiate outward.

8. **Landslides and Liquefaction**: Ground disturbances can lead to landslides or liquefaction of soils, which compromise stability in affected areas.

9. **Damage and Destruction**: Seismic activity damages buildings, infrastructure, and natural landscapes, depending on proximity and construction standards.

10. **Human Response and Resilience**: People respond with evacuations, rescue operations, and rebuilding efforts, adapting to the earthquake's aftermath.

Let me know if you'd like details on any specific aspect!

You: quit
Conversation ended. See you next time!

Nettoyer les ressources Azure

Le coût des ressources créées dans cet exercice reste très limité, comptez tout de même 1 à 2 $. Après avoir créé le projet et expérimenté plusieurs dizaines de prompts via le chat playground et l'exemple Python, mes coûts sont restés sous la barre des 3 $.

Pour supprimer toutes les ressources Azure utilisées durant l'exercice, Azure simplifie grandement la tâche. Retournez sur le portail Azure, accédez à Resource groups, sélectionnez le groupe de ressources créé pour cet exercice, puis cliquez sur *Delete resource group* pour le supprimer.

Suppression du groupe de ressources dans le portail Azure

Nous sommes passés d'une simple interaction de chat à la création d'un agent spécialisé enrichi par l'intégration de connaissances externes, pour conclure avec un exemple Python concret prêt à l'emploi. Azure AI Foundry comble efficacement le fossé entre la complexité de l'IA et l'accessibilité pour les développeurs : la plateforme fournit les outils nécessaires pour bâtir des applications intelligentes, sophistiquées et scalables, sans se laisser submerger par les subtilités techniques. Azure AI Foundry recèle bien plus de possibilités que ce que j'ai abordé ici, et j'espère que cet aperçu de ses capacités vous donnera la matière et l'envie de créer de superbes applications dopées à l'IA avec Azure.

Qu'il s'agisse d'IA générative et de machine learning, d'optimisation des coûts et d'automatisation de l'infrastructure, ou encore de durcissement de la sécurité et de conception d'architectures cloud, DoiT International apporte une expertise approfondie sur de nombreux domaines du cloud. Pour découvrir comment DoiT peut vous accompagner dans la mise en œuvre de l'IA et la modernisation d'autres pans de votre infrastructure cloud, n'hésitez pas à nous contacter pour en savoir plus sur nos solutions d'ingénierie cloud.