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.
Contenido revisado 2026.09.21Incluye archivos de ejemplo
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.
El módulo json de Python proporciona codificación y decodificación de JSON.
https://docs.python.org/3/library/json.html
Referencia falsa sintética
Esta 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.
Copia cada URL exactamente como la devolvió la IA.
Anota la afirmación junto a la URL en vez de comprobar únicamente el enlace.
Elige solo unas pocas palabras distintivas para la revisión inicial.
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.
Resultado
Interpretación
Siguiente acción
Accesible y con términos encontrados
La 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érminos
La 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 HTTP
El 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 DNS
El 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
Confirma que el título de la página y la organización coincidan con lo indicado por la IA.
Busca en la página el concepto exacto utilizado en la afirmación.
Lee suficiente contexto alrededor del fragmento para entender condiciones y excepciones.
Comprueba si la IA convirtió una afirmación limitada en una conclusión más amplia.
Registra el encabezado de la sección o la ubicación relevante para poder revisarla después.
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.
Las explicaciones y los ejemplos son de elaboración propia. Puedes consultar los comportamientos y conceptos relacionados en las siguientes fuentes oficiales.
Convierte “automatiza esto” en una descripción de tarea ejecutable. Adjunta una muestra sintética sin datos sensibles y un resultado esperado comprobado manualmente para completar una solicitud de script que totalice registros de trabajo por equipo.
Comprueba una función de agregación con cuatro filas que puedes calcular manualmente y 12 unit tests. Verifica no solo valores normales, sino también entrada vacía, cero, decimales y entrada no válida.
Divide un resumen plausible en hechos, cálculos e interpretaciones. Recalcula proporciones y promedios a partir de datos mensuales sintéticos y reescribe las frases con fuentes faltantes o causas exageradas para convertirlas en afirmaciones comprobables.
Trata una expresión regular generada por IA como un borrador, no como una regla terminada. Crea una pequeña tabla de pruebas sintéticas, compara las coincidencias esperadas con las reales, corrige el patrón y guarda un informe de revisión antes de usarlo con datos reales.