
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
1
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 (@/*)
2
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 :3
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
4
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 :5
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
6
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.7
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.

8
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
9
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.10
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 :11
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.

