Bỏ qua để đến nội dung

Guardrail và che PII

Cấu hình guardrail nằm theo agent (blockedTopics, chống injection bật mặc định). Ba lớp hoạt động như sau:

  1. Prompt hệ thống: hướng dẫn chống prompt injection và liệt kê chủ đề cấm được ghép vào phần chỉ dẫn của agent.
  2. Lọc đầu vào: luật lọc câu hỏi của người dùng trước khi gọi mô hình ngôn ngữ — câu trúng luật nhận câu từ chối ngay, không tiêu token.
  3. Lọc đầu ra: câu trả lời của LLM được kiểm tra từng câu trước khi phát giọng và hiện phụ đề.

Mỗi lần chặn ghi sự kiện guardrail.triggered (chỉ chứa giai đoạn/nhóm luật, không chép nội dung người dùng) — sự kiện này đưa câu hỏi vào hàng đợi “Cần xử lý” nếu đáng xem lại.

Nội dung hội thoại được che trước khi lưu vào bảng transcript, theo thứ tự ưu tiên: email → số thẻ → số định danh 12 số (CCCD) → số điện thoại → số định danh 9 số (chỉ che khi ngữ cảnh có từ khoá “CMND/chứng minh…”).

Điểm thiết kế cần biết:

  • Che chạy trên bản chuẩn hoá (bỏ ký tự can thiệp, gom khoảng trắng giữa chữ số) rồi ánh xạ về văn bản gốc — né được biến thể gõ tay của người dùng.
  • Transcript trong Studio hiển thị bản đã che. Xem bản gốc cần quyền riêng (chỉ Chủ sở hữu, có điều kiện theo tổ chức) và mỗi lần xem được ghi audit.
  • Câu có chuỗi số dài (số tiền, mã đơn hàng) là nguồn chặn nhầm chính — bộ luật được kiểm thử với bộ mẫu ≥ 50 câu PII tiếng Việt.

Mỗi phiên bắt đầu bằng màn công bố AI với ô đồng ý để trống — nút bắt đầu chỉ bật sau khi người dùng tích. Thời điểm đồng ý được ghi gắn với phiên (consent_given_at). Ứng dụng chủ tự gánh đồng ý có thể tắt màn này qua cấu hình consent="host".

Bốn nguồn đưa việc vào hàng đợi: câu hỏi chưa trả lời được (chế độ strict), lần chặn guardrail, yêu cầu gặp nhân viên, và CSAT ≤ 2 sao. Mỗi việc có trạng thái và người phụ trách — quyền xem là quyền xem hội thoại, quyền sửa trạng thái là quyền quản trị.