Verificar se referências e links citados por uma IA realmente existem
Referências geradas por IA podem parecer confiáveis mesmo quando o link não existe ou quando o conteúdo real não corresponde ao que a IA afirma. Este exemplo sintético mostra como verificar tanto a existência do link quanto se a fonte realmente está relacionada à afirmação.
Conteúdo verificado 2026.09.21Inclui arquivos de exemplo
Ver o sumário
A tradução foi feita com IA. Confira o código, as unidades e os valores junto com o original. A revisão por falantes nativos de cada idioma ainda não foi concluída. English
Para quem éPara quem usa um assistente de chat com IA em pesquisas, relatórios ou documentação e quer verificar referências antes de utilizá-las.
Preparação
Python 3.12
Acesso à Internet ao executar o script de verificação de URLs
01Por que verificar referências geradas por IA?
Uma referência com aparência profissional não é automaticamente confiável. Uma resposta de IA pode incluir uma URL real com uma descrição incorreta, uma URL que não existe mais ou uma referência completamente inventada. Por isso, a verificação deve ser dividida em duas perguntas: a referência realmente existe e ela realmente contém informações que sustentam a afirmação da IA?
Verificação de existência: é possível acessar a URL e receber uma resposta web normal?
Verificação de conteúdo: a página obtida contém informações relacionadas à afirmação?
Verificação da fonte: a página realmente pertence à organização, editora ou site de documentação mencionado pela IA?
Revisão humana: a página sustenta a afirmação completa, e não apenas contém algumas palavras-chave?
02Usar um pequeno exemplo sintético
O exemplo a seguir é sintético. Imagine que você perguntou a um assistente de chat com IA quais páginas da biblioteca padrão do Python explicam como abrir URLs e trabalhar com JSON. Antes de colocar essas referências em uma anotação de trabalho, você quer verificá-las.
Pedido à IA: forneça referências oficiais do Python para abrir URLs e ler ou gravar JSON. Para cada referência, informe uma afirmação específica que a página sustenta e forneça a URL exata.
O módulo json do Python fornece codificação e decodificação de JSON.
https://docs.python.org/3/library/json.html
Referência falsa sintética
Esta página documenta um verificador de referências específico para IA.
https://example.invalid/fake-reference
A terceira linha é deliberadamente falsa neste exercício sintético. O objetivo é fazer com que o processo de verificação detecte esse caso, em vez de confiar apenas na aparência da citação.
03Transformar a resposta da IA em verificações explícitas
Não é recomendável pedir ao Python que decida sozinho se uma afirmação completa em linguagem natural é verdadeira. Em vez disso, registre a URL, a afirmação e alguns termos que provavelmente apareceriam se a página fosse relevante. Esses termos servem apenas como uma triagem inicial.
Registre a afirmação ao lado da URL, em vez de verificar apenas o link.
Escolha apenas alguns termos distintivos para a triagem inicial.
Depois da verificação automática, abra todas as referências que pretende citar e leia pessoalmente o trecho relevante.
04Verificar as URLs e o texto das páginas com Python
Este script usa apenas a biblioteca padrão, solicita cada página, registra a URL final e o status HTTP, extrai um texto visível básico e verifica os termos selecionados. O relatório é salvo em outputs/reference_check.json. Para não sobrescrever uma revisão anterior, o script para se a pasta outputs já existir.
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 os resultados com cautela
Uma página acessível na qual os termos aparecem deve ser marcada para revisão manual, e não tratada automaticamente como uma afirmação verificada. A correspondência de palavras não consegue determinar contexto, escopo, negação nem se a IA exagerou o que a fonte realmente diz.
Resultado
Interpretação
Próxima ação
Acessível e termos encontrados
A página pode ser relevante.
Leia a seção correspondente e compare com a afirmação exata da IA.
Acessível, mas sem os termos
A URL existe, mas a triagem rápida não encontrou a formulação esperada.
Inspecione a página manualmente e verifique se a IA citou a página errada.
Erro HTTP
O servidor respondeu com um status de erro.
Verifique a URL, redirecionamentos, requisitos de acesso ou se a referência foi movida.
Erro de rede ou DNS
O script não conseguiu acessar o endereço.
Verifique a grafia da URL e confirme a referência por outro meio.
06Fazer a verificação manual final
Confirme se o título da página e a organização correspondem ao que a IA mencionou.
Procure na página o conceito exato usado na afirmação.
Leia contexto suficiente ao redor do trecho para entender condições e exceções.
Verifique se a IA transformou uma afirmação limitada em uma conclusão mais ampla.
Registre o título da seção ou a localização relevante para revisão posterior.
Remova ou corrija qualquer citação cuja fonte não possa ser localizada ou não sustente a afirmação indicada.
07Erros comuns e limitações
Supor que um domínio conhecido significa que todas as URLs desse domínio são autênticas.
Aceitar uma página apenas porque uma palavra-chave aparece em algum ponto.
Ignorar redirecionamentos e verificar apenas a URL original fornecida pela IA.
Usar o título da página, o trecho de um resultado de busca, um resumo ou um sumário como prova de uma afirmação detalhada.
Usar correspondência automática de texto como substituto da leitura do trecho citado.
Esquecer que alguns sites legítimos bloqueiam solicitações automatizadas ou exigem JavaScript, autenticação ou outros métodos de acesso.
Em trabalhos acadêmicos, também é necessário verificar dados bibliográficos como autores, título, ano, periódico, DOI e o conteúdo real do artigo. Um verificador de URLs não consegue estabelecer validade acadêmica, detectar sozinho trabalhos retratados nem decidir se a evidência é metodologicamente sólida.
Registro de execução e verificação
2026-09-21 · hand-checked example · Python 3.12
Verifiquei manualmente que o exemplo contém três referências e que a terceira está explicitamente identificada como uma referência falsa sintética.
Verifiquei que as duas URLs reais do exemplo correspondem a caminhos oficiais da documentação do Python para urllib.request e json.
Verifiquei que o script usa apenas módulos da biblioteca padrão do Python.
Verifiquei que o script cria outputs/reference_check.json e para em vez de sobrescrever uma pasta outputs já existente.
Verifiquei a separação lógica entre acessibilidade da URL, correspondência simples de termos e revisão manual da afirmação.
Limites da verificação
O código não foi executado por mim.
Nenhuma solicitação de rede ao vivo foi feita, portanto os códigos HTTP e redirecionamentos atuais não foram verificados aqui.
A presença de palavras-chave não prova que uma página sustenta uma afirmação; o trecho relevante ainda precisa de revisão humana.
Alguns sites legítimos podem rejeitar solicitações automatizadas, usar conteúdo renderizado por JavaScript, exigir autenticação ou outros métodos de acesso.
Transforme “automatize isso” em uma descrição de tarefa executável. Anexe uma amostra sintética sem dados sensíveis e um resultado esperado verificado manualmente para completar uma solicitação de script que totaliza registros de trabalho por equipe.
Verifique uma função de agregação com quatro linhas que você pode calcular manualmente e 12 unit tests. Verifique não apenas valores normais, mas também entrada vazia, zero, decimais e entrada inválida.
Separe um resumo plausível em fatos, cálculos e interpretações. Recalcule proporções e médias a partir de dados mensais sintéticos e reescreva frases com fontes ausentes ou causas exageradas como afirmações que possam ser verificadas.
Trate uma regex gerada por IA como um rascunho, não como uma regra final. Monte uma pequena tabela de testes sintéticos, compare os resultados esperados com as correspondências reais, revise o padrão e salve um relatório de revisão antes de usá-lo em dados reais.