Files
poc_system/doc/5.RAG-Chat-Application-Playbook.md

243 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 5.RAG-Chat-Application-Playbook.md
> Tài liệu này mô tả **tầng RAG Chat** xây dựng trên Search (file 4). Mục tiêu là:
> - Giúp **AI trả lời đúng có dẫn chứng không hallucinate**
> - Giúp **người dùng cuối dễ hiểu, dễ tin, dễ dùng**
> - Có thể dùng làm **tài liệu tham khảo khi soạn Hướng dẫn sử dụng (User Guide)**
>
> File được viết để **AI agent đọc là triển khai được**, **con người đọc là hiểu và sử dụng được**.
---
## Mục lục
1. RAG Chat là gì trong hệ thống này?
2. Nguyên tắc thiết kế RAG Chat
3. Kiến trúc tổng thể RAG Chat
4. Vai trò của Search trong RAG
5. Luồng xử lý câu hỏi (EndtoEnd)
6. Prompt Strategy (Quan trọng nhất)
7. Context Assembly & Citation
8. Tránh Hallucination & Guardrails
9. Trải nghiệm người dùng (UX Guidelines)
10. Các chế độ Chat khuyến nghị
11. Permission propagation
12. Logging & Explainability
13. Checklist triển khai & Checklist hướng dẫn sử dụng
---
## 1. RAG Chat là gì trong hệ thống này?
**RAG (RetrievalAugmented Generation)** = AI **KHÔNG tự nghĩ**, mà:
1. Tìm dữ liệu liên quan trong hệ thống Search
2. Chỉ dùng dữ liệu đó để trả lời
3. Luôn nói rõ **lấy thông tin từ đâu**
Trong hệ thống này:
- ❌ Chat **không** thay thế Search
- ✅ Chat **dựa hoàn toàn trên Search**
---
## 2. Nguyên tắc thiết kế RAG Chat
1. **Searchfirst, LLMsecond**
2. **Không có dữ liệu → không trả lời**
3. **Trả lời = Nội dung + Dẫn chứng**
4. **Ngôn ngữ rõ ràng, không học thuật thừa**
5. **Người dùng luôn có thể click mở tài liệu gốc**
---
## 3. Kiến trúc tổng thể RAG Chat
```text
User Question
Query Understanding
Search Layer (OpenSearch)
├─ Top K chunks (ACLaware)
Context Assembly
LLM (Answer generation)
Answer + Citations
```
---
## 4. Vai trò của Search trong RAG
Search quyết định:
- AI **được phép biết gì**
- AI **không được phép bịa gì**
Quy tắc:
- LLM **chỉ được dùng context do Search trả về**
- Không cho LLM truy cập internet / training data
---
## 5. Luồng xử lý câu hỏi (EndtoEnd)
```text
[User hỏi]
[Normalize câu hỏi]
[Hybrid Search (keyword + vector)]
[Lọc theo permission user]
[Chọn top K chunks]
[Build context + citation map]
[LLM sinh câu trả lời]
[Trả lời + link tài liệu]
```
---
## 6. Prompt Strategy (Rất quan trọng)
### 6.1 System Prompt (bắt buộc)
```text
Bạn là trợ lý tra cứu tài liệu nội bộ.
Bạn CHỈ được trả lời dựa trên thông tin được cung cấp trong CONTEXT.
Nếu CONTEXT không đủ, hãy trả lời:
"Tôi không tìm thấy thông tin trong các tài liệu hiện có."
Mỗi câu trả lời phải kèm theo nguồn trích dẫn.
```
---
### 6.2 User Prompt Template
```text
CÂU HỎI:
{{user_question}}
CONTEXT:
{{retrieved_chunks}}
```
---
### 6.3 Output Format (khuyến nghị)
```text
TRẢ LỜI NGẮN GỌN:
...
CHI TIẾT:
...
NGUỒN THAM KHẢO:
- Tài liệu A trang 5
- Tài liệu B trang 12
```
➡️ Format này **rất phù hợp để đưa vào User Guide**.
---
## 7. Context Assembly & Citation
### 7.1 Context Assembly
- Giữ đúng thứ tự logic
- Không quá dài (token budget)
- Mỗi chunk có ID và nguồn
### 7.2 Citation Object
```json
{
"chunk_id": "...",
"file_name": "...",
"page": 7,
"url": "..."
}
```
---
## 8. Tránh Hallucination & Guardrails
✅ BẮT BUỘC:
- Nếu không có chunk phù hợp → không trả lời
- Không "suy luận thêm" ngoài context
✅ Câu trả lời chuẩn khi không đủ dữ liệu:
> "Hiện tại tôi không tìm thấy thông tin trong các tài liệu nội bộ để trả lời câu hỏi này."
---
## 9. Trải nghiệm người dùng (UX Guidelines)
### 9.1 Người dùng nên cảm nhận gì?
- AI **đáng tin**
- Nói **giống đồng nghiệp biết tài liệu**, không giống chatbot chung chung
### 9.2 UX khuyến nghị
- Mỗi đoạn trả lời có nút "Mở tài liệu"
- Highlight đoạn liên quan trong PDF
---
## 10. Các chế độ Chat khuyến nghị
| Mode | Mô tả | Đối tượng |
|----|------|----------|
| Tra cứu nhanh | Trả lời ngắn + link | Nhân viên |
| Giải thích | Có diễn giải | Đào tạo |
| So sánh | So nhiều tài liệu | Quản lý |
---
## 11. Permission Propagation
Nguyên tắc:
- Chat **không trả về thứ Search không trả**
- Không lộ tên file tồn tại nếu user không có quyền
---
## 12. Logging & Explainability
Lưu lại:
- Question
- Retrieved chunks
- Answer
- Citation
➡️ Phục vụ audit, cải tiến prompt, training nội bộ
---
## 13. Checklist triển khai & Checklist hướng dẫn sử dụng
### 13.1 Checklist kỹ thuật
✅ Search trước Chat
✅ Prompt chặt chẽ
✅ Citation bắt buộc
✅ Permission endtoend
### 13.2 Checklist cho User Guide
✅ Giải thích AI làm gì / không làm gì
✅ Hướng dẫn đọc citation
✅ Cách phản hồi khi AI không tìm thấy dữ liệu
---
*Kết thúc RAG Chat Playbook. Đây là tầng trên cùng của hệ thống.*