ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo verificar los resultados de la búsqueda de IA mediante programación
Tutorial

Cómo verificar los resultados de la búsqueda de IA mediante programación

Cree un canal automatizado que coteje las respuestas de búsqueda de IA con múltiples fuentes. Detecta alucinaciones antes de que lleguen a los usuarios.

Obtener clave API gratisDocumentacion API

Los motores de búsqueda de inteligencia artificial como Perplexity y ChatGPT Search a veces presentan información fabricada u obsoleta como un hecho. Este tutorial crea un proceso de verificación que toma una respuesta generada por IA, extrae sus afirmaciones fácticas y compara cada afirmación con resultados SERP nuevos. El canal marca reclamos no verificados y asigna una puntuación de confianza. Costo: 1-3 búsquedas por verificación a $0.005-0.015.

Requisitos previos

  • Python 3.9+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev

Guia paso a paso

Paso 1: Extraiga afirmaciones fácticas del texto generado por IA

Analice una respuesta de IA para identificar afirmaciones fácticas específicas que puedan verificarse. Concéntrese en números, fechas, nombres y afirmaciones específicas.

Python
import re

def extract_claims(text: str) -> list:
    """Extract verifiable claims from AI-generated text."""
    claims = []
    sentences = re.split(r'[.!?]\s+', text)
    for sentence in sentences:
        sentence = sentence.strip()
        if not sentence or len(sentence) < 20:
            continue
        # Claims with numbers/dates are verifiable
        has_number = bool(re.search(r'\d+', sentence))
        # Claims with proper nouns
        has_proper = bool(re.search(r'[A-Z][a-z]+(?:\s[A-Z][a-z]+)*', sentence))
        # Claims with comparison words
        has_comparison = any(w in sentence.lower() for w in
            ['fastest', 'largest', 'best', 'most', 'first', 'only', 'latest'])
        if has_number or has_comparison:
            claims.append({'text': sentence, 'type': 'numeric' if has_number else 'comparative'})
        elif has_proper:
            claims.append({'text': sentence, 'type': 'factual'})
    return claims

# Example AI answer to verify
ai_answer = """Python 3.14 was released in October 2025 with a new JIT compiler.
It is 2x faster than Python 3.12 for numeric workloads.
Guido van Rossum announced the change at PyCon 2025."""

claims = extract_claims(ai_answer)
for c in claims:
    print(f'  [{c["type"]}] {c["text"]}')

Paso 2: Verifique los reclamos con los resultados de búsqueda en vivo

Para cada afirmación, busque en la web y compruebe si los resultados de SERP la respaldan o la contradicen.

Python
import requests, os

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def verify_claim(claim: str) -> dict:
    # Build a verification query from the claim
    query = claim[:100]  # truncate long claims
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us', 'num_results': 5})
    results = resp.json().get('organic_results', [])
    if not results:
        return {'claim': claim, 'status': 'unverified', 'confidence': 0, 'sources': []}
    # Check if results support the claim
    claim_lower = claim.lower()
    claim_keywords = set(re.findall(r'\b\w{4,}\b', claim_lower))
    support_count = 0
    sources = []
    for r in results:
        text = (r.get('title', '') + ' ' + r.get('snippet', '')).lower()
        result_words = set(re.findall(r'\b\w{4,}\b', text))
        overlap = len(claim_keywords & result_words) / max(len(claim_keywords), 1)
        if overlap > 0.3:
            support_count += 1
            sources.append({'title': r['title'][:50], 'url': r['link']})
    confidence = min(support_count / 3 * 100, 100)
    status = 'verified' if confidence >= 50 else 'disputed' if confidence >= 20 else 'unverified'
    return {'claim': claim[:60], 'status': status,
            'confidence': round(confidence), 'sources': sources[:2]}

Paso 3: Ejecute el proceso de verificación completo y calcule la puntuación de confianza

Verifique todas las afirmaciones de una respuesta de IA y calcule una puntuación de confianza general para la respuesta.

Python
import time

def verify_answer(ai_text: str) -> dict:
    claims = extract_claims(ai_text)
    if not claims:
        return {'trust_score': 0, 'claims': [], 'note': 'No verifiable claims found'}
    verified_claims = []
    for claim in claims:
        result = verify_claim(claim['text'])
        result['type'] = claim['type']
        verified_claims.append(result)
        time.sleep(0.3)
    # Compute trust score
    verified = len([c for c in verified_claims if c['status'] == 'verified'])
    disputed = len([c for c in verified_claims if c['status'] == 'disputed'])
    total = len(verified_claims)
    trust_score = round(verified / total * 100) if total > 0 else 0
    cost = total * 0.005
    print(f'Trust Score: {trust_score}/100')
    print(f'Claims: {total} total, {verified} verified, {disputed} disputed')
    print(f'Verification cost: ${cost:.3f}\n')
    for c in verified_claims:
        icon = 'PASS' if c['status'] == 'verified' else 'WARN' if c['status'] == 'disputed' else 'FAIL'
        print(f'  [{icon}] {c["claim"]}')
        if c['sources']:
            print(f'         Source: {c["sources"][0]["title"]}')
    return {'trust_score': trust_score, 'claims': verified_claims, 'cost': cost}

result = verify_answer(ai_answer)

Ejemplo en Python

Python
import requests, os, re, time

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def verify(claim):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': claim[:100], 'country_code': 'us', 'num_results': 5})
    results = resp.json().get('organic_results', [])
    keywords = set(re.findall(r'\b\w{4,}\b', claim.lower()))
    support = sum(1 for r in results
        if len(keywords & set(re.findall(r'\b\w{4,}\b', (r.get('snippet','')).lower()))) > len(keywords)*0.3)
    return 'verified' if support >= 2 else 'unverified'

claims = ['Python 3.14 released October 2025', 'Guido van Rossum at PyCon 2025']
for c in claims:
    print(f'{verify(c)}: {c}')
    time.sleep(0.3)

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

async function verify(claim) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: claim.slice(0, 100), country_code: 'us', num_results: 5 })
  });
  const results = (await resp.json()).organic_results || [];
  const keywords = new Set(claim.toLowerCase().match(/\b\w{4,}/g) || []);
  const support = results.filter(r => {
    const words = new Set((r.snippet || '').toLowerCase().match(/\b\w{4,}/g) || []);
    return [...keywords].filter(k => words.has(k)).length > keywords.size * 0.3;
  }).length;
  return support >= 2 ? 'verified' : 'unverified';
}

verify('Python 3.14 released October 2025').then(r => console.log(r));

Salida esperada

JSON
  [numeric] Python 3.14 was released in October 2025 with a new JIT compiler
  [numeric] It is 2x faster than Python 3.12 for numeric workloads
  [factual] Guido van Rossum announced the change at PyCon 2025

Trust Score: 67/100
Claims: 3 total, 2 verified, 1 disputed
Verification cost: $0.015

  [PASS] Python 3.14 was released in October 2025 with a new JI
         Source: Python 3.14 Release Notes - docs.python.org
  [WARN] It is 2x faster than Python 3.12 for numeric workloads
  [PASS] Guido van Rossum announced the change at PyCon 2025
         Source: PyCon 2025 Keynote - Guido van Rossum

Tutoriales relacionados

  • Cómo crear un canal de puntuación de confianza en la búsqueda
  • Cómo poner a tierra un LLM local con una API de búsqueda
  • Cómo comparar la calidad de la API de búsqueda por dólar

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.9+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. 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 aplicaciones de productividad de IA en 2026

Read more
Best Of

Las mejores alternativas a SerpAPI en 2026

Read more
Glossary

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

Read more
Glossary

Buscar Era del muro de pago (2026)

Read more
Use Case

Acceso web de IA de código abierto 2026

Read more
Comparison

DataForSEO vs Serper

Read more

Empieza a construir

Cree un canal automatizado que coteje las respuestas de búsqueda de IA con múltiples fuentes. Detecta alucinaciones antes de que lleguen a los usuarios.

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