Vì sao trợ lý AI cần kiến thức miền: kho ngữ liệu, RAG và kiểm chứng câu trả lời
Bài này dùng khi bộ phận dự án định nạp tài liệu vào trợ lý AI, khi một câu trả lời AI bị nghi sai, hoặc khi anh/chị viết bài cho cổng tài liệu và muốn bài đó AI tra được. Đọc mục "Chuẩn bị một tài liệu để AI dùng được" trước khi gửi bài cho IT/Dữ liệu.
RAG chạy như thế nào
RAG (truy xuất tăng cường sinh) là cách AI trả lời dựa trên tài liệu của chính doanh nghiệp, thay vì dựa vào trí nhớ mô hình. Năm bước:
- Người dùng hỏi, ví dụ "mã 47090 thuộc dòng sơn nào".
- Câu hỏi được chuyển thành vector bằng mô hình nhúng.
- Hệ thống tìm vài đoạn gần nhất trong kho vector.
- Các đoạn đó được ghép vào câu hỏi thành một bản nhắc (prompt).
- Mô hình ngôn ngữ viết câu trả lời và trích nguồn kèm theo.
Chỉ cần một bước sai là câu trả lời sai mà vẫn trôi chảy. Vì vậy mọi câu hỏi về nghiệp vụ phải được kiểm chứng như kiểm một nhân viên mới.
Kho AI nội bộ hôm nay chứa gì
| Thành phần | Giá trị đang chạy | Ghi chú |
|---|---|---|
| Máy chủ | Máy chủ GPU riêng | Chạy mô hình nội bộ, không gửi dữ liệu ra ngoài. |
| Nền tảng mô hình | Ollama + llama.cpp | Hai đường gọi song song, cùng một phần cứng. |
| Mô hình sinh | llama3.1:8b | Trả lời câu nghiệp vụ; không tự biết số của Tison. |
| Mô hình nhúng | nomic-embed-text:v1.5 | Dùng cho cả lúc nạp và lúc hỏi. |
| Cổng định tuyến | llama.cpp router, port 8078 | Một cửa cho nhiều mô hình, giao diện OpenAI. |
| Kho vector | Qdrant, collection nomad_knowledge_base | 367.199 vector. |
| Nguồn ngữ liệu | Cổng tài liệu nội bộ, port 8520 | Chưa được nạp vào kho vector. |
Điều cần nói thẳng: 367.199 vector hiện tại chỉ là ngữ liệu chung — bách khoa thư ZIM và tài liệu kỹ thuật phần mềm — chưa có bài nào của Sơn Tison. Nên khi anh/chị hỏi "mã A206 là màu gì", "bảo hành ngoại thất bao lâu", "định mức sơn lót bao nhiêu", trợ lý không trả lời được từ dữ liệu công ty; nó hoặc chịu thua, hoặc đoán. Con đường sửa là nạp chính cổng tài liệu 8520 vào nomad_knowledge_base, không phải đổi mô hình to hơn.
Tài liệu AI-ready là gì
Một bài được coi là AI-ready khi đủ bảy điều:
- Một bài một chủ đề; tiêu đề nêu việc giải quyết, không nêu chung chung.
- Mở đầu nói rõ dùng khi nào; AI dựa câu đó để chọn bài.
- Mọi số có căn cứ và ghi hiệu lực.
- Số liệu đặt trong bảng, không nằm trong ảnh chụp màn hình.
- Thuật ngữ khớp Từ điển thuật ngữ miền; một thuật ngữ một nghĩa.
- Có slug ổn định làm khoá truy nguồn.
- Có mục "Tài liệu liên kết" để bài khác trỏ tới.
Sáu lỗi trích xuất thường gặp
| Lỗi | Hậu quả | Cách phòng |
|---|---|---|
| Khối quá to | Hai chủ đề lẫn trong một đoạn, AI trích sai chỗ | Tách theo mục ##; độ dài khối do IT/Dữ liệu công bố. |
| Khối quá nhỏ | Mất ngữ cảnh, bảng bị cắt rời khỏi tiêu đề | Không tách bảng khỏi dòng dẫn; giữ tiêu đề cột cùng khối. |
| Trộn ngôn ngữ trong một khối | Vector nhiễu, câu hỏi tiếng Việt tìm ra tài liệu tiếng Anh | Một khối một ngôn ngữ; thuật ngữ nước ngoài để ở cột riêng. |
| Bản cũ còn sống cạnh bản mới | AI trả lời mức lương đã hết hiệu lực | Một chủ đề một bài chuẩn; bài cũ ghi rõ "đã thay thế". |
| Bảng bị làm phẳng khi nạp | Mất quan hệ cột, "5.310.000 đ" thành con số không nghĩa | Giữ markdown bảng; không dán ảnh bảng. |
| Thiếu siêu dữ liệu | Không biết bài thuộc miền nào, ai duyệt, hiệu lực từ đâu | Ghi title, slug, tru ở front matter; ngày hiệu lực trong bài. |
| Lệch mô hình nhúng | Nạp bằng mô hình A, hỏi bằng mô hình B: tìm không ra dù tài liệu có | Chỉ nạp lại toàn bộ khi cùng nomic-embed-text:v1.5; đổi mô hình là nạp lại hết. |
Mức "quá to / quá nhỏ" chưa có chuẩn nội bộ; con số cụ thể cho độ dài khối và phần chồng lấp đề xuất để IT/Dữ liệu và Ban Giám đốc duyệt, chưa phải quy định.
Kỷ luật kiểm chứng với người dùng
- Đọc phần nguồn của câu trả lời; không có nguồn thì chưa dùng.
- Mở đúng bài được trích, so câu trả lời với dòng số liệu trong bảng.
- Kiểm tra hiệu lực: mốc thời gian ghi trong bài có phủ ngày hôm nay không.
- Với số tiền, tỷ lệ, thời hạn: đối chiếu
_FACTS.mdhoặc hỏi bộ phận chủ quản miền. - Câu trả lời sai hoặc không nguồn: gửi IT/Dữ liệu kèm nguyên văn câu hỏi, đường dẫn bài, chỗ sai.
Quy tắc: một câu trả lời miền mà không kèm nguồn là một lỗi. Không chấp nhận "AI nói vậy".
Đánh giá bằng bộ 20 câu hỏi
Trước khi nạp và sau mỗi lần nạp, chạy bộ 20 câu cố định. Mỗi câu có đáp án đúng ghi rõ lấy từ bài nào.
| Nhóm | Số câu | Ví dụ câu hỏi | Đáp án lấy từ |
|---|---|---|---|
| Mã màu | 5 | "47090 thuộc dòng nào, bề mặt nào?" | 00-index-bang-mau.md, trang /ma-mau.html |
| Định mức, kỹ thuật | 4 | "Một lít sơn phủ phủ bao nhiêu m²?" | Bài kỹ thuật thi công, phiếu kỹ thuật |
| Đổi trả | 3 | "Hàng mở thùng có đổi được không?" | Bài quy-trinh-doi-tra-hang |
| Thuế | 3 | "Giảm trừ gia cảnh bản thân bao nhiêu?" | _FACTS.md mục 4 |
| Lao động, BHXH | 3 | "Hợp đồng một tháng phải khai tăng khi nào?" | _FACTS.md mục 2, 3, 6 |
| Quy trình nội bộ | 2 | "Ai chủ quản miền Kho & Vận hành?" | Bài ban-do-mien-nghiep-vu-tison |
Cách chấm: đúng số và đúng nguồn là đạt; đúng số thiếu nguồn là lỗi; sai số là lỗi nghiêm trọng; bịa tên văn bản là lỗi nghiêm trọng nhất. Chạy lại bộ 20 câu mỗi lần nạp thêm bài hoặc đổi mô hình.
Rào chắn bắt buộc
- Không đưa dữ liệu cá nhân khách hàng vào kho ngữ liệu: không tên, điện thoại, địa chỉ, mã đơn, công nợ
của từng khách. Chỉ dùng số tổng hợp, ẩn danh.
- Đầu mỗi bài nội bộ ghi rõ "Tài liệu nội bộ Sơn Tison". Cổng 8520 chỉ chạy trong mạng nội bộ.
- Không công bố cổng này ra Internet, không gửi zip tài liệu cho bên thứ ba khi chưa có phê duyệt của Ban
Giám đốc.
- Số hiệu văn bản pháp luật chỉ lấy từ
_FACTS.md. Thiếu thì ghi "cần Pháp chế xác nhận", không đoán. - AI không thay chữ ký số và không thay quyết định của chủ quản miền; mọi quyết định chi tiền, đổi trả, giảm
giá vẫn cần người ký.
Chuẩn bị một tài liệu để AI dùng được
- [ ] Front matter đủ
title,slug,tru; slug không đổi sau khi ban hành. - [ ] Đoạn mở đầu nói rõ bài dùng khi nào, cho ai.
- [ ] Mỗi số có căn cứ và ghi hiệu lực.
- [ ] Số liệu nằm trong bảng markdown, có tiêu đề cột.
- [ ] Thuật ngữ khớp từ điển; từ mới thì gửi đề xuất bổ sung trước.
- [ ] Một chủ đề một bài; bài cũ trùng chủ đề đã ghi "đã thay thế".
- [ ] Không ảnh, không HTML, không emoji, không link rỗng.
- [ ] Không có dữ liệu cá nhân khách hàng.
- [ ] Có mục "Tài liệu liên kết".
- [ ] Gửi IT/Dữ liệu kèm ghi chú "nạp vào
nomad_knowledge_base".
Những điểm dễ sai
- Nghĩ rằng trợ lý AI đã biết dữ liệu Tison; nó chỉ biết những gì đã nạp.
- Nạp tài liệu chưa chuẩn hoá, rồi kết luận "AI không dùng được".
- Sửa bài mà không nạp lại; AI vẫn trả lời bản cũ.
- Dùng câu trả lời có vẻ hợp lý làm căn cứ báo giá, đổi trả, quyết toán.
Câu hỏi thường gặp
Bao lâu thì cổng 8520 vào kho vector? Do IT/Dữ liệu lên lịch nạp; bài này không ấn định ngày.
Sao không dùng mô hình lớn hơn cho giỏi nghiệp vụ Tison? Mô hình to không biết số của mình nếu số đó chưa được nạp. Nạp ngữ liệu trước, đổi mô hình sau.
Nhân viên có được hỏi AI về lương đồng nghiệp không? Không. Dữ liệu nhân sự cá nhân không vào kho ngữ liệu.
Câu trả lời AI sai thì báo ai? Gửi IT/Dữ liệu kèm câu hỏi, nguồn trích và chỗ sai; chủ quản miền xác nhận đáp án đúng.
Tài liệu liên kết
_FACTS.md— nguồn số liệu duy nhất; mục 9 nêu khung DX-OS và nguyên tắc không nhảy lên tầng trí tuệ nhân
tạo khi dữ liệu chưa chuẩn hoá (giáo trình tại https://opendigitransform.gitbook.io/dx-os).
- Bài
tu-dien-thuat-ngu-domain— chuẩn thuật ngữ để tránh nghĩa đôi. - Bài
ban-do-mien-nghiep-vu-tison— chủ quản miền cần hỏi khi kiểm chứng. - Bài
quy-trinh-doi-tra-hang— ví dụ một quy trình viết đủ sâu để AI trích được.