Accéder au contenu principal

Créer un modèle GPT avec des capacités de navigation grâce aux outils LangChain

Un tutoriel pour intégrer Google SERP, DuckDuckGo, Wikipedia et YouTube dans des modèles GPT avec Python et les outils LangChain.
Actualisé 19 sept. 2026  · 14 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Parmi les nouveautés que j’apprécie dans ChatGPT, il y a sa capacité à parcourir le web pour répondre aux demandes lorsque des informations supplémentaires sont nécessaires. Néanmoins, j’ai rencontré deux limites jusqu’à présent :

  1. Les capacités de navigation ne sont disponibles que pour les utilisateurs de ChatGPT Plus.
  2. On peut y accéder via l’interface utilisateur, mais pas lors de l’interaction avec le modèle via l’API.

Il se trouve que LangChain a répondu à ces enjeux en lançant les LangChain Tools !

Dans ce tutoriel, nous allons apprendre à utiliser les LangChain Tools pour créer notre propre modèle GPT doté de capacités de navigation. Par capacités de navigation, on entend permettre au modèle de consulter des sources externes pour enrichir sa base de connaissances et répondre aux demandes des utilisateurs plus efficacement que s’il s’appuyait uniquement sur ses connaissances internes.

Et le meilleur dans tout ça ? Les LangChain Tools s’intègrent parfaitement à Python et à l’API d’OpenAI !

C’est parti !

Systèmes multi-agents avec LangGraph

Construisez des systèmes multi-agents puissants en appliquant les nouveaux modèles de conception agentique dans le cadre de LangGraph.
Cours D'exploration

Périmètre et objectifs

Cet article couvre les bases des LangChain Tools et leur utilisation en Python. Nous travaillerons dans un Jupyter Notebook avec les bibliothèques openai et langchain installées. Si vous souhaitez d’abord découvrir le framework LangChain, je vous recommande vivement l’article Introduction to LangChain for Data Engineering & Data Applications.

Dans ce tutoriel, nous allons utiliser quatre LangChain Tools existants pour offrir au modèle GPT par défaut un éventail de sources externes à consulter lors du traitement des demandes. Nous explorerons notamment des outils qui s’appuient sur :

  • Deux moteurs de recherche reconnus : Google SERP et DuckDuckGo.
  • Wikipedia en tant que base de connaissances complète et largement reconnue.
  • YouTube pour permettre au modèle de proposer des vidéos.

Une fois ces outils configurés, vous saurez en pratique utiliser n’importe quel LangChain Tool et les combiner dans une boîte à outils afin d’offrir des capacités de navigation au modèle.

Introduction aux LangChain Tools

Comme évoqué en introduction, les LangChain Tools peuvent enrichir les capacités d’un modèle en l’autorisant à consulter des sources externes lorsqu’il répond à une requête. Ces outils sont au cœur d’une technique de prompting appelée ReAct. ReAct, pour Reasoning and Acting (raisonner et agir), décompose le traitement du modèle en deux étapes :

  1. Étape de raisonnement : le modèle détermine la meilleure stratégie pour produire une réponse.
  2. Étape d’action : le modèle exécute le plan établi à l’étape précédente pour obtenir la réponse.

Ce processus produit des traces de raisonnement qui guident le modèle vers la bonne réponse. Cette technique améliore la précision et la fiabilité des grands modèles de langage (LLM), en particulier pour les tâches riches en connaissances et d’aide à la décision. Cela tient en partie au fait qu’elle offre au modèle plus de temps pour 'penser'.

Les LangChain Tools renforcent encore ReAct en apportant des sources d’information complémentaires. Dans notre approche, l’étape de raisonnement consiste à faire choisir par le modèle l’outil le plus pertinent selon la requête. Ensuite, l’étape d’action permet d’interfacer le modèle avec la source externe choisie pour collecter des informations supplémentaires.

Si vous souhaitez une introduction approfondie à ReAct avec LangChain, l’article ChatGPT ReAct Prompting est fait pour vous !

Éléments LangChain pour le prompting ReAct

Deux éléments du framework LangChain sont essentiels pour appliquer cette technique : les agents et les outils.

Les agents sont les entités chargées d’exécuter les étapes de raisonnement et d’action. Ils renvoient les résultats au modèle, permettant au LLM de générer une réponse en langue naturelle enrichie d’informations additionnelles. Il existe plusieurs types d’agents, adaptés aux différentes tâches que vous souhaitez confier au LLM. Un panorama détaillé est disponible dans la documentation officielle LangChain sur les Agents.

Les outils ont déjà occupé une bonne partie de notre discussion. Techniquement, ce sont des fonctions qu’un agent peut appeler. LangChain propose un large éventail d’outils : utilitaires Google (Search, Drive, Scholar), recherche Wikipedia, base ArXiV, extension shell, plugins ChatGPT natifs, etc. Dans cet article, nous en découvrirons quatre. Consultez la liste complète des outils dans la documentation officielle.

Prise en main des LangChain Tools

Passons à la pratique !

Configuration de l’environnement OpenAI

Comme pour tout projet exploitant des modèles GPT, la première étape consiste à charger la clé d’API OpenAI dans l’environnement. Pour cela, nous utiliserons les modules os et openai.

import openai
import os

os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

Si vous n’avez pas encore de clé d’API OpenAI, cet article, A Beginner’s Guide to the OpenAI API, est pour vous !

Puisque nous utiliserons le framework LangChain, nous chargerons aussi le modèle gpt depuis la bibliothèque langchain :

from langchain.llms.openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo")

Ici, nous utilisons le modèle gpt-3.5-turbo comme option sans surcoût, mais libre à vous d’employer tout autre modèle.

Dans la section suivante, nous allons configurer notre premier outil avec l’exemple de DuckDuckGo. Vous verrez que tous les outils suivent les mêmes étapes de mise en place !

Configurer notre premier LangChain Tool : DuckDuckGo

DuckDuckGo est un moteur de recherche qui met l’accent sur la protection de la vie privée. Contrairement à d’autres moteurs, il ne trace pas l’historique de recherche de ses utilisateurs et ne constitue donc pas de profil personnel.

Il dispose d’une bibliothèque Python à installer pour l’utiliser. Installation via pip :

!pip install duckduckgo-search

Nous devons également importer l’outil DuckDuckGo depuis la bibliothèque langchain :

from langchain.tools import DuckDuckGoSearchRun

ddg_search = DuckDuckGoSearchRun()

La méthode DuckDuckGoSearchRun() permet déjà de parcourir le web sans interagir avec un LLM. Voyons un exemple simple :

Capture d’écran de l’exécution de ddg_search.run() pour parcourir le web avec DuckDuckGo

Capture d’écran de l’exécution de ddg_search.run() pour parcourir le web avec DuckDuckGo

L’idée des outils est d’intégrer cette capacité de navigation dans un LLM afin d’obtenir une réponse cohérente en langue naturelle plutôt qu’une information brute. Pour cela, nous allons encapsuler cette méthode dans une instance de la classe Tool de langchain comme suit :

from langchain.agents import Tool

tools = [
   Tool(
       name="DuckDuckGo Search",
       func=ddg_search.run,
       description="Useful to browse information from the Internet.",
   )
]

Chaque outil a besoin d’un nom (name) utilisé par l’agent LangChain pour s’y référer, d’une fonction (func) que l’agent peut exécuter pour interroger la source externe (ddg_search.run ci-dessus) et d’une description (description) qui indique à l’agent quand l’utiliser.

Pour cet exemple, nous avons choisi la description : "Useful to browse information from the Internet". D’autres paramètres optionnels permettent d’affiner le comportement selon vos besoins.

Explorer d’autres outils de navigation

Maintenant que nous avons configuré un premier outil, la suite est très simple puisqu’ils suivent tous la même structure.

Outil Google Serper

Google Serper est une API Google Search à faible coût qui nous permet de parcourir le web, comme DuckDuckGo.

Pour cet outil, il faut une clé d’API que l’on obtient en créant un compte gratuit sur https://serper.dev/.

Capture d’écran de la page principale de l’API Google Serper

Capture d’écran de la page principale de l’API Google Serper.

Une fois connecté à Serper, vous verrez l’option de clé d’API dans le panneau latéral gauche :

Capture d’écran d’une page de compte sur l’API Google Serper

Capture d’écran d’une page de compte sur l’API Google Serper. Option de clé d’API dans le panneau de gauche.

En cliquant, vous obtiendrez la clé d’API à copier et à intégrer facilement dans vos scripts Python :

Capture d’écran de la génération de la clé API sur la page Google Serper

Capture d’écran de la génération de la clé API sur la page Google Serper.

Côté code, on peut importer la clé dans l’environnement :

serper_api_key = os.environ["SERPER_API_KEY"]

Pour utiliser l’API Google Serper, installez d’abord la bibliothèque Python requise (pip install google-serp-api). Ensuite, importez l’outil GoogleSerper depuis la bibliothèque langchain :

from langchain.utilities import GoogleSerperAPIWrapper

google_search = GoogleSerperAPIWrapper()

Comme précédemment, google_search.run() peut parcourir le web de manière autonome. Mais l’objectif est de l’intégrer comme outil LangChain :

tools.append(
   Tool(
       name="Google Search",
       func=google_search.run,
       description="Useful to search in Google. Use by default.",
   )
)

Notez qu’ici, nous ajoutons un nouvel outil à la liste tools. Celle-ci contient donc désormais les deux moteurs de recherche.

Outil Wikipedia

Complétons notre boîte à outils avec Wikipedia en suivant la même démarche.

Commencez par installer la bibliothèque Python wikipedia via pip (pip install wikipedia), puis chargez les modules requis depuis LangChain. Cet outil a besoin de deux modules en raison de l’architecture de l’API Wikipedia :

from langchain.tools import WikipediaQueryRun
from langchain.utilities import WikipediaAPIWrapper

wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

Enfin, nous pouvons ajouter une nouvelle instance de la classe Tool avec la fonction qui exécute wikipedia.run() :

tools.append(
   Tool(
       name="Wikipedia Search",
       func=wikipedia.run,
       description="Useful when users request biographies or historical moments.",
   )
)

Outil YouTube

Enfin, il est intéressant d’intégrer YouTube pour que le modèle puisse aussi répondre par des ressources vidéo, et pas uniquement par du texte. En suivant la même procédure :

!pip install youtube

from langchain.tools import YouTubeSearchTool
youtube = YouTubeSearchTool()

tools.append(
   Tool(
       name="Youtube Search",
       func=youtube.run,
       description="Useful for when the user explicitly asks you to look on Youtube.",
   )
)

Nous sommes prêts !

Nous avons constitué une boîte à outils (liste tools) avec quatre outils qui apportent des capacités de navigation à notre modèle. Il nous reste à interagir avec le modèle.

Voyons comment il exploite ces sources !

Tester les capacités de navigation

Comme mentionné, les agents sont les entités chargées d’utiliser les outils. Nous devons donc aussi les importer depuis la bibliothèque langchain :

from langchain.agents import initialize_agent

La méthode initialize_agent permet de configurer notre agent :

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description", verbose=True
)

Comme on peut le voir, il faut fournir à l’agent la liste des outils disponibles (tools), le LLM à utiliser (llm) et le type d’agent (agent="zero-shot-react-description"). Pour cet exemple, nous utiliserons le type d’agent Zero-shot ReAct, le plus polyvalent. Nous avons aussi activé verbose=True pour observer le raisonnement de l’agent.

Une fois l’agent initialisé, nous pouvons exécuter n’importe quelle requête utilisateur via la méthode agent.run().

Exemple 1 : biographie

En principe, une fois la requête soumise, l’agent analyse les descriptions des outils et utilise celui qui convient le mieux. Il peut basculer vers d’autres outils si le premier ne fournit pas l’information adéquate.

Lançons un premier test en demandant une biographie. Nous avons bien un outil dédié aux biographies et aux moments historiques ; nous nous attendons donc à ce que l’agent le sélectionne :

agent.run(
   "Harry Styles biography"
)

On peut observer le processus de raisonnement :

> Entering new AgentExecutor chain...
I should look for a biography of the singer

Action: Wikipedia Search
Action Input: Harry Styles biography

Observation:

Page: Harry Styles
Summary: Harry Edward Styles (born 1 February 1994) is an English singer. His musical career began in 2010 as part of One Direction, a boy band formed on the British music competition series The X Factor after each member of the band had been eliminated from the solo contest. They became one of the best-selling boy groups of all time before going on an indefinite hiatus in 2016.
Styles released his self-titled debut solo album through Columbia Records in 2017. It debuted at number one in the UK and the US and was one of the world's top-ten best-selling albums of the year, while its lead single, "Sign of the Times", topped the UK Singles Chart. Styles' second album, Fine Line (2019), debuted atop the US Billboard 200 with the biggest ever first-week sales by an English male artist, and was the most recent album to be included in Rolling Stone's "500 Greatest Albums of All Time" in 2020. Its fourth single, "Watermelon Sugar", topped the US Billboard Hot 100. Styles' third album, Harry's House (2022), broke several records and was widely acclaimed, receiving the Grammy Award for Album of the Year in 2023. Its lead single, "As It Was", became the number-one song of 2022 globally according to Billboard.
Styles has received various accolades, including six Brit Awards, three Grammy Awards, an Ivor Novello Award, and three American Music Awards. His film roles include Dunkirk (2017), Don't Worry Darling (2022), and My Policeman (2022). Aside from music and acting, Styles is known for his flamboyant fashion. He is the first man to appear solo on the cover of Vogue.

Page: Debbie Harry
Summary: Deborah Ann Harry (born Angela Trimble; July 1, 1945) is an American singer, songwriter and actress, best known as the lead vocalist of the band Blondie. Four of her songs with the band reached No. 1 on the US charts between 1979 and 1981.
Born in Miami, Florida, Harry was adopted as an infant and raised in Hawthorne, New Jersey. After college she worked various jobs—as a dancer, a Playboy Bunny, and a secretary (including at the BBC in New York)—before her breakthrough in the music industry. She co-formed Blondie in 1974 in New York City. The band released its eponymous debut studio album in 1976 and released three more studio albums between then and 1979, including Parallel Lines, which spawned six singles, including "Heart of Glass". Their fifth studio album, Autoamerican (1980), spawned such hits as a cover of "The Tide Is High", and "Rapture", which is considered the first rap song to chart at number one in the United States.Harry released her debut solo studio album, KooKoo, in 1981. During a Blondie hiatus, she embarked on an acting career, appearing in lead roles in the neo-noir Union City (1980) and in David Cronenberg's body horror film Videodrome (1983). She released her second solo studio album, 1986's Rockbird, and starred in John Waters's cult dance film Hairspray (1988). She released two more solo albums between then and 1993, before returning to film with roles in a John Carpenter-directed segment of the horror film Body Bags (1993), and in the drama Heavy (1995).
Blondie reunited in the late 1990s, releasing No Exit (1999), followed by The Curse of Blondie (2003). Harry continued to appear in independent films throughout the 2000s, including Deuces Wild (2002), My Life Without Me (2003) and Elegy (2008). With Blondie, she released the group's ninth studio album, Panic of Girls, in 2011, followed by Ghosts of Download (2014). The band's eleventh studio album, 2017's Pollinator, charted at number 4 in the United Kingdom.

Page: Harry Potter
Summary: Harry Potter is a series of seven fantasy novels written by British author J. K. Rowling. The novels chronicle the lives of a young wizard, Harry Potter, and his friends Hermione Granger and Ron Weasley, all of whom are students at Hogwarts School of Witchcraft and Wizardry. The main story arc concerns Harry's conflict with Lord Voldemort, a dark wizard who intends

Thought: I now know the final answer
Final Answer: Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022).

> Finished chain.

"Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022)."

On voit qu’une fois la méthode .run() exécutée, l’agent traite la requête et entame la phase de raisonnement, qui aboutit à : "I should look for a biography of the singer". Il conçoit alors un plan d’action consistant à utiliser l’outil Wikipedia Search — conformément à notre définition — avec "Harry Styles biography" en entrée. Puis il récupère les informations, les analyse et génère une réponse adaptée en langue naturelle.

Exemple 2 : navigation générale

Demandons maintenant une tâche de navigation générique, sans outil explicitement indiqué dans la description :

agent.run(
   "Yesterday's latest news in Spain"
)

Observons le raisonnement dans ce cas :

> Entering new AgentExecutor chain...
I should look for news from yesterday

Action: Google Search
Action Input: "Yesterday's news in Spain"

Observation: The latest breaking news, comment and features from The Independent. All the latest content about Spain from the BBC. Find all national and international information about spain. Select the subjects you want to know more about on euronews.com. Latest Spain news stories including accidents, crime and policing, politics, and Spanish sport news headlines. Latest news, essential insights and practical guides to life in Spain from The Local, Europe's leading independent voice. Missing: Yesterday's | Show results with:Yesterday's. Stay on top of Spain latest developments on the ground with Al Jazeera's fact-based news, exclusive video footage, photos and updated maps. Missing: Yesterday's | Show results with:Yesterday's. Spain · Shakira due to go on trial in Spain over tax fraud claims · The Observer view on Pedro Sánchez's election deal to take power: it undermines democracy. Missing: Yesterday's | Show results with:Yesterday's. Latest News · Hundreds leave Al-Shifa hospital as Israeli forces take control of facility · F1 fans file class-action suit over being forced to exit Las Vegas ... Missing: Yesterday's | Show results with:Yesterday's. Follow the latest Spain news stories and headlines. Get breaking news alerts when you download the ABC News App and subscribe to Spain notifications. Missing: Yesterday's | Show results with:Yesterday's. Get the latest breaking news and top news headlines at Reuters ... Spain Headlines. Shakira stands trial in Spain for alleged tax fraud. Shakira ... Missing: Yesterday's | Show results with:Yesterday's.
Thought: I found a lot of news sources with yesterday's news, so the final answer should be about that.

Final Answer: The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters.

> Finished chain.
"The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters."

Ici, l’agent utilise par défaut Google Serper et trouve les dernières nouvelles en Espagne. Cet exemple illustre bien la capacité à traiter une requête très actuelle avec un LLM dont les données d’entraînement s’arrêtent à septembre 2021, tout en fournissant une réponse à jour.

Exemple 3 : recherche de vidéo

Enfin, supposons que nous cherchions une ressource vidéo. Voyons si le modèle peut nous y diriger. Désactivons le mode verbeux et observons la réponse réelle :

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description"
)

agent.run(
   "Can you point me to the Procrastination TED talk by Tim Urban?"
)

Et, comme attendu, nous obtenons bien la réponse suivante :

'The TED Talk "Procrastination" by Tim Urban can be found at
https://www.youtube.com/watch?v=arj7oStGLkU'

Ça marche ! Avec ces trois exemples, nous avons montré les différentes sources que notre LLM peut mobiliser pour répondre à nos demandes.

Si vous souhaitez ajouter d’autres outils à notre boîte à outils, je vous recommande l’article ReAct: 3 LangChain Tools To Enhance the Default GPT Capabilities.

Conclusion

Dans ce tutoriel, nous avons vu comment utiliser les LangChain Tools pour doter les LLM de capacités de navigation. Au cœur de LangChain, on trouve sa capacité à faciliter le développement d’applications basées sur des LLM, avec un ensemble de fonctionnalités puissantes comme des mémoires intégrées, des chatbots complets et les outils explorés ici, entre autres.

Alors qu’OpenAI progresse sur la personnalisation de l’IA avec le lancement de ses derniers modèles GPT, il reste, à mon sens, une marge importante d’innovation.

Dans cette optique, les LangChain Tools offrent un réel avantage pour les utilisateurs qui interagissent souvent avec les modèles GPT via Python et l’API OpenAI. Cela contraste fortement avec les GPTs, qui semblent pensés pour un public non codeur. Les utilisateurs peuvent facilement configurer une instance spécialisée depuis l’interface de ChatGPT et y accéder à la demande : c’est très pratique, mais plus limité en flexibilité.

De plus, la capacité des LangChain Tools à interroger des sources externes comme Google ou Wikipedia enrichit considérablement la base de connaissances du modèle. C’est un atout majeur par rapport aux GPTs, qui acceptent des fichiers d’information mais à plus petite échelle.

En conclusion, les LangChain Tools sont, selon moi, parmi les moyens les plus puissants pour augmenter les capacités d’un modèle et personnaliser vos propres instances à partir de données publiques largement disponibles. Imaginez maintenant la puissance d’une combinaison entre ces outils et votre base de données privée !

Nouveau dans l’univers des LLM ? Découvrez notre cours Large Language Models Concepts pour vous mettre à niveau !


Andrea Valenzuela's photo
Author
Andrea Valenzuela
LinkedIn
Twitter

Andrea Valenzuela travaille actuellement sur l'expérience CMS à l'accélérateur de particules (CERN) à Genève, en Suisse. Experte en ingénierie et analyse de données depuis six ans, ses fonctions comprennent l'analyse de données et le développement de logiciels. Elle travaille actuellement à la démocratisation de l'apprentissage des technologies liées aux données par le biais de la publication ForCode'Sake sur Medium.

Elle est titulaire d'une licence en ingénierie physique de l'Université polytechnique de Catalogne, ainsi que d'une maîtrise en systèmes interactifs intelligents de l'Université Pompeu Fabra. Son expérience en matière de recherche comprend des travaux professionnels avec des algorithmes OpenAI antérieurs pour la génération d'images, tels que Normalizing Flows.

Sujets
Intelligence artificielle

Développez vos compétences en IA !

Cours

Créer des agents IA avec Google ADK

1 h
7.5K
Développez progressivement un assistant de service client à l'aide du kit de développement d'agent (ADK) de Google.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow