Passer au contenu principal
Outils Firecrawl pour Vercel AI SDK v5. Web scraping, recherche, exploration de sites et extraction de données pour les applications d’IA.

Installation

npm install firecrawl-aisdk ai @ai-sdk/openai
Configurer les variables d’environnement :
FIRECRAWL_API_KEY=fc-your-key
OPENAI_API_KEY=sk-your-key
Ces exemples utilisent OpenAI, mais les outils Firecrawl fonctionnent avec n’importe quel fournisseur du SDK Vercel AI, y compris Anthropic, Google, Mistral et d’autres. Consultez la liste complète des fournisseurs pris en charge.

Guide de démarrage rapide

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Scrape https://firecrawl.dev et résume ce que ça fait',
  tools: { scrape: scrapeTool },
});

Outils disponibles

import {
  scrapeTool,         // Scraper une seule URL
  searchTool,         // Rechercher sur le web
  mapTool,            // Découvrir les URL d'un site
  crawlTool,          // Crawler plusieurs pages
  batchScrapeTool,    // Scraper plusieurs URL
  extractTool,        // Extraire des données structurées
  pollTool,           // Interroger les tâches asynchrones
  statusTool,         // Vérifier le statut des tâches
  cancelTool,         // Annuler les tâches
} from 'firecrawl-aisdk';

Exemples

Scraping

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Scrape https://firecrawl.dev et résume ce que ça fait',
  tools: { scrape: scrapeTool },
});

console.log(text);
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { searchTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Recherche Firecrawl et résume ce que tu trouves',
  tools: { search: searchTool },
});

console.log(text);

Cartographie

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { mapTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Cartographiez https://docs.firecrawl.dev et listez les sections principales',
  tools: { map: mapTool },
});

console.log(text);

Crawl

Opération asynchrone – incluez pollTool pour vérifier l’état de la tâche.
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { crawlTool, pollTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Crawle https://docs.firecrawl.dev (limite de 3 pages) et fais un résumé',
  tools: { crawl: crawlTool, poll: pollTool },
});

console.log(text);

Extraction par lots

Opération asynchrone ; incluez pollTool pour vérifier le statut de la tâche.
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { batchScrapeTool, pollTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Scrape https://firecrawl.dev et https://docs.firecrawl.dev, puis compare-les',
  tools: { batchScrape: batchScrapeTool, poll: pollTool },
});

console.log(text);

Extraction

Opération asynchrone : incluez pollTool pour vérifier l’état de la tâche.
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { extractTool, pollTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Extrais les fonctionnalités principales de https://firecrawl.dev',
  tools: { extract: extractTool, poll: pollTool },
});

console.log(text);

Recherche + Extraction

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { searchTool, scrapeTool } from 'firecrawl-aisdk';

const { text } = await generateText({
  model: openai('gpt-5-mini'),
  prompt: 'Recherchez Firecrawl, scrapez le premier résultat et expliquez ce qu\'il fait',
  tools: { search: searchTool, scrape: scrapeTool },
});

console.log(text);

Streaming

import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';

const result = streamText({
  model: openai('gpt-5-mini'),
  prompt: 'Scrape https://firecrawl.dev et explique ce qu\'il fait',
  tools: { scrape: scrapeTool },
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}