dammmmmmmmm commited on
Commit
f07a0e7
·
verified ·
1 Parent(s): 214cd33

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +195 -183
README.md CHANGED
@@ -1,183 +1,195 @@
1
-
2
- # PINE AI - VNPT Smart Contact Center (MVP)
3
-
4
- > **Trợ lý ảo Telesales thế hệ mới: Nghe hiểu cảm xúc, Phân tích ý định và Xử lý từ chối thông minh.**
5
-
6
- ![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)
7
- ![Status](https://img.shields.io/badge/Status-MVP-orange.svg)
8
- ![Backend](https://img.shields.io/badge/FastAPI-Uvicorn-green.svg)
9
- ![AI](https://img.shields.io/badge/LLM-Gemini_Powered-purple.svg)
10
-
11
- ---
12
-
13
- ## 1. Giới thiệu dự án
14
-
15
- **PINE AI** là giải pháp Voice Bot dành cho Tổng đài thông minh (Smart Contact Center) của VNPT. Khác với chatbot truyền thống chỉ phản hồi theo từ khóa, PINE AI sở hữu "trí tuệ cảm xúc" giúp:
16
- 1. **Phân biệt thái độ:** Nhận biết khách hàng đang giận dữ (Toxic) hay chỉ đang khó tính/mặc cả.
17
- 2. **Bảo vệ cơ hội bán hàng:** Tự động phát hiện các câu chê giá/so sánh đối thủ để kích hoạt kịch bản thuyết phục thay vì cúp máy.
18
- 3. **Real-time Metrics:** Hiển thị chỉ số cảm xúc và độ trễ ngay trên màn hình tư vấn viên.
19
-
20
- ---
21
-
22
- ## 2. Tính năng cốt lõi (Core Features)
23
-
24
- ### Bộ não phân tích kép (Dual Analysis Engine)
25
- Hệ thống chạy song song 2 luồng phân tích ngay khi khách hàng dứt lời:
26
- * **Sentiment Engine:** Chấm điểm cảm xúc từ `-1.0` (Rất tệ) đến `1.0` (Rất tốt).
27
- * **Intent Classifier:** Phân loại vấn đề (Mạng nghẽn, Giá cước, Ít Data, So sánh đối thủ...).
28
-
29
- ### chế "Sales Guard" & "Toxic Filter" (Logic Ưu tiên)
30
- Đây điểm khác biệt lớn nhất của PINE AI, sử dụng chế phễu lọc 4 tầng:
31
-
32
- | Tầng ưu tiên | Loại khách hàng | Dấu hiệu nhận biết | Hành động của Bot |
33
- | :--- | :--- | :--- | :--- |
34
- | **1. Toxic/Churn** | Chửi bới, Hủy gay gắt | *"Lừa đảo", "Cút", "Hủy gói ngay"* | **Ngắt ngay lập tức**, chuyển nhân viên (Handover). |
35
- | **2. Refusal** | Từ chối lịch sự | *"Không cần", "Thôi em"* | **Chào tạm biệt** lịch sự, kết thúc cuộc gọi. |
36
- | **3. Objection** | Chê đắt, So sánh | *"Đắt quá", "Viettel rẻ hơn"* | **Bỏ qua điểm tiêu cực**, kích hoạt `CompetitorStrategy` để thuyết phục. |
37
- | **4. Normal** | Hỏi thông thường | *"Gói này bao nhiêu tiền?"* | Trả lời theo kịch bản bán hàng chuẩn. |
38
-
39
- ### Dashboard UX Metrics Live
40
- Giao diện hiển thị trực quan các chỉ số kỹ thuật:
41
- * **Latency:** Đo độ trễ xử (STT + Logic) tính bằng mili giây.
42
- * **Sentiment Bar:** Thanh cảm xúc chạy theo thời gian thực (Xanh/Vàng/Đỏ).
43
- * **Intent Detected:** Hiển thị ý định vừa phát hiện.
44
-
45
- ---
46
-
47
- ## 3. Hướng dẫn Cài đặt & Triển khai
48
-
49
- ### Bước 1: Chuẩn bị môi trường
50
- Yêu cầu máy tính đã cài:
51
- * [Python 3.9+](https://www.python.org/downloads/)
52
- * [Git](https://git-scm.com/)
53
-
54
- ### Bước 2: Clone dự án
55
- ```bash
56
- git clone [https://github.com/YourUsername/vnpt-voice-bot.git](https://github.com/YourUsername/vnpt-voice-bot.git)
57
- cd vnpt-voice-bot
58
-
59
- ```
60
-
61
- ### Bước 3: Tạo môi trường ảo (Virtual Environment)
62
-
63
- Giúp cách ly thư viện dự án, tránh xung đột với hệ thống.
64
-
65
- ```bash
66
- # Windows
67
- python -m venv venv
68
- .\venv\Scripts\activate
69
-
70
- # MacOS/Linux
71
- python3 -m venv venv
72
- source venv/bin/activate
73
-
74
- ```
75
-
76
- ### Bước 4: Cài đặt thư viện phụ thuộc
77
-
78
- ```bash
79
- pip install -r requirements.txt
80
-
81
- ```
82
-
83
- *(File `requirements.txt` bao gồm: `fastapi`, `uvicorn`, `websockets`, `python-dotenv`, `google-generativeai`, ...)*
84
-
85
- ### Bước 5: Cấu hình bảo mật (.env)
86
-
87
- Tạo file `.env` tại thư mục gốc (ngang hàng với `main.py`) và điền API Key:
88
-
89
- ```env
90
- # --- GEMINI CONFIG ---
91
- GOOGLE_API_KEY=
92
- GEMINI_MODEL_ID=gemini-3-flash-preview
93
-
94
- # --- VNPT GENERAL ---
95
- VNPT_BASE_URL=https://api.idg.vnpt.vn
96
-
97
- # --- VNPT TTS CONFIG ---
98
- VNPT_TTS_TOKEN_ID=
99
- VNPT_TTS_TOKEN_KEY=
100
- VNPT_TTS_ACCESS_TOKEN=
101
-
102
- # --- VNPT SMARTBOT CONFIG ---
103
- SMARTBOT_URL=https://assistant-stream.vnpt.vn/v1/conversation
104
- SMARTBOT_ACCESS_TOKEN="
105
- SMARTBOT_TOKEN_ID=
106
- SMARTBOT_TOKEN_KEY=
107
- SMARTBOT_BOT_ID=
108
- ```
109
-
110
- > **Lưu ý:** File `.env` đã được thêm vào `.gitignore` để không bị lộ khi đẩy lên GitHub.
111
-
112
- ### Bước 6: Khởi chạy Server
113
-
114
- ```bash
115
- # Chạy server với tính năng tự động reload khi sửa code
116
- uvicorn main:app --reload
117
-
118
- ```
119
-
120
- Sau khi chạy thành công, mở trình duyệt tại địa chỉ: `http://localhost:8000`.
121
-
122
- ---
123
-
124
- ## 4. Cấu trúc dự án
125
-
126
- ```
127
- vnpt-voice-bot/
128
- ├── .env # Biến môi trường (Chứa API Key)
129
- ├── .gitignore # Danh sách file bị Git bỏ qua (rác, log, env)
130
- ├── README.md # Tài liệu hướng dẫn này
131
- ├── requirements.txt # Danh sách thư viện cần cài
132
-
133
- ├── main.py # Server Backend (FastAPI), xử lý WebSocket
134
- ├── logic_flow.py # [CORE] Bộ não điều phối hội thoại & Logic ưu tiên
135
- ├── analyze.py # [CORE] Bộ phân tích Cảm xúc & Từ khóa (Sentiment Engine)
136
- ├── services.py # Các module vệ tinh (STT, TTS, LLM Connector)
137
- ├── data_engine.py # Giả lập database khách hàng (CSV/JSON)
138
- ├── test_fr.html # Giao diện Frontend (Dashboard + UX Metrics)
139
- ├── strategy_competitor.py # Xử lý khi khách so sánh đối thủ
140
- ├── strategy_low_data.py # Xử khi khách kêu hết data
141
- ── strategy_network.py # Xử khi khách kêu mạng lag
142
-
143
- ```
144
-
145
- ---
146
-
147
- ## 5. Hướng dẫn Git (Dành cho Dev)
148
-
149
- Để đẩy code lên GitHub an toàn và sạch sẽ:
150
-
151
- 1. **Khởi tạo kho (nếu chưa có):**
152
- ```bash
153
- git init
154
-
155
- ```
156
-
157
-
158
- 2. **Thêm file vào vùng chờ (Staging):**
159
- *(Git sẽ tự động bỏ qua các file trong .gitignore)*
160
- ```bash
161
- git add .
162
-
163
- ```
164
-
165
-
166
- 3. **Lưu phiên bản (Commit):**
167
- ```bash
168
- git commit -m "Update logic: Sales Guard & Toxic Filter v2.2"
169
-
170
- ```
171
-
172
-
173
- 4. **Đẩy lên GitHub:**
174
- ```bash
175
- git push origin main
176
-
177
- ```
178
-
179
-
180
-
181
- ---
182
-
183
-
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ---
3
+ title: PINE Voice Mobile
4
+ emoji: 🌲
5
+ colorFrom: green
6
+ colorTo: blue
7
+ sdk: docker
8
+ app_port: 7860
9
+ pinned: false
10
+ ---
11
+
12
+ # PINE AI Voice Assistant
13
+ Dự án trợ ảo giọng nói Mobile.
14
+ # PINE AI - VNPT Smart Contact Center (MVP)
15
+
16
+ > **Trợ ảo Telesales thế hệ mới: Nghe hiểu cảm xúc, Phân tích ý định Xử từ chối thông minh.**
17
+
18
+ ![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)
19
+ ![Status](https://img.shields.io/badge/Status-MVP-orange.svg)
20
+ ![Backend](https://img.shields.io/badge/FastAPI-Uvicorn-green.svg)
21
+ ![AI](https://img.shields.io/badge/LLM-Gemini_Powered-purple.svg)
22
+
23
+ ---
24
+
25
+ ## 1. Giới thiệu dự án
26
+
27
+ **PINE AI** giải pháp Voice Bot dành cho Tổng đài thông minh (Smart Contact Center) của VNPT. Khác với chatbot truyền thống chỉ phản hồi theo từ khóa, PINE AI sở hữu "trí tuệ cảm xúc" giúp:
28
+ 1. **Phân biệt thái độ:** Nhận biết khách hàng đang giận dữ (Toxic) hay chỉ đang khó tính/mặc cả.
29
+ 2. **Bảo vệ hội bán hàng:** Tự động phát hiện các câu chê giá/so sánh đối thủ để kích hoạt kịch bản thuyết phục thay vì cúp máy.
30
+ 3. **Real-time Metrics:** Hiển thị chỉ số cảm xúc độ trễ ngay trên màn hình vấn viên.
31
+
32
+ ---
33
+
34
+ ## 2. Tính năng cốt lõi (Core Features)
35
+
36
+ ### Bộ não phân tích kép (Dual Analysis Engine)
37
+ Hệ thống chạy song song 2 luồng phân tích ngay khi khách hàng dứt lời:
38
+ * **Sentiment Engine:** Chấm điểm cảm xúc từ `-1.0` (Rất tệ) đến `1.0` (Rất tốt).
39
+ * **Intent Classifier:** Phân loại vấn đề (Mạng nghẽn, Giá cước, Ít Data, So sánh đối thủ...).
40
+
41
+ ### chế "Sales Guard" & "Toxic Filter" (Logic Ưu tiên)
42
+ Đây điểm khác biệt lớn nhất của PINE AI, sử dụng cơ chế phễu lọc 4 tầng:
43
+
44
+ | Tầng ưu tiên | Loại khách hàng | Dấu hiệu nhận biết | Hành động của Bot |
45
+ | :--- | :--- | :--- | :--- |
46
+ | **1. Toxic/Churn** | Chửi bới, Hủy gay gắt | *"Lừa đảo", "Cút", "Hủy gói ngay"* | **Ngắt ngay lập tức**, chuyển nhân viên (Handover). |
47
+ | **2. Refusal** | Từ chối lịch sự | *"Không cần", "Thôi em"* | **Chào tạm biệt** lịch sự, kết thúc cuộc gọi. |
48
+ | **3. Objection** | Chê đắt, So sánh | *"Đắt quá", "Viettel rẻ hơn"* | **Bỏ qua điểm tiêu cực**, kích hoạt `CompetitorStrategy` để thuyết phục. |
49
+ | **4. Normal** | Hỏi thông thường | *"Gói này bao nhiêu tiền?"* | Trả lời theo kịch bản bán hàng chuẩn. |
50
+
51
+ ### Dashboard UX Metrics Live
52
+ Giao diện hiển thị trực quan các chỉ số kỹ thuật:
53
+ * **Latency:** Đo độ trễ xử lý (STT + Logic) tính bằng mili giây.
54
+ * **Sentiment Bar:** Thanh cảm xúc chạy theo thời gian thực (Xanh/Vàng/Đỏ).
55
+ * **Intent Detected:** Hiển thị ý định vừa phát hiện.
56
+
57
+ ---
58
+
59
+ ## 3. Hướng dẫn Cài đặt & Triển khai
60
+
61
+ ### Bước 1: Chuẩn bị môi trường
62
+ Yêu cầu máy tính đã cài:
63
+ * [Python 3.9+](https://www.python.org/downloads/)
64
+ * [Git](https://git-scm.com/)
65
+
66
+ ### Bước 2: Clone dự án
67
+ ```bash
68
+ git clone [https://github.com/YourUsername/vnpt-voice-bot.git](https://github.com/YourUsername/vnpt-voice-bot.git)
69
+ cd vnpt-voice-bot
70
+
71
+ ```
72
+
73
+ ### Bước 3: Tạo môi trường ảo (Virtual Environment)
74
+
75
+ Giúp cách ly thư viện dự án, tránh xung đột với hệ thống.
76
+
77
+ ```bash
78
+ # Windows
79
+ python -m venv venv
80
+ .\venv\Scripts\activate
81
+
82
+ # MacOS/Linux
83
+ python3 -m venv venv
84
+ source venv/bin/activate
85
+
86
+ ```
87
+
88
+ ### Bước 4: Cài đặt thư viện phụ thuộc
89
+
90
+ ```bash
91
+ pip install -r requirements.txt
92
+
93
+ ```
94
+
95
+ *(File `requirements.txt` bao gồm: `fastapi`, `uvicorn`, `websockets`, `python-dotenv`, `google-generativeai`, ...)*
96
+
97
+ ### Bước 5: Cấu hình bảo mật (.env)
98
+
99
+ Tạo file `.env` tại thư mục gốc (ngang hàng với `main.py`) và điền API Key:
100
+
101
+ ```env
102
+ # --- GEMINI CONFIG ---
103
+ GOOGLE_API_KEY=
104
+ GEMINI_MODEL_ID=gemini-3-flash-preview
105
+
106
+ # --- VNPT GENERAL ---
107
+ VNPT_BASE_URL=https://api.idg.vnpt.vn
108
+
109
+ # --- VNPT TTS CONFIG ---
110
+ VNPT_TTS_TOKEN_ID=
111
+ VNPT_TTS_TOKEN_KEY=
112
+ VNPT_TTS_ACCESS_TOKEN=
113
+
114
+ # --- VNPT SMARTBOT CONFIG ---
115
+ SMARTBOT_URL=https://assistant-stream.vnpt.vn/v1/conversation
116
+ SMARTBOT_ACCESS_TOKEN="
117
+ SMARTBOT_TOKEN_ID=
118
+ SMARTBOT_TOKEN_KEY=
119
+ SMARTBOT_BOT_ID=
120
+ ```
121
+
122
+ > **Lưu ý:** File `.env` đã được thêm vào `.gitignore` để không bị lộ khi đẩy lên GitHub.
123
+
124
+ ### Bước 6: Khởi chạy Server
125
+
126
+ ```bash
127
+ # Chạy server với tính năng tự động reload khi sửa code
128
+ uvicorn main:app --reload
129
+
130
+ ```
131
+
132
+ Sau khi chạy thành công, mở trình duyệt tại địa chỉ: `http://localhost:8000`.
133
+
134
+ ---
135
+
136
+ ## 4. Cấu trúc dự án
137
+
138
+ ```
139
+ vnpt-voice-bot/
140
+ ├── .env # Biến môi trường (Chứa API Key)
141
+ ── .gitignore # Danh sách file bị Git bỏ qua (rác, log, env)
142
+ ├── README.md # Tài liệu hướng dẫn này
143
+ ├── requirements.txt # Danh sách thư viện cần cài
144
+
145
+ ├── main.py # Server Backend (FastAPI), xử lý WebSocket
146
+ ├── logic_flow.py # [CORE] Bộ não điều phối hội thoại & Logic ưu tiên
147
+ ├── analyze.py # [CORE] Bộ phân tích Cảm xúc & Từ khóa (Sentiment Engine)
148
+ ├── services.py # Các module vệ tinh (STT, TTS, LLM Connector)
149
+ ├── data_engine.py # Giả lập database khách hàng (CSV/JSON)
150
+ ├── test_fr.html # Giao diện Frontend (Dashboard + UX Metrics)
151
+ ├── strategy_competitor.py # Xử khi khách so sánh đối thủ
152
+ ├── strategy_low_data.py # Xử lý khi khách kêu hết data
153
+ └── strategy_network.py # Xử lý khi khách kêu mạng lag
154
+
155
+ ```
156
+
157
+ ---
158
+
159
+ ## 5. Hướng dẫn Git (Dành cho Dev)
160
+
161
+ Để đẩy code lên GitHub an toàn và sạch sẽ:
162
+
163
+ 1. **Khởi tạo kho (nếu chưa có):**
164
+ ```bash
165
+ git init
166
+
167
+ ```
168
+
169
+
170
+ 2. **Thêm file vào vùng chờ (Staging):**
171
+ *(Git sẽ tự động bỏ qua các file trong .gitignore)*
172
+ ```bash
173
+ git add .
174
+
175
+ ```
176
+
177
+
178
+ 3. **Lưu phiên bản (Commit):**
179
+ ```bash
180
+ git commit -m "Update logic: Sales Guard & Toxic Filter v2.2"
181
+
182
+ ```
183
+
184
+
185
+ 4. **Đẩy lên GitHub:**
186
+ ```bash
187
+ git push origin main
188
+
189
+ ```
190
+
191
+
192
+
193
+ ---
194
+
195
+