Professional Documents
Culture Documents
SmartBOT VIRTUAL AGENT
SmartBOT VIRTUAL AGENT
3
A. THÔNG TIN TÀI LIỆU
1. Mục đích của tài liệu, đối tượng sử dụng
● Tài liệu hướng đến hai mục đích chính:
○ Giới thiệu tổng quan các khái niệm về xử lý ngôn ngữ tự nhiên (NLP) giúp người đọc
tiếp cận với các kiến thức nền tảng, hỗ trợ cho việc sử dụng hiệu quả hệ thống xử lý
ngôn ngữ tiếng việt VNLP do công ty ATTVN cung cấp.
○ Giới thiệu chi tiết về hệ thống VNLP, cách thức huấn luyện, cách thức sử dụng các
chức năng của hệ thống đi kèm với các lưu ý nhằm tối ưu hiệu quả của hệ thống.
● Đối tượng sử dụng:
○ Kỹ thuật viên NLP: Huấn luyện và nâng cao mô hình nhận diện NLP.
○ Chuyên viên nắm rõ các nghiệp vụ của doanh nghiệp: Chuẩn bị và chuẩn hóa dữ liệu
để đưa vào đào tạo hệ thống.
○ Chuyên viên thiết kế hội thoại bot: Xây dựng và quản lý bot.
2. Phủ nhận chung (Disclaimer)
Thông tin trong tài liệu này được bảo mật, đặc quyền và chỉ sử dụng cho mục đích thông tin
đến người nhận. Người nhận tài liệu này không được phép sử dụng, xuất bản hoặc phân phối lại
mà không có sự đồng ý trước bằng văn bản của công ty cổ phần ATTVN.
Đối với tài liệu này, các nhà quản lý của ATTVN tuyên bố và không đưa ra bất kỳ bảo đảm nào
về các vấn đề nào liên quan đến các tài liệu này, bao gồm: không giới hạn ở tính chính xác hoặc
đầy đủ của bất kỳ thông tin, định nghĩa nào có trong văn bản này.
Conversational AI được xây dựng trên nền tảng Virtual Agent của ATTVN có cơ chế hoạt động
như sau:
- Bước 1: Khách hàng gửi tin nhắn đến bot.
- Bước 2: Tin nhắn được tiếp nhận và gửi đến hệ thống NLP để xử lý.
- Bước 3: Dựa trên những dữ liệu NLP đã được huấn luyện bao gồm câu mẫu, ý định, loại
thực thể, bot sẽ phân tích nội dung tin nhắn của khách hàng có ý định gì kèm với độ tin cậy
bao nhiêu. Độ tin cậy sẽ quyết định đến việc bot đưa ra phản hồi.
Bot sẽ đưa ra các phản hồi được huấn luyện trước tương ứng với ý định nhận diện có độ
tin cậy cao. Và đưa ra phản hồi mặc định đối với những ý định có độ tin cậy thấp
(Ví dụ: Xin lỗi, tôi không hiểu ý định của bạn, vui lòng cung cấp thông tin).
2. Quy trình xây dựng Conversational AI
Quy trình để xây dựng bot hội thoại theo bối cảnh với công cụ Virtual Agent như sau:
1) Xác định chức năng Bot: Mỗi bot nên được xây dựng để giải quyết trường hợp sử dụng
riêng biệt. Người dùng cần xây dựng các chức năng và nhiệm vụ mà bot sẽ thực hiện.
Ví dụ:
● Conversational AI ngân hàng: Cho vay, tạo tài khoản, gửi tiết kiệm, làm thẻ tín dụng…
● Conversational AI bảo hiểm: Tư vấn sản phẩm, tra cứu thông tin hợp đồng…
● Conversational AI nhà hàng: Đặt bàn, giao hàng, tra cứu thông tin…
2) Xây dựng kịch bản:
● Xác định bối cảnh, trường hợp sử dụng của Bot để xây dựng kịch bản phản hồi phù hợp.
Kịch bản bối cảnh hướng cuộc hội thoại về một chủ đề cụ thể, đưa ra những câu mẫu và
phản hồi tương ứng liên quan đến một bối cảnh nhất định đang nói đến.
● Xây dựng luồng hội thoại theo kịch bản bối cảnh (flow diagram).
3) Data Processing: Xây dựng dữ liệu huấn luyện (câu mẫu, ý định, thực thế, từ khóa) dựa
trên kịch bản bối cảnh và dán nhãn dữ liệu. (Tham khảo tài liệu hướng dẫn sử dụng VNLP tool
huấn luyện NLP).
4) Train: Huấn luyện NLP và hiệu chỉnh đến khi mô hình nhận diện NLP đạt chuẩn. (Tham
khảo tài liệu hướng dẫn sử dụng VNLP tool huấn luyện NLP).
5) Build Bot: Sử dụng nền tảng Virtual Agent để thiết lập phản hồi theo kịch bản bối cảnh.
6) Test - Kiểm tra Bot
● Kiểm tra context (bối cảnh).
● Kiểm tra kết quả phản hồi của bot trên các nền tảng tin nhắn tích hợp với hệ thống (Web,
Messenger, Zalo).
● Điều chỉnh kết quả cho đến khi bot phản hồi theo đúng kịch bản.
7) Deploy - Triển khai Bot: Sau khi hoàn thành các bước xây dựng và kiểm tra, thực hiện triển
khai bot lên các nền tảng (messenger, zalo, website…) khách hàng để tương tác với doanh nghiệp.
“Tôi khá hài lòng Nhận xét dịch vụ chăm Thực thể: “Hài lòng” (Tích cực)
về dịch vụ chăm sóc khách hàng “VN-airline”
sóc khách hàng Ý định: Loại thực thể: Cảm xúc: positive
của VN-airline” feedback_service brand_name
“Tôi muốn đặt Đặt chuyến bay “Hà Nội” Cảm xúc bình
một chuyến bay Ý định: book_flight Loại thực thể: city thường
đến Hà Nội” Cảm xúc : neutral
- Từ khóa (Keywords): Được dùng để huấn luyện cho bot nhận diện được những từ cùng loại,
từ viết tắt, từ mượn, từ đồng nghĩa… cùng nghĩa với một từ nào đó.
1 cơm food cơm huế, cơm gà, cơm lam (cùng chỉ cơm)
- Stopwords: Là những từ xuất hiện nhiều trong ngôn ngữ tự nhiên, tuy nhiên lại không mang
nhiều ý nghĩa. Ví dụ: à, á, a, nhen,…
- Teencodes: Là những ký tự viết tắt tiếng Việt của giới trẻ tại. Ví dụ: ko (không), bjk(biết),...
Tùy theo ngành/lĩnh vực, người huấn luyện cần xây dựng từ điển riêng cho teencodes và
stopwords để huấn luyện hệ thống NLP nhận diện được nghĩa của chúng.
2. Huấn luyện NLP
2.1. Chuẩn bị & tải dữ liệu huấn luyện
Dữ liệu huấn luyện NLP bao gồm số lượng lớn các câu mẫu thể hiện câu nói của khách hàng
được thu thập từ nhiều nguồn khác nhau. Trước khi xây dựng bộ dữ liệu huấn luyện cần hiểu và
xác định mục tiêu và vấn đề doanh nghiệp cần giải quyết là gì để thu thập dữ liệu phù hợp với mô
hình kinh doanh của doanh nghiệp.
Có nhiều phương án khác nhau để xây dựng bộ dữ liệu huấn luyện:
- Dữ liệu thực tế của doanh nghiệp: Là những dữ liệu câu mẫu sẵn có trong hệ thống thông
tin hoặc được thu thập từ các nguồn tương tác khác nhau giữa khách hàng với doanh nghiệp (Ví
dụ: hybridchat, Các đoạn Chat, Email, Mạng xã hội, Diễn đàn,...). Những dữ liệu này mang tính
thực tế và có sự chính xác cao về mong muốn và nhu cầu của khách hàng.
- Chuyên gia trong ngành: Để đảm bảo tính thực tế và tính ứng dụng, việc tạo và huấn luyện
bot sẽ cần đến sự tham gia của nhân sự là những người có chuyên môn nghiệp vụ hoặc những
người đã làm việc trong ngành/lĩnh vực liên quan.
- Pre-built Dataset/ Dữ liệu dựng sẵn: là những bộ dữ liệu do các chuyên viên thuộc nhiều
lĩnh vực khác nhau của ATTVN xây dựng giúp khách hàng đẩy nhanh quá trình đào tạo, giảm bớt
thời gian chuẩn bị dữ liệu.
- Mỗi câu mẫu đều thể hiện một ý định cụ thể của khách hàng. Không nên dùng
những câu mẫu không rõ nghĩa, gây nhiễu cho hệ thống nhận diện.
- Câu mẫu đóng vai trò quan trọng trong huấn luyện kiến thức cho bot. Càng
nhiều dữ liệu câu mẫu được huấn luyện, kết quả nhận diện NLP càng chính xác.
- Dữ liệu câu mẫu được thu thập cần qua xử lý trước (Loại bỏ ký tự đặc biệt,
Câu mẫu emoji, từ ngoại ngữ,...) trước khi nhập liệu lên hệ thống để huấn luyện NLP.
- Gọi tên ý định cần chọn nghĩa chính xác nhất phù hợp với bối cảnh của câu
mẫu. Thường là sự kết hợp của một động từ và một danh từ.
Ví dụ:
+ Câu mẫu: “Công ty có làm việc vào ngày thứ 7 không?”
+ Ý định: hỏi giờ làm việc
- Có nhiều cách nói khác nhau để thể hiện ý định, vì vậy cần chuẩn bị nhiều câu
mẫu khác nhau cho mỗi ý định.
Ví dụ:
+ Ý định: hỏi giờ làm việc
+ Câu mẫu:
1) Công ty có làm việc vào ngày thứ 7 không?
2) Thứ 7 này công ty có làm việc không?
3) Thứ 7 có mở cửa không?
4) Có mở cửa văn phòng thứ 7 này không?
Ý định 5) Công ty thứ 7 này có mở cửa không?
- Thực thể đại diện cho danh từ trong câu (đối tượng hoặc bối cảnh cho hành động
đó).
Ví dụ: ngày giờ, địa điểm, tên thương hiệu, tên riêng, thành phố,...
1) Câu mẫu: “Thứ 7 này công ty có làm việc không?”
+ Thực thể: Thứ 7
+ Loại thực thể: ngày
2) Câu mẫu: “Chi nhánh điện biên phủ thứ 7 có làm việc không?”
+ Thực thể: chi nhánh điện biên phủ
Thực thể + Loại thực thể: tên chi nhánh
- Bước 3: Nhập câu mẫu tương ứng với ý định đã chọn tại ô Nội dung.
- Bước 4: Bôi đen từ muốn nhập loại thực thể trong câu mẫu. Lựa chọn loại thực thể tương
ứng từ danh sách có sẵn trong hệ thống hoặc nhập loại thực thể mới (4).
- Bước 5: Chọn Lưu (5) để hoàn tất nhập câu mẫu, ý định và thực thể.
Cách 2: Tải lên câu mẫu
- Bước 1: Tại mục Conversation, chọn tab Câu mẫu (1).
- Bước 2: Nhấn chọn Tải lên câu mẫu (2), sau đó chọn click để tải xuống file ví dụ (3) để tải
xuống file mẫu nhập liệu để tải lên hệ thống.
- Bước 3: Nhập liệu vào file ví dụ dữ liệu câu mẫu, ý định và thực thể tương ứng.
+ Tên ý định: ask_working_hour (phân cách các từ bằng dấu gạch ngang dưới).
+ Thực thể: thứ 7|sys.date (phân cách giữa thực thể và loại thực thể bằng dấu gạch đứng). Trong câu có nhiề
+ Không sử dụng các ký tự đặc biệt để đặt tên ý định, thực thể (Ví dụ: (!@#$%^&*.).
+ Có thể sử dụng tiếng Anh hoặc tiếng Việt không dấu để đặt tên ý định, thực thể.
- Bước 4: Sau khi nhập liệu, nhấn chọn Tải lên câu mẫu (5) tại giao diện quản lý Câu mẫu, sau
đó nhấn chọn file(6) tải lên câu mẫu cần huấn luyện.
- Bước 5: Nhấn chọn Xử lý(7) để tải tệp dữ liệu huấn luyện lên hệ thống hoặc chọn Thay thế
để xóa toàn bộ dữ liệu cũ và thay bằng dữ liệu mới.
- Bước 6: Sau khi xác nhận tải lên, hệ thống tiến hành xử lý file huấn luyện. Kết quả trả về
gồm chi tiết câu lỗi (nếu có) và dòng dữ liệu lỗi. Người dùng thực hiện chỉnh sửa dữ liệu cần thiết.
Tại ô Loại thực thể, có các tùy chọn tương ứng sau:
2.1.3. Ý định
Người huấn luyện có thể thêm ý định mới tại tab Ý định như sau:
- Bước 1: Tại mục Conversation, chọn tab Bối cảnh (1) sau đó nhấn chọn nút Tạo mới.
- Bước 2: Nhập tên ý định tại tab Ý định và thêm những mô tả cần thiết cho tên ý định (2).
- Bước 3: Nhấn chọn Lưu(3) ý định mới
Tại giao diện này, người huấn luyện có thể thêm câu mẫu tương ứng với ý định như sau:
-Bước 1: Tại tab Samples, nhấn chọn nút Tạo mới(1). Tại hộp thoại hiển thị, nhập nội dung
câu mẫu tương ứng với ý định (2) và thực thể có trong câu mẫu (3)
-Bước 2: Chọn nút Tạo mới(4) để hoàn thành bước tạo câu mẫu.
2.1.4. Từ khóa
Có 2 cách nhập liệu từ khóa
Cách 1: Nhập thủ công
- Bước 1: Nhấn chọn tab Từ khóa(1), sau đó nhấn chọn Tạo mới(2)
- Bước 2: Tại giao diện hiển thị, nhập nội dung từ khóa chính vào ô Từ khóa, nhập từ viết tắt,
từ đồng nghĩa,… tương ứng của từ khóa chính vào ô Từ đồng nghĩa (3). Chọn loại thực thể cần
được nhận diện cho từ khóa từ danh sách Loại thực thể(4) sẵn có.
- Bước 3: Nhấn chọn Lưu(5) để lưu từ khóa mới
- Bước 2: Người huấn luyện nhập từ khóa vào file dữ liệu mẫu theo định dạng như sau.
Trong đó:
+ Keyword: Từ khóa chính cần hệ thống nhận diện
+ Synonym: Từ đồng nghĩa/Từ viết tắt/Từ mượn/… có
nghĩa tương đương với từ khóa chính.
+ Entity Type: Loại thực thể của từ khóa đó
- Bước 3: Nhấn Chọn File(4) sau đó chọn file từ khóa đã nhập liệu. Nhấn chọn Xử lý (5) để hệ
thống bắt đầu tải từ khóa lên hệ thống. Kết quả trả về báo số câu lỗi/không lỗi sau khi tải lên.
2.1.5. Stopwords
Stopwords là những từ có trong từ điển tiếng Việt nhưng không ảnh hưởng đến nghĩa. Huấn
luyện Stopwords giúp hệ thống nhận diện được những từ này để xử lý loại bỏ nếu xuất hiện trong
câu. Chọn tab Stopwords(1), tại giao diện hiển thị sau đó nhập danh sách từ stopwords(2) cần xử lý
vào ô Nội dung.
2.1.6. Teencodes
Huấn luyện Teencodes giúp hệ thống nhận diện được nghĩa của những từ viết tắt này. Để
huấn luyện nhận diện Teencodes, thực hiện theo những bước sau:
- Bước 1: Tại mục Conversation, chọn tab Teencodes.
- Bước 2: Nhập nghĩa cần nhận diện cho teencodes tại ô “Nhập giá trị” (2) và teencodes tại ô
“Codes” (3). Người huấn luyện có thể thêm nhiều giá trị teencodes tương ứng, sau đó nhấn Enter.
- Bước 3: Nhấn Thêm(4) để lưu Teencodes.
2.2. Huấn luyện
Sau khi tải lên hệ thống dữ liệu huấn luyện và thực hiện cập nhật những dữ liệu cần thiết,
người dùng bắt đầu quá trình huấn luyện NLP theo hướng dẫn sau.
- Bước 1: Nhấn nút Huấn luyện (1) tại thanh công cụ truy xuất nhanh để đào tạo kiến thức cho
Bot.
- Bước 2: Sau đó chọn Xử lý(2) để bắt đầu quá trình huấn luyện. Thời gian huấn luyện phụ
thuộc vào độ lớn của dữ liệu câu mẫu.
- Bước 3: Nhập vào file tải xuống dữ liệu câu mẫu, ý định và thực thể tương ứng cần kiểm tra
kết quả nhận diện của hệ thống.
TESTING_DATASET
- Bước 4: Sau khi nhập liệu, Chọn file(4) để tải lên tệp câu mẫu kiểm tra đã nhập dữ liệu.
- Bước 5: Chọn Xử lý(5) sau đó nhấn chọn Chạy(6) để hệ thống tiến hành kiểm tra hàng loạt.
Kết quả kiểm tra hàng loạt trả về ở dạng biểu đồ cho biết các chỉ số:
Chỉ số Cách tính
Tỷ lệ đạt theo ý định Số câu có kết quả nhận diện ý định chính xác trên tổng số câu
được kiểm tra.
Tỷ lệ đạt theo thực thể Số câu có kết quả nhận diện thực thể chính xác trên tổng số câu
được kiểm tra.
Tỷ lệ đạt Số câu đạt cả hai tiêu chí trên tổng số câu được kiểm tra.
* Lưu ý: Chỉ số “Confident” cho biết độ tin cậy về kết quả nhận diện ý định. Người dùng có
thể kiểm tra những câu có chỉ số confident trung bình hoặc thấp tại trang chủ Tổng quan, để đưa
ra những chỉnh sửa cần thiết nhằm cải thiện
kết quả.
- Mức độ trung bình: Nằm trong
khoảng từ 50-79 (trên thang đo 100).
- Mức độ khẩn cấp: Nằm trong
khoảng thấp từ 0-49 (trên thang đo 100).
III. Xây dựng hệ thống phản hồi, tham số, bối cảnh
1. Phản hồi
1.1. Loại phản hồi
Khách hàng Công ty có làm việc vào ngày thứ 7 không? + Ý định: ask_working_hour
+ Thực thể: thứ 7 (sys.date)
Bot Giờ mở cửa của Evymode từ 8:00-21:00. Mở Loại phản hồi: văn bản
cửa tất cả các ngày trong tuần bạn nhé!
Để tạo phản hồi theo kịch bản trên, người huấn luyện thực hiện theo các bước sau:
- Bước 1: Chọn tab Bối cảnh, sau đó chọn Ý định cần xây dựng luồng hội thoại(1)
- Bước 2: Tại giao diện hiển thị, chọn tab Phản hồi sau đó nhấn chọn Tạo phản hồi(2).
- Bước 3 Thực hiện tạo mới phản hồi theo hướng dẫn sau:
+ Đặt tên cho phản hồi để dễ quản lý theo chức năng.
Ví dụ: phản hồi_giờ làm việc, phản hồi_tư vấn sản phẩm, phản hồi_địa chỉ,...
+ Chọn loại phản hồi trong danh sách hiển thị (2) (Xem chi tiết tại mục Loại phản hồi)
+ Nhập nội dung câu trả lời. Nhấn chọn Thêm để thêm vào box tin nhắn (3)
+ Nhấn chọn Lưu (4) để hoàn thành bước thêm phản hồi mới.
- Bước 4: Sau khi tạo phản hồi, Thêm phản hồi vào luồng hội thoại của ý định cần tạo.
+ Tại danh sách phản hồi đã được tạo, nhấn vào biểu tượng để thêm phản hồi vào luồng
hội thoại của ý định (5).
+ Phản hồi được lựa chọn sẽ hiển thị trong danh sách luồng hội thoại của ý định (6).
Sau khi tạo phản hồi cho Bot, người huấn luyện cần nhấn chọn Huấn luyện (1) để đào tạo và
thực hiện các bước kiểm tra phản hồi tại công cụ mô phỏng (2)
1.3. Quản lý phản hồi
Quản lý phản hồi cho phép người huấn luyện tìm kiếm, tạo mới hoặc chỉnh sửa phản hồi.
- Tại mục Conversation, chọn tab Phản hồi để vào giao diện quản lý phản hồi (1).
- Chọn nút Tạo mới(2) để tạo một phản hồi bất kỳ.
- Tìm kiếm phản hồi theo bộ lọc “Loại phản hồi” (3)
- Ý định (4) cho biết phản hồi đang sử dụng cho ý định nào hỗ trợ người huấn luyện dễ quản
lý và chỉnh sửa kịch bản phù hợp với ý định.
- Để chỉnh sửa phản hồi, nhấn chọn dòng phản hồi cần chỉnh sửa (6). Giao diện chỉnh sửa
phản hồi sẽ được hiển thị.
2. Quản lý tham số (Hành động & Tham số)
Tham số được sử dụng để thu thập và quản lý thông tin từ khách hàng giúp Bot đưa ra các
kịch bản phản hồi phù hợp hơn.
Mỗi giá trị của tham số gắn liền với một loại thực thể.
Người huấn luyện khi xây dựng kịch bản phản hồi cần xác định các thông tin quan trọng cần
thu thập từ khách hàng để huấn luyện Bot đưa ra phản hồi chính xác.
Ví dụ:
- Kịch bản tư vấn mua sắm quần áo: Cần xác định được các tham số về cân nặng, chiều cao
để tư vấn size phù hợp. Đối với kịch bản tư vấn cho vay: Cần xác định các tham số về loại vay, thời
gian vay, mục đích vay và số tiền cần vay để tư vấn phương án vay.
Người huấn luyện sử dụng tính năng Điều kiện cho tham số để thiết lập kịch bản phản hồi.
Xét ví dụ về 1 kịch bản phản hồi khách hàng về điều kiện vay của một ngân hàng:
Nội dung Ý định Tham số
dieu_kien_
Khách hàng Cho hỏi điều kiện vay tại ngân hàng là gì?
vay
Hiện banking bot hỗ trợ 2 hình thức vay là vay
Bot thế chấp và vay tín chấp, bạn muốn vay theo loai_vay
hình thức nào?
loai_vay = “vay
Khách hàng Vay tín chấp ạ
tín chấp”
Điều kiện cho vay tín chấp tại ngân hàng là:
Bot
● Là công dân Việt Nam
● Độ tuổi: từ 18 đến 55 tuổi và
● Sinh sống và làm việc thường xuyên: Tại
tỉnh/thành phố Chi nhánh ngân hàng cho vay
● Có thu nhập ổn định đủ khả năng trả nợ
trong suốt quá trình vay vốn.
● Không có nợ xấu tại ngân hàng hay tổ
chức tín dụng nào
Theo kịch bản trên,để tư vấn phương án vay Bot cần xác định được:
● Ý định: dieu_kien_vay (Hỏi điều kiện vay của ngân hàng)
● Tham số (Parameter): loai_vay
2.1. Thiết lập tham số
Để thiết lập tham số, người huấn luyện cần làm theo các bước sau:
- Bước 1: Chọn Ý định cần thiết lập kịch bản phản hồi tại tab Bối cảnh (1)
- Bước 2: Tại tab Hành động & Tham số, nhấn chọn Tạo mới (2)
Thiết lập
+ Thiết lập đơn vị cho tham số so_tien_vay, thuộc loại thực thể sys.amount:
=> Nếu khách hàng nhập số tiền vay là 1 (<1000). Theo thiết lập, Bot sẽ nhận diện giá trị
{so_tien_vay} bằng 1 tỷ.
+ Xem thiết lập đơn vị cho tham số thoi_gian_vay, thuộc loại thực thể sys.duration dưới đây:
=> Thiết lập duration_unit cho tham số thoi_gian_vay là “year”. Khi khách hàng nhập giá trị
tham số là 5. Bot sẽ nhận diện thời gian vay là 5 năm ({thoi_gian_vay} bằng 5 năm).
Sau khi thiết lập kịch bản phản hồi theo điều kiện tham số, người huấn luyện nhấn chọn nút
Huấn luyện tại thanh công cụ truy xuất nhanh và kiểm tra kết quả phản hồi tại công cụ mô
>= So sánh tham số lớn hơn hoặc bằng giá trị số nào đó
<= So sánh tham số nhỏ hơn hoặc bằng giá trị số nào đó
contains Kiểm tra trong chuỗi văn bản có xuất hiện của giá trị so sánh
not contains Kiểm tra trong chuỗi văn bản không có xuất hiện của giá trị so sánh
in Kiểm tra sự tồn tại của giá trị so sánh trong chuỗi văn bản
3. Quản lý bối cảnh
3.1. Tổng quan về quản lý bối cảnh
Quản lý bối cảnh giúp kiểm soát luồng hội thoại của Bot. Sử dụng bối cảnh để thiết lập kịch
bản phản hồi giúp Bot có thể quản lý được những thông tin xuất hiện trong bối cảnh. Kể cả khi
khách hàng thay đổi thông tin, Bot vẫn có thể nhận diện và trích xuất thông tin quan trọng.
Người dùng quản lý bối cảnh bằng cách thiết lập bối cảnh đầu vào và đầu ra cho ý định.
● Bối cảnh đầu ra: Kiểm soát các bối cảnh hoạt động. Khi một ý định được tạo thành, mọi bối
cảnh đầu ra được gắn cho ý định này sẽ được kích hoạt.
● Bối cảnh đầu vào: Một ý định sẽ được nhận diện trong luồng hội thoại nếu tất cả các bối
cảnh đầu vào mà nó được chỉ định hiện đang hoạt động. Khi đưa ra hai ý định với các câu mẫu
được đào tạo giống hệt nhau, ý định có bối cảnh đầu vào hiện đang hoạt động sẽ được nhận diện.
Xem ví dụ sau về quản lý bối cảnh cho một kịch bản “Tư vấn sản phẩm tiền gửi tiết kiệm”
Câu mẫu “Lãi suất hiện tại của ngân hàng là bao nhiêu?” có bối cảnh đầu vào là
“hoi_gui_tiet_kiem_context” giúp Bot xác định được bối cảnh hiện tại là khách hàng đang hỏi về
sản phẩm gửi tiết kiệm từ đó tiếp tục luồng hội thoại phản hồi cho kịch bản tư vấn gửi tiết kiệm.
Trong khi đó, cùng một câu mẫu “Lãi suất hiện tại của ngân hàng là bao nhiêu?” nhưng bối
cảnh đầu vào là hoi_vay_context giúp Bot xác định bối cảnh hiện tại là khách hàng đang hỏi về sản
phẩm vay từ đó có những phản hồi tư vấn cho vay, khác với trường hợp trên.
● Lifespan (Thời gian tồn tại bối cảnh)
Giá trị Lifespan được cài đặt cho bối cảnh đầu ra. Nó cho biết bối cảnh có thể tồn tại qua bao
nhiêu lần hỏi của khách hàng. Khi một bối cảnh kết thúc, bot sẽ tiếp tục phản hồi bối cảnh còn
đang hoạt động. Người dùng thiết lập thông số này để duy trì bối cảnh hội thoại tùy theo kịch bản.
Ví dụ: Xét kịch bản tư vấn sản phẩm “Tiết kiệm điện tử” dưới đây.
● Bối cảnh đầu ra: hoi_gui_tiet_kiem_context thiết lập thông số lifespan là 5.
● Bối cảnh đầu ra: hoi_tiet_kiem_dien_tu_context thiết lập thông số lifespan là 2.
3.2. Thiết lập bối cảnh
Để thiết lập Bối cảnh sẽ đi theo các bước sau:
- Bước 1: Chọn tab Bối cảnh và chọn ý định cần thiết lập bối cảnh.
- Bước 2: Tại tab bối cảnh, nhập trường bối cảnh đầu vào/bối cảnh đầu ra tương ứng.
- Bước 3: Đối với bối cảnh đầu ra, nhấp chọn phần để thiết lập thông số “Life-span”.
- Bước 4: Nhấn Enter để hoàn thành(Có thể thêm nhiều bối cảnh tùy mục đích sử dụng)
- Bước 5: Nhấn chọn “Lưu”.
Một số lưu ý khi đặt tên bối cảnh
Quy định Ví dụ
Sử dụng ký tự viết hoa hoặc viết thường tùy ý context hay Context đều đúng
Nên đặt tên context gắn với tên ý định để dễ - Tên ý định: check_account
phân biệt - Tên context: check_account_context
Ví dụ: Xét kịch bản tư vấn Gửi tiết kiệm của một Banking Bot như sau:
Theo kịch bản trên, khách hàng bắt đầu với câu nói “Tôi muốn gửi tiết kiệm” mở ra ý định
hoi_gui_tiet_kiem với bối cảnh đầu ra tương ứng hoi_gui_tiet_kiem_context.
Kích vào biểu tượng được khoanh tròn và thay đổi thông số “Life-
span” (hệ thống mặc định là 5, người dùng có thể thay đổi).
Câu tiếp theo “lãi suất hiện tại của ngân hàng bao nhiêu” với ý định hoi_lai_suat_tiet_kiem,
thiết lập bối cảnh đầu vào cho ý định này là hoi_gui_tiet_kiem_context. Đồng nghĩa với việc ý định
hỏi lãi suất tiết kiệm chỉ được nhận diện khi bối cảnh hoi_gui_tiet_kiem còn tồn tại.
3.3. Thêm ý định nối
Người huấn luyện có thể sử dụng ý định nối để tự động cài đặt bối cảnh cho các cặp ý định. Ý
định được thêm vào ý định chính được gọi là ý định nối. Khi lựa chọn thêm ý định nối, bối cảnh
đầu ra sẽ tự động được thêm vào ý định chính và bối cảnh đầu vào cùng tên được thêm vào ý định
nối. Ý định nối chỉ được nhận diện khi ý định chính được kích hoạt trong cuộc trò chuyện bởi
khách hàng. Người huấn luyện cũng có thể tạo nhiều cấp độ ý định nối.
* Bối cảnh đầu ra của ý định hoi_gui_tiet_kiem được tự động thêm vào là bối cảnh đầu vào
của ý định hoi_lai_suat_tiet_kiem
3.4. Ghi nhận thông tin thay đổi trong bối cảnh
Khi khách hàng thay đổi một thông tin bất kỳ trong bối cảnh đang diễn ra, người huấn luyện
cần huấn luyện cho Bot lưu trữ và trích xuất được thông tin mới nhất để sử dụng cho các phản hồi
tiếp theo mà không cần hỏi lại khách hàng những thông tin khác.
Ví dụ: Kịch bản tư vấn vay thế chấp dưới đây, khi khách hàng cung cấp số tiền vay (1 tỷ) và
thời gian vay (5 năm). Khi Bot xác nhận lại, khách hàng đổi thông tin số tiền vay (2 tỷ). Bot đã ghi
nhận giá trị số tiền vay mới nhất.
Để huấn luyện Bot phản hồi được những trường hợp khách hàng thay đổi thông tin trong bối
cảnh. Người huấn luyện sử dụng tính năng Hành động & Tham số để thiết lập kịch bản phản hồi.
- Bước 1: Chọn Ý định cần thiết lập phản hồi tại tab Bối cảnh
- Bước 2: Chọn Tạo mới (1) tại tab Hành động & tham số sau đó tạo tham số và loại thực thể
tương ứng cho tham số đó (2)
- Bước 3: Chọn trường Bắt buộc (3) cho tham số để cài đặt ràng buộc thu thập giá trị cho tham
số này để thực hiện các bước phản hồi tiếp theo.
- Bước 4: Thiết lập phản hồi để lấy giá trị cho tham số (4) tại mục Prompt. Sau đó chọn Lưu để
hoàn tất thêm tham số.
Tiếp tục thêm tham số cho các thông tin khác trong câu mẫu theo các bước trên.
4. Nhận diện câu có nhiều thông tin
Thông thường khách hàng có thói quen cung cấp nhiều thông tin trong một câu nói. Đồng
nghĩa câu mẫu chứa nhiều thông tin thực thể. Nhiệm vụ của Bot là trích xuất chính xác những
thông tin này và nhận diện đúng loại thực thể của chúng.
4.1. Thực thể tổng hợp (Composite Entity)
Những thông tin xuất hiện trong câu, thuộc những loại thực thể khác nhau người huấn luyện
sử dụng tính năng huấn luyện Composite Entity theo hướng dẫn như sau:
- Bước 1: Chọn tab Loại thực thể (1) sau đó nhấn chọn Tạo mới (2) để thêm thực thể mới
- Bước 2: Tại giao diện hiển thị, chọn loại Composite(3) tại mục Loại thực thể.
- Bước 3: Đặt tên loại thực thể compostite (4) và nhấn chọn Add_Pattern(5) để thêm cụm
thực thể cần nhận diện. Cấu trúc bao gồm nhiều thực thể con.
* Lưu ý: Hệ thống sẽ kiểm tra tất cả các giá trị pattern theo thứ tự ưu tiên từ trên xuống.
Ví dụ Xét câu mẫu “Tôi muốn đặt 5 ly trà sữa size M”, hệ thống
sẽ kiểm tra với các tùy chọn pattern theo thứ tự ưu tiên từ trên xuống
dưới của danh sách. Theo đó, hệ thống sẽ trích xuất được thông tin
theo thứ tự: #sys.number #drink #drink_size
Ở ví dụ này:
- 5 : sys.number
- trà sữa: drink
- size M: drink_size
Sau khi tạo loại thực thể Composite Entity, thực hiện huấn luyện cho câu mẫu như sau:
- Bước 1: Tại Tab Câu Mẫu, chọn Tạo mới câu mẫu.
- Bước 2: Tại giao diện hiển thị, chọn Ý định muốn tạo câu mẫu (1), nhập câu mẫu vào ô nội
dung (2). Bôi đen cụm thông tin cần huấn luyện loại thực thể composite entity (3).
- Bước 3: Nhấn chọn Lưu(4) để hoàn tất thêm câu mẫu.
Sau mỗi bước thêm mới dữ liệu, thực hiện nhấn chọn biểu tượng Huấn luyện tại thanh
công cụ truy xuất nhanh để đào tạo kiến thức mới cho Bot.
“Tôi muốn đặt 5 ly trà sữa, 4 ly trà đào” dat_mon trà sữa (drink) do_uong
(Đặt món) trà đào (drink)
=> Cài đặt tham số do_uong giúp Bot có thể nhận diện và trích xuất những thông tin thuộc loại
thực thể drink có trong câu mẫu
5. Nhận diện câu phủ định
Câu phủ định dễ khiến Bot nhầm lẫn trong việc nhận diện ý định câu phủ định dẫn đến đưa
ra các phản hồi chưa chính xác. Để Bot nhận diện được câu phủ định, người dùng chỉ cần sử dụng
tính năng huấn luyện ý định phủ định.
Ví dụ: Xét câu mẫu: “Tôi không muốn vay tiền”. Để huấn luyện Bot nhận diện câu này không
bị nhầm lẫn với ý định của câu “Tôi muốn vay tiền” (ý định: vay_tien), cần huấn luyện để Bot biết
câu này có ý định phủ định với ý định vay_tien
Cách tạo ý định phủ định:
- Bước 1: Tạo ý định khong_vay_tien cho câu “Tôi không muốn vay tiền”
- Bước 2: Tại ô Ý định phủ nhận, chọn trong danh sách ý định phủ định. Ở đây là ý định
“vay_tien”
- Bước 3: Chọn Lưu lại ý định phủ định
6. Webhook
Webhook cho phép hệ thống truy cập API từ một ứng dụng/hệ thống khác trong thời gian
thực, hỗ trợ xây dựng các công thức tính toán từ dữ liệu thông tin mà khách hàng cung cấp.
Ví dụ:- Tính số tiền phải trả hằng tháng dựa trên số tiền vay và thời gian vay
* Response Mapping: Thiết lập ánh xạ giá trị trả về từ API sang biến sau khi xử lý. Sử dụng
biến này trong thiết lập phản hồi cho bot.
Ví dụ: Xét kịch bản tư vấn phương án vay của một ngân hàng. Khách hàng cung cấp giá trị các
tham số: số tiền vay (so_tien_vay), thời gian vay (thoi_gian_vay) và loại vay (loai_vay).
Sau khi API trả về số liệu của phương án vay, ánh xạ đến biến phuong_an_vay và được thiết
lập cài đặt phản hồi như sau:
Đối
Nội dung Thiết lập
tượng
Khách
Tôi muốn vay tiền
hàng
Hiện banking bot hỗ trợ 2 hình thức
Bot vay là vay thế chấp và vay tín chấp,
bạn muốn vay theo hình thức nào?
Khách
Vay thế chấp loai_vay = “vay thế chấp”
hàng
Banking Bot hiện có nhiều sản phẩm
đa dạng và hấp dẫn theo nhu cầu
Bot của bạn. Bạn có thể cho Banking Bot
biết mục đích bạn vay vốn để làm gì
không
ạ?
Khách
Vay mua nhà muc_dich_vay = “vay mua nhà”
hàng
Khách
Bạn muốn vay bao nhiêu tiền?
hàng
Bot 1 tỷ so_tien_vay = “1.000.000.000”
Banking bot hiện có thể hỗ trợ vay
lên đến 15 năm với mục đích vay
Bot
mua nhà. Bạn dự định vay trong
vòng bao
lâu??
Khách
Khoảng 10 năm thoi_gian_vay = “10 năm”
hàng
Với số tiền vay 1 tỷ trong vòng 10 Với số tiền vay {so_tien_vay} trong vòng
năm, số tiền phải trả hàng tháng là {thoi_gian_vay}, số tiền phải trả hàng
18.334.000 đồng. Bạn có thể click tháng là {phuong_an_vay} đồng. Bạn có
Bot vào nút bên dưới để xem thông tin thể click vào nút bên dưới để xem
chi tiết của phương án vay hoặc tùy thông tin chi tiết của phương án vay
chỉnh phương án vay khác theo nhu hoặc tùy chỉnh phương án vay khác
cầu của theo nhu cầu
bạn. của bạn.
7. Cài đặt Bot
7.1 Bắt đầu
- Để tạo màn hình Bắt đầu cho Bot, người huấn luyện truy cập vào tab Cài đặt Bot sau đó chọn
Bắt đầu (1).
- Chọn ý định từ danh sách (2), lựa chọn ý định Welcome để thiết lập lời chào khi khách hàng
nhấn “Bắt đầu”.
- Nhấn Lưu (3) để hoàn thành cài đặt
7.3 Ice_Breakers
- Chọn tab Ice_Breakers tại mục Cài đặt Bot (1)
- Nhân chọn Tạo mới (2), tại giao diện hiển thị nhập nội dung câu hỏi (3) và ý định tương ứng
(4) để Bot đưa ra các phản hồi phù hợp
- Nhấn chọn Tạo mới để hoàn thành bước tạo Ice_breakers đầu tiên
7.4 Persistent Menu
- Để tạo menu cố định, chọn tab Persistent Menu (1) tại mục Cài đặt Bot.
- Sau đó nhận chọn Tạo mới (2).
- Nhập các nội dung tương ứng tại giao diện hiển thị (3) , trong đó:
+ Option: Đặt tên cho tùy chọn của menu.
+ Loại: Lựa chọn điều hướng khi khách hàng nhấp vào tùy chọn của menu. Chọn
Redirect_to_intent để điều hướng đến phản hồi của một ý định bất kì trong danh sách Ý
định. Chọn Webview khi muốn điều hướng về một đường dẫn trang web bất kỳ.
- Chọn Tạo mới (4) để hoàn tất tạo tùy chọn cho menu. Tiếp tục thực hiện tương tự với những
tùy chọn khách.
9. Lịch sử
9.1 Lịch sử kiểm tra
Nhấn chọn tab “Lịch sử kiểm tra” tại thanh công cụ bên trái trong phần conversation để chuyển
hướng đến giao diện lịch sử kiểm tra.
Giao diện này hiển thị kết quả nhận diện NLP của tất cả câu mẫu được nhập hoặc tải lên hệ thống.
Các câu mẫu này có thể nằm trong hoặc ngoài bộ dữ liệu mẫu dùng để huấn luyện NLP.
9.2 Lịch sử huấn luyện
Nhấn chọn tab “Lịch sử huấn luyện” tại thanh công cụ bên trái trong phần conversation để
chuyển hướng đến giao diện lịch sử huấn luyện.
Sau khi hệ thống hoàn thành quá trình huấn luyện dữ liệu câu mẫu, kết quả sẽ được cập nhật
tại giao diện tab “Lịch sử huấn luyện”. Hệ thống sẽ cập nhật kết quả của tất cả các đợt huấn luyện.
Người dùng có thể xem kết quả chi tiết của mỗi đợt huấn luyện bằng cách nhấn chọn biểu
tượng “xem chi tiết” tại cột chi tiết.
● Confusion Matrix (Ma trận hỗn loạn) Ma trận hỗn loạn được dùng để đo lường độ chính
xác của quá trình huấn luyện NLP. Ma trận cho biết trong mỗi ý định có bao nhiêu câu mẫu được
nhận diện đúng, bao nhiêu câu mẫu được nhận diện sai và nhận diện sai với ý định nào. Ý định nào
được nhận diện đúng nhiều nhất và ý định nào thường bị phân loại nhầm vào ý định khác. Ma trận
hỗn loạn liệt kê toàn bộ ý định được huấn luyện trong hệ thống theo chiều ngang và chiều dọc.
o Lấy chiều dọc làm chuẩn để xem kết quả và chiều ngang là chiều để tham chiếu.
o Tại mỗi cột của ma trận tương ứng với 1 ý định, người dùng cần chú ý đến các ô màu xanh
và màu đỏ cùng với chữ số tại mỗi ô.
o Ô màu xanh sẽ nằm trên hàng chứa ý định đang được tham chiếu. Chữ số trong ô màu
xanh là số câu mẫu mà hệ thống nhận diện đúng ý định.
o Ô màu đỏ sẽ nằm trên hàng chứa ý định bị nhận diện sai. Chữ số trong ô màu đỏ là
số câu mẫu mà hệ thống nhận diện sai ý định.
o Tổng số của 2 ô màu sẽ bằng với tổng số câu mẫu được huấn luyện của một ý định.
● Ma trận hình bên dưới cho thấy kết quả huấn luyện của hệ thống đối với ý định
ask_phone_number_credit_loan là như sau:
o Có tổng cộng 12 câu mẫu tương ứng với ý định ask_phone_number_credit_loan
được huấn luyện trên hệ thống. Trong đó có 5 câu hệ thống nhận diện đúng ý định
là ask_phone_number_credit_loan, và 7 câu hệ thống nhận diện sai ý định.
o Ý định bị nhầm lẫn là ask_phone_number_cash_loan.
o Độ chính xác của quá trình huấn luyện là 94.9%.Kiểm tra NLP.
Khi người dùng chọn “Thêm câu mẫu” thì những câu mẫu đó sẽ được thêm vào tại tab “Câu
mẫu”. Người dùng có thể vào tab câu mẫu và thực hiện huấn luyện lại các câu mẫu được thêm
này.
IV. Tích hợp
Nền tảng Conversational AI ATTVN có thể tích hợp Bot trên các nền tảng: Facebook Messenger,
Web và Zalo. Người huấn luyện nhấn chọn biểu tượng kích hoạt trên nền tảng cần tích hợp.
Sau đó, thực hiện theo hướng dẫn trên ô thông báo popup.
Bên cạnh đó người dùng (Admin) có thể xem thông báo và tham gia cuộc trò chuyện giữa
Conversational AI và khách hàng.
Thông báo gồm có 2 loại (Tham khảo thêm tại phần “Gửi thông báo cho nhân viên” của nền tảng
Virtual Agent):
● Tham gia phòng: Admin nhấn vào thông báo này sẽ tham gia vào cuộc trò chuyện.
● Thông báo thông thường: Admin nhấn vào thông báo để xem cuộc trò chuyện.
Khi tham gia vào cuộc trò chuyện, admin có thể theo dõi cuộc trò chuyện đang giữa bot và
khách hàng. Nếu bot đang phản hồi chưa chính xác, admin có thể ngừng bot để trực tiếp trò
chuyện với khách hàng.
3.2. AI đề xuất
Khi Admin tham gia cuộc trò chuyện, phía góc phải sẽ hiển thị phần AI đề xuất với các ý định
và phản hồi sắp gửi đi của bot khi bot nhận diện được câu chat của khách hàng.
- Trường hợp bot nhận diện ý định chính xác với câu chat của khách hàng thì Admin có thể
để cho bot tự động phản hồi hoặc nhấn nút “Gửi phản hồi” để gửi ngay tin nhắn.
- Trường hợp bot nhận diện ý định chưa chính xác với câu chat của khách hàng hoặc câu
phản hồi chưa phù hợp thì Admin sẽ dừng bot và chat trực tiếp với khách hàng. Bên cạnh
đó, Admin có thể đề xuất thay đổi ý định bot nhận diện cho chính xác hơn bằng cách nhấn
vào nút “Ý định mới” và chọn ý định muốn thay thế trong list ý định được gợi ý sẵn
*Lưu ý: Ý định mà Admin đề xuất thay đổi sẽ được gửi về hệ thống Virtual Agent trong phần
“Lịch sử tái huấn luyện”. Nhân viên huấn luyện bot sẽ là người xem xét và quyết định việc huấn
luyện lại hay không.
3.3. Thông tin khách hàng
Phần thông tin khách hàng hiển thị ngay bên dưới phần AI đề xuất khi Admin tham gia cuộc
trò chuyện. Phần này cho phép Admin ghi chú các thông tin của khách hàng như: tên, email, địa
chỉ, số điện thoại và gắn nhãn khách hàng như: khách Vip, mua nhiều …
Việc ghi chú này giúp cho Admin dễ dàng quản lý danh sách khách hàng tiềm năng để có
những chiến dịch chăm sóc riêng.
- hết -