Spaces:
Sleeping
Sleeping
File size: 7,273 Bytes
6b98b09 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 |
# Quick Start: PDF-Based ChatbotRAG
## Tóm Tắt Nhanh
Bây giờ bạn có thể:
1. **Upload PDF** hướng dẫn sử dụng vào hệ thống
2. **Chatbot tự động trả lời** các câu hỏi dựa trên nội dung trong PDF
3. Không cần train model, chỉ cần upload PDF!
---
## Quy Trình Hoàn Chỉnh
### Bước 1: Tạo PDF Hướng Dẫn
Bạn có 2 cách:
**Cách 1: Sử dụng Template Có Sẵn**
File `chatbot_guide_template.md` đã sẵn sàng. Customize nội dung cho hệ thống của bạn, sau đó convert sang PDF:
```bash
# Cài pandoc (nếu chưa có)
# Windows: choco install pandoc
# Mac: brew install pandoc
# Linux: sudo apt-get install pandoc
# Convert markdown to PDF
pandoc chatbot_guide_template.md -o chatbot_user_guide.pdf --pdf-engine=xelatex
```
**Cách 2: Tự Viết Content**
Tạo file Word/Google Docs với nội dung hướng dẫn, sau đó:
- File → Export → PDF
**Nội dung nên bao gồm:**
- Giới thiệu hệ thống
- Các chức năng chính
- Hướng dẫn sử dụng từng tính năng
- FAQ (Câu hỏi thường gặp)
- Examples
### Bước 2: Upload PDF Vào Hệ Thống
```bash
# Khởi động server
cd ChatbotRAG
python main.py
```
Trong terminal khác:
```bash
# Upload PDF
curl -X POST "http://localhost:8000/upload-pdf" \
-F "file=@chatbot_user_guide.pdf" \
-F "title=Hướng dẫn sử dụng ChatbotRAG" \
-F "description=Tài liệu hướng dẫn đầy đủ" \
-F "category=user_guide"
```
Hoặc dùng Python:
```python
import requests
with open('chatbot_user_guide.pdf', 'rb') as f:
response = requests.post(
'http://localhost:8000/upload-pdf',
files={'file': f},
data={
'title': 'Hướng dẫn sử dụng ChatbotRAG',
'category': 'user_guide'
}
)
print(response.json())
# Output: {"success": true, "document_id": "pdf_...", "chunks_indexed": 45}
```
### Bước 3: Verify Upload
```bash
# Xem danh sách PDFs
curl http://localhost:8000/documents/pdf
```
### Bước 4: Chat!
```python
import requests
response = requests.post('http://localhost:8000/chat', json={
'message': 'Làm sao để upload PDF vào ChatbotRAG?',
'use_rag': True,
'use_advanced_rag': True,
'top_k': 5,
'hf_token': 'your_huggingface_token' # Get from https://huggingface.co/settings/tokens
})
result = response.json()
print("Answer:", result['response'])
print("\nSources:")
for ctx in result['context_used']:
print(f"- Page {ctx['metadata']['page']}: Confidence {ctx['confidence']:.2%}")
```
---
## Test Script Mẫu
File `test_pdf_chatbot.py`:
```python
"""
Test PDF-based chatbot
"""
import requests
import time
BASE_URL = "http://localhost:8000"
HF_TOKEN = "your_huggingface_token" # Replace with your token
def upload_pdf():
"""Upload PDF guide"""
print("=== Uploading PDF ===")
with open('chatbot_user_guide.pdf', 'rb') as f:
response = requests.post(
f'{BASE_URL}/upload-pdf',
files={'file': f},
data={
'title': 'ChatbotRAG User Guide',
'category': 'user_guide'
}
)
result = response.json()
print(f"✓ Uploaded: {result['chunks_indexed']} chunks")
return result['document_id']
def chat(question):
"""Ask chatbot"""
print(f"\n=== Question: {question} ===")
response = requests.post(f'{BASE_URL}/chat', json={
'message': question,
'use_rag': True,
'use_advanced_rag': True,
'top_k': 5,
'hf_token': HF_TOKEN
})
result = response.json()
print(f"Answer: {result['response']}\n")
print(f"Retrieved {len(result['context_used'])} documents:")
for i, ctx in enumerate(result['context_used'], 1):
print(f"{i}. Page {ctx['metadata'].get('page')}, Confidence: {ctx['confidence']:.2%}")
def main():
# 1. Upload PDF
doc_id = upload_pdf()
# Wait for indexing to complete
time.sleep(2)
# 2. Test questions
questions = [
"Làm sao để upload PDF vào hệ thống?",
"Chatbot có support tiếng Việt không?",
"Tối đa bao nhiêu texts có thể index cùng lúc?",
"Advanced RAG có những tính năng gì?"
]
for q in questions:
chat(q)
time.sleep(1)
if __name__ == "__main__":
main()
```
Chạy:
```bash
python test_pdf_chatbot.py
```
---
## Upload Nhiều PDFs Cùng Lúc
Nếu bạn có nhiều PDFs (FAQ, User Guide, Policies, etc.):
```bash
# Đặt tất cả PDFs vào thư mục
mkdir docs
# Copy PDFs vào docs/
# Batch index
python batch_index_pdfs.py ./docs --category=user_guide
```
Script sẽ tự động index tất cả PDFs và skip những file đã có.
---
## Câu Hỏi Test Mẫu
Sau khi upload PDF hướng dẫn, test với các câu hỏi:
**Về tính năng:**
- "ChatbotRAG có những tính năng gì?"
- "Làm sao để index dữ liệu?"
- "Advanced RAG là gì?"
**Hướng dẫn sử dụng:**
- "Làm sao để upload PDF?"
- "Cách chat với chatbot như thế nào?"
- "Làm sao để xem lịch sử chat?"
**FAQ:**
- "Chatbot không tìm thấy thông tin phải làm sao?"
- "Tối đa bao nhiêu images có thể upload?"
- "Token limit là bao nhiêu?"
**Technical:**
- "Score threshold là gì?"
- "Top_k trong chat request có ý nghĩa gì?"
- "Làm sao để cải thiện độ chính xác?"
---
## Tips Để Chatbot Trả Lời Tốt
### 1. PDF Content Quality
- Viết rõ ràng, có cấu trúc
- Mỗi section tập trung 1 topic
- Có examples cụ thể
- FAQ với câu hỏi thực tế
### 2. Chat Settings
```python
{
'use_advanced_rag': True, # Luôn bật
'use_reranking': True, # Rerank cho accuracy
'use_compression': True, # Nén context
'score_threshold': 0.5, # 0.4-0.6 là tốt
'top_k': 5, # 3-7 tùy use case
'temperature': 0.3 # Thấp cho factual answers
}
```
### 3. Query Tips
- Hỏi câu rõ ràng, cụ thể
- Tránh câu hỏi quá chung chung
- Nếu không tìm thấy, rephrase câu hỏi
---
## Monitoring
### Check Index Status
```bash
curl http://localhost:8000/stats
```
### View PDFs
```bash
curl http://localhost:8000/documents/pdf
```
### Check Chat History
```bash
curl "http://localhost:8000/history?limit=10"
```
---
## Kết Luận
Bây giờ bạn có thể:
✓ Tạo PDF hướng dẫn với nội dung của bạn
✓ Upload PDF vào hệ thống trong vài giây
✓ Chatbot tự động trả lời dựa trên PDF content
✓ Không cần train, không cần code phức tạp
✓ Update content? Chỉ cần upload PDF mới!
**Next Steps:**
1. Tạo PDF hướng dẫn của bạn (hoặc customize template)
2. Upload vào hệ thống
3. Test với câu hỏi thực tế
4. Fine-tune settings nếu cần
5. Add thêm PDFs (FAQ, policies, etc.)
---
## Files Quan Trọng
- `pdf_parser.py` - PDF parsing engine
- `batch_index_pdfs.py` - Batch indexing script
- `chatbot_guide_template.md` - Template PDF content
- `PDF_RAG_GUIDE.md` - Chi tiết về PDF RAG
- `ADVANCED_RAG_GUIDE.md` - Advanced RAG features
---
**Chúc bạn thành công! 🚀**
|