Zpět na přehled

Dokumentace

Naučte se používat Asyntai

Access Tags

Omezte znalostní položky na oprávněné návštěvníky — vynucováno na našich serverech, ne umělou inteligencí

Přejít na Access Tags
Enterprise

Přehled

Ne každý obsah je pro všechny: dokumenty jen pro členy, materiály pro konkrétní region, zdroje placených úrovní. S Access Tags obslouží jediný chatbot různá publika bezpečně. Položce přidáte tag a od té chvíle je neviditelná pro každého návštěvníka — kromě těch, jejichž stránka tento tag předloží, podepsaný vaším vlastním serverem. Omezení se vynucuje v našem vyhledávacím dotazu, ještě než se model AI vůbec zapojí. Návštěvník bez tagu obsah chytrými dotazy nevytáhne, protože pro něj nebyl nikdy načten.

Jak to funguje

  1. Znalostní položky tagujete vy - na stránce Access Tags nebo přímo přes API; položky bez tagů fungují dál pro všechny
  2. Váš server podepisuje tagy každého návštěvníka - když si přihlášený člen načte vaši stránku, váš back-end určí jeho oprávnění a podepíše je tajným klíčem, který máte jen vy
  3. Widget odešle podepsané pověření - putuje s každou zprávou v chatu; prohlížeč je pouze přenáší a nemůže je změnit, aniž by rozbil podpis
  4. My ověříme a filtrujeme - platný podpis odemkne položky s odpovídajícími tagy; chybějící, pozměněné nebo prošlé pověření znamená, že návštěvník dostane jen veřejný obsah

Nastavení

Zapněte funkci na stránce Access Tags ve své nástěnce — podpisový klíč se vám vygeneruje. Uchovávejte jej jen na svém serveru; kdokoli jej má, může vytvářet platná pověření.

Obsah otagujte buď na téže stránce, nebo při odesílání položek přes API:

POST /api/v1/knowledge/text/
{
  "title": "Members-only price list",
  "content": "...",
  "website_id": "123",
  "access_tags": ["premium"]
}

Poté nechte svůj server vypsat podepsané pověření vedle snippetu widgetu. Podepisuje se seznam tagů oddělených čárkami, spojený svislou čarou s časem vypršení, pokud jej používáte:

<?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>

Tentýž podpis v Node.js a Pythonu:

// 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 vypršení podepište jen samotný řetězec tagů. S ním přestane pověření fungovat v okamžiku vypršení — hodí se, když lze oprávnění odebrat, protože návštěvník si musí znovu načíst stránku pod vaší kontrolou, aby dostal čerstvé pověření.

Co je zaručeno

  • Vynucování na straně serveru - filtr běží uvnitř našeho databázového dotazu při vyhledávání; pro neoprávněné návštěvníky otagované položky v kontextu AI vůbec nejsou, takže nemá co uniknout
  • Všude fail-closed - žádný podpis, špatný podpis, prošlé pověření, vypnutá funkce, snížený tarif: v každém z těchto případů dostane návštěvník jen veřejný obsah, nikdy víc
  • Prohlížeč přístup nezfalšuje - úprava tagů ve vývojářských nástrojích rozbije podpis; klíč má jen váš server
  • Vaše logika oprávnění zůstává vaše - nikdy se nedozvíme, jak rozhodujete, kdo dostane který tag; ověřujeme jen, že to váš server potvrdil

Dobré vědět

  • Access Tags je autorizace, User Context personalizace - pomocí User Context řekněte AI, kdo člen je; pomocí Access Tags řiďte, z jakých znalostí smí AI čerpat
  • Procházený obsah webu je vždy veřejný - pochází z vašeho veřejného webu, takže není co omezovat; tagy platí pro textové, souborové a API položky
  • Návštěvníkovi stačí jediný odpovídající tag - položka se dvěma tagy je dostupná návštěvníkovi, který nese kterýkoli z nich
  • Nový klíč zneplatní všechna stará pověření - udělejte to, pokud klíč mohl uniknout, a poté upravte stránky, aby podepisovaly novým
  • Názvy tagů jsou na vás - až 20 na položku, každý 50 znaků, bez čárek a svislých čar; v chatu viditelném návštěvníkům se nikdy neobjeví

Doplňuje se s User Context: jedna funkce řídí, jaké znalosti smí AI pro tohoto návštěvníka použít, druhá AI říká, kdo návštěvník je.

Kontext uživatele Předávejte data přihlášeného uživatele vašemu AI chatbotovi pro personalizované konverzace

Poznámka: Access Tags je součástí smlouvy Enterprise. Napište na [email protected] a vše vám vysvětlíme.