Access Tags
Obmedzte znalostné položky na oprávnených návštevníkov — vynucované na našich serveroch, nie umelou inteligenciou
Prehľad
Nie každý obsah je pre všetkých: dokumenty len pre členov, materiály pre konkrétny región, zdroje platených úrovní. S Access Tags obslúži jediný chatbot rôzne publiká bezpečne. Položke pridáte tag a od tej chvíle je neviditeľná pre každého návštevníka — okrem tých, ktorých stránka tento tag predloží, podpísaný vaším vlastným serverom. Obmedzenie sa vynucuje v našom vyhľadávacom dopyte skôr, než sa model AI vôbec zapojí. Návštevník bez tagu obsah šikovnými otázkami nevytiahne, pretože preň nikdy nebol načítaný.
Ako to funguje
- Znalostné položky tagujete vy - na stránke Access Tags alebo priamo cez API; položky bez tagov fungujú ďalej pre všetkých
- Váš server podpisuje tagy každého návštevníka - keď si prihlásený člen načíta vašu stránku, váš back-end určí jeho oprávnenia a podpíše ich tajným kľúčom, ktorý máte len vy
- Widget odošle podpísané poverenie - putuje s každou správou v chate; prehliadač ho iba prenáša a nemôže ho zmeniť bez toho, aby rozbil podpis
- My overíme a filtrujeme - platný podpis odomkne položky so zodpovedajúcimi tagmi; chýbajúce, pozmenené alebo expirované poverenie znamená, že návštevník dostane len verejný obsah
Nastavenie
Zapnite funkciu na stránke Access Tags vo svojej nástenke — podpisový kľúč sa vám vygeneruje. Uchovávajte ho len na svojom serveri; ktokoľvek ho má, môže vytvárať platné poverenia.
Obsah otagujte buď na tej istej stránke, alebo pri odosielaní položiek cez API:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Potom nechajte svoj server vypísať podpísané poverenie vedľa snippetu widgetu. Podpisuje sa zoznam tagov oddelených čiarkami, spojený zvislou čiarou s časom expirácie, ak ho používate:
<?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>
Ten istý podpis v Node.js a Pythone:
// 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()
Bez času expirácie podpíšte len samotný reťazec tagov. S ním prestane poverenie fungovať v okamihu vypršania — hodí sa, keď možno oprávnenia odobrať, pretože návštevník si musí znova načítať stránku pod vašou kontrolou, aby dostal čerstvé poverenie.
Čo je zaručené
- Vynucovanie na strane servera - filter beží vnútri nášho databázového dopytu pri vyhľadávaní; pre neoprávnených návštevníkov otagované položky v kontexte AI vôbec nie sú, takže nemá čo uniknúť
- Všade fail-closed - žiadny podpis, zlý podpis, expirované poverenie, vypnutá funkcia, znížený plán: v každom z týchto prípadov dostane návštevník len verejný obsah, nikdy viac
- Prehliadač prístup nesfalšuje - úprava tagov vo vývojárskych nástrojoch rozbije podpis; kľúč má len váš server
- Vaša logika oprávnení zostáva vaša - nikdy sa nedozvieme, ako rozhodujete, kto dostane ktorý tag; overujeme len, že to váš server potvrdil
Dobré vedieť
- Access Tags je autorizácia, User Context personalizácia - cez User Context povedzte AI, kto člen je; cez Access Tags riaďte, z akých znalostí smie AI čerpať
- Prechádzaný obsah webu je vždy verejný - pochádza z vášho verejného webu, takže niet čo obmedzovať; tagy platia pre textové, súborové a API položky
- Návštevníkovi stačí jediný zodpovedajúci tag - položka s dvoma tagmi je dostupná návštevníkovi, ktorý nesie ktorýkoľvek z nich
- Nový kľúč zneplatní všetky staré poverenia - urobte to, ak kľúč mohol uniknúť, a potom upravte stránky, aby podpisovali novým
- Názvy tagov sú na vás - až 20 na položku, každý 50 znakov, bez čiarok a zvislých čiar; v chate viditeľnom návštevníkom sa nikdy neobjavia
Dopĺňa sa s User Context: jedna funkcia riadi, aké znalosti smie AI pre tohto návštevníka použiť, druhá AI hovorí, kto návštevník je.
Kontext používateľa Odovzdajte údaje prihláseného používateľa vášmu AI chatbotovi pre personalizované konverzáciePoznámka: Access Tags je súčasťou zmluvy Enterprise. Napíšte na [email protected] a všetko vám vysvetlíme.