
Ce que vous allez construire
Prérequis
- Node.js 18 ou version ultérieure installé
- Une clé API OpenAI depuis platform.openai.com
- Une clé API Firecrawl depuis firecrawl.dev
- Des notions de base de React et de Next.js
Créer un nouveau projet Next.js
Commencez par créer une nouvelle application Next.js, puis accédez au répertoire du projet :Lorsque vous y êtes invité, sélectionnez les options suivantes :
- TypeScript : Oui
- ESLint : Oui
- Tailwind CSS : Oui
- App Router : Oui
- Utiliser le répertoire
src/: Non - Alias d’importation : Oui (@/*)
Installer les dépendances
Installer les packages de l’AI SDK
L’AI SDK est une boîte à outils TypeScript qui fournit une API unifiée pour interagir avec différents fournisseurs de LLM :ai: SDK principal avec diffusion (streaming), appel d’outils et gestion des réponses@ai-sdk/react: hooks React commeuseChatpour créer des interfaces de conversationzod: validation de schémas pour les paramètres d’outils
Installer AI Elements
AI Elements propose des composants d’interface prêts à l’emploi pour les applications d’IA. Exécutez la commande suivante pour générer tous les composants nécessaires :Installer le fournisseur OpenAI
Installez le fournisseur OpenAI pour vous connecter aux modèles d’OpenAI :Créer l’interface de chat front-end
Créez la page principale dans 
app/page.tsx et copiez le code depuis l’onglet Code ci-dessous. Il s’agira de l’interface de chat permettant aux utilisateurs d’interagir avec l’assistant IA.- Aperçu
- Code

Comprendre le Frontend
Le frontend utilise les composants AI Elements pour fournir une interface de chat complète :Fonctionnalités principales :- Affichage de la conversation : Le composant
Conversationgère automatiquement le défilement et l’affichage des messages - Rendu des messages : Chaque partie d’un message est affichée selon son type (texte, raisonnement, appels d’outils)
- Visualisation des outils : Les appels d’outils s’affichent dans des sections repliables présentant les entrées et les sorties
- Contrôles interactifs : les utilisateurs peuvent activer/désactiver la recherche sur le web, choisir des modèles et joindre des fichiers
- Actions sur les messages : Copier et réessayer les actions pour les messages de l’assistant
Ajouter la prise en charge du rendu de Markdown
Pour garantir que le Markdown renvoyé par le LLM s’affiche correctement, ajoutez l’import suivant à votre fichier Cela importe les styles nécessaires pour afficher le contenu Markdown dans les réponses de messages.
app/globals.css :Créer la route d’API de base
Créez l’endpoint de l’API de chat dans Cette route basique :
app/api/chat/route.ts. Cette route gérera les messages entrants et diffusera les réponses de l’IA.- Reçoit des messages depuis le frontend
- Utilise le modèle OpenAI choisi par l’utilisateur
- Diffuse les réponses en continu au client
- N’inclut pas encore d’outils — nous les ajouterons ensuite
Configurer les variables d’environnement
Créez un fichier Ajoutez votre clé API OpenAI :La variable
.env.local à la racine de votre projet :OPENAI_API_KEY est nécessaire au fonctionnement du modèle d’IA.Tester le chat de base
Vous pouvez maintenant tester le chatbot de l’AI SDK sans intégrer Firecrawl. Lancez le serveur de développement :Ouvrez localhost:3000 dans votre navigateur et testez les fonctionnalités de chat de base. L’assistant devrait répondre aux messages, mais il n’aura pas encore de capacités d’exploration web ni de recherche.

Ajouter des outils Firecrawl
Passons maintenant à l’amélioration de l’assistant en lui ajoutant des fonctionnalités de scraping et de recherche sur le web grâce à Firecrawl.Ajoutez le code suivant pour définir les outils d’extraction web et de recherche :
Installer le SDK Firecrawl
Firecrawl convertit les sites web en formats prêts pour les LLM, avec des fonctions de scraping et de recherche :Créer le fichier des outils
Créez un dossierlib et ajoutez-y un fichier tools.ts :lib/tools.ts
Comprendre les outils
Outil d’extraction de site web :- Accepte une URL en entrée (validée par un schéma Zod)
- Utilise la méthode
scrapede Firecrawl pour récupérer la page en Markdown - N’extrait que le contenu principal afin de réduire la consommation de jetons
- Renvoie le contenu extrait pour que l’IA l’analyse
- Accepte une requête de recherche avec des filtres optionnels
- Utilise la méthode
searchde Firecrawl pour trouver des pages web pertinentes - Prend en charge des filtres avancés comme l’emplacement, la plage temporelle et les catégories de contenu
- Renvoie des résultats structurés avec des titres, des URL et des descriptions
Mettre à jour la route d’API avec les outils Firecrawl
Mettez maintenant à jour votre
Principales modifications par rapport à la route de base :
app/api/chat/route.ts pour inclure les outils Firecrawl que nous venons de créer.Afficher le code complet de app/api/chat/route.ts
Afficher le code complet de app/api/chat/route.ts
- Importer
stepCountIsdepuis l’AI SDK - Importer les outils Firecrawl depuis
@/lib/tools - Ajouter l’objet
toolsavec les outilsscrapeWebsiteetsearchWeb - Ajouter
stopWhen: stepCountIs(5)pour limiter le nombre d’étapes d’exécution - Définir
toolChoicesur « auto » lorsque la recherche web est activée, « none » sinon
streamText : ai-sdk.dev/docs/reference/ai-sdk-core/stream-text.Ajoutez votre clé API Firecrawl
Mettez à jour votre fichier Récupérez votre clé API Firecrawl sur firecrawl.dev.
.env.local pour y inclure votre clé d’API Firecrawl :Tester l’application entière
Redémarrez votre serveur de développement :
Ouvrez localhost:3000 et testez l’assistant amélioré :

- Activez le bouton « Search » pour activer la recherche web
- Demandez : « What are the latest features from firecrawl.dev? »
- Observez l’IA appeler l’outil
searchWebouscrapeWebsite - Suivez l’exécution de l’outil dans l’UI avec les entrées et sorties
- Lisez l’analyse de l’IA basée sur les données collectées
Comment ça marche
Flux des messages
- L’utilisateur envoie un message : l’utilisateur saisit une question et clique sur Envoyer
- Le frontend envoie la requête :
useChatenvoie le message à/api/chatavec le modèle sélectionné et le paramètre de recherche web - Le backend traite le message : la route d’API reçoit le message et appelle
streamText - L’IA choisit des outils : le modèle analyse la question et décide d’utiliser
scrapeWebsiteousearchWeb(uniquement si la recherche web est activée) - Exécution des outils : si des outils sont appelés, Firecrawl effectue un scraping ou une recherche sur le web
- L’IA génère une réponse : le modèle analyse les résultats des outils et génère une réponse en langage naturel
- Le frontend affiche les résultats : l’interface affiche les appels d’outils et la réponse finale en temps réel
Processus d’appel d’outils
- Le modèle reçoit le message de l’utilisateur ainsi que les descriptions des outils disponibles
- Si le modèle détermine qu’un outil est nécessaire, il génère un appel d’outil avec des paramètres
- Le SDK exécute la fonction d’outil avec ces paramètres
- Le résultat de l’outil est renvoyé au modèle
- Le modèle utilise ce résultat pour générer sa réponse finale
streamText, avec des résultats diffusés vers le frontend en temps réel.
Principales fonctionnalités
Sélection du modèle
- GPT-5 Mini (Thinking) : modèle OpenAI récent avec des capacités de raisonnement avancées
- GPT-4o Mini : modèle rapide et économique
Interrupteur de recherche web
- Activé : l’IA peut appeler les outils
scrapeWebsiteetsearchWebselon les besoins - Désactivé : l’IA répond uniquement à partir de ses données d’entraînement
Idées de personnalisation
Ajouter d’autres outils
- Requêtes dans la base de données pour les données internes de l’entreprise
- Intégration au CRM pour récupérer les informations client
- Envoi d’e-mails
- Génération de documents
tools.
Changer le modèle d’IA
Personnaliser l’interface
- Modifier les styles des composants dans leurs fichiers
- Ajouter de nouvelles variantes aux composants existants
- Créer des composants personnalisés conformes au système de conception
Bonnes pratiques
-
Utilisez les outils appropriés : Choisissez
searchWebpour trouver d’abord des pages pertinentes,scrapeWebsitepour des pages individuelles, ou laissez l’IA décider. - Surveillez l’utilisation de l’API : Suivez votre consommation des API Firecrawl et OpenAI pour éviter des coûts inattendus.
- Gérez les erreurs avec souplesse : Les outils intègrent une gestion des erreurs, mais envisagez d’ajouter des messages d’erreur visibles par l’utilisateur.
- Optimisez les performances : Utilisez le streaming pour fournir un retour immédiat et envisagez de mettre en cache le contenu fréquemment consulté.
-
Définissez des limites raisonnables :
stopWhen: stepCountIs(5)empêche les appels d’outil excessifs et les coûts incontrôlés.

