Uso de IA en el trabajo

Comprobar si las referencias y enlaces citados por una IA existen realmente

Las referencias generadas por una IA pueden parecer creíbles aunque el enlace no exista o el contenido real no coincida con lo que afirma la IA. Este ejemplo sintético muestra cómo comprobar tanto la existencia del enlace como si la fuente está relacionada con la afirmación.

Ver el índice

La traducción se ha realizado con IA. Comprueba el código, las unidades y los valores junto con el original. La revisión por hablantes nativos de cada idioma aún no se ha completado. English

Para quién esPara personas que usan un asistente de chat con IA en investigaciones, informes o documentación y quieren verificar las referencias antes de utilizarlas.

Preparación
  • Python 3.12
  • Conexión a Internet al ejecutar el script de comprobación de URL

01¿Por qué comprobar las referencias generadas por IA?

Una referencia con aspecto profesional no es automáticamente fiable. Una respuesta de IA puede incluir una URL real con una descripción incorrecta, una URL que ya no existe o una referencia completamente inventada. Por eso conviene separar la verificación en dos preguntas: si la referencia existe y si realmente contiene información que respalda la afirmación de la IA.

  • Comprobación de existencia: ¿se puede acceder a la URL y devuelve una respuesta web normal?
  • Comprobación de contenido: ¿la página obtenida contiene información relacionada con la afirmación?
  • Comprobación de la fuente: ¿la página pertenece realmente a la organización, editorial o sitio de documentación que mencionó la IA?
  • Revisión humana: ¿la página respalda la afirmación completa y no solo comparte algunas palabras clave?

02Usar un pequeño ejemplo sintético

El siguiente ejemplo es sintético. Imagina que preguntas a un asistente de chat con IA qué páginas de la biblioteca estándar de Python explican cómo abrir URL y trabajar con JSON. Antes de incluir esas referencias en una nota de trabajo, quieres comprobarlas.

Petición a la IA: Dame referencias oficiales de Python para abrir URL y leer o escribir JSON. Para cada referencia, indica una afirmación concreta que respalde la página y proporciona la URL exacta.

ReferenciaAfirmación de la IAURL
urllib.requestPython proporciona urllib.request para abrir URL.https://docs.python.org/3/library/urllib.request.html
jsonEl módulo json de Python proporciona codificación y decodificación de JSON.https://docs.python.org/3/library/json.html
Referencia falsa sintéticaEsta página documenta un verificador de referencias específico para IA.https://example.invalid/fake-reference

La tercera fila es deliberadamente falsa para este ejercicio sintético. El objetivo es que el proceso de verificación la detecte en lugar de confiar en que la cita parece bien formada.

03Convertir la respuesta de la IA en comprobaciones explícitas

No conviene pedir a Python que decida si una afirmación completa en lenguaje natural es verdadera. En su lugar, registra la URL, la afirmación y unas pocas palabras que deberían aparecer razonablemente si la página es pertinente. Esas palabras solo sirven como ayuda para una revisión inicial.

URLTérminos que buscar
https://docs.python.org/3/library/urllib.request.htmlurllib.request; URL
https://docs.python.org/3/library/json.htmljson; encoding; decoding
https://example.invalid/fake-referencereference; verifier
  1. Copia cada URL exactamente como la devolvió la IA.
  2. Anota la afirmación junto a la URL en vez de comprobar únicamente el enlace.
  3. Elige solo unas pocas palabras distintivas para la revisión inicial.
  4. Después de la comprobación automática, abre cada referencia que vayas a citar y lee personalmente el pasaje relevante.

04Comprobar las URL y el texto de las páginas con Python

Este script basado solo en la biblioteca estándar solicita cada página, registra la URL final y el estado HTTP, extrae texto visible básico y comprueba los términos seleccionados. Guarda el informe en outputs/reference_check.json. Para no sobrescribir una revisión anterior, se detiene si la carpeta outputs ya existe.

python
from pathlib import Path
from urllib.request import Request, urlopen
from urllib.error import HTTPError, URLError
import html
import json
import re

checks = [
    {
        "reference": "urllib.request",
        "url": "https://docs.python.org/3/library/urllib.request.html",
        "claim": "Python provides urllib.request for opening URLs.",
        "terms": ["urllib.request", "URL"],
    },
    {
        "reference": "json",
        "url": "https://docs.python.org/3/library/json.html",
        "claim": "Python's json module provides JSON encoding and decoding.",
        "terms": ["json", "encoding", "decoding"],
    },
    {
        "reference": "Synthetic fake reference",
        "url": "https://example.invalid/fake-reference",
        "claim": "This page documents an AI-specific reference verifier.",
        "terms": ["reference", "verifier"],
    },
]

output_dir = Path("outputs")
if output_dir.exists():
    raise SystemExit("outputs already exists; remove or rename it before running again")
output_dir.mkdir()

results = []

for item in checks:
    result = {
        "reference": item["reference"],
        "url": item["url"],
        "claim": item["claim"],
        "reachable": False,
        "status": None,
        "final_url": None,
        "term_matches": {},
        "error": None,
    }

    try:
        request = Request(
            item["url"],
            headers={"User-Agent": "Worknote reference checker/1.0"},
        )
        with urlopen(request, timeout=10) as response:
            result["status"] = response.status
            result["final_url"] = response.geturl()
            raw = response.read(500_000).decode("utf-8", errors="replace")

        text = re.sub(r"<script.*?</script>", " ", raw, flags=re.I | re.S)
        text = re.sub(r"<style.*?</style>", " ", text, flags=re.I | re.S)
        text = re.sub(r"<[^>]+>", " ", text)
        text = html.unescape(text)
        text = re.sub(r"\s+", " ", text)

        result["reachable"] = True
        lowered = text.casefold()
        result["term_matches"] = {
            term: term.casefold() in lowered for term in item["terms"]
        }

    except HTTPError as exc:
        result["status"] = exc.code
        result["error"] = f"HTTPError: {exc}"
    except URLError as exc:
        result["error"] = f"URLError: {exc.reason}"
    except Exception as exc:
        result["error"] = f"{type(exc).__name__}: {exc}"

    results.append(result)

report_path = output_dir / "reference_check.json"
report_path.write_text(
    json.dumps(results, indent=2, ensure_ascii=False),
    encoding="utf-8",
)

for result in results:
    print(result["reference"])
    print("  reachable:", result["reachable"])
    print("  status:", result["status"])
    print("  final URL:", result["final_url"])
    print("  term matches:", result["term_matches"])
    print("  error:", result["error"])

print(f"Saved: {report_path}")

05Interpretar los resultados con cautela

Una página accesible en la que aparecen los términos debería marcarse para revisión manual, no considerarse automáticamente una afirmación verificada. La coincidencia de palabras no puede determinar el contexto, el alcance, una negación ni si la IA exageró lo que dice la fuente.

ResultadoInterpretaciónSiguiente acción
Accesible y con términos encontradosLa página puede ser pertinente.Lee la sección correspondiente y compárala con la afirmación exacta de la IA.
Accesible pero sin términosLa URL existe, pero la revisión rápida no encontró las expresiones esperadas.Inspecciona la página manualmente y comprueba si la IA citó la página equivocada.
Error HTTPEl servidor respondió con un estado de error.Comprueba la URL, las redirecciones, los requisitos de acceso o si la referencia se movió.
Error de red o DNSEl script no pudo acceder a la dirección.Comprueba la escritura de la URL y verifica la referencia por otra vía.

06Realizar la comprobación manual final

  1. Confirma que el título de la página y la organización coincidan con lo indicado por la IA.
  2. Busca en la página el concepto exacto utilizado en la afirmación.
  3. Lee suficiente contexto alrededor del fragmento para entender condiciones y excepciones.
  4. Comprueba si la IA convirtió una afirmación limitada en una conclusión más amplia.
  5. Registra el encabezado de la sección o la ubicación relevante para poder revisarla después.
  6. Descarta o corrige cualquier cita cuya fuente no pueda localizarse o no respalde la afirmación indicada.

07Errores habituales y límites

  • Suponer que un dominio conocido significa que todas sus URL son auténticas.
  • Aceptar una página porque contiene una sola palabra clave en algún lugar.
  • Ignorar las redirecciones y comprobar únicamente la URL original proporcionada por la IA.
  • Usar el título de una página, un fragmento de resultados de búsqueda, un resumen o un índice como prueba de una afirmación detallada.
  • Utilizar la coincidencia automática de texto como sustituto de la lectura del pasaje citado.
  • Olvidar que algunos sitios legítimos bloquean solicitudes automatizadas o requieren JavaScript, autenticación u otros métodos de acceso.

En trabajos académicos también debes verificar datos bibliográficos como autores, título, año, revista, DOI y el contenido real del artículo. Un comprobador de URL no puede establecer la validez académica, detectar por sí solo trabajos retractados ni decidir si la evidencia es metodológicamente sólida.

Registro de ejecución y verificación

2026-09-21 · hand-checked example · Python 3.12

  • Comprobé manualmente que el ejemplo contiene tres referencias y que la tercera está identificada explícitamente como una referencia falsa sintética.
  • Comprobé que las dos URL reales del ejemplo corresponden a rutas oficiales de la documentación de Python para urllib.request y json.
  • Comprobé que el script utiliza únicamente módulos de la biblioteca estándar de Python.
  • Comprobé que el script crea outputs/reference_check.json y se detiene en lugar de sobrescribir una carpeta outputs existente.
  • Comprobé la separación lógica entre accesibilidad de la URL, coincidencia simple de términos y revisión manual de la afirmación.
Límites de la verificación
  • El código no fue ejecutado por mí.
  • No se realizaron solicitudes de red en directo, por lo que aquí no se verificaron los códigos de estado HTTP ni las redirecciones actuales.
  • La presencia de palabras clave no demuestra que una página respalde una afirmación; el pasaje relevante todavía requiere revisión humana.
  • Algunos sitios web legítimos pueden rechazar solicitudes automatizadas, usar contenido renderizado con JavaScript, requerir autenticación u otros métodos de acceso.

Criterios de redacción y verificación de todo el sitio

Fuentes de referencia

Las explicaciones y los ejemplos son de elaboración propia. Puedes consultar los comportamientos y conceptos relacionados en las siguientes fuentes oficiales.