跳转到主要内容
将 Firecrawl 与 LlamaIndex 集成,基于网页内容的向量搜索与嵌入来构建 AI 应用。

配置

npm install llamaindex @llamaindex/openai @mendable/firecrawl-js
创建“.env”文件:
FIRECRAWL_API_KEY=your_firecrawl_key
OPENAI_API_KEY=your_openai_key
注意: 如果使用 Node 版本低于 20,请安装 dotenv,并在代码中添加 import 'dotenv/config'
本示例演示如何将 LlamaIndex 与 Firecrawl 配合使用,以爬取网站、生成嵌入向量,并通过 RAG 查询内容。
import Firecrawl from '@mendable/firecrawl-js';
import { Document, VectorStoreIndex, Settings } from 'llamaindex';
import { OpenAI, OpenAIEmbedding } from '@llamaindex/openai';

Settings.llm = new OpenAI({ model: "gpt-4o" });
Settings.embedModel = new OpenAIEmbedding({ model: "text-embedding-3-small" });

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY });
const crawlResult = await firecrawl.crawl('https://firecrawl.dev', {
  limit: 10,
  scrapeOptions: { formats: ['markdown'] }
});
console.log(`已爬取 ${crawlResult.data.length } 个页面`);

const documents = crawlResult.data.map((page: any, i: number) =>
  new Document({
    text: page.markdown,
    id_: `page-${i}`,
    metadata: { url: page.metadata?.sourceURL }
  })
);

const index = await VectorStoreIndex.fromDocuments(documents);
console.log('已创建向量索引及嵌入');

const queryEngine = index.asQueryEngine();
const response = await queryEngine.query({ query: 'Firecrawl 是什么?它是如何工作的?' });

console.log('\n答案:', response.toString());
更多示例请参阅 LlamaIndex 文档