LangChain
Integración con LangChain
Integre CrawlForge MCP con LangChain para crear potentes agentes de IA con capacidades de web scraping. Úselo como cargador de documentos, herramienta o cadena de recuperación personalizada.
Casos de uso
Cargadores de documentos
Cargue páginas web como documentos para almacenes vectoriales y aplicaciones de RAG
Agentes de IA
Dé a los agentes herramientas de web scraping para obtener datos en tiempo real
Cadenas de recuperación
Cree cadenas personalizadas que obtienen y procesan contenido web
Pipelines de investigación
Cree flujos de trabajo de investigación automatizados con la herramienta deep_research
Instalación
Instale LangChain y el adaptador de CrawlForge MCP.
Bash
npm install langchain @langchain/core @langchain/community
npm install @crawlforge/langchain-adapterTambién necesitará una API key de CrawlForge desde el panel.
Cargador de documentos
Use CrawlForge como cargador de documentos para obtener páginas web para aplicaciones de 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`);Buena práctica: Use
extract_text para contenido limpio o extract_content para la extracción de artículos.Pipeline de RAG con almacén vectorial
Cree un pipeline de RAG completo con el cargador de documentos de CrawlForge y un almacén vectorial.
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);Herramientas para agentes
Dé a los agentes de LangChain capacidades de web scraping con las herramientas de 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);Consejos para agentes: Use nombres y descripciones de herramientas descriptivos para ayudar al LLM a elegir la herramienta adecuada. Establezca
verbose=true para ver el razonamiento del agente.Cadena de recuperación personalizada
Cree una cadena personalizada que busca, obtiene y resume contenido 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);Buenas prácticas
- Elija la herramienta adecuada — Use
extract_text(1 credit) para contenido sencillo,deep_research(10 credits) para un análisis exhaustivo - Implemente caché — Almacene en caché los documentos obtenidos para evitar llamadas a la API redundantes y ahorrar credits
- Maneje los límites de tasa — Implemente lógica de reintento con retroceso exponencial para aplicaciones en producción
- Monitoree el uso de credits — Compruebe los metadatos de los documentos para conocer el uso de credits y configure alertas en su panel
¿Listo para crear con LangChain?
Explore las 23 herramientas de CrawlForge o consulte otras integraciones.