Spaces:
Sleeping
Sleeping
Update README.md
Browse files
README.md
CHANGED
|
@@ -8,4 +8,71 @@ pinned: false
|
|
| 8 |
license: mit
|
| 9 |
---
|
| 10 |
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
license: mit
|
| 9 |
---
|
| 10 |
|
| 11 |
+
# EGoV Chatbot 💻
|
| 12 |
+
|
| 13 |
+
EGoV Chatbot là một ứng dụng **chatbot tra cứu thủ tục hành chính** sử dụng dữ liệu từ Hugging Face Hub và cơ chế **hybrid search** (semantic + keyword).
|
| 14 |
+
Dự án này được triển khai dưới dạng **Hugging Face Space** với backend **Flask** và **Docker SDK**.
|
| 15 |
+
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
## 🚀 Tính năng chính
|
| 19 |
+
- **Tra cứu thủ tục hành chính** với dữ liệu có sẵn.
|
| 20 |
+
- **Hybrid Search**: kết hợp tìm kiếm từ khóa (BM25) và tìm kiếm vector (Sentence Transformers).
|
| 21 |
+
- **REST API Endpoint**: `/chat` để nhận câu hỏi và trả về câu trả lời.
|
| 22 |
+
- **Tích hợp Hugging Face Hub**: tải dữ liệu và model trực tiếp từ HF Hub bằng token.
|
| 23 |
+
|
| 24 |
+
---
|
| 25 |
+
|
| 26 |
+
## 📂 Cấu trúc dự án
|
| 27 |
+
```
|
| 28 |
+
├── app.py # Flask backend chính
|
| 29 |
+
├── requirements.txt # Danh sách thư viện cần cài đặt
|
| 30 |
+
├── Dockerfile # Docker build cho Space
|
| 31 |
+
├── id_to_record.pkl # File mapping id -> dữ liệu thủ tục
|
| 32 |
+
├── toan_bo_du_lieu_final.json # Dữ liệu gốc (tùy chọn)
|
| 33 |
+
└── README.md # File này
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
---
|
| 37 |
+
|
| 38 |
+
## 🔑 Biến môi trường yêu cầu
|
| 39 |
+
Trước khi chạy, cần cung cấp biến môi trường:
|
| 40 |
+
- `HF_TOKEN`: Token Hugging Face của bạn (để tải dữ liệu/model từ Hub).
|
| 41 |
+
|
| 42 |
+
Trong Hugging Face Space, đặt token trong mục **"Settings > Secrets"**.
|
| 43 |
+
|
| 44 |
+
---
|
| 45 |
+
|
| 46 |
+
## 🐳 Chạy bằng Docker (cục bộ)
|
| 47 |
+
```bash
|
| 48 |
+
docker build -t egov-chatbot .
|
| 49 |
+
docker run -p 7860:7860 -e HF_TOKEN=your_hf_token egov-chatbot
|
| 50 |
+
```
|
| 51 |
+
Sau đó truy cập:
|
| 52 |
+
[http://localhost:7860/chat?query=Thủ tục làm CCCD](http://localhost:7860/chat?query=Thủ%20tục%20làm%20CCCD)
|
| 53 |
+
|
| 54 |
+
---
|
| 55 |
+
|
| 56 |
+
## 📡 API Endpoint
|
| 57 |
+
- **`POST /chat`**
|
| 58 |
+
- **Body**: `{ "query": "Câu hỏi của bạn" }`
|
| 59 |
+
- **Response**: `{ "answer": "Câu trả lời từ chatbot" }`
|
| 60 |
+
|
| 61 |
+
Ví dụ:
|
| 62 |
+
```bash
|
| 63 |
+
curl -X POST http://localhost:7860/chat \
|
| 64 |
+
-H "Content-Type: application/json" \
|
| 65 |
+
-d '{"query": "Thủ tục cấp giấy khai sinh"}'
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
---
|
| 69 |
+
|
| 70 |
+
## 📝 Giấy phép
|
| 71 |
+
Dự án sử dụng giấy phép **MIT** – tự do sử dụng và tùy biến.
|
| 72 |
+
|
| 73 |
+
---
|
| 74 |
+
|
| 75 |
+
## 📖 Tham khảo
|
| 76 |
+
- [Hugging Face Hub](https://huggingface.co/)
|
| 77 |
+
- [Sentence Transformers](https://www.sbert.net/)
|
| 78 |
+
- [BM25 Ranker](https://github.com/castorini/pyserini)
|