extract_with_llm
Extracción impulsada por IA que se ejecuta en un modelo Ollama local de forma predeterminada — sin necesidad de API key y sin que nada salga de su equipo. Opcionalmente, dirija la solicitud a OpenAI o Anthropic cuando necesite un modelo alojado. Indíquele un prompt (y opcionalmente un JSON Schema) y obtenga datos estructurados de vuelta.
Casos de uso
Extracción local primero
Ejecute extracciones contra Ollama en su propio equipo — cero costos de API de LLM y privacidad de forma predeterminada.
Data lakes basados en esquema
Combine un prompt con un JSON Schema para poblar filas tipadas para su almacén de datos o base de grafos.
Conmutación por error multiproveedor
Comience en Ollama local y recurra a OpenAI o Anthropic para páginas de mayor importancia cambiando un solo parámetro.
Endpoint
/api/v1/tools/extract_with_llmParameters
provider sin definir (o use "auto") y la herramienta se ejecutará en su instalación local de Ollama — sin necesidad de API key de LLM. Establezca provider en "openai" o "anthropic" para usar un modelo alojado en su lugar.| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Optional | - | URL para obtener y extraer. Se requiere url o content. Example: https://example.com/article/42 |
content | string | Optional | - | Contenido de texto plano o HTML del que extraer. Se requiere url o content. Example: "<html>...</html>" |
prompt | string | Required | - | Instrucciones en lenguaje natural que guían la extracción con LLM Example: Extract the headline, author, and three key takeaways |
schema | object | Optional | - | JSON Schema opcional que describe la estructura de datos a extraer Example: {"type":"object","properties":{"title":{"type":"string"}},"required":["title"]} |
provider | string | Optional | auto | Proveedor de LLM: "ollama" (local, predeterminado), "openai", "anthropic" o "auto" Example: ollama |
model | string | Optional | - | Identificador del modelo. Predeterminados por proveedor: llama3.2, gpt-4o-mini, claude-haiku-4-5-20251001 Example: llama3.2 |
maxTokens | number | Optional | 4096 | Tokens máximos para la respuesta del LLM (1–32000) Example: 4096 |
Ejemplos de solicitud
cURL — Ollama local (predeterminado, sin API key)
curl -X POST https://crawlforge.dev/api/v1/tools/extract_with_llm \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/article/42",
"prompt": "Extract the headline, author, and three key takeaways",
"provider": "ollama"
}'TypeScript — OpenAI con esquema
const response = await fetch('https://crawlforge.dev/api/v1/tools/extract_with_llm', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com/product/123',
prompt: 'Extract product name, price in USD, and stock status',
provider: 'openai',
model: 'gpt-4o-mini',
schema: {
type: 'object',
properties: {
title: { type: 'string' },
price: { type: 'number' },
in_stock: { type: 'boolean' },
},
required: ['title', 'price'],
},
}),
});
const data = await response.json();
if (data.success) {
console.log(data.data.extracted);
console.log('Tokens used:', data.data.tokens_used);
}Python — Anthropic
import requests, os
response = requests.post(
'https://crawlforge.dev/api/v1/tools/extract_with_llm',
headers={
'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
'Content-Type': 'application/json',
},
json={
'url': 'https://example.com/article/42',
'prompt': 'Extract headline, author, publish date (ISO 8601), and tags',
'provider': 'anthropic',
'model': 'claude-haiku-4-5-20251001',
'schema': {
'type': 'object',
'properties': {
'headline': {'type': 'string'},
'author': {'type': 'string'},
'published_at': {'type': 'string'},
'tags': {'type': 'array'},
},
'required': ['headline'],
},
},
)
data = response.json()
if data['success']:
print(data['data']['extracted'])Ejemplo de respuesta
{ "success": true, "data": { "provider_used": "ollama", "model_used": "llama3.2", "tokens_used": 842, "extracted": { "headline": "How Local LLMs Are Changing Data Pipelines", "author": "Jane Doe", "takeaways": [ "Lower cost", "Better privacy", "Faster iteration" ] }, "prompt_used": "Extract the headline, author, and three key takeaways" }, "credits_used": 3, "credits_remaining": 997, "processing_time": 1420}data.provider_usedProveedor resuelto — "ollama" cuando provider es "auto"data.model_usedModelo predeterminado por proveedor a menos que especifique unodata.tokens_usedTokens consumidos por esta extraccióncredits_used3 credits fijos independientemente del proveedorCosto en credits
Consejo: Use list_ollama_models primero para descubrir qué modelos locales están disponibles antes de enviar una extracción.