Przewodnik instalacji

Na Twojej stronie muszą działać dwie rzeczy: informacja, którą widzą odwiedzający, oraz mały publiczny plik deklarujący Twoje wykorzystanie SI (twojastrona.pl/.well-known/ai-disclosure.json). Znacznik skryptu wkleja się raz, jest identyczny na każdej stronie, a Twoja deklaracja decyduje, które informacje pojawiają się i gdzie. Wybierz swoją platformę poniżej; większość zajmuje około dziesięciu minut.

1 · Pokaż informacje

Baner i etykiety SI, które odwiedzający widzą na stronie.

2 · Opublikuj swoją deklarację

ai-disclosure.json, publiczny plik odczytywalny z Twojej własnej domeny.

Gotowe, gdy

weryfikator pokaże Poziom 2 · Wyświetlany.

Wybierz swoją platformę

WordPress

  1. Zainstaluj wtyczkę

    W panelu administracyjnym WordPress: Plugins → Add New → Upload Plugin, wybierz plik pobrany poniżej, a następnie kliknij Activate.

    Pobierz wtyczkę AIDisclose (.zip)

  2. Pozwól jej wykonać oba zadania

    Wtyczka wyświetla informacje i automatycznie publikuje Twój plik deklaracji. Oznacz treści SI w dowolnym wpisie lub obrazie przełącznikiem „AI content”. Bez edycji kodu.

  3. Zweryfikuj

    Gotowe, gdy weryfikator pokaże Poziom 2 · Wyświetlany.

    Uruchom weryfikator

Zweryfikuj

Uruchom weryfikator. Potwierdza trzy rzeczy: Twój plik deklaracji jest ważny, skrypt działa, a informacje rzeczywiście pojawiają się na stronie. (Dla inżynierów: kontrole C1, C3 oraz od C4 do C6.)

Uruchom weryfikator

Jeśli Twoja strona blokuje nasz weryfikator (AIDiscloseBot)

Skany i przechwycenia dowodów pochodzą od AIDiscloseBot/1.0. Odczytuje wyłącznie strony publiczne: nigdy się nie loguje, nigdy nie wysyła formularzy i przestrzega robots.txt. Jeśli Twój robots.txt lub ochrona przed botami blokuje nieznane roboty, zezwól na niego jawnie:

robots.txt
User-agent: AIDiscloseBot
Allow: /

Czy zezwolenie na niego wiąże się z ryzykiem? Nie. Wpis zezwalający w robots.txt nie przyznaje żadnego dostępu. Informuje jedynie grzeczne boty, że mogą odczytywać strony, które i tak są już publiczne. Każdy może podrobić ciąg User-Agent, ale fałszerz nie uzyska niczego, czego Twoje publiczne strony i tak już nie udostępniają.

Jeśli kontrolujesz ruch za pomocą WAF lub menedżera botów, nigdy nie twórz reguły zezwalającej wyłącznie na podstawie User-Agent. Połącz ją z weryfikacją źródła. Publikujemy tożsamość naszego robota oraz zakresy adresów IP wyjściowych w miarę ich udostępniania pod adresem aidisclose.io/bot.json.

Uruchom weryfikator

Zaawansowane

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

Zablokuj skrypt do konkretnej wersji (SRI)

Skrót integralności w znaczniku script sprawia, że przeglądarka odmawia uruchomienia zmodyfikowanego pliku. Przypnij wersjonowany adres URL i wygeneruj skrót z dokładnie tego pliku, który wdrażasz:

shell
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Serwuj plik samodzielnie (nginx / Apache)

Na serwerach, które kontrolujesz, serwuj pobrany plik ai-disclosure.json bezpośrednio:

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>
Serwuj plik hostowany w panelu z własnej domeny

Twój serwer przekazuje żądania tego jednego adresu do nas: edytujesz plik w panelu, a on nadal jest serwowany z Twojej domeny. Panel pokazuje je wypełnione Twoim kluczem witryny.

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);
  }
};
Aplikacje jednostronicowe i hosty statyczne

Frameworki, które przepisują każdą trasę na index.html, oraz niektóre hosty statyczne przechwytują /.well-known/ai-disclosure.json i zwracają HTML Twojej aplikacji ze statusem 200. Plik wygląda na zatwierdzony, ale weryfikator odczytuje HTML zamiast manifestu. Dwa rozwiązania: wyklucz /.well-known/ z reguły przepisującej wszystkie trasy, aby plik statyczny był serwowany z typem application/json, albo dodaj data-aidisclose="YOUR_SITE_KEY" do tagu skryptu, aby wczytać manifest hostowany przez AIDisclose i całkowicie pominąć serwowanie pliku.

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" }
] }