Langkau ke kandungan

CrawlForge TeamPasukan Kejuruteraan

12 min bacaanDikemas kini

Membina Pembantu Penyelidikan AI dengan Claude dan MCP

Bayangkan pembantu penyelidikan AI yang boleh:

  • Mencari web untuk sumber yang relevan
  • Mengekstrak dan mengesahkan maklumat daripada pelbagai laman web
  • Merujuk silang fakta untuk ketepatan
  • Mensintesis penemuan menjadi ringkasan yang koheren dengan petikan

Dengan Claude, Model Context Protocol (MCP), dan CrawlForge, anda boleh membina ini dalam satu petang. Panduan ini membimbing anda melalui seni bina, pelaksanaan, dan pertimbangan pengeluaran.

Visi: Menyelidik Seperti Manusia

LLM tradisional terhad kepada data latihan mereka. Apabila anda bertanya soalan kepada GPT-4 atau Claude, mereka hanya boleh mengingat apa yang mereka telah lihat sebelum ini. Tetapi manusia tidak berfungsi begitu—kita mencari, membaca, mengesahkan, dan mensintesis maklumat baharu.

Pembantu penyelidikan AI sepatutnya:

  1. Memahami niat - Pecahkan pertanyaan kompleks menjadi topik yang boleh dicari
  2. Temui sumber - Cari halaman web, dokumentasi, artikel yang relevan
  3. Ekstrak maklumat - Tarik keluar fakta, petikan, dan data utama
  4. Sahkan ketepatan - Semak silang maklumat merentas pelbagai sumber
  5. Sintesis keputusan - Gabungkan penemuan menjadi jawapan yang jelas dan berpetikan

Mari kita bina ia.

Gambaran Keseluruhan Seni Bina

Pembantu penyelidikan kita mempunyai tiga lapisan:

┌─────────────────────────────────────────────────┐ │ LLM Layer (Claude/GPT-4) │ │ - Query understanding │ │ - Source relevance scoring │ │ - Information synthesis │ └─────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────┐ │ MCP Server (CrawlForge) │ │ - search_web (5 credits) │ │ - extract_content (2 credits) │ │ - deep_research (10 credits) │ └─────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────┐ │ Web Data Layer │ │ - Google Search results │ │ - Website content │ │ - Structured data │ └─────────────────────────────────────────────────┘

Aliran Data:

  1. Pengguna menyerahkan pertanyaan penyelidikan
  2. LLM mengembangkan pertanyaan menjadi istilah carian
  3. CrawlForge mencari web dan mengekstrak kandungan
  4. LLM mengesahkan dan mensintesis maklumat
  5. Pulangkan jawapan berstruktur dengan petikan

Menyediakan Projek

Kita akan menggunakan TypeScript, API Claude (atau OpenAI), dan CrawlForge MCP server.

Prasyarat

Bash
node -v  # 18+ required
npm -v   # 9+ required

Mulakan Projek

Bash
mkdir ai-research-assistant
cd ai-research-assistant
npm init -y
npm install @anthropic-ai/sdk dotenv
npm install --save-dev typescript @types/node tsx
npx tsc --init

Persediaan Persekitaran

Cipta .env:

Bash
# Claude API (or use OPENAI_API_KEY)
ANTHROPIC_API_KEY=sk-ant-xxxxx

# CrawlForge API
CRAWLFORGE_API_KEY=cf_live_xxxxx

Dapatkan CrawlForge API key anda di crawlforge.dev/signup (1,000 credits percuma).

Melaksanakan Aliran Penyelidikan

1. Pemahaman Pertanyaan

Pertama, kita perlu mengembangkan pertanyaan pengguna menjadi istilah carian yang berkesan.

Typescript
// src/research/query-processor.ts
import Anthropic from '@anthropic-ai/sdk';

interface QueryExpansion {
  original: string;
  searchTerms: string[];
  intent: 'factual' | 'comparative' | 'tutorial' | 'news';
  depth: 'shallow' | 'moderate' | 'deep';
}

export async function expandQuery(
  query: string,
  anthropic: Anthropic
): Promise<QueryExpansion> {
  const response = await anthropic.messages.create({
    model: 'claude-3-5-sonnet-20241022',
    max_tokens: 500,
    messages: [{
      role: 'user',
      content: `Analyze this research query and return JSON:
Query: "${query}"

Return:
{
  "searchTerms": ["term1", "term2", "term3"],
  "intent": "factual|comparative|tutorial|news",
  "depth": "shallow|moderate|deep"
}

Search terms should be optimized for web search.`
    }]
  });

  const content = response.content[0];
  if (content.type !== 'text') throw new Error('Unexpected response');

  const parsed = JSON.parse(content.text);

  return {
    original: query,
    searchTerms: parsed.searchTerms,
    intent: parsed.intent,
    depth: parsed.depth
  };
}

2. Carian Web dan Pengekstrakan Kandungan

Seterusnya, kita mencari sumber yang relevan dan mengekstrak kandungan.

Typescript
// src/research/web-scraper.ts
interface Source {
  url: string;
  title: string;
  snippet: string;
  content: string;
  extractedAt: Date;
}

export async function findSources(
  searchTerms: string[],
  apiKey: string
): Promise<Source[]> {
  const sources: Source[] = [];

  for (const term of searchTerms) {
    // Use search_web tool (5 credits per search)
    const searchResponse = await fetch('https://crawlforge.dev/api/v1/tools/search_web', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        query: term,
        limit: 5  // Top 5 results per term
      })
    });

    const searchData = await searchResponse.json();
    const results = searchData.results || [];

    // Extract content from each result (2 credits per URL)
    for (const result of results) {
      const contentResponse = await fetch('https://crawlforge.dev/api/v1/tools/extract_content', {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${apiKey}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          url: result.url
        })
      });

      const contentData = await contentResponse.json();

      sources.push({
        url: result.url,
        title: result.title,
        snippet: result.snippet,
        content: contentData.content || '',
        extractedAt: new Date()
      });
    }
  }

  return sources;
}

Kos Credit:

  • 3 istilah carian × 5 credits = 15 credits
  • 15 sumber × 2 credits = 30 credits
  • Jumlah: 45 credits setiap pertanyaan penyelidikan

3. Pengesahan Maklumat

Rujuk silang fakta merentas sumber untuk mengesahkan ketepatan.

Typescript
// src/research/verifier.ts
interface VerifiedFact {
  claim: string;
  confidence: 'high' | 'medium' | 'low';
  sources: string[];
  conflicts?: string[];
}

export async function verifyInformation(
  sources: Source[],
  anthropic: Anthropic
): Promise<VerifiedFact[]> {
  const sourceTexts = sources.map((s, i) =>
    `[Source ${i + 1}: ${s.url}]
${s.content.slice(0, 1000)}`
  ).join('

');

  const response = await anthropic.messages.create({
    model: 'claude-3-5-sonnet-20241022',
    max_tokens: 2000,
    messages: [{
      role: 'user',
      content: `Extract and verify key facts from these sources. Return JSON:

${sourceTexts}

Return:
{
  "facts": [
    {
      "claim": "factual claim",
      "confidence": "high|medium|low",
      "sources": [1, 2],  // Source indices that support this
      "conflicts": ["conflicting information if any"]
    }
  ]
}`
    }]
  });

  const content = response.content[0];
  if (content.type !== 'text') throw new Error('Unexpected response');

  const parsed = JSON.parse(content.text);

  return parsed.facts.map((fact: any) => ({
    claim: fact.claim,
    confidence: fact.confidence,
    sources: fact.sources.map((i: number) => sources[i - 1]?.url || ''),
    conflicts: fact.conflicts
  }));
}

Apa yang Seterusnya?

Kini anda telah membina pembantu penyelidikan asas, anda boleh:

  1. Tambah penstriman - Strim keputusan apabila ditemui untuk UX yang lebih baik
  2. Simpan keputusan - Simpan penyelidikan ke pangkalan data untuk pengambilan kemudian
  3. Bina UI - Cipta antara muka web dengan Next.js atau React
  4. Tambah webhooks - Dapatkan pemberitahuan apabila penyelidikan selesai
  5. Perhalusi gesaan - Optimumkan untuk kes penggunaan khusus anda

Sumber

Mula membina: Dapatkan 1,000 credits percuma di crawlforge.dev/signup.

Cuba sendiri — tiada pendaftaran diperlukan

Terokai kesemua 31 alat scraping dan pengekstrakan CrawlForge dalam playground, kemudian mula secara percuma dengan 1,000 credits.

1,000 credits percuma • Sekali sahaja • Tiada kad kredit diperlukan

Tag

  • AI Research
  • MCP
  • LLM Applications
  • Data Extraction

Tentang Penulis

CrawlForge Team

Pasukan Kejuruteraan

Membina MCP server web scraping yang paling menyeluruh. Kami mencipta alatan yang membantu pembangun mengekstrak, menganalisis dan mengubah data web untuk aplikasi AI.

Surat berita

Kekal dikemas kini dengan pandangan terkini

Dapatkan tutorial, kemas kini produk dan petua web scraping terus ke peti masuk anda.

Tiada spam. Berhenti melanggan bila-bila masa.

Teruskan membaca

Artikel Berkaitan