ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo construir un canal de conexión a tierra de contenido de IA
Tutorial

Cómo construir un canal de conexión a tierra de contenido de IA

Cree un canal que base el contenido generado por LLM con datos de búsqueda verificados. Reduzca las alucinaciones comparando afirmaciones con resultados SERP en vivo.

Obtener clave API gratisDocumentacion API

Los LLM generan texto fluido pero con frecuencia alucinan estadísticas, fechas, detalles de productos y afirmaciones. La base de contenido resuelve esto ejecutando las afirmaciones del LLM a través de un ciclo de verificación: extrae afirmaciones objetivas del texto generado, busca cada afirmación a través de una API de búsqueda en tiempo real y marca o reemplaza cualquier afirmación que contradiga la evidencia de la búsqueda. Este tutorial crea un canal de conexión a tierra que toma resultados de LLM sin procesar, extrae afirmaciones verificables, verifica cada una con los resultados de búsqueda de Scavio y produce una versión fundamentada con URL de citas. El oleoducto detecta cifras alucinantes, información obsoleta y fuentes fabricadas antes de que lleguen a producción.

Requisitos previos

  • Python 3.10+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Una clave API de OpenAI (o cualquier API LLM para extracción de reclamos)

Guia paso a paso

Paso 1: Extraer afirmaciones fácticas de los resultados del LLM

Analice el texto generado para identificar declaraciones que contengan hechos verificables: números, fechas, nombres de productos, afirmaciones de la empresa. Utilice una segunda llamada de LLM para extraerlos como una lista.

Python
import os, requests, json

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
OPENAI_KEY = os.environ['OPENAI_API_KEY']
SEARCH_ENDPOINT = 'https://api.scavio.dev/api/v1/search'
SEARCH_HEADERS = {'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'}

def extract_claims(text):
    resp = requests.post('https://api.openai.com/v1/chat/completions',
        headers={'Authorization': f'Bearer {OPENAI_KEY}', 'Content-Type': 'application/json'},
        json={'model': 'gpt-4o', 'temperature': 0,
            'messages': [{'role': 'system', 'content': 'Extract all factual claims from the text. Return a JSON array of strings, each a single verifiable claim.'},
                {'role': 'user', 'content': text}],
            'response_format': {'type': 'json_object'}})
    return json.loads(resp.json()['choices'][0]['message']['content']).get('claims', [])

Paso 2: Verifique cada reclamo con los resultados de búsqueda

Para cada reclamo extraído, ejecute una consulta de búsqueda de Scavio y verifique si los resultados principales respaldan, contradicen o no dicen nada sobre el reclamo.

Python
def verify_claim(claim):
    resp = requests.post(SEARCH_ENDPOINT, headers=SEARCH_HEADERS,
        json={'query': claim, 'country_code': 'us'})
    results = resp.json().get('organic_results', [])[:5]
    snippets = [r.get('snippet', '') for r in results if r.get('snippet')]
    sources = [r['link'] for r in results[:3]]
    evidence = ' '.join(snippets).lower()
    claim_lower = claim.lower()
    supported = any(word in evidence for word in claim_lower.split() if len(word) > 4)
    return {
        'claim': claim,
        'status': 'SUPPORTED' if supported else 'UNVERIFIED',
        'sources': sources,
        'evidence_preview': snippets[0][:200] if snippets else '',
    }

Paso 3: Cree la salida fundamentada con citas

Reemplazar o anotar afirmaciones no verificadas en el texto original. Agregue las URL de origen como citas para afirmaciones verificadas.

Python
def ground_content(raw_text):
    claims = extract_claims(raw_text)
    print(f'Extracted {len(claims)} claims to verify')
    verifications = []
    for claim in claims:
        result = verify_claim(claim)
        verifications.append(result)
        print(f"  [{result['status']}] {claim[:60]}")
    grounded = raw_text
    citations = []
    for v in verifications:
        if v['status'] == 'SUPPORTED' and v['sources']:
            citations.append(f"- {v['claim'][:80]}: {v['sources'][0]}")
        elif v['status'] == 'UNVERIFIED':
            grounded = grounded.replace(v['claim'],
                f"{v['claim']} [UNVERIFIED - needs manual review]")
    grounded += '\n\nSources:\n' + '\n'.join(citations) if citations else ''
    cost = len(claims) * 0.005
    print(f'Verification cost: ${cost:.3f} ({len(claims)} searches)')
    return grounded, verifications

Ejemplo en Python

Python
import os, requests, json

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'}

def search(query):
    return requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': query, 'country_code': 'us'}).json()

def verify_claims(claims):
    results = []
    for claim in claims:
        data = search(claim)
        snippets = [r.get('snippet', '') for r in data.get('organic_results', [])[:5]]
        sources = [r['link'] for r in data.get('organic_results', [])[:3]]
        evidence = ' '.join(snippets).lower()
        supported = any(w in evidence for w in claim.lower().split() if len(w) > 4)
        results.append({'claim': claim, 'ok': supported, 'sources': sources})
    return results

def ground(text, claims):
    verified = verify_claims(claims)
    for v in verified:
        tag = 'OK' if v['ok'] else 'UNVERIFIED'
        print(f'[{tag}] {v["claim"][:60]}')
    bad = [v for v in verified if not v['ok']]
    print(f'{len(verified) - len(bad)}/{len(verified)} claims verified')
    print(f'Cost: ${len(claims) * 0.005:.3f}')

claims = ['Python is the most popular programming language in 2026',
    'FastAPI processes 10 million requests per second']
ground('sample text', claims)

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;
const SH = { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' };

async function search(query) {
  return fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: SH, body: JSON.stringify({ query, country_code: 'us' })
  }).then(r => r.json());
}

async function verifyClaims(claims) {
  const results = [];
  for (const claim of claims) {
    const data = await search(claim);
    const snippets = (data.organic_results || []).slice(0, 5)
      .map(r => r.snippet || '').join(' ').toLowerCase();
    const sources = (data.organic_results || []).slice(0, 3).map(r => r.link);
    const supported = claim.toLowerCase().split(' ')
      .filter(w => w.length > 4).some(w => snippets.includes(w));
    results.push({ claim, ok: supported, sources });
  }
  return results;
}

async function ground(claims) {
  const results = await verifyClaims(claims);
  results.forEach(v => console.log(`[${v.ok ? 'OK' : 'UNVERIFIED'}] ${v.claim.slice(0, 60)}`));
  const verified = results.filter(v => v.ok).length;
  console.log(`${verified}/${results.length} claims verified`);
  console.log(`Cost: $${(claims.length * 0.005).toFixed(3)}`);
}

ground(['Python is the most popular language in 2026']).catch(console.error);

Salida esperada

JSON
Extracted 5 claims to verify
  [SUPPORTED] Python is the most popular programming language in 2026
  [UNVERIFIED] FastAPI processes 10 million requests per second
  [SUPPORTED] Django 5.2 was released in April 2026
  [SUPPORTED] OpenAI has over 200 million weekly active users
  [UNVERIFIED] Rust will replace Python by 2028

3/5 claims verified
Verification cost: $0.025 (5 searches)

Tutoriales relacionados

  • Cómo construir un agente RAG con LangChain y Scavio
  • Cómo agregar búsqueda web a un agente LLM local
  • Cómo construir un agente de investigación autónomo con Scavio

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.10+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Una clave API de OpenAI (o cualquier API LLM para extracción de reclamos). Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Best Of

Las mejores herramientas de API única para la creación de wikis LLM (2026)

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more

Empieza a construir

Cree un canal que base el contenido generado por LLM con datos de búsqueda verificados. Reduzca las alucinaciones comparando afirmaciones con resultados SERP en vivo.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad