Guia de instalação

Duas coisas precisam de estar em funcionamento no seu site: o aviso que os seus visitantes veem e um pequeno ficheiro público que declara a sua utilização de IA (oseusite.com/.well-known/ai-disclosure.json). A tag do snippet é colada uma vez, é idêntica em todas as páginas e a sua declaração decide que avisos aparecem e onde. Escolha a sua plataforma abaixo; a maioria demora cerca de dez minutos.

1 · Mostrar os avisos

Banner e rótulos de IA que os seus visitantes veem na página.

2 · Publicar a sua declaração

ai-disclosure.json, um ficheiro público legível a partir do seu próprio domínio.

Está concluído quando

o verificador mostrar Nível 2 · Apresentado.

Escolha a sua plataforma

WordPress

  1. Instalar o plugin

    Na administração do WordPress: Plugins → Adicionar novo → Carregar plugin, escolha o ficheiro que transferiu abaixo e clique em Ativar.

    Transferir o plugin AIDisclose (.zip)

  2. Deixe-o fazer as duas tarefas

    O plugin mostra os avisos e publica o seu ficheiro de declaração automaticamente. Marque conteúdo de IA em qualquer publicação ou imagem com o respetivo interruptor «Conteúdo de IA». Sem edições de código.

  3. Verificar

    Concluído quando o verificador mostrar Nível 2 · Apresentado.

    Executar o verificador

Verificar

Execute o verificador. Confirma três coisas: o seu ficheiro de declaração é válido, o snippet está a funcionar e os avisos aparecem efetivamente na página. (Para engenheiros: verificações C1, C3 e C4 a C6.)

Executar o verificador

Se o seu site bloquear o nosso verificador (AIDiscloseBot)

As análises e as capturas de prova provêm do AIDiscloseBot/1.0. Lê apenas páginas públicas: nunca inicia sessão, nunca submete formulários e respeita o robots.txt. Se o seu robots.txt ou a sua proteção contra bots bloqueia rastreadores desconhecidos, autorize-o explicitamente:

robots.txt
User-agent: AIDiscloseBot
Allow: /

Autorizá-lo é um risco? Não. Uma autorização no robots.txt não concede qualquer acesso. Apenas indica aos bots que respeitam as regras que podem ler páginas que já são públicas. Qualquer pessoa pode forjar uma cadeia de User-Agent, mas quem o faz não ganha nada que as suas páginas públicas já não ofereçam.

Se filtra o tráfego com uma WAF ou um gestor de bots, nunca autorize apenas com base no User-Agent. Combine-o com a verificação da origem. Publicamos a identidade do nosso rastreador, e os intervalos de IP de saída à medida que são disponibilizados, em aidisclose.io/bot.json.

Executar o verificador

Avançado

Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.

Fixar o script a uma versão exata (SRI)

Um hash de integridade na tag de script faz com que o navegador se recuse a executar um ficheiro modificado. Fixe o URL com versão e gere o hash a partir do ficheiro exato que implementa:

shell
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Servir o ficheiro por conta própria (nginx / Apache)

Nos servidores que controla, sirva diretamente o ai-disclosure.json transferido:

nginx
location = /.well-known/ai-disclosure.json {
  alias /var/www/site/ai-disclosure.json;
  default_type application/json;
  add_header Cache-Control "max-age=3600";
}
Apache
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
  ForceType application/json
</Files>
Servir a partir do seu próprio domínio o ficheiro alojado no painel

O seu servidor reencaminha para nós os pedidos desse único endereço: edita o ficheiro no painel e este continua a ser servido a partir do seu domínio. O painel mostra estes valores pré-preenchidos com a sua chave de site.

nginx
location = /.well-known/ai-disclosure.json {
  proxy_pass https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY;
  proxy_set_header Host cdn.aidisclose.io;
  proxy_ssl_server_name on;
}
Cloudflare Worker
export default {
  async fetch(request) {
    const url = new URL(request.url);
    if (url.pathname === "/.well-known/ai-disclosure.json") {
      return fetch("https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY");
    }
    return fetch(request);
  }
};
Aplicações de página única e hosts estáticos

As frameworks que reescrevem todas as rotas para index.html, e alguns hosts estáticos, intercetam /.well-known/ai-disclosure.json e devolvem o HTML da sua aplicação com um estado 200. O ficheiro parece estar incluído no repositório, mas o verificador lê HTML em vez do manifesto. Duas soluções: exclua /.well-known/ da reescrita geral para que o ficheiro estático seja servido com o tipo application/json, ou adicione data-aidisclose="YOUR_SITE_KEY" à tag de script para carregar o manifesto alojado pela AIDisclose e não servir o ficheiro de todo.

netlify.toml / vercel.json
# netlify.toml: serve the real file before the SPA fallback
[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
  force = false   # a real file at the path wins over this fallback

# vercel.json: rewrite everything EXCEPT /.well-known to the app
{ "rewrites": [
  { "source": "/((?!\.well-known/).*)", "destination": "/index.html" }
] }