Access Tags
ज्ञान आइटम केवल अधिकृत आगंतुकों तक सीमित करें — यह हमारे सर्वरों पर लागू होता है, AI द्वारा नहीं
अवलोकन
हर सामग्री सबके लिए नहीं होती: केवल सदस्यों के दस्तावेज़, किसी क्षेत्र-विशेष की सामग्री, सशुल्क स्तरों के संसाधन। Access Tags से एक ही चैटबॉट अलग-अलग दर्शकों को सुरक्षित रूप से सेवा देता है। आप किसी ज्ञान आइटम पर टैग लगाते हैं, और उसी क्षण से वह आइटम हर आगंतुक के लिए अदृश्य हो जाता है — सिवाय उनके जिनका पेज वह टैग प्रस्तुत करता है, आपके अपने सर्वर द्वारा साइन किया हुआ। प्रतिबंध हमारी खोज क्वेरी में लागू होता है, AI मॉडल के शामिल होने से भी पहले। बिना टैग का आगंतुक चतुर सवालों से सामग्री नहीं निकाल सकता, क्योंकि उसके लिए वह कभी लाई ही नहीं गई।
यह कैसे काम करता है
- ज्ञान आइटम आप टैग करते हैं - Access Tags पेज पर या सीधे API से; बिना टैग वाले आइटम सबके लिए काम करते रहते हैं
- आपका सर्वर हर आगंतुक के टैग साइन करता है - जब कोई लॉग-इन सदस्य आपका पेज खोलता है, आपका बैक-एंड उसके अधिकार तय करता है और उन्हें उस गुप्त कुंजी से साइन करता है जो केवल आपके पास है
- विजेट साइन किया प्रमाण भेजता है - यह हर चैट संदेश के साथ जाता है; ब्राउज़र इसे केवल पहुँचाता है और हस्ताक्षर तोड़े बिना बदल नहीं सकता
- हम सत्यापित और फ़िल्टर करते हैं - वैध हस्ताक्षर मेल खाते टैग वाले आइटम खोलता है; गायब, छेड़ा गया या समाप्त प्रमाण होने पर आगंतुक को केवल सार्वजनिक सामग्री मिलती है
इसे कैसे सेट करें
डैशबोर्ड के Access Tags पेज पर फ़ीचर चालू करें — साइनिंग सीक्रेट अपने आप बन जाता है। इसे केवल अपने सर्वर पर रखें; जिसके पास यह है, वह वैध प्रमाण बना सकता है।
सामग्री को उसी पेज पर टैग करें, या API से आइटम भेजते समय:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
फिर अपने सर्वर से साइन किया प्रमाण विजेट स्निपेट के पास प्रिंट करवाएँ। साइन होने वाला संदेश कॉमा से अलग टैग सूची है, समाप्ति समय उपयोग करने पर खड़ी रेखा से जुड़ी:
<?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()
बिना समाप्ति के केवल टैग स्ट्रिंग साइन करें। समाप्ति के साथ, प्रमाण उसके बीतते ही काम करना बंद कर देता है — जब अधिकार वापस लिए जा सकते हों तब उपयोगी, क्योंकि नए प्रमाण के लिए आगंतुक को आपके नियंत्रण वाला पेज दोबारा लोड करना पड़ता है।
क्या गारंटीड है
- सर्वर-साइड लागू करना - फ़िल्टर खोज के समय हमारी डेटाबेस क्वेरी के भीतर चलता है; अनधिकृत आगंतुकों के लिए टैग वाले आइटम AI के संदर्भ में होते ही नहीं, इसलिए लीक होने को कुछ नहीं
- हर जगह fail-closed - कोई हस्ताक्षर नहीं, गलत हस्ताक्षर, समाप्त प्रमाण, बंद फ़ीचर, घटाया गया प्लान: इनमें से हर स्थिति में आगंतुक को केवल सार्वजनिक सामग्री मिलती है, कभी उससे अधिक नहीं
- ब्राउज़र पहुँच नहीं गढ़ सकता - डेवलपर टूल्स में टैग बदलने से हस्ताक्षर टूट जाता है; कुंजी केवल आपके सर्वर के पास है
- आपके अधिकारों का तर्क आपका ही रहता है - हम कभी नहीं जानते कि आप कैसे तय करते हैं किसे कौन-सा टैग मिले; हम बस यह सत्यापित करते हैं कि आपके सर्वर ने इसकी पुष्टि की
जानने योग्य बातें
- Access Tags प्राधिकरण है, User Context वैयक्तिकरण - सदस्य के बारे में AI को बताने के लिए User Context उपयोग करें; AI किस ज्ञान का उपयोग कर सकता है यह नियंत्रित करने के लिए Access Tags
- क्रॉल की गई वेबसाइट सामग्री हमेशा सार्वजनिक है - वह आपकी सार्वजनिक साइट से आती है, अतः सीमित करने को कुछ नहीं; टैग टेक्स्ट, फ़ाइल और API आइटम पर लागू होते हैं
- आगंतुक को केवल एक मेल खाता टैग चाहिए - दो टैग वाला आइटम उस आगंतुक को उपलब्ध है जिसके पास दोनों में से कोई एक हो
- कुंजी दोबारा बनाने से सारे पुराने प्रमाण अमान्य - यदि कुंजी लीक हो सकती है तो ऐसा करें, फिर पेज नई कुंजी से साइन करने के लिए अपडेट करें
- टैग नाम आप तय करते हैं - प्रति आइटम अधिकतम 20, प्रत्येक 50 अक्षर, बिना कॉमा या खड़ी रेखा; वे आगंतुकों को दिखने वाली चैट में कभी नहीं आते
User Context के साथ जोड़ी बनाता है: एक फ़ीचर नियंत्रित करता है कि AI इस आगंतुक के लिए किस ज्ञान का उपयोग कर सकता है, दूसरा AI को बताता है कि आगंतुक कौन है।
उपयोगकर्ता संदर्भ व्यक्तिगत वार्तालापों के लिए लॉग-इन उपयोगकर्ता डेटा अपने AI चैटबॉट को पास करेंनोट: Access Tags एक Enterprise अनुबंध का हिस्सा है। [email protected] पर लिखें, हम सब कुछ समझा देंगे।