LangChain
Penyepaduan LangChain
Sepadukan CrawlForge MCP dengan LangChain untuk membina ejen AI yang berkuasa dengan keupayaan web scraping. Gunakan sebagai pemuat dokumen, alat, atau rantaian perolehan tersuai.
Kes Penggunaan
Pemuat Dokumen
Muatkan halaman web sebagai dokumen untuk vector store dan aplikasi RAG
Ejen AI
Beri ejen alat web scraping untuk mengambil data masa nyata
Rantaian Perolehan
Bina rantaian tersuai yang mengambil dan memproses kandungan web
Saluran Paip Penyelidikan
Cipta aliran kerja penyelidikan automatik dengan alat deep_research
Pemasangan
Pasang LangChain dan penyesuai CrawlForge MCP.
Bash
npm install langchain @langchain/core @langchain/community
npm install @crawlforge/langchain-adapterAnda juga memerlukan API key CrawlForge daripada dashboard.
Pemuat Dokumen
Gunakan CrawlForge sebagai pemuat dokumen untuk mengambil halaman web bagi aplikasi RAG.
Typescript
import { CrawlForgeLoader } from '@crawlforge/langchain-adapter';
// Initialize the loader
const loader = new CrawlForgeLoader({
apiKey: process.env.CRAWLFORGE_API_KEY!,
tool: 'extract_text', // or 'fetch_url', 'extract_content'
});
// Load a single document
const docs = await loader.load('https://example.com');
console.log(docs[0].pageContent); // Clean text content
console.log(docs[0].metadata); // URL, title, credits used
// Load multiple documents
const urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3'
];
const allDocs = await loader.loadMany(urls);
console.log(`Loaded ${allDocs.length} documents`);Amalan Terbaik: Gunakan
extract_text untuk kandungan bersih atau extract_content untuk pengekstrakan artikel.Saluran Paip RAG dengan Vector Store
Bina saluran paip RAG yang lengkap dengan pemuat dokumen CrawlForge dan vector store.
Typescript
import { CrawlForgeLoader } from '@crawlforge/langchain-adapter';
import { OpenAIEmbeddings } from '@langchain/openai';
import { MemoryVectorStore } from 'langchain/vectorstores/memory';
import { RetrievalQAChain } from 'langchain/chains';
import { ChatOpenAI } from '@langchain/openai';
// 1. Load documents from web pages
const loader = new CrawlForgeLoader({
apiKey: process.env.CRAWLFORGE_API_KEY!,
tool: 'extract_content'
});
const docs = await loader.loadMany([
'https://example.com/doc1',
'https://example.com/doc2',
'https://example.com/doc3'
]);
// 2. Create embeddings and vector store
const embeddings = new OpenAIEmbeddings();
const vectorStore = await MemoryVectorStore.fromDocuments(
docs,
embeddings
);
// 3. Create retrieval chain
const model = new ChatOpenAI({ modelName: 'gpt-4' });
const chain = RetrievalQAChain.fromLLM(
model,
vectorStore.asRetriever()
);
// 4. Query the knowledge base
const response = await chain.call({
query: 'What are the key points from these documents?'
});
console.log(response.text);Alat Ejen
Beri ejen LangChain keupayaan web scraping dengan alat CrawlForge.
Typescript
import { CrawlForgeTool } from '@crawlforge/langchain-adapter';
import { initializeAgentExecutorWithOptions } from 'langchain/agents';
import { ChatOpenAI } from '@langchain/openai';
// 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_page',
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'
})
];
// Initialize agent
const model = new ChatOpenAI({ modelName: 'gpt-4', temperature: 0 });
const executor = await initializeAgentExecutorWithOptions(
tools,
model,
{
agentType: 'openai-functions',
verbose: true
}
);
// Run agent
const result = await executor.call({
input: 'Research the latest developments in quantum computing'
});
console.log(result.output);Petua Ejen: Gunakan nama dan penerangan alat yang deskriptif untuk membantu LLM memilih alat yang betul. Tetapkan
verbose=true untuk melihat penaakulan ejen.Rantaian Perolehan Tersuai
Bina rantaian tersuai yang mencari, mengambil dan meringkaskan kandungan web.
Typescript
import { CrawlForgeLoader } from '@crawlforge/langchain-adapter';
import { PromptTemplate } from '@langchain/core/prompts';
import { RunnableSequence } from '@langchain/core/runnables';
import { ChatOpenAI } from '@langchain/openai';
import { StringOutputParser } from '@langchain/core/output_parsers';
// Initialize CrawlForge loader
const loader = new CrawlForgeLoader({
apiKey: process.env.CRAWLFORGE_API_KEY!,
tool: 'deep_research'
});
// Create custom chain
const prompt = PromptTemplate.fromTemplate(
`Based on the following research, answer the question:\n\n{context}\n\nQuestion: {question}\n\nAnswer:`
);
const model = new ChatOpenAI({ modelName: 'gpt-4' });
const chain = RunnableSequence.from([
{
context: async (input) => {
const docs = await loader.load(input.question);
return docs[0].pageContent;
},
question: (input) => input.question
},
prompt,
model,
new StringOutputParser()
]);
// Run the chain
const result = await chain.invoke({
question: 'What are the latest AI safety research findings?'
});
console.log(result);Amalan Terbaik
- Pilih Alat yang Betul — Gunakan
extract_text(1 credit) untuk kandungan ringkas,deep_research(10 credits) untuk analisis menyeluruh - Laksanakan Caching — Cache dokumen yang diambil untuk mengelakkan panggilan API berulang dan menjimatkan credits
- Kendalikan Had Kadar — Laksanakan logik cuba semula dengan backoff eksponen untuk aplikasi pengeluaran
- Pantau Penggunaan Credit — Semak metadata dokumen untuk penggunaan credit dan sediakan amaran dalam dashboard anda
Bersedia untuk membina dengan LangChain?
Terokai kesemua 27 alat CrawlForge atau lihat penyepaduan lain.