Access Tags
Restricționați elementele bazei de cunoștințe la vizitatori autorizați — aplicat pe serverele noastre, nu de către IA
Prezentare generală
Nu tot conținutul este pentru toți: documente doar pentru membri, materiale specifice unei regiuni, resurse ale nivelurilor plătite. Cu Access Tags, un singur chatbot servește în siguranță audiențe diferite. Puneți o etichetă pe un element al bazei de cunoștințe și, din acel moment, elementul este invizibil pentru orice vizitator — cu excepția celor a căror pagină prezintă acea etichetă, semnată de propriul dvs. server. Restricția se aplică în interogarea noastră de căutare, înainte ca modelul de IA să fie măcar implicat. Un vizitator fără etichetă nu poate extrage conținutul prin întrebări iscusite, pentru că pentru el nu a fost niciodată preluat.
Cum funcționează
- Dvs. etichetați elementele bazei de cunoștințe - pe pagina Access Tags sau direct prin API; elementele fără etichete continuă să funcționeze pentru toți
- Serverul dvs. semnează etichetele fiecărui vizitator - când un membru autentificat încarcă pagina dvs., backend-ul îi stabilește drepturile și le semnează cu o cheie secretă pe care doar dvs. o dețineți
- Widgetul trimite dovada semnată - călătorește cu fiecare mesaj din chat; browserul doar o transportă și nu o poate modifica fără a rupe semnătura
- Noi verificăm și filtrăm - o semnătură validă deblochează elementele cu etichete potrivite; o dovadă lipsă, alterată sau expirată înseamnă că vizitatorul primește doar conținut public
Cum se configurează
Activați funcția pe pagina Access Tags din panoul dvs. — o cheie de semnare se generează automat. Păstrați-o doar pe serverul dvs.; oricine o are poate crea dovezi valide.
Etichetați conținutul pe aceeași pagină sau la trimiterea elementelor prin API:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Apoi puneți serverul să afișeze dovada semnată lângă snippetul widgetului. Mesajul de semnat este lista de etichete separate prin virgule, unită printr-o bară verticală cu ora expirării, când folosiți una:
<?php
$tags = "members,premium"; // this visitor's entitlements
$expires = time() + 3600; // unix seconds, optional but recommended
$sig = hash_hmac("sha256", $tags . "|" . $expires, $SECRET);
?>
<script>
window.Asyntai = window.Asyntai || {};
window.Asyntai.accessTags = "<?php echo $tags; ?>";
window.Asyntai.accessTagsExpires = "<?php echo $expires; ?>";
window.Asyntai.accessTagsSignature = "<?php echo $sig; ?>";
</script>
Aceeași semnătură în Node.js și Python:
// Node.js
const crypto = require("crypto");
const sig = crypto.createHmac("sha256", SECRET)
.update(tags + "|" + expires).digest("hex");
# Python
import hmac, hashlib
sig = hmac.new(SECRET.encode(), f"{tags}|{expires}".encode(),
hashlib.sha256).hexdigest()
Fără expirare, semnați doar șirul de etichete în sine. Cu expirare, o dovadă încetează să funcționeze în momentul depășirii — util când drepturile pot fi revocate, deoarece vizitatorul trebuie să reîncarce o pagină controlată de dvs. pentru a primi o dovadă proaspătă.
Ce este garantat
- Aplicare pe partea de server - filtrul rulează în interogarea noastră către baza de date la căutare; pentru vizitatorii neautorizați, elementele etichetate lipsesc din contextul IA, deci nu are ce să scurgă
- Fail-closed peste tot - fără semnătură, semnătură greșită, dovadă expirată, funcție oprită, plan retrogradat: în fiecare dintre aceste cazuri vizitatorul primește doar conținut public, niciodată mai mult
- Browserul nu poate falsifica accesul - editarea etichetelor în instrumentele de dezvoltare rupe semnătura; doar serverul dvs. deține cheia
- Logica dvs. de drepturi rămâne a dvs. - nu aflăm niciodată cum decideți cine primește ce etichetă; verificăm doar că serverul dvs. a confirmat-o
Bine de știut
- Access Tags este autorizare, User Context este personalizare - folosiți User Context pentru a-i spune IA despre membru; folosiți Access Tags pentru a controla din ce cunoștințe poate IA să se inspire
- Conținutul accesat al site-ului este întotdeauna public - provine de pe site-ul dvs. public, deci nu are ce restricționa; etichetele se aplică elementelor text, fișiere și API
- Unui vizitator îi este de ajuns o singură etichetă potrivită - un element cu două etichete este disponibil unui vizitator care o poartă pe oricare dintre ele
- Regenerarea cheii invalidează toate dovezile vechi - faceți-o dacă cheia ar fi putut scăpa, apoi actualizați paginile să semneze cu cea nouă
- Numele etichetelor le alegeți dvs. - până la 20 per element, câte 50 de caractere, fără virgule sau bare verticale; nu apar niciodată în chatul văzut de vizitatori
Se completează cu User Context: o funcție controlează ce cunoștințe poate folosi IA pentru acest vizitator, cealaltă îi spune IA cine este vizitatorul.
Contextul utilizatorului Transmite datele utilizatorului autentificat către chatbot-ul tău AI pentru conversații personalizateNotă: Access Tags face parte dintr-un acord Enterprise. Scrieți la [email protected] și vă explicăm totul.