Access Tags
Περιορίστε στοιχεία γνώσης σε εξουσιοδοτημένους επισκέπτες — επιβάλλεται στους διακομιστές μας, όχι από την ΤΝ
Επισκόπηση
Δεν είναι όλο το περιεχόμενο για όλους: έγγραφα μόνο για μέλη, υλικό συγκεκριμένης περιοχής, πόροι επί πληρωμή επιπέδων. Με το Access Tags ένα μόνο chatbot εξυπηρετεί διαφορετικά κοινά με ασφάλεια. Βάζετε μια ετικέτα σε ένα στοιχείο γνώσης και από εκείνη τη στιγμή το στοιχείο είναι αόρατο για κάθε επισκέπτη — εκτός από εκείνους των οποίων η σελίδα παρουσιάζει αυτήν την ετικέτα, υπογεγραμμένη από τον δικό σας διακομιστή. Ο περιορισμός επιβάλλεται στο ερώτημα ανάκτησής μας, πριν καν εμπλακεί το μοντέλο ΤΝ. Επισκέπτης χωρίς την ετικέτα δεν μπορεί να αποσπάσει το περιεχόμενο με έξυπνες ερωτήσεις, γιατί για εκείνον δεν ανακτήθηκε ποτέ.
Πώς λειτουργεί
- Εσείς βάζετε ετικέτες στα στοιχεία γνώσης - στη σελίδα Access Tags ή απευθείας μέσω του API· τα στοιχεία χωρίς ετικέτες συνεχίζουν να λειτουργούν για όλους
- Ο διακομιστής σας υπογράφει τις ετικέτες κάθε επισκέπτη - όταν ένα συνδεδεμένο μέλος φορτώνει τη σελίδα σας, το backend σας ορίζει τα δικαιώματά του και τα υπογράφει με μυστικό κλειδί που κατέχετε μόνο εσείς
- Το widget στέλνει την υπογεγραμμένη απόδειξη - ταξιδεύει με κάθε μήνυμα της συνομιλίας· το πρόγραμμα περιήγησης απλώς τη μεταφέρει και δεν μπορεί να την αλλάξει χωρίς να σπάσει την υπογραφή
- Εμείς επαληθεύουμε και φιλτράρουμε - μια έγκυρη υπογραφή ξεκλειδώνει στοιχεία με αντίστοιχες ετικέτες· μια απούσα, παραποιημένη ή ληγμένη απόδειξη σημαίνει ότι ο επισκέπτης λαμβάνει μόνο δημόσιο περιεχόμενο
Πώς ρυθμίζεται
Ενεργοποιήστε τη λειτουργία στη σελίδα Access Tags του πίνακα ελέγχου — ένα κλειδί υπογραφής δημιουργείται αυτόματα. Φυλάξτε το μόνο στον διακομιστή σας· όποιος το έχει μπορεί να φτιάχνει έγκυρες αποδείξεις.
Βάλτε ετικέτες στο περιεχόμενο είτε στην ίδια σελίδα είτε όταν στέλνετε στοιχεία μέσω του API:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Έπειτα βάλτε τον διακομιστή σας να τυπώσει την υπογεγραμμένη απόδειξη δίπλα στο απόσπασμα του widget. Το μήνυμα προς υπογραφή είναι η λίστα ετικετών χωρισμένη με κόμματα, ενωμένη με κάθετη γραμμή με τον χρόνο λήξης όταν χρησιμοποιείτε έναν:
<?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>
Η ίδια υπογραφή σε Node.js και 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()
Χωρίς λήξη, υπογράψτε μόνο τη συμβολοσειρά των ετικετών. Με λήξη, μια απόδειξη σταματά να λειτουργεί μόλις περάσει — χρήσιμο όταν τα δικαιώματα μπορούν να ανακληθούν, αφού ο επισκέπτης πρέπει να ξαναφορτώσει μια σελίδα που ελέγχετε εσείς για να πάρει φρέσκια απόδειξη.
Τι είναι εγγυημένο
- Επιβολή στην πλευρά του διακομιστή - το φίλτρο τρέχει μέσα στο ερώτημα της βάσης μας κατά την ανάκτηση· για μη εξουσιοδοτημένους επισκέπτες τα στοιχεία με ετικέτες απουσιάζουν από το πλαίσιο της ΤΝ, οπότε δεν υπάρχει τίποτα να διαρρεύσει
- Fail-closed παντού - καμία υπογραφή, λάθος υπογραφή, ληγμένη απόδειξη, απενεργοποιημένη λειτουργία, υποβαθμισμένο πλάνο: σε κάθε περίπτωση ο επισκέπτης λαμβάνει μόνο δημόσιο περιεχόμενο, ποτέ περισσότερο
- Το πρόγραμμα περιήγησης δεν μπορεί να πλαστογραφήσει πρόσβαση - η επεξεργασία των ετικετών στα εργαλεία προγραμματιστή σπάει την υπογραφή· μόνο ο διακομιστής σας έχει το κλειδί
- Η λογική δικαιωμάτων σας παραμένει δική σας - δεν μαθαίνουμε ποτέ πώς αποφασίζετε ποιος παίρνει ποια ετικέτα· επαληθεύουμε μόνο ότι ο διακομιστής σας το βεβαίωσε
Καλό είναι να γνωρίζετε
- Το Access Tags είναι εξουσιοδότηση, το User Context εξατομίκευση - χρησιμοποιήστε το User Context για να πείτε στην ΤΝ για το μέλος· χρησιμοποιήστε το Access Tags για να ελέγχετε από ποια γνώση μπορεί να αντλεί η ΤΝ
- Το σαρωμένο περιεχόμενο του ιστότοπου είναι πάντα δημόσιο - προέρχεται από τον δημόσιο ιστότοπό σας, οπότε δεν υπάρχει τίποτα να περιοριστεί· οι ετικέτες ισχύουν για στοιχεία κειμένου, αρχείων και API
- Στον επισκέπτη αρκεί μία αντίστοιχη ετικέτα - ένα στοιχείο με δύο ετικέτες είναι διαθέσιμο σε επισκέπτη που φέρει οποιαδήποτε από τις δύο
- Η αναδημιουργία του κλειδιού ακυρώνει όλες τις παλιές αποδείξεις - κάντε το αν το κλειδί μπορεί να διέρρευσε και μετά ενημερώστε τις σελίδες σας να υπογράφουν με το νέο
- Τα ονόματα των ετικετών τα ορίζετε εσείς - έως 20 ανά στοιχείο, 50 χαρακτήρες το καθένα, χωρίς κόμματα ή κάθετες γραμμές· δεν εμφανίζονται ποτέ στη συνομιλία που βλέπουν οι επισκέπτες
Συνδυάζεται με το User Context: η μία λειτουργία ελέγχει ποια γνώση μπορεί να χρησιμοποιήσει η ΤΝ για αυτόν τον επισκέπτη, η άλλη λέει στην ΤΝ ποιος είναι ο επισκέπτης.
Πλαίσιο Χρήστη Μεταβιβάστε δεδομένα συνδεδεμένου χρήστη στο AI chatbot σας για εξατομικευμένες συνομιλίεςΣημείωση: Το Access Tags είναι μέρος μιας συμφωνίας Enterprise. Γράψτε στο [email protected] και θα σας τα εξηγήσουμε όλα.