Dokumentācija

AIDisclose fragments

Konfigurācijas un pielāgošanas atsauce

aidisclose.js ir vietnē iegultais skripts, kas nolasa jūsu ai-disclosure.json manifestu un attēlo likumā prasītos atklāšanas paziņojumus: mijiedarbības joslu tērzēšanas robotiem, pastāvīgu satura paziņojumu, redzamas etiķetes uz marķētiem medijiem un mašīnlasāmus lapas metadatus. Tas nav atkarīgs no citām bibliotēkām, aizņem aptuveni 8.2 KB gzip saspiestā veidā un atbilst WCAG 2.1 AA.

Šī lapa ir pilnā konfigurācijas un pielāgošanas atsauce. Platformu pa platformai uzstādīšanas soļus (WordPress, Shopify, Webflow, tagu pārvaldnieki) skatiet uzstādīšanas rokasgrāmatā. Šo dokumentu var lasīt arī kā neapstrādātu markdown.

Pārskats

Viss darbojas ar vienu skripta tagu. Ielādes brīdī fragments ielādē jūsu manifestu un pēc tam attēlo tikai to, ko manifests deklarē:

  • Mijiedarbības josla sistēmai conversational: paziņojums, ka apmeklētājs sarunājas ar MI.
  • Satura paziņojums sistēmai content-generation ar scope: site vai scope: page: neliela pastāvīga zīmīte. Uz tās uzklikšķinot, atveras īss skaidrojums ar paziņojuma tekstu, jūsu izdevēja nosaukumu un sistēmas mērķi no manifesta, kā arī saiti uz manifesta failu; paziņojuma teksts saistās ar vienkāršā valodā rakstītu skaidrojumu vietnē aidisclose.io. Nozīmīte "made by humans" atver to pašu kartīti ar izdevēja nosaukumu.
  • Etiķetes atsevišķiem elementiem uz jebkura elementa, ko marķējat ar data-ai-content: redzama nozīmīte "AI" un mašīnlasāms data-digital-source-type.
  • Lapas metadati: <link rel="ai-disclosure"> un <meta name="ai-disclosure">, kas norāda uz jūsu manifestu.
  • Nozīmīte "Made by humans", kad manifests iestata noAiDeclared.

Viss zemāk minētais ir neobligāts. Bez konfigurācijas fragments nolasa jūsu /.well-known/ai-disclosure.json, attēlo saturu apmeklētāja valodā 28 lokalizācijās, ievēro operētājsistēmas gaišo vai tumšo režīmu un novietojas virs zināmajām sīkdatņu piekrišanas joslām, lai tās nekad nepārklātos.

Uzstādīšana

Pievienojiet tagu vienreiz sava vietnes koplietojamajā veidnē, tēmas galvenē vai tagu pārvaldniekā, un tas parādīsies katrā lapā. To var ievietot <head> sadaļā vai jebkur pirms </body>; tas ir atlikts (deferred), tāpēc izvietojums neietekmē uzvedību:

<script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>

Bez atribūtiem fragments nolasa manifestu vietnē https://YOURDOMAIN/.well-known/ai-disclosure.json. Ja jūsu platforma nevar pasniegt failu domēna saknē, izvietojiet manifestu pie AIDisclose un norādiet uz to ar atslēgu:

<script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>

Ja manifests nav sasniedzams, fragments reģistrē brīdinājumu konsolē un neattēlo nevienu no manifesta atkarīgu paziņojumu, tāpēc ielādes kļūme nekad neparāda uzminētu paziņojumu. Lapas metadati, jūsu [data-ai-content] etiķetes un ar data-banner="true" piespiedu kārtā ieslēgta josla joprojām tiek attēloti.

Konfigurācija

Fragmentu var konfigurēt trīs veidos. Izmantojiet to, kas vislabāk piemērots jūsu platformai.

1. Atribūti uz skripta taga. Vienkāršākais ceļš, bez papildu koda:

<script src="https://cdn.aidisclose.io/v1/aidisclose.js"
        data-theme="light" data-lang="fr" defer></script>

2. Globāls konfigurācijas objekts. Definējiet window.AIDiscloseConfig pirms skripta izpildes. Tas atklāj visu opciju kopumu, tostarp selektoru opcijas, kurām nav atribūta formas:

<script>
  window.AIDiscloseConfig = {
    theme: 'light',
    mountSelector: '#ai-disclosure-slot',
    triggerSelector: '#chat-launcher',
  };
</script>
<script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>

3. Manuāla inicializēšana. Pievienojiet data-manual, lai atliktu automātisko palaišanu, pēc tam pats izsauciet AIDisclose.init(), kad jūsu lietotne ir gatava (noderīgi vienas lapas lietotnēs):

<script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-manual defer></script>
<script>
  AIDisclose.init({ theme: 'dark', persistentChip: false });
</script>

Ja klāt ir vairāki avoti, window.AIDiscloseConfig uzvar: tas pārraksta gan skripta taga atribūtus, gan jebkuru objektu, kas nodots AIDisclose.init().

Opciju atsauce

Opciju kopums ir stabils visai 1.x līnijai.

Opcija Atribūts Vērtības Noklusējums Ietekme
theme data-theme light, dark, auto auto Krāsu shēma. auto seko apmeklētāja operētājsistēmas iestatījumam.
siteKey data-aidisclose virkne nav Ielādē AIDisclose izvietoto manifestu šai atslēgai, nevis well-known failu.
manifestUrl data-manifest-url URL /.well-known/ai-disclosure.json Nolasa manifestu no pielāgota URL.
lang data-lang BCP-47 kods lapas <html lang>, citādi apmeklētāja valoda Piespiež attēlošanas valodu.
banner data-banner true, false auto Piespiedu kārtā ieslēdz vai izslēdz mijiedarbības joslu. Ja nav iestatīts, tā parādās tikai tad, kad jūsu manifests deklarē sarunu (tērzēšanas robota) sistēmu.
persistentChip true, false true Parāda vai slēpj mijiedarbības joslas sakļauto mini zīmīti (mazo pogu, uz kuru tā tiek samazināta).
alwaysShow true, false false Parāda joslu atkārtoti katrā apmeklējumā, ignorējot apmeklētāja iepriekšējo noraidīšanu (saglabāta pārlūka localStorage).
mountSelector CSS selektors nav Attēlo joslu iekļautā veidā šī elementa iekšpusē, nevis kā fiksētu pārklājumu ekrāna apakšā.
triggerSelector CSS selektors nav Parāda mijiedarbības joslu tikai pēc tam, kad apmeklētājs uzklikšķina uz šī elementa, piemēram, tērzēšanas palaidēja. Lapās bez atbilstoša elementa josla neparādās, tāpēc tērzēšanas robots, kas ir tikai dažās lapās, atklāj sevi tikai tur. Palaidēji, kas ievietoti pēc ielādes, joprojām darbojas. Apmeklētājs, kas iepriekš noraidīja joslu, joprojām redz mini zīmīti.
adjacentSelector CSS selektors nav Novieto etiķeti blakus elementam, ko nevarat marķēt tieši, piemēram, aizvērtam sīkrīkam vai iframe.
observe true, false true Novēro DOM, lai atklātu vēlāk pievienotu saturu un to marķētu. Iestatiet false pilnīgi statiskās lapās.
beaconUrl URL nav Nosūta anonīmu {siteKey, flag} bāku būtiskos notikumos. Bez sīkdatnēm, bez personas datiem.

data-manual nav opcijas vērtība: tā klātbūtne uz taga atliek automātisko palaišanu, lai jūs pats varētu izsaukt AIDisclose.init().

Tēmas un izskats

Iestatiet iebūvēto shēmu ar theme (light, dark vai auto). Lai precīzi atbilstu jūsu zīmolam, pārrakstiet fragmenta CSS pielāgotās īpašības savā stila lapā. Tās ir definētas uz .aid-banner, .aid-chip:

Mainīgais Kontrolē
--aid-bg Fons
--aid-fg Teksts
--aid-line Apmale
--aid-btn Noraidīšanas pogas apmale
--aid-btnfg Noraidīšanas pogas teksts
--aid-hov Noraidīšanas pogas kursora efekts
.aid-banner, .aid-chip {
  --aid-bg: #0b1020;
  --aid-fg: #e8eaed;
  --aid-line: #2a2f36;
}

Fragments neietver nevienu !important noteikumu un izmanto zemas specifikas selektorus, tāpēc jūsu CSS uzvar. Klašu piesaistes ir .aid-banner, .aid-chip, .aid-badge, .aid-badge-inline, .aid-wrap, .aid-ai (satura paziņojums) un .aid-hm ("made by humans"). Pārveidojiet atstarpes, noapaļojumu un ēnu tieši uz šiem.

Pēc noklusējuma josla ir fiksēts pārklājums skatlauka apakšā. Iestatiet mountSelector, lai to attēlotu iekļautā un statiskā veidā jūsu kontrolēta elementa iekšpusē, lai tā iekļautos jūsu pašu izkārtojumā.

Pielāgots teksts

Josla un zīmīte pēc noklusējuma satur precīzu lokalizētu tekstu 28 valodās. Lai pārrakstītu tekstu:

  • Katrai valodai, manifestā. Pievienojiet sistēmai disclosure.texts, indeksētu pēc valodas koda. Fragments izmanto jūsu tekstu apmeklētāja valodai, ja tā sakrīt:
{
  "disclosure": {
    "texts": { "en": "Some copy on this page was drafted with AI.", "fr": "Une partie du texte a été rédigée avec de l'IA." }
  }
}
  • Katram elementam. Pievienojiet data-ai-label marķētam elementam, lai iestatītu attiecīgās nozīmītes etiķeti.

Kad sistēma iestata editorialResponsibility.humanReview: true un tās saturs nav pilnībā MI ģenerēts vai manipulēts, paziņojums automātiski apmeklētāja valodā rāda "AI-assisted, human-reviewed", nevis "AI-generated".

MI satura marķēšana

Fragments marķē tikai to, ko marķējat jūs. Pievienojiet data-ai-content jebkuram MI ģenerētam elementam:

<img data-ai-content src="/img/generated.webp" alt="…">
<p data-ai-content>AI-drafted summary…</p>
<video data-ai-content src="/clip.mp4"></video>

Katrs marķētais elements saņem redzamu nozīmīti "AI" un mašīnlasāmu data-digital-source-type (pēc noklusējuma trainedAlgorithmicMedia, ar IPTC un schema.org saderīga vērtība). Pievienojiet data-ai-label pielāgotam etiķetes tekstam vai pats iestatiet data-digital-source-type, lai norādītu precīzāk.

MI saturam, ko nevarat anotēt tieši, piemēram, trešās puses tērzēšanas sīkrīkam aizvērtā iframe, izmantojiet adjacentSelector, lai novietotu etiķeti tam blakus, vai triggerSelector, lai atklātu mijiedarbības joslu, kad sīkrīks tiek atvērts.

Satura ģenerēšanas paziņojums var attiekties uz visu vietni (disclosure.scope: "site") vai konkrētām lapām (disclosure.scope: "page" ar disclosure.pages ceļu paraugu sarakstu, piemēram, /blog/*). Lapas mēroga sakritībai ir priekšroka pār vietnes mēroga sakritību, un lapas mēroga sistēma bez atbilstoša ceļa tur neattēlo neko.

Vienas lapas lietotnes un ietvari

Fragments novēro DOM ar MutationObserver un atkārtoti izvērtē piemērojamo paziņojumu maršruta izmaiņu brīžos, tāpēc saturs un lapas, kas pievienotas pēc ielādes, joprojām tiek marķētas. Vienas lapas lietotnē (SPA):

  • Saglabājiet observe tā noklusējuma vērtībā (true), lai tiktu uztverts klienta pusē attēlotais saturs.
  • Ja inicializēšanu piesaistāt lietotnes gatavībai, pievienojiet data-manual un izsauciet AIDisclose.init() pēc jūsu ietvara ielādes.
  • Lapas mēroga paziņojumi tiek atjaunināti automātiski, mainoties maršrutam; katram maršrutam atsevišķs izsaukums nav vajadzīgs.

Iestatiet observe: false tikai pilnīgi statiskās lapās, kur pēc ielādes nekas netiek ievietots.

Satura drošības politika

Ja jūs īstenojat satura drošības politiku, atļaujiet fragmentu skaidri.

Svarīgi

Strikts script-src 'self' klusi bloķē CDN fragmentu, un atklāšanas paziņojumi nekad netiek attēloti. Šis ir visbiežākais iemesls, kāpēc pareizi deklarēta vietne nesasniedz 2. līmeni.

  • script-src: pievienojiet https://cdn.aidisclose.io vai izvietojiet aidisclose.js no sava paša izcelsmes servera un saglabājiet 'self'.
  • style-src: fragments ievieto savus stilus iekļautā veidā, tāpēc pietiek ar 'unsafe-inline'. Ja neatļaujat iekļautos stilus, tas atkāpjas uz aidisclose.css ielādi no skripta direktorijas, tāpēc atļaujiet arī https://cdn.aidisclose.io sadaļā style-src (vai izvietojiet šo failu līdzās skriptam).
  • connect-src: manifesta ielāde ir vienas izcelsmes well-known failam un neprasa neko papildu. Ja ielādējat manifestu pēc atslēgas, atļaujiet https://cdn.aidisclose.io.

Manifests tiek ielādēts bez akreditācijas datiem, tāpēc pasniedziet to publiski: galapunkts, kas prasa sīkdatnes vai autentifikāciju, tos nesaņems.

Versiju pārvaldība un integritāte

CDN pasniedz trīs celiņus:

  • /v1/aidisclose.js seko jaunākajam 1.x laidienam. Ieteicams lielākajai daļai vietņu.
  • /v1.0.0/aidisclose.js ir fiksēta, nemainīga versija, ko var piesaistīt, ar Subresource Integrity:
<script src="https://cdn.aidisclose.io/v1.0.0/aidisclose.js"
        integrity="sha384-…" crossorigin="anonymous" defer></script>
  • /latest/aidisclose.js vienmēr seko jaunākajam laidienam visās galvenajās versijās.

Lai iegūtu piesaistāmo SRI jaucējkodu, izveidojiet fragmentu: npm run build mapē packages/snippet to izvada (pirmkods ir atvērts GitHub).

Sava atklāšanas interfeisa veidošana

Iebūvētā interfeisa vietā varat attēlot savu atklāšanas interfeisu. Nav vienas izslēgšanas pogas: data-banner="false" un persistentChip: false slēpj tikai mijiedarbības joslu un tās zīmīti, kamēr satura paziņojumi, atsevišķu elementu [data-ai-content] nozīmītes un nozīmīte "made by humans" joprojām tiek attēloti no jūsu manifesta un marķējuma. Pilnīgi pielāgots interfeiss nozīmē uz tiem nepaļauties un attēlot savu.

Piezīme

AIDisclose pārbaudītājs verificē attēlošanu, atklājot atsauces fragmenta marķējumu. Pilnīgi ar rokām veidota atklāšana ir derīga, taču tā netiek automātiski atklāta, tāpēc vietne paliek 1. līmenī (Deklarēts), nevis 2. līmenī (Attēlots), ja vien jūsu pielāgotais marķējums neatveido to, ko pārbaudītājs meklē. Ja 2. līmenis jums ir svarīgs, saglabājiet iebūvēto attēlošanu un pārveidojiet tā stilu ar CSS.

Piekļūstamība

Attēlotais interfeiss atbilst WCAG 2.1 AA: redzamas :focus-visible kontūras uz interaktīvajām vadīklām, pareizas lomas un etiķetes, kontrasts, kas noturas gan gaišajā, gan tumšajā režīmā, un animācija, kas ierobežota ar prefers-reduced-motion. Fragments arī atklāj zināmās sīkdatņu piekrišanas joslas un novietojas virs tām, lai atklāšanas paziņojumi nekad nebūtu paslēpti aiz CMP. Ļoti šauros ekrānos mijiedarbības josla atveras kā kompakta zīmīte, lai tā nekad nepārklātu saturu.