Access Tags
Hadkan item pengetahuan kepada pelawat yang diberi kuasa — dikuatkuasakan di pelayan kami, bukan oleh AI
Gambaran Keseluruhan
Bukan semua kandungan untuk semua orang: dokumen khas ahli, bahan khusus wilayah, sumber peringkat berbayar. Dengan Access Tags, satu chatbot melayani khalayak berbeza dengan selamat. Anda meletakkan tag pada item pengetahuan, dan dari saat itu item tersebut tidak kelihatan kepada setiap pelawat — kecuali mereka yang halamannya mengemukakan tag itu, ditandatangani oleh pelayan anda sendiri. Sekatan dikuatkuasakan dalam pertanyaan capaian kami, sebelum model AI terlibat pun. Pelawat tanpa tag tidak boleh memancing kandungan dengan soalan licik, kerana bagi mereka ia tidak pernah dicapai.
Cara Ia Berfungsi
- Anda menandakan item pengetahuan - di halaman Access Tags atau terus melalui API; item tanpa tag terus berfungsi untuk semua
- Pelayan anda menandatangani tag setiap pelawat - apabila ahli yang log masuk memuatkan halaman anda, bahagian belakang menentukan haknya dan menandatanganinya dengan kunci rahsia yang hanya anda miliki
- Widget menghantar bukti bertandatangan - ia bergerak dengan setiap mesej sembang; pelayar hanya membawanya dan tidak boleh mengubahnya tanpa memecahkan tandatangan
- Kami mengesahkan dan menapis - tandatangan sah membuka item dengan tag sepadan; bukti yang hilang, diusik atau tamat tempoh bermakna pelawat hanya mendapat kandungan awam
Cara menyediakannya
Hidupkan ciri di halaman Access Tags dalam papan pemuka — kunci tandatangan dijana secara automatik. Simpan hanya di pelayan anda; sesiapa yang memilikinya boleh membuat bukti yang sah.
Tandakan kandungan anda di halaman yang sama, atau semasa menghantar item melalui API:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Kemudian biarkan pelayan anda mencetak bukti bertandatangan di sebelah snippet widget. Mesej yang ditandatangani ialah senarai tag dipisahkan koma, digabungkan dengan garis tegak dengan masa luput apabila anda menggunakannya:
<?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>
Tandatangan yang sama dalam Node.js dan 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()
Tanpa tempoh luput, tandatangani rentetan tag sahaja. Dengannya, bukti berhenti berfungsi sebaik sahaja tamat — berguna apabila hak boleh ditarik balik, kerana pelawat perlu memuat semula halaman yang anda kawal untuk mendapat bukti baharu.
Logik tag
Tag sesuatu item digabungkan dengan DAN: item hanya boleh dicapai apabila setiap tag padanya muncul dalam bukti pelawat. Bukti pelawat boleh membawa seberapa banyak hak yang anda mahu, dan padanan dilakukan pada kesemuanya serentak.
| Tag item | Bukti pelawat | Keputusan |
|---|---|---|
(none) | apa sahaja | Kelihatan — item tanpa tag adalah awam |
north | north, premium | Kelihatan |
north, premium | north | Tersembunyi — bukti kekurangan premium |
north, premium | north, premium, extra | Kelihatan — hak tambahan tidak menjejaskan |
DAN memang disengajakan. Dengan padanan «sekurang-kurangnya satu», menambah tag kedua pada item akan meluaskan siapa yang boleh melihatnya, jadi menyempitkan dokumen kepada dua kumpulan sebenarnya menerbitkannya sepenuhnya kepada kedua-duanya. Dengan padanan «semua», setiap tag yang anda tambah hanya boleh menyempitkan lagi, jadi kesilapan jatuh ke pihak yang selamat.
Menyatakan «mana-mana daripada»
Tinggalkan dimensi itu daripada item. Jika bukti setiap pelawat membawa wilayahnya, dokumen tanpa tag wilayah tersedia untuk semua wilayah, manakala tag lainnya masih terpakai. Jadi item yang bertag premium sahaja bermaksud «mana-mana wilayah, pelanggan premium sahaja».
Untuk pilihan merentas dimensi yang sebenar — katakan utara-dengan-asas atau selatan-dengan-premium, dan tiada yang lain — tambah item dua kali dengan satu kombinasi setiap satu, atau beri kedua-dua khalayak tag kongsi yang dimasukkan pelayan anda ke dalam bukti mereka.
Had
- Sehingga 20 tag bagi setiap item pengetahuan
- Sehingga 50 tag dalam bukti seorang pelawat
- 50 aksara bagi setiap tag; koma dan garis tegak tidak dibenarkan, kerana bukti ialah rentetan yang dipisahkan koma
Menukar tag kemudian
Tag boleh diganti pada item sedia ada tanpa memuat naiknya semula. Perubahan berkuat kuasa dari soalan seterusnya — kandungannya sendiri tidak diproses semula.
POST /api/v1/knowledge/<id>/tags/
{
"access_tags": ["premium"]
}
Hantar senarai kosong untuk menjadikan item awam semula. Anda juga boleh menyunting tag secara manual di halaman Access Tags dalam papan pemuka.
Apa yang dijamin
- Penguatkuasaan sisi pelayan - penapis berjalan dalam pertanyaan pangkalan data semasa capaian; bagi pelawat tanpa kuasa, item bertag langsung tiada dalam konteks AI, jadi tiada apa yang boleh bocor
- Fail-closed di mana-mana - tiada tandatangan, tandatangan salah, bukti luput, ciri dimatikan, pelan diturunkan: dalam setiap kes itu pelawat hanya mendapat kandungan awam, tidak pernah lebih
- Pelayar tidak boleh memalsukan akses - mengedit tag dalam alat pembangun memecahkan tandatangan; kunci hanya ada pada pelayan anda
- Logik hak anda kekal milik anda - kami tidak pernah tahu bagaimana anda memutuskan siapa mendapat tag apa; kami hanya mengesahkan pelayan anda telah mengakuinya
Baik untuk diketahui
- Access Tags ialah kebenaran, User Context ialah pemperibadian - gunakan User Context untuk memberitahu AI tentang ahli; gunakan Access Tags untuk mengawal pengetahuan mana yang boleh digunakan AI
- Kandungan laman yang dirangkak sentiasa awam - ia datang dari laman awam anda, jadi tiada apa yang perlu dihadkan; tag terpakai untuk item teks, fail dan API
- Tag item digabungkan dengan DAN - lihat Logik tag di atas; setiap tag item mesti ada dalam bukti pelawat
- Menjana semula kunci membatalkan semua bukti lama - lakukan jika kunci mungkin bocor, kemudian kemas kini halaman anda untuk menandatangani dengan yang baharu
- Nama tag terpulang kepada anda - sehingga 20 setiap item, 50 aksara setiap satu, tanpa koma atau garis tegak; ia tidak pernah muncul dalam sembang yang dilihat pelawat
Berpadanan dengan User Context: satu ciri mengawal pengetahuan mana yang boleh digunakan AI untuk pelawat ini, satu lagi memberitahu AI siapa pelawat itu.
Konteks Pengguna Hantar data pengguna yang log masuk ke chatbot AI anda untuk perbualan yang diperibadikanNota: Access Tags ialah sebahagian daripada perjanjian Enterprise. Tulis kepada [email protected] dan kami akan menerangkan semuanya.