Uso de IA no trabalho

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.

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.

ReferênciaAfirmação da IAURL
urllib.requestPython fornece urllib.request para abrir URLs.https://docs.python.org/3/library/urllib.request.html
jsonO 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éticaEsta 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.

URLTermos a procurar
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. Copie cada URL exatamente como a IA forneceu.
  2. Registre a afirmação ao lado da URL, em vez de verificar apenas o link.
  3. Escolha apenas alguns termos distintivos para a triagem inicial.
  4. 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.

ResultadoInterpretaçãoPróxima ação
Acessível e termos encontradosA página pode ser relevante.Leia a seção correspondente e compare com a afirmação exata da IA.
Acessível, mas sem os termosA 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 HTTPO 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 DNSO 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

  1. Confirme se o título da página e a organização correspondem ao que a IA mencionou.
  2. Procure na página o conceito exato usado na afirmação.
  3. Leia contexto suficiente ao redor do trecho para entender condições e exceções.
  4. Verifique se a IA transformou uma afirmação limitada em uma conclusão mais ampla.
  5. Registre o título da seção ou a localização relevante para revisão posterior.
  6. 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.

Princípios de redação e verificação de todo o site

Fontes de referência

As explicações e os exemplos são de elaboração própria. Os comportamentos e conceitos relacionados podem ser consultados nas fontes oficiais abaixo.