Hệ thống AI đa phương thức kết hợp LLM, RAG và Vision-Language Models để phân tích bằng chứng vi phạm giao thông từ ảnh/PDF, tra cứu mức phạt theo Nghị định 168/2024/NĐ-CP.
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Người dùng │
│ Upload ảnh/PDF + Hỏi đáp giao thông │
└──────────────────┬──────────────────┬───────────────────────────┘
│ │
┌─────────▼─────────┐ ┌──────▼──────────┐
│ 🎨 Gradio UI │ │ 🔄 Flowise │
│ (Port 7860) │ │ (Port 3000) │
└─────────┬─────────┘ └──────┬──────────┘
│ │
┌───────▼──────────────────▼───────┐
│ ⚙️ FastAPI Backend │
│ (Port 8080) │
│ ┌──────────┐ ┌──────────────┐ │
│ │ VLM │ │ PaddleOCR │ │
│ │ Service │ │ Biển số xe │ │
│ └────┬─────┘ └──────────────┘ │
└───────┼──────────────────────────┘
│
┌─────────▼─────────┐ ┌──────────────────┐
│ 🧠 Ollama │ │ 🗄️ ChromaDB │
│ - llama3.2-vision│ │ Vector Database │
│ - llama3.1:8b │ │ (Port 8000) │
│ - nomic-embed │ │ 📚 Luật GTĐB │
│ (Port 11434) │ └──────────────────┘
└───────────────────┘
| Tính năng | Mô tả |
|---|---|
| 📸 Phân tích ảnh vi phạm | Upload ảnh → VLM nhận diện loại vi phạm, mức độ, phương tiện |
| 🔢 OCR biển số xe | PaddleOCR đọc biển số xe Việt Nam từ ảnh |
| 📄 Phân tích PDF | Trích xuất và phân tích ảnh từ file PDF bằng chứng |
| 💬 Hỏi đáp ảnh | Hỏi bất kỳ câu hỏi nào về hình ảnh giao thông |
| 📚 RAG tra cứu luật | Tra cứu mức phạt theo Nghị định 168/2024 qua ChatBot |
| 🔄 Flowise Workflow | Orchestrate AI workflow bằng giao diện kéo-thả |
- OS: Windows 10/11 hoặc Linux
- RAM: ≥ 16GB (khuyến nghị 32GB)
- GPU: NVIDIA với ≥ 8GB VRAM (khuyến nghị, không bắt buộc)
- Disk: ≥ 20GB trống
- Docker Desktop đã cài đặt
- Ollama đã cài đặt (download)
# Chạy script tự động
.\scripts\setup_ollama.ps1
# Hoặc cài thủ công:
ollama pull llama3.2-vision # VLM phân tích ảnh (~7.9GB)
ollama pull llama3.1:8b # LLM chat (~4.7GB)
ollama pull nomic-embed-text # Embedding cho RAG (~274MB)# Clone và chạy
docker compose up -d
# Kiểm tra services
docker compose ps# Cài dependencies
pip install chromadb httpx
# Chạy ingestion script
python scripts/ingest_knowledge.py- Truy cập http://localhost:3000
- Đăng nhập:
admin/traffic2024 - Tham khảo docs/flowise_setup_guide.md để tạo chatflow
- Frontend: http://localhost:7860
- Flowise Chat: http://localhost:3000
- API: http://localhost:8080/docs
Phân tích ảnh vi phạm giao thông.
curl -X POST -F "file=@violation.jpg" \
"http://localhost:8080/analyze-image?include_ocr=true&include_vlm=true"Phân tích PDF bằng chứng vi phạm.
curl -X POST -F "file=@evidence.pdf" \
"http://localhost:8080/analyze-pdf?max_pages=5"Hỏi đáp về hình ảnh giao thông.
curl -X POST -F "file=@traffic.jpg" \
-F "question=Xe này phạm luật gì?" \
"http://localhost:8080/ask-about-image"Chỉ trích xuất biển số xe (nhanh, không dùng VLM).
curl -X POST -F "file=@plate.jpg" \
"http://localhost:8080/ocr-only".
├── docker-compose.yml # Docker Compose orchestration
├── README.md # Documentation
│
├── backend/ # FastAPI Backend Service
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── main.py # API endpoints
│ ├── vlm_service.py # Vision Language Model service
│ ├── ocr_service.py # License plate OCR service
│ └── pdf_service.py # PDF processing service
│
├── frontend/ # Gradio Frontend
│ ├── Dockerfile
│ ├── requirements.txt
│ └── app.py # Gradio UI application
│
├── knowledge_base/ # RAG Knowledge Base
│ ├── nghi_dinh_168_2024.md # Nghị định 168/2024 - Mức phạt
│ ├── luat_giao_thong.md # Luật GTĐB 2024 - Quy tắc
│ └── cac_loi_vi_pham.md # Danh mục lỗi vi phạm
│
├── docs/ # Documentation
│ └── flowise_setup_guide.md # Hướng dẫn cấu hình Flowise
│
└── scripts/ # Utility Scripts
├── setup_ollama.ps1 # Cài đặt Ollama models
└── ingest_knowledge.py # Nạp knowledge base vào ChromaDB
| Component | Technology | Vai trò |
|---|---|---|
| Orchestration | Flowise AI | Kết nối LLM + RAG + Tools bằng workflow |
| LLM | Llama 3.1 (8B) via Ollama | Reasoning, hỏi đáp tiếng Việt |
| VLM | Llama 3.2 Vision (11B) via Ollama | Phân tích hình ảnh vi phạm |
| Embedding | nomic-embed-text via Ollama | Vector embedding cho RAG |
| Vector DB | ChromaDB | Lưu trữ và truy vấn knowledge base |
| OCR | PaddleOCR | Nhận diện biển số xe Việt Nam |
| Backend | FastAPI (Python) | REST API xử lý ảnh/PDF |
| Frontend | Gradio | Giao diện web tương tác |
| Container | Docker Compose | Orchestrate microservices |
Hệ thống sử dụng kiến trúc Multimodal RAG (Retrieval-Augmented Generation) kết hợp:
- Vision branch: VLM phân tích ảnh → trích xuất thông tin vi phạm (loại xe, hành vi, bối cảnh)
- Text branch: OCR đọc biển số xe + text trong ảnh
- RAG branch: Tra cứu mức phạt từ knowledge base (Nghị định 168/2024) qua vector search
- Reasoning: LLM tổng hợp kết quả từ 3 nhánh → trả lời hoàn chỉnh
Sử dụng Flowise để tạo 2 workflow:
- Chatflow RAG: Hỏi đáp luật giao thông dựa trên knowledge base
- Agentflow: Agent sử dụng tools (VLM + OCR + RAG) để phân tích multimodal
Toàn bộ hệ thống sử dụng mô hình mã nguồn mở, chạy hoàn toàn local:
- Không phụ thuộc API bên thứ 3 (OpenAI, Google, etc.)
- Bảo mật dữ liệu vi phạm (không gửi ảnh ra ngoài)
- Có thể chạy offline sau khi setup