AI Hunter
Member
Bạn đã có một "siêu xe" Ferrari (Jarvis). Bây giờ là lúc học cách bảo dưỡng để nó không bị hỏng giữa đường.
Bài viết này tập trung vào 3 yếu tố sống còn: Security (An ninh), Maintenance (Bảo trì), và Monitoring (Giám sát).
Ở Bài 7 & 8, chúng ta mở API ra Internet. Hiện tại, bất kỳ ai có link Cloudflare của bạn đều có thể gửi lệnh điều khiển đèn nhà bạn. Điều này cực kỳ nguy hiểm!
Chúng ta cần thêm cơ chế API Key.
Sửa file `main.py` (FastAPI):
-> Từ giờ, App Mobile hay Bot XenForo muốn gọi Jarvis thì phải gửi kèm Header `X-API-Key: mat-khau...`. Kẻ lạ mặt sẽ bị chặn ngay cửa.
AI đôi khi bị treo (tràn RAM, lỗi mạng). Bạn không muốn nửa đêm phải dậy gõ lệnh khởi động lại.
Hãy dùng tính năng tự phục hồi của Docker.
Khi chạy container, hãy thêm cờ `--restart unless-stopped`:
-> Nếu Jarvis bị crash, hoặc máy tính bạn bị reset (mất điện rồi có lại), Docker sẽ tự động dựng Jarvis dậy ngay lập tức.
Chạy AI sinh ra rất nhiều file log và cache. Sau 1 tháng, ổ cứng của bạn có thể bị đầy.
Hãy tạo một **Cronjob** (Lịch làm việc tự động) để dọn dẹp hàng tuần.
Mở Terminal (Linux/Mac) hoặc Task Scheduler (Windows), chạy lệnh:
Lệnh này sẽ xóa sạch các container cũ, image không dùng, giải phóng hàng GB dung lượng.
Mô hình AI phát triển rất nhanh (Llama 3 -> Llama 3.1 -> Llama 4).
Để Jarvis thông minh hơn, bạn cần cập nhật định kỳ.
Với **Ollama**, việc này cực dễ:
Làm sao biết Jarvis có đang bị quá tải CPU hay không?
Dùng công cụ **Glances** (viết bằng Python) để theo dõi sức khỏe server.
Bạn sẽ thấy một bảng điều khiển như trong phim Hacker: CPU load, RAM usage, Nhiệt độ máy... Nếu thấy RAM > 90%, hãy xem xét nâng cấp phần cứng hoặc restart Jarvis.
Bài viết này tập trung vào 3 yếu tố sống còn: Security (An ninh), Maintenance (Bảo trì), và Monitoring (Giám sát).
1. Bảo mật API (Tạo "Chìa khóa" cho nhà riêng)
Ở Bài 7 & 8, chúng ta mở API ra Internet. Hiện tại, bất kỳ ai có link Cloudflare của bạn đều có thể gửi lệnh điều khiển đèn nhà bạn. Điều này cực kỳ nguy hiểm!
Chúng ta cần thêm cơ chế API Key.
Sửa file `main.py` (FastAPI):
Python:
from fastapi import Security, HTTPException, status
from fastapi.security import APIKeyHeader
# --- CẤU HÌNH BẢO MẬT ---
API_KEY = "mat-khau-sie-cap-vjp-pro-cua-ban" # Đổi cái này ngay!
api_key_header = APIKeyHeader(name="X-API-Key", auto_error=False)
async def get_api_key(api_key_header: str = Security(api_key_header)):
if api_key_header == API_KEY:
return api_key_header
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="❌ Cấm truy cập: Sai API Key!"
)
# --- ÁP DỤNG VÀO CÁC ENDPOINT ---
@app.post("/chat")
def chat_with_ai(request: ChatRequest, api_key: str = Security(get_api_key)):
# ... code cũ ...
pass
@app.get("/control/light/{status}")
def control_light(status: str, api_key: str = Security(get_api_key)):
# ... code cũ ...
pass
-> Từ giờ, App Mobile hay Bot XenForo muốn gọi Jarvis thì phải gửi kèm Header `X-API-Key: mat-khau...`. Kẻ lạ mặt sẽ bị chặn ngay cửa.
2. Tự động khởi động lại khi sập (Docker Restart Policy)
AI đôi khi bị treo (tràn RAM, lỗi mạng). Bạn không muốn nửa đêm phải dậy gõ lệnh khởi động lại.
Hãy dùng tính năng tự phục hồi của Docker.
Khi chạy container, hãy thêm cờ `--restart unless-stopped`:
Mã:
docker run -d \
--name jarvis-api \
--restart unless-stopped \ <-- Dòng quan trọng
-p 8000:8000 \
jarvis-api
-> Nếu Jarvis bị crash, hoặc máy tính bạn bị reset (mất điện rồi có lại), Docker sẽ tự động dựng Jarvis dậy ngay lập tức.
3. Dọn dẹp rác (Docker Prune)
Chạy AI sinh ra rất nhiều file log và cache. Sau 1 tháng, ổ cứng của bạn có thể bị đầy.
Hãy tạo một **Cronjob** (Lịch làm việc tự động) để dọn dẹp hàng tuần.
Mở Terminal (Linux/Mac) hoặc Task Scheduler (Windows), chạy lệnh:
Mã:
docker system prune -f
Lệnh này sẽ xóa sạch các container cũ, image không dùng, giải phóng hàng GB dung lượng.
4. Cập nhật "Bộ não" (Update Llama 3)
Mô hình AI phát triển rất nhanh (Llama 3 -> Llama 3.1 -> Llama 4).
Để Jarvis thông minh hơn, bạn cần cập nhật định kỳ.
Với **Ollama**, việc này cực dễ:
Mã:
# Bước 1: Kéo bản mới nhất về
ollama pull llama3
# Bước 2: Nếu bạn dùng Docker, hãy restart container Ollama
docker restart ollama
5. Giám sát hệ thống (Monitoring)
Làm sao biết Jarvis có đang bị quá tải CPU hay không?
Dùng công cụ **Glances** (viết bằng Python) để theo dõi sức khỏe server.
Mã:
pip install glances[all]
glances
Bạn sẽ thấy một bảng điều khiển như trong phim Hacker: CPU load, RAM usage, Nhiệt độ máy... Nếu thấy RAM > 90%, hãy xem xét nâng cấp phần cứng hoặc restart Jarvis.
Lời khuyên cho Admin
- Backup: Hãy copy thư mục code và file `forum_data.jsonl` (dữ liệu train) ra USB hoặc Google Drive.
- Bảo mật Cloudflare: Trong Cloudflare Dashboard, bạn có thể bật chế độ "Bot Fight Mode" để chặn các bot dò quét lỗ hổng tấn công vào đường hầm (Tunnel) của bạn.
- Đừng để lộ IP: Tuyệt đối không share file `.env` hay `API_KEY` lên diễn đàn công khai.
Bài viết liên quan