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 คือการปรับเฉพาะบุคคล - ใช้ User Context บอก AI เกี่ยวกับสมาชิก ใช้ Access Tags ควบคุมว่า AI ดึงความรู้ใดได้
- เนื้อหาเว็บไซต์ที่รวบรวมมาเป็นสาธารณะเสมอ - มาจากเว็บไซต์สาธารณะของคุณ จึงไม่มีอะไรต้องจำกัด แท็กใช้กับรายการข้อความ ไฟล์ และ API
- ผู้เยี่ยมชมต้องการแค่แท็กที่ตรงกันหนึ่งอัน - รายการที่มีสองแท็กเปิดให้ผู้เยี่ยมชมที่ถือแท็กใดแท็กหนึ่ง
- การสร้างคีย์ใหม่ทำให้หลักฐานเก่าทั้งหมดใช้ไม่ได้ - ทำเมื่อคีย์อาจรั่วไหล แล้วอัปเดตหน้าเว็บให้ลงนามด้วยคีย์ใหม่
- ชื่อแท็กแล้วแต่คุณ - สูงสุด 20 ต่อรายการ แต่ละอัน 50 อักขระ ไม่มีจุลภาคหรือขีดตั้ง และไม่ปรากฏในแชตที่ผู้เยี่ยมชมเห็นเลย
ทำงานคู่กับ User Context: ฟีเจอร์หนึ่งควบคุมว่า AI ใช้ความรู้ใดได้สำหรับผู้เยี่ยมชมรายนี้ อีกฟีเจอร์บอก AI ว่าผู้เยี่ยมชมคือใคร
บริบทผู้ใช้ ส่งข้อมูลผู้ใช้ที่เข้าสู่ระบบไปยังแชทบอท AI ของคุณเพื่อการสนทนาที่เป็นส่วนตัวหมายเหตุ: Access Tags เป็นส่วนหนึ่งของข้อตกลง Enterprise เขียนถึง [email protected] แล้วเราจะอธิบายทุกอย่างให้ฟัง