尚未检测到更新。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.