#
Création de l’agent pour le gala

Maintenant que nous avons construit tous les composants nécessaires pour Alfred, il est temps de tout rassembler en un agent complet qui peut aider à organiser notre gala.

Dans cette section, nous allons combiner les outils de récupération d’informations sur les invités, de recherche web, d’informations météorologiques et de statistiques du Hub en un seul agent puissant.

##
Assemblage d’Alfred : l’agent complet

Au lieu de réimplémenter tous les outils que nous avons créés dans les sections précédentes, nous les importerons à partir de leurs modules respectifs que nous avons sauvegardés dans les fichiers `tools.py` et `retriever.py`.

Si vous n'avez pas encore implémenté les outils, retournez aux sections outils et récupérateur pour les implémenter, et ajoutez-les aux fichiers `tools.py` et `retriever.py`.

Importons les bibliothèques nécessaires et les outils des sections précédentes :

smolagents
llama-index
langgraph

    # Importer les bibliothèques nécessaires
    import random
    from smolagents import CodeAgent, InferenceClientModel

    # Importer nos outils personnalisés de leurs modules
    from tools import DuckDuckGoSearchTool, WeatherInfoTool, HubStatsTool
    from retriever import load_guest_dataset

Maintenant, combinons tous ces outils en un seul agent :

    # Initialiser le modèle Hugging Face
    model = InferenceClientModel()

    # Initialiser l'outil de recherche web
    search_tool = DuckDuckGoSearchTool()

    # Initialiser l'outil météorologique
    weather_info_tool = WeatherInfoTool()

    # Initialiser l'outil de statistiques Hub
    hub_stats_tool = HubStatsTool()

    # Charger le jeu de données des invités et initialiser l'outil d'informations sur les invités
    guest_info_tool = load_guest_dataset()

    # Créer Alfred avec tous les outils
    alfred = CodeAgent(
        tools=[guest_info_tool, weather_info_tool, hub_stats_tool, search_tool],
        model=model,
        add_base_tools=True,  # Ajouter tous les outils de base supplémentaires
        planning_interval=3   # Activer la planification toutes les 3 étapes
    )

Votre agent est maintenant prêt à être utilisé !

##
Utilisation d’Alfred : exemples de bout en bout

Maintenant qu’Alfred est entièrement équipé de tous les outils nécessaires, voyons comment il peut aider avec diverses tâches pendant le gala.

###
Exemple 1 : trouver des informations sur les invités

Voyons comment Alfred peut nous aider avec nos informations sur les invités.

smolagents
llama-index
langgraph

    query = "Parle-moi de Lady Ada Lovelace"
    response = alfred.run(query)

    print("🎩 Réponse d'Alfred :")
    print(response)

Sortie attendue :

    🎩 Réponse d'Alfred :
    Basé sur les informations que j'ai récupérées, Lady Ada Lovelace est une mathématicienne estimée et une amie. Elle est renommée pour son travail pionnier en mathématiques et en informatique, souvent célébrée comme la première programmeuse informatique en raison de son travail sur la machine analytique de Charles Babbage. Son adresse email est ada.lovelace@example.com.

###
Exemple 2 : Vérifier la météo pour le feu d’artifice

Voyons comment Alfred peut nous aider avec la météo.

smolagents
llama-index
langgraph

    query = "Quel temps fait-il à Paris ce soir ? Sera-t-il approprié pour notre spectacle pyrotechnique ?"
    response = alfred.run(query)

    print("🎩 Réponse d'Alfred :")
    print(response)

Sortie attendue (variera en raison du caractère aléatoire) :

    🎩 Réponse d'Alfred :
    J'ai vérifié la météo à Paris pour vous. Actuellement, il fait clair avec une température de 25°C. Ces conditions sont parfaites pour le spectacle de feux d'artifice ce soir. Le ciel clair offrira une excellente visibilité pour le spectacle spectaculaire, et la température confortable s'assurera que les invités peuvent profiter de l'événement en plein air sans inconfort.

###
Exemple 3 : impressionner les chercheurs en IA

Voyons comment Alfred peut nous aider à impressionner les chercheurs en IA.

smolagents
llama-index
langgraph

    query = "Un de nos invités vient de Qwen. Que peux-tu me dire sur leur modèle le plus populaire ?"
    response = alfred.run(query)

    print("🎩 Réponse d'Alfred :")
    print(response)

Sortie attendue :

    🎩 Réponse d'Alfred :
    Le modèle Qwen le plus populaire est Qwen/Qwen2.5-VL-7B-Instruct avec 3 313 345 téléchargements.

###
Exemple 4 : combiner plusieurs outils

Voyons comment Alfred peut nous aider à préparer une conversation avec le Dr. Nikola Tesla.

smolagents
llama-index
langgraph

    query = "J'ai besoin de parler avec le Dr. Nikola Tesla des avancées récentes en énergie sans fil. Peux-tu m'aider à préparer cette conversation ?"
    response = alfred.run(query)

    print("🎩 Réponse d'Alfred :")
    print(response)

Sortie attendue :

    🎩 Réponse d'Alfred :
    J'ai rassemblé des informations pour vous aider à préparer votre conversation avec le Dr. Nikola Tesla.

    Informations sur l'invité :
    Nom : Dr. Nikola Tesla
    Relation : vieil ami de la période à l'université
    Description : Le Dr. Nikola Tesla est un vieil ami de votre période à l'université. Il vient récemment de breveter un nouveau système de transmission d'énergie sans fil et serait ravi d'en discuter avec vous. N'oubliez pas qu'il est passionné par les pigeons, donc cela pourrait faire une bonne conversation.
    Email : nikola.tesla@gmail.com

    Avancées récentes en énergie sans fil :
    Basé sur ma recherche web, voici quelques développements récents en transmission d'énergie sans fil :
    1. Les chercheurs ont fait des progrès dans la transmission d'énergie sans fil à longue portée utilisant des ondes électromagnétiques focalisées
    2. Plusieurs entreprises développent des technologies de couplage inductif résonnant pour l'électronique grand public
    3. Il y a de nouvelles applications dans la recharge de véhicules électriques sans connexions physiques

    Amorces de conversation :
    1. "J'adorerais entendre parler de votre nouveau brevet sur la transmission d'énergie sans fil. Comment se compare-t-il à vos concepts originaux de votre période à l'université ?"
    2. "Avez-vous vu les développements récents en couplage inductif résonnant pour l'électronique grand public ? Que pensez-vous de leur approche ?"
    3. "Comment vont vos pigeons ? Je me souviens de votre fascination pour eux."

    Cela devrait vous donner de quoi discuter avec le Dr. Tesla tout en démontrant votre connaissance de ses intérêts et des développements récents dans son domaine.

##
Fonctionnalités avancées : une mémoire de la conversation

Pour rendre Alfred encore plus utile pendant le gala, nous pouvons activer une mémoire de la conversation pour qu’il se souvienne des interactions précédentes :

smolagents
llama-index
langgraph

    # Créer Alfred avec une mémoire de la conversation
    alfred_with_memory = CodeAgent(
        tools=[guest_info_tool, weather_info_tool, hub_stats_tool, search_tool],
        model=model,
        add_base_tools=True,
        planning_interval=3
    )

    # Première interaction
    response1 = alfred_with_memory.run("Parle-moi de Lady Ada Lovelace.")
    print("🎩 Première réponse d'Alfred :")
    print(response1)

    # Deuxième interaction (faisant référence à la première)
    response2 = alfred_with_memory.run("Sur quels projets travaille-t-elle actuellement ?", reset=False)
    print("🎩 Deuxième réponse d'Alfred :")
    print(response2)

Remarquez qu’aucune de ces trois approches ne couple directement la mémoire avec l’agent. Y a-t-il une raison spécifique pour ce choix de conception 🧐 ?

- smolagents : La mémoire n’est pas préservée entre différentes exécutions, vous devez explicitement la déclarer en utilisant `reset=False`.
- LlamaIndex : Nécessite d’ajouter explicitement un objet de contexte pour la gestion de la mémoire au sein d’une exécution.
- LangGraph : Offre des options pour récupérer les messages précédents ou utiliser un composant MemorySaver dédié.

##
Conclusion

Félicitations ! Vous avez réussi à construire Alfred, un agent sophistiqué équipé de plusieurs outils pour aider à organiser le gala le plus extravagant du siècle. Il peut maintenant :

1. Récupérer des informations détaillées sur les invités
2. Vérifier les conditions météorologiques pour planifier les activités en plein air
3. Fournir des informations sur les constructeurs d’IA influents et leurs modèles
4. Rechercher sur le web les dernières informations
5. Maintenir le contexte de conversation avec la mémoire

Avec ces capacités, Alfred est prêt à s’assurer que votre gala soit un succès retentissant, impressionnant les invités avec une attention personnalisée et des informations à jour.

< > Update on GitHub