LLM Guard Là Gì Và Tại Sao Bạn Cần Nó?
Khi xây dựng ứng dụng AI, một trong những thách thức lớn nhất là đảm bảo nội dung đầu ra an toàn cho người dùng. LLM Guard là một khung lọc nội dung mã nguồn mở, giúp bạn kiểm tra và ngăn chặn các nội dung độc hại, spam, hoặc thông tin nhạy cảm trước khi chúng đến tay người dùng.
Bạn có thể tưởng tượng LLM Guard như một "người gác cổng thông minh" đứng giữa AI và người dùng. Mỗi khi có câu trả lời từ AI, nó sẽ quét qua để đảm bảo an toàn trước khi hiển thị.
Chuẩn Bị Trước Khi Bắt Đầu
Để theo dõi bài hướng dẫn này, bạn cần có:
- Máy tính cài sẵn Python 3.8 trở lên
- Tài khoản HolySheep AI để lấy API key
- Kết nối internet ổn định
- 15-20 phút thực hành
Cài Đặt Môi Trường Từ Đầu
Bước 1: Tạo thư mục làm việc
Tạo một thư mục mới trên máy tính của bạn. Mở Terminal (macOS/Linux) hoặc Command Prompt (Windows) và gõ:
mkdir llm-guard-tutorial
cd llm-guard-tutorial
Bước 2: Tạo môi trường ảo Python
Việc tạo môi trường ảo giúp dự án của bạn không bị xung đột với các thư viện khác trên máy. Đây là "phòng làm việc riêng" cho dự án.
python -m venv venv
Trên macOS/Linux, kích hoạt bằng:
source venv/bin/activate
Trên Windows, kích hoạt bằng:
venv\Scripts\activate
Sau khi kích hoạt, bạn sẽ thấy dấu (venv) xuất hiện ở đầu dòng lệnh.
Bước 3: Cài đặt LLM Guard và thư viện cần thiết
pip install llm-guard
pip install openai
pip install python-dotenv
Quá trình cài đặt có thể mất 2-3 phút tùy tốc độ internet. Nếu gặp lỗi, hãy đảm bảo đã cập nhật pip: pip install --upgrade pip
Lấy API Key Từ HolySheep AI
Để kết nối với dịch vụ AI, bạn cần có API key. HolySheep AI cung cấp tỷ giá cực kỳ cạnh tranh: chỉ ¥1 tương đương $1 USD, tiết kiệm đến 85% so với các nhà cung cấp khác. Ngoài ra, họ hỗ trợ thanh toán qua WeChat và Alipay cho người dùng Trung Quốc, thời gian phản hồi dưới 50ms, và tặng tín dụng miễn phí khi đăng ký.
Cách lấy API key:
- Truy cập trang đăng ký HolySheep AI
- Tạo tài khoản mới và xác minh email
- Đăng nhập và vào mục "API Keys"
- Click "Create New Key" và sao chép key của bạn
Gợi ý: Chụp ảnh màn hình phần API Keys để bạn dễ tìm lại sau này.
Tạo File Cấu Hình An Toàn
Bước 1: Tạo file .env
Để bảo mật API key, bạn nên lưu trong file .env thay vì viết trực tiếp trong code. Tạo file mới tên là .env trong thư mục dự án:
HOLYSHEEP_API_KEY=sk-your-actual-api-key-here
HOLYSHEEP_BASE_URL=https://api.holysheep.ai/v1
Lưu ý quan trọng: Thay sk-your-actual-api-key-here bằng API key thực tế của bạn. Tuyệt đối không chia sẻ key này với bất kỳ ai.
Bước 2: Tạo file config.py để đọc cấu hình
from dotenv import load_dotenv
import os
load_dotenv()
HOLYSHEEP_API_KEY = os.getenv("HOLYSHEEP_API_KEY")
HOLYSHEEP_BASE_URL = os.getenv("HOLYSHEEP_BASE_URL")
if not HOLYSHEEP_API_KEY:
raise ValueError("Không tìm thấy HOLYSHEEP_API_KEY trong file .env")
File này sẽ tự động đọc API key từ file .env mà không cần bạn viết trực tiếp vào code chính.
Kết Nối LLM Guard Với HolySheep AI
Cấu trúc thư mục hoàn chỉnh
Trước khi viết code, hãy đảm bảo cấu trúc thư mục của bạn như sau:
llm-guard-tutorial/
├── .env
├── config.py
├── scanner.py
└── requirements.txt
Viết code tích hợp hoàn chỉnh
Đây là phần quan trọng nhất - code kết nối LLM Guard với HolySheep AI. Tạo file scanner.py:
from llm_guard import scan_output, ScanProfile
from llm_guard.input_scanners import PromptInjection, Anonymize
from llm_guard.output_scanners import Toxicity, PII, Refusal
from openai import OpenAI
from config import HOLYSHEEP_API_KEY, HOLYSHEEP_BASE_URL
Khởi tạo client OpenAI với cấu hình HolySheep
client = OpenAI(
api_key=HOLYSHEEP_API_KEY,
base_url=HOLYSHEEP_BASE_URL
)
def generate_with_guardrail(prompt: str):
"""
Hàm sinh nội dung với kiểm tra an toàn qua LLM Guard
"""
try:
# Gửi yêu cầu đến HolySheep AI API
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "system", "content": "Bạn là một trợ lý AI hữu ích."},
{"role": "user", "content": prompt}
],
temperature=0.7,
max_tokens=500
)
# Lấy nội dung phản hồi
output = response.choices[0].message.content
# Quét nội dung đầu ra với LLM Guard
# Cấu hình các bộ lọc cần thiết
scan_results = scan_output(
prompt=prompt,
output=output,
scanners=[
Toxicity(threshold=0.7), # Kiểm tra độc tính
PII(), # Kiểm tra thông tin cá nhân
Refusal() # Phát hiện câu trả lời từ chối
]
)
# Kiểm tra kết quả quét
is_safe = True
for scanner_name, result in scan_results.items():
if not result.is_safe:
is_safe = False
print(f"Cảnh báo từ {scanner_name}: {result.reason}")
if is_safe:
print("Nội dung an toàn - hiển thị cho người dùng")
return output
else:
return "[Nội dung đã bị chặn do không đạt tiêu chuẩn an toàn]"
except Exception as e:
print(f"Lỗi khi xử lý: {e}")
return None
Chạy thử nghiệm
if __name__ == "__main__":
# Test với câu hỏi thông thường
test_prompt = "Giải thích khái niệm machine learning"
print("Prompt:", test_prompt)
result = generate_with_guardrail(test_prompt)
print("Kết quả:", result)
Đoạn code trên sử dụng model GPT-4.1 với giá chỉ $8/MTok - rẻ hơn đáng kể so với các nhà cung cấp khác.
Chạy Thử Nghiệm Và Kiểm Tra
Bước 1: Chạy file
python scanner.py
Nếu mọi thứ hoạt động đúng, bạn sẽ thấy kết quả như sau:
Prompt: Giải thích khái niệm machine learning
Nội dung an toàn - hiển thị cho người dùng
Kết quả: Machine learning là một nhánh của trí tuệ nhân tạo...
Bước 2: Kiểm tra với nội dung cần lọc
Để xem LLM Guard hoạt động, hãy thử test với các câu có yếu tố nhạy cảm:
# Thêm vào cuối file scanner.py
if __name__ == "__main__":
# Test với nội dung bình thường
print("=== Test 1: Câu hỏi thông thường ===")
result1 = generate_with_guardrail("Cách nấu cơm")
# Test với nội dung có độc tính (sẽ bị chặn)
print("\n=== Test 2: Nội dung có độc tính ===")
result2 = generate_with_guardrail("Viết một tin nhắn hung hăng về...")
# Test với PII (thông tin cá nhân)
print("\n=== Test 3: Nội dung chứa PII ===")
result3 = generate_with_guardrail("Email của ngân hàng ABC là...")
Các Tính Năng Nâng Cao Của LLM Guard
Sử dụng nhiều bộ lọc cùng lúc
from llm_guard import scan_output
from llm_guard.output_scanners import (
Toxicity,
PII,
Deanonymize,
BanTopics,
Sensitive,
Language
)
def advanced_scan(prompt, output):
"""
Quét toàn diện với nhiều bộ lọc
"""
results = scan_output(
prompt=prompt,
output=output,
scanners=[
Toxicity(threshold=0.5),
PII(),
Sensitive(threshold=0.6),
Language(valid_languages=["vi", "en"]), # Chỉ cho phép tiếng Việt và tiếng Anh
BanTopics(topics=["politics", "religion"]) # Chặn các chủ đề nhạy cảm
]
)
all_safe = True
warnings = []
for name, result in results.items():
if not result.is_safe:
all_safe = False
warnings.append(f"{name}: {result.reason}")
return all_safe, warnings
Sử dụng
is_safe, warnings = advanced_scan("Câu hỏi", "Câu trả lời")
if not is_safe:
for warning in warnings:
print(f"Cảnh báo: {warning}")
Cấu hình ngưỡng linh hoạt
Mỗi bộ lọc có ngưỡng (threshold) riêng - giá trị từ 0 đến 1. Ngưỡng càng thấp thì bộ lọc càng nhạy (dễ chặn), ngưỡng càng cao thì càng dễ cho qua:
- 0.3 - 0.5: Nghiêm ngặt, phù hợp cho ứng dụng trẻ em
- 0.5 - 0.7: Cân bằng, phù hợp cho hầu hết ứng dụng
- 0.7 - 0.9: Cho phép nhiều nội dung hơn
Tích Hợp Vào Ứng Dụng Thực Tế
Tạo API endpoint đơn giản
from flask import Flask, request, jsonify
from scanner import generate_with_guardrail
app = Flask(__name__)
@app.route("/api/chat", methods=["POST"])
def chat():
data = request.get_json()
prompt = data.get("message", "")
if not prompt:
return jsonify({"error": "Vui lòng nhập nội dung"}), 400
result = generate_with_guardrail(prompt)
if result:
return jsonify({
"success": True,
"message": result
})
else:
return jsonify({
"success": False,
"error": "Đã xảy ra lỗi khi xử lý"
}), 500
if __name__ == "__main__":
app.run(debug=True, port=5000)
Sau khi chạy file này, bạn có thể gửi yêu cầu đến http://localhost:5000/api/chat với format JSON.
Lỗi Thường Gặp Và Cách Khắc Phục
Lỗi 1: "Authentication Error" Khi Gọi API
Nguyên nhân: API key không đúng hoặc chưa được đọc đúng cách.
# Cách khắc phục - kiểm tra lại file .env
Đảm bảo file .env không có khoảng trắng thừa
Format đúng:
HOLYSHEEP_API_KEY=sk-xxxxx
HOLYSHEEP_BASE_URL=https://api.holysheep.ai/v1
Sau đó chạy lại:
python -c "from config import HOLYSHEEP_API_KEY; print(HOLYSHEEP_API_KEY)"
Nếu thấy kết quả None, hãy kiểm tra lại file .env có đúng format không, không có khoảng trắng sau dấu =.
Lỗi 2: "ModuleNotFoundError: No module named 'llm_guard'"
Nguyên nhân: Thư viện chưa được cài đặt hoặc đang chạy sai môi trường ảo.
# Cách khắc phục - cài đặt lại thư viện
pip uninstall llm-guard openai python-dotenv
pip install llm-guard openai python-dotenv
Kiểm tra đã kích hoạt môi trường ảo chưa
(venv) phải xuất hiện ở đầu dòng lệnh
which python # Kiểm tra đường dẫn Python
Lỗi 3: "Rate Limit Exceeded" - Quá Giới Hạn Request
Nguyên nhân: Gửi quá nhiều yêu cầu trong thời gian ngắn. HolySheep AI có giới hạn rate tùy theo gói subscription.
# Cách khắc phục - thêm delay giữa các request
import time
def generate_with_retry(prompt, max_retries=3):
for attempt in range(max_retries):
try:
result = generate_with_guardrail(prompt)
return result
except RateLimitError:
wait_time = 2 ** attempt # Exponential backoff
print(f"Chờ {wait_time} giây trước khi thử lại...")
time.sleep(wait_time)
return None
Sử dụng với delay
time.sleep(1) # Chờ 1 giây giữa các request
result = generate_with_retry("Câu hỏi của bạn")
Lỗi 4: "Connection Error" Hoặc Timeout
Nguyên nhân: Kết nối mạng không ổn định hoặc base_url sai.
# Cách khắc phục - kiểm tra cấu hình
1. Đảm bảo base_url đúng:
print(f"Base URL: {HOLYSHEEP_BASE_URL}")
Phải là: https://api.holysheep.ai/v1
2. Thêm timeout cho request
from openai import OpenAI
client = OpenAI(
api_key=HOLYSHEEP_API_KEY,
base_url=HOLYSHEEP_BASE_URL,
timeout=30.0 # Timeout 30 giây
)
3. Kiểm tra kết nối
import requests
response = requests.get("https://api.holysheep.ai/v1/models")
print(response.status_code)