安装
复制
询问AI
npm install firecrawl-aisdk ai @ai-sdk/openai
复制
询问AI
FIRECRAWL_API_KEY=fc-your-key
OPENAI_API_KEY=sk-your-key
这些示例使用的是 OpenAI,但 Firecrawl 工具适用于 Vercel AI SDK 支持的任意提供商,包括 Anthropic、Google、Mistral 等。请参阅支持的提供商完整列表。
快速开始
复制
询问AI
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: '抓取 https://firecrawl.dev 并总结它的作用',
tools: { scrape: scrapeTool },
});
可用工具
复制
询问AI
import {
scrapeTool, // 抓取单个 URL
searchTool, // 搜索网页
mapTool, // 发现网站上的 URL
crawlTool, // 爬取多个页面
batchScrapeTool, // 批量抓取多个 URL
extractTool, // 提取结构化数据
pollTool, // 轮询异步任务
statusTool, // 检查任务状态
cancelTool, // 取消任务
} from 'firecrawl-aisdk';
示例
爬取
复制
询问AI
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: '抓取 https://firecrawl.dev 并总结它的作用',
tools: { scrape: scrapeTool },
});
console.log(text);
搜索
复制
询问AI
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: '搜索 Firecrawl 并总结搜索结果',
tools: { search: searchTool },
});
console.log(text);
映射
复制
询问AI
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: '映射 https://docs.firecrawl.dev 并列出主要章节',
tools: { map: mapTool },
});
console.log(text);
Crawl
pollTool 以检查作业状态。
复制
询问AI
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: '爬取 https://docs.firecrawl.dev(限 3 页)并总结',
tools: { crawl: crawlTool, poll: pollTool },
});
console.log(text);
批量抓取
pollTool 检查作业状态。
复制
询问AI
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: '抓取 https://firecrawl.dev 和 https://docs.firecrawl.dev,然后比较',
tools: { batchScrape: batchScrapeTool, poll: pollTool },
});
console.log(text);
提取
pollTool 以检查作业状态。
复制
询问AI
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: '从 https://firecrawl.dev 提取主要特性',
tools: { extract: extractTool, poll: pollTool },
});
console.log(text);
搜索 + 爬取
复制
询问AI
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: '搜索 Firecrawl,抓取第一条结果,并说明其功能',
tools: { search: searchTool, scrape: scrapeTool },
});
console.log(text);
流式传输
复制
询问AI
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';
const result = streamText({
model: openai('gpt-5-mini'),
prompt: '抓取 https://firecrawl.dev 并说明其作用',
tools: { scrape: scrapeTool },
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}

