CrawlForge
LlamaIndex

Penyepaduan LlamaIndex

Sepadukan CrawlForge MCP dengan LlamaIndex untuk membina penyambung data, indeks dan enjin pertanyaan dengan keupayaan web scraping. Sesuai untuk aplikasi RAG dan pangkalan pengetahuan.

Kes Penggunaan

Penyambung Data Web
Cipta penyambung data yang mengambil dan mengindeks kandungan web secara automatik
Pangkalan Pengetahuan
Bina pangkalan pengetahuan boleh cari daripada halaman web dan dokumen
Enjin Pertanyaan
Cipta enjin pertanyaan dengan perolehan data web masa nyata
Pemprosesan Dokumen
Ekstrak dan proses dokumen daripada URL untuk pengindeksan

Pemasangan

Pasang LlamaIndex dan penyesuai CrawlForge MCP.

Bash
npm install llamaindex
npm install @crawlforge/llamaindex-adapter
Anda juga memerlukan API key CrawlForge daripada dashboard.

Penyambung Data Web

Gunakan CrawlForge sebagai penyambung data untuk mengambil dan memuatkan dokumen web.

Typescript
import { CrawlForgeReader } from '@crawlforge/llamaindex-adapter';
import { Document } from 'llamaindex';

// Initialize the reader
const reader = new CrawlForgeReader({
  apiKey: process.env.CRAWLFORGE_API_KEY!,
  tool: 'extract_content' // or 'extract_text', 'fetch_url'
});

// Load a single document
const documents = await reader.loadData(['https://example.com']);

console.log(documents[0].text);      // Document content
console.log(documents[0].metadata);  // URL, title, credits

// Load multiple documents
const urls = [
  'https://example.com/page1',
  'https://example.com/page2',
  'https://example.com/page3'
];

const allDocuments = await reader.loadData(urls);
console.log(`Loaded ${allDocuments.length} documents`);
Petua: Gunakan extract_content untuk pengekstrakan artikel yang bersih atau extract_text untuk teks halaman penuh.

Indeks Vector Store

Cipta indeks vector store daripada dokumen web untuk carian semantik.

Typescript
import { CrawlForgeReader } from '@crawlforge/llamaindex-adapter';
import { VectorStoreIndex } from 'llamaindex';
import { OpenAIEmbedding } from 'llamaindex';

// 1. Load documents from web
const reader = new CrawlForgeReader({
  apiKey: process.env.CRAWLFORGE_API_KEY!,
  tool: 'extract_content'
});

const documents = await reader.loadData([
  'https://example.com/doc1',
  'https://example.com/doc2',
  'https://example.com/doc3'
]);

// 2. Create embeddings
const embedModel = new OpenAIEmbedding({
  apiKey: process.env.OPENAI_API_KEY!,
  model: 'text-embedding-3-small'
});

// 3. Build vector index
const index = await VectorStoreIndex.fromDocuments(documents, {
  embedModel
});

// 4. Query the index
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query(
  'What are the main topics covered?'
);

console.log(response.toString());

Enjin Pertanyaan dengan Alat

Cipta enjin pertanyaan yang boleh mengambil data web masa nyata atas permintaan.

Typescript
import { CrawlForgeTool } from '@crawlforge/llamaindex-adapter';
import { OpenAIAgent } from 'llamaindex';

// Create CrawlForge tools
const tools = [
  new CrawlForgeTool({
    name: 'web_search',
    description: 'Search the web for information',
    apiKey: process.env.CRAWLFORGE_API_KEY!,
    tool: 'search_web'
  }),
  new CrawlForgeTool({
    name: 'fetch_content',
    description: 'Fetch and extract content from a URL',
    apiKey: process.env.CRAWLFORGE_API_KEY!,
    tool: 'extract_content'
  }),
  new CrawlForgeTool({
    name: 'deep_research',
    description: 'Perform comprehensive research on a topic',
    apiKey: process.env.CRAWLFORGE_API_KEY!,
    tool: 'deep_research'
  })
];

// Create agent with tools
const agent = new OpenAIAgent({
  tools,
  verbose: true
});

// Query with tool access
const response = await agent.chat(
  'Research the latest developments in quantum computing'
);

console.log(response.toString());
Petua Ejen: Ejen akan memilih alat yang hendak digunakan secara automatik berdasarkan pertanyaan. Tetapkan verbose=true untuk melihat pemilihan alat.

Pengambil Web Tersuai

Bina pengambil tersuai yang mengambil data web berdasarkan pertanyaan.

Typescript
import { CrawlForgeReader } from '@crawlforge/llamaindex-adapter';
import { BaseRetriever } from 'llamaindex';
import type { NodeWithScore } from 'llamaindex';

export class WebRetriever extends BaseRetriever {
  private reader: CrawlForgeReader;

  constructor(apiKey: string) {
    super();
    this.reader = new CrawlForgeReader({
      apiKey,
      tool: 'search_web'
    });
  }

  async retrieve(query: string): Promise<NodeWithScore[]> {
    // 1. Search for URLs
    const searchResults = await this.reader.search(query);

    // 2. Fetch content from top results
    const urls = searchResults.slice(0, 3).map(r => r.url);
    const documents = await this.reader.loadData(urls);

    // 3. Convert to nodes with scores
    return documents.map((doc, i) => ({
      node: doc,
      score: 1.0 - (i * 0.1) // Simple scoring
    }));
  }
}

// Use the custom retriever
const retriever = new WebRetriever(process.env.CRAWLFORGE_API_KEY!);
const nodes = await retriever.retrieve('latest AI news');

console.log(`Retrieved ${nodes.length} documents`);

Pemprosesan Kelompok dengan Async

Proses berbilang URL dengan cekap menggunakan operasi kelompok async.

Typescript
import { CrawlForgeReader } from '@crawlforge/llamaindex-adapter';
import { VectorStoreIndex } from 'llamaindex';

const reader = new CrawlForgeReader({
  apiKey: process.env.CRAWLFORGE_API_KEY!,
  tool: 'batch_scrape' // Use batch tool for efficiency
});

// Define URL batches
const urlBatches = [
  ['https://example.com/1', 'https://example.com/2'],
  ['https://example.com/3', 'https://example.com/4'],
  ['https://example.com/5', 'https://example.com/6']
];

// Process in parallel
const allDocuments = await Promise.all(
  urlBatches.map(urls => reader.loadData(urls))
);

const documents = allDocuments.flat();

console.log(`Loaded ${documents.length} documents`);

// Build index from all documents
const index = await VectorStoreIndex.fromDocuments(documents);

console.log('Index created successfully');
Petua Prestasi: Gunakan batch_scrape untuk memproses berbilang URL—ia dioptimumkan untuk pelaksanaan selari dan berkos hanya 1 credit setiap URL.

Amalan Terbaik

  • Pilih Alat yang Cekap — Gunakan batch_scrape untuk berbilang URL, extract_content untuk teks bersih
  • Laksanakan Caching — Cache dokumen yang diindeks untuk mengelakkan pengambilan berulang dan menjimatkan credits
  • Gunakan Operasi Async — Manfaatkan async/await untuk pemprosesan selari bagi mempercepatkan operasi pukal
  • Pantau Credits — Jejaki penggunaan credit dalam metadata dokumen dan sediakan amaran dalam dashboard anda
Bersedia untuk membina dengan LlamaIndex?
Terokai kesemua 27 alat CrawlForge atau lihat penyepaduan lain.
Lihat Semua AlatPenyepaduan LangChain