Tôi vẫn nhớ cách đây 3 tháng, khi team mình triển khai hệ thống RAG nội bộ cho một ngân hàng lớn tại TP. HCM. Ngày ra mắt, lượng truy vấn tăng vọt, và chỉ sau 2 giờ, hệ thống giám sát phát hiện ra một log lưu trữ số CMND thật của khách hàng — vì một nhân viên mới copy-paste câu hỏi của khách vào prompt mà quên bật bộ lọc. Ngay lập tức phòng pháp chế vào cuộc, buổi họp khẩn kéo dài đến 11 giờ đêm, và dự án suýt bị đình chỉ. Đó chính là lúc tôi quyết tâm xây dựng lại toàn bộ pipeline tiền xử lý khử nhạy hóa dữ liệu (PII detection & masking) mà tôi sẽ chia sẻ trong bài viết này.
Bài viết hướng dẫn bạn dựng một lớp trung gian "sanitize" mọi prompt trước khi gửi tới model, sử dụng HolySheep AI làm lớp phát hiện thông minh kết hợp regex và LLM. Tất cả ví dụ đều chạy được ngay với base_url https://api.holysheep.ai/v1.
1. PII là gì và vì sao phải xử lý trước khi gọi AI API?
Thông tin định danh cá nhân (Personally Identifiable Information - PII) bao gồm: số CMND/CCCD, số điện thoại, email, địa chỉ, số tài khoản ngân hàng, mã số thuế, họ tên... Khi gửi những dữ liệu này cho model AI bên thứ ba, bạn đối mặt với 3 rủi ro lớn:
- Rò rỉ qua log model: Nhiều provider ghi lại prompt để fine-tune, dù có chính sách "không lưu".
- Vi phạm Nghị định 13/2023/NĐ-CP và Luật An toàn thông tin mạng 2015: Xử phạt tới 5% doanh thu năm trước.
- Mất niềm tin khách hàng: Một scandal dữ liệu có thể xóa sổ 5 năm xây dựng thương hiệu.
Giải pháp: chèn một middleware ngay trước khi gọi API, có nhiệm vụ phát hiện và thay thế PII bằng token giả (masking). Đây là kiến trúc tôi áp dụng và đã vận hành ổn định suốt 4 tháng qua với hơn 2.3 triệu lượt truy vấn production.
2. Kiến trúc pipeline 3 lớp
Tôi chia pipeline thành 3 lớp để cân bằng giữa tốc độ và độ chính xác:
- Lớp 1 - Regex nhanh: Bắt các pattern rõ ràng (SĐT Việt Nam 10 số, email, CMND 9-12 số). Xử lý 1 triệu token chỉ trong ~150ms, gần như miễn phí.
- Lớp 2 - LLM phân loại qua HolySheep: Gửi đoạn văn đã qua lớp 1 tới model để phát hiện PII theo ngữ cảnh (tên riêng, địa chỉ cụ thể, mô tả bệnh án, thông tin tài chính ẩn).
- Lớp 3 - Restore an toàn: Lưu bản đồ token ↔ giá trị thật trong Redis với TTL ngắn, tự động xóa sau 30 phút.
3. Triển khai code với HolySheep AI
Dưới đây là module Python hoàn chỉnh. Bạn có thể copy và chạy ngay sau khi đăng ký tài khoản HolySheep để nhận tín dụng miễn phí.
# pii_sanitizer.py - Pipeline khử nhạy hóa dữ liệu
import re
import json
import hashlib
from openai import OpenAI
Client trỏ thẳng vào HolySheep, KHÔNG dùng api.openai.com
client = OpenAI(
base_url="https://api.holysheep.ai/v1",
api_key="YOUR_HOLYSHEEP_API_KEY"
)
===== LỚP 1: REGEX NHANH =====
REGEX_PATTERNS = {
"PHONE_VN": re.compile(r"(?:\+84|0)(?:3|5|7|8|9)[0-9]{8}\b"),
"CMND": re.compile(r"\b[0-9]{9,12}\b"),
"EMAIL": re.compile(r"\b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,}\b"),
"STK": re.compile(r"\b[0-9]{10,16}\b"),
"IPV4": re.compile(r"\b(?:\d{1,3}\.){3}\d{1,3}\b"),
}
def layer1_regex(text: str) -> tuple[str, dict]:
masked, mapping = text, {}
for label, pattern in REGEX_PATTERNS.items():
for match in pattern.findall(text):
token = f"[{label}_{hashlib.md5(match.encode()).hexdigest()[:6]}]"
mapping[token] = match
masked = masked.replace(match, token, 1)
return masked, mapping
===== LỚP 2: LLM PHÂN LOẠI QUA HOLYSHEEP =====
SYSTEM_PROMPT_PII = """Bạn là bộ phát hiện PII tiếng Việt.
Trích xuất mọi thông tin cá nhân (tên người, địa chỉ, nghề nghiệp, bệnh lý,
số tài khoản, thu nhập) và thay bằng token [PII_x].
Chỉ trả về JSON: {"masked": "...", "tokens": {"[PII_1]": "...", ...}}"""
def layer2_llm(text: str) -> tuple[str, dict]:
resp = client.chat.completions.create(
model="deepseek-v3.2",
messages=[
{"role": "system", "content": SYSTEM_PROMPT_PII},
{"role": "user", "content