尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Chatbot dùng kỹ thuật RAG (truy xuất tài liệu rồi mới sinh câu trả lời) để tra cứu quy định hợp đồng lao động. Câu trả lời bám văn bản đã nạp, có trích điều luật, và viết bằng tiếng Việt.
Link dự án: https://legal-rag-three.vercel.app
Giúp người lao động và doanh nghiệp hỏi một tình huống cụ thể rồi nhận lại quy định tương ứng, thay vì tự tìm trong cả bộ luật.
Hệ thống chỉ được trả lời từ tài liệu đã nạp. Mỗi câu trả lời phải nêu điều, khoản hoặc văn bản nguồn. Câu nằm ngoài kho tài liệu thì từ chối, không bịa số ngày, mức lương hay mức phạt.
| Đối tượng | Việc cần làm |
|---|---|
| Người lao động | Tra quyền, nghĩa vụ, thời hạn báo trước, thử việc, nghỉ phép |
| Doanh nghiệp, nhân sự | Kiểm tra một tình huống hợp đồng có đúng khung luật đã nạp hay không |
Câu trả lời là tra cứu, không thay tư vấn pháp lý.
keepitreal/vietnamese-sbert (768 chiều, đã chuẩn hóa).VECTOR_MIN_SCORE). BM25 tìm các đoạn trùng từ khóa pháp lý.k = 60), lấy top 5.[1], [2].| Lớp | Local | Public |
|---|---|---|
| Giao diện | Next.js 14, TypeScript, Tailwind | Vercel |
| API | FastAPI, LangChain | Render Free, Singapore, 512 MB RAM |
| Mô hình sinh | Ollama qwen2.5:3b | Gemini gemini-3.8-flash |
| Embedding | PyTorch, model trên máy | Cùng model, qua Hugging Face Inference |
| Vector | Qdrant file trên đĩa | Qdrant Cloud, australia-southeast1 |
| Từ khóa | BM25 ghi ra file pickle | BM25 dựng trong RAM lúc khởi động, từ payload Qdrant |
Một file: 18-vbhn-vpqh.pdf, bản scan 86 trang Văn bản hợp nhất Bộ luật Lao động. Chữ được OCR một lần (Tesseract, 300 dpi), lưu theo từng trang, rồi cắt lại theo Điều. Tái lập chỉ mục không cần OCR lại: backend/scripts/reindex_from_ocr.py.
Kết quả chỉ mục: 596 đoạn, gồm 216 Điều theo đúng thứ tự và 6 đoạn ghi chú. Mỗi đoạn mang metadata nguồn, loại văn bản, năm, số Điều và tiêu đề Điều. Bộ lọc của API áp vào cả nhánh vector và nhánh BM25.
Ba lỗi của bản scan đã xử lý:
OCR trên Windows cần Tesseract và Poppler.
localStorage của trình duyệt.data/ và tự nạp khi bật auto-ingest.Bộ 100 câu bám Văn bản hợp nhất: 25 dễ, 30 trung bình, 25 khó, 20 câu ngoài phạm vi. Không chấm bằng BLEU hay ROUGE. Câu trong phạm vi được chấm theo việc nêu đủ các mốc số liệu bắt buộc, nhắc đúng nội dung và có trích dẫn. Câu ngoài phạm vi được chấm theo việc từ chối.
Bộ câu hỏi do một mô hình khác sinh ra, sau đó được đối chiếu lại với nguyên văn Điều luật (báo cáo ở docs/eval/golden_review_round1.md). Lượt rà đầu sửa 19 câu có tiêu chí chấm sai hoặc đáp án thiếu ý. Luật chấm cũng được siết: số phải khớp nguyên vẹn ("5 ngày" không khớp "365 ngày") và phải nêu đủ mọi mốc.
Kết quả hiện tại, chỉ mục 596 đoạn, mô hình sinh Ollama qwen2.5:3b chạy trên máy:
| Hạng mục | Kết quả |
|---|---|
| Truy xuất, 80 câu trong phạm vi | 75/80 |
| Sinh câu trả lời, cả 100 câu | 76/100 |
| Sinh câu trả lời, 80 câu trong phạm vi | 56/80 |
| Dễ / trung bình / khó | 20/25, 19/30, 17/25 |
| Từ chối đúng, 20 câu ngoài phạm vi | 20/20 |
| Có trích dẫn | 98,8% |
Diễn biến trên cùng bộ câu hỏi đã sửa và cùng cách chấm:
| Mốc | Sinh 100 câu | Truy xuất 80 câu |
|---|---|---|
| Chỉ mục cũ 618 đoạn (đảo trang, lẫn chú thích) | 68 | 73 |
| Chỉ mục 596 đoạn sau khi OCR lại | 77 | 75 |
| Thêm ngưỡng điểm vector 0,45 | 76 | 75 |
Ngưỡng 0,45 làm điểm sinh giảm 1 câu, đổi lại 12/20 câu ngoài phạm vi không cần gọi mô hình sinh.