- Truy cập Flowise
- Cấu hình Chatflow 1: RAG Tra cứu Luật
- Cấu hình Chatflow 2: Agentflow Phân tích Ảnh
- Test & Verify
Sau khi chạy docker compose up -d, truy cập:
- URL: http://localhost:3000
- Username: admin
- Password: traffic2024
Chatflow này cho phép người dùng hỏi đáp về luật giao thông, mức phạt, quy tắc GT dựa trên knowledge base.
- Click "Chatflows" → "Add New"
- Đặt tên: "Tra cứu Luật Giao thông VN"
- Kéo node ChatOllama vào canvas
- Cấu hình:
- Base URL:
http://host.docker.internal:11434 - Model Name:
llama3.1:8b - Temperature:
0.3 - Top P:
0.9
- Base URL:
- Kéo node Ollama Embeddings vào canvas
- Cấu hình:
- Base URL:
http://host.docker.internal:11434 - Model Name:
nomic-embed-text
- Base URL:
- Kéo node Chroma vào canvas
- Cấu hình:
- Collection Name:
traffic_law_vn - Chroma URL:
http://chromadb:8000
- Collection Name:
- Kết nối: Ollama Embeddings → Chroma (Embeddings input)
- Kéo node PDF File vào canvas
- Upload 3 files từ thư mục
knowledge_base/:nghi_dinh_168_2024.md(đổi sang .pdf hoặc dùng Text File Loader)luat_giao_thong.mdcac_loi_vi_pham.md
- Lưu ý: Nếu dùng file .md, hãy dùng node Text File thay vì PDF File
- Kéo node Recursive Character Text Splitter
- Cấu hình:
- Chunk Size:
1000 - Chunk Overlap:
200 - Separators:
["\n\n", "\n", "---", " "]
- Chunk Size:
- Kết nối: Text File → Text Splitter → Chroma (Document input)
- Kéo node Conversational Retrieval QA Chain
- Kết nối:
- ChatOllama → Chat Model input
- Chroma → Vector Store Retriever input
- Cấu hình:
- Return Source Documents:
True - System Message: (xem bên dưới)
- Return Source Documents:
- Kéo node Buffer Memory
- Kết nối: → Memory input của QA Chain
- Cấu hình:
- Session ID: tự động
- Memory Key:
chat_history
Bạn là trợ lý pháp luật giao thông đường bộ Việt Nam, chuyên về Nghị định 168/2024/NĐ-CP.
Nhiệm vụ của bạn:
1. Trả lời câu hỏi về luật giao thông Việt Nam dựa trên tài liệu được cung cấp
2. Tra cứu mức phạt cho các lỗi vi phạm cụ thể
3. Giải thích quy tắc giao thông
4. Thông báo số điểm trừ trên GPLX
Quy tắc:
- Luôn trả lời bằng tiếng Việt
- Chỉ trả lời dựa trên thông tin trong tài liệu, không bịa đặt
- Nếu không tìm thấy thông tin, hãy nói rõ "Tôi không tìm thấy thông tin này trong tài liệu"
- Trích dẫn nguồn (Nghị định, Điều, Khoản) khi có thể
- Format câu trả lời rõ ràng với bullet points
Text File Loader → Text Splitter → Chroma ← Ollama Embeddings
↓
ChatOllama → Conversational Retrieval QA Chain ← Buffer Memory
- Click "Save" để lưu chatflow
- Flowise sẽ tự động ingest documents vào ChromaDB khi lần đầu tiên có query
Chatflow này sử dụng Agent + Custom Tool để phân tích ảnh vi phạm.
- Click "Chatflows" → "Add New"
- Đặt tên: "Phân tích Vi phạm Giao thông (Multimodal)"
- Base URL:
http://host.docker.internal:11434 - Model Name:
llama3.1:8b - Temperature:
0.2 - Allow Image Upload: ✅ (nếu có option)
- Kéo node Tool Agent vào canvas
- Kết nối ChatOllama → Chat Model input
- Kéo node Custom Tool vào canvas
- Cấu hình:
- Tool Name:
analyze_traffic_image - Tool Description:
Công cụ phân tích ảnh vi phạm giao thông. Sử dụng khi người dùng upload ảnh hoặc hỏi về một hình ảnh vi phạm giao thông. Tool sẽ phân tích ảnh bằng AI để nhận diện loại vi phạm, biển số xe, và các thông tin liên quan. Input: URL hoặc base64 của ảnh Output: JSON với thông tin phân tích vi phạm - Method:
POST - URL:
http://backend:8080/analyze-image - Headers:
{"Content-Type": "multipart/form-data"} - Body: File upload
- Tool Name:
- Kéo node Custom Tool vào canvas
- Cấu hình:
- Tool Name:
lookup_violation_penalty - Tool Description:
Tra cứu mức phạt cho một lỗi vi phạm giao thông cụ thể theo Nghị định 168/2024. Input: tên lỗi vi phạm (VD: "vượt đèn đỏ", "không đội mũ bảo hiểm") Output: Mức phạt tiền, số điểm trừ GPLX, thời gian tước GPLX - Method:
GET - URL:
http://backend:8080/lookup-penalty?violation={input}
- Tool Name:
- Kết nối → Memory input của Tool Agent
Bạn là chuyên gia phân tích vi phạm giao thông đường bộ Việt Nam.
Khi người dùng gửi ảnh hoặc PDF:
1. Sử dụng tool "analyze_traffic_image" để phân tích hình ảnh
2. Dựa trên kết quả phân tích, xác định loại vi phạm cụ thể
3. Sử dụng tool "lookup_violation_penalty" để tra mức phạt
4. Tổng hợp và trả lời đầy đủ:
- Mô tả tình huống vi phạm
- Loại vi phạm
- Biển số xe (nếu có)
- Mức phạt theo Nghị định 168/2024
- Số điểm trừ GPLX
- Tước GPLX (nếu có)
Khi người dùng hỏi về luật giao thông:
- Trả lời dựa trên kiến thức về Nghị định 168/2024 và Luật GTĐB 2024
- Cung cấp thông tin chi tiết về mức phạt
Luôn trả lời bằng tiếng Việt, rõ ràng và chuyên nghiệp.
- Trong settings của Chatflow → "Chat" tab
- Bật "Allow Image Upload" ✅
- Chọn "Image Upload Method":
imgURLhoặcimgUpload
Gửi các câu hỏi sau:
-
✅ "Mức phạt vượt đèn đỏ với ô tô là bao nhiêu?"
- Expected: 18-20 triệu, 4 điểm, tước GPLX 1-3 tháng
-
✅ "Xe máy không đội mũ bảo hiểm bị phạt gì?"
- Expected: 400-600 nghìn
-
✅ "Nồng độ cồn trên 80mg bị xử phạt như thế nào?"
- Expected: 30-40 triệu (ô tô), 10-14 triệu (xe máy), tước GPLX 22-24 tháng
-
✅ "Lùi xe trên đường cao tốc bị phạt bao nhiêu?"
- Expected: 30-40 triệu, 12 điểm, tước GPLX 5-7 tháng
- Upload ảnh xe vượt đèn đỏ → Verify nhận diện vi phạm
- Upload ảnh xe đỗ sai quy định → Verify nhận diện loại vi phạm
- Hỏi "xe trong ảnh phạm luật gì?" → Verify trả lời chính xác
- Hỏi "biển số xe là gì?" → Verify OCR hoạt động
Error: Connection refused, http://host.docker.internal:11434
Fix: Đảm bảo Ollama đang chạy trên máy host: ollama serve
Error: model not found
Fix: Pull model: ollama pull llama3.1:8b và ollama pull nomic-embed-text
Error: Cannot connect to ChromaDB
Fix: Kiểm tra container chromadb đang chạy: docker ps | grep chromadb
- VLM inference trên CPU rất chậm (2-5 phút/ảnh)
- Khuyến nghị: Sử dụng GPU hoặc giảm kích thước model
- Có thể tắt VLM và chỉ dùng OCR bằng parameter
include_vlm=false