Vì tài liệu này được tập trung vào mục đích học thuật nên sẽ tập trung vào phiên bản ES.
Agent
Trong Dialogflow, Agent là một thành phần chính trong Dialogflow, nó là module hiểu biết ngôn ngữ tự nhiên (NLU), hiểu biết các nhập nhằng phức tạp trong ngôn ngữ nói thông thường của con người ta. Agent sẽ phiên dịch các văn bản hay âm thanh của người dùng thành một dữ liệu có cấu trúc để app và dịch vụ của ta hiểu và xử lý được. Và chúng ta cần phải huấn luyện (train) chúng để ta có thể xử lý các tình huống giao tiếp thông thường.
28
Intent
Khi tạo 1 Agent, bạn sẽ được tạo cùng 2 Intents mặc định đó là “Default Falback Intent”
và “Default Welcome Intent”.
• Default Fallback Intent — những nội dung mà bot không hiểu
• Default Welcome Intent — những nội dung mà chúng tiếp xúc với người dùng lần đầu Ví dụ khách hàng hỏi bot: mình muốn mua cây bút Artline, hoặc bút Artline bán ở đâu, hoặc mình ở Sài Gòn muốn mua bút Artline thì ghé nhà sách nào, hoặc nhà sách nào có bán bút dạ quang Artline vậy bạn…
Nói tóm tắt thì khách hàng chỉ muốn mua bút, vậy nội dung đề cập của khách là mua bút.
Với mỗi agent, ta sẽ muốn định nghĩa nhiều intents, từ đó các intents sẽ cùng kết hợp lại để agent có thể có 1 cuộc đối thoại tự nhiên với người dùng. Với ví dụ trên ngoài Intent về bút, ta có thể có các Intents khác liên quan về địa điểm, giá bán, thời gian để bot hiểu hơn “ý muốn”
của người dùng hơn.
Một Intent sẽ bao gồm 4 thành phần nhỏ:
• Training Phrase: Những câu mẫu mà người dùng có khả năng sẽ nói được ta thêm vào sẵn cho máy để kích hoạt Intent đó. Không cần phải liệt kê tất cả các câu vì máy sẽ tự động tìm hiểu các câu tương tự.
Tại mục Training phrases, ví dụ Intent iTuVan, ta có thể định nghĩa các training phrases mà người dùng hay nói như:
o Cho hỏi về bút chì màu
o Mình cần tư vấn về bút màu sáp cho bé
• Action: là những hành động ta định nghĩa cho mỗi Intent, ta chỉ định một action cho mỗi intent. Khi intent được kích hoạt, Dialogflow sẽ cung cấp action tương ứng cho hệ thống của ta.
• Parameters: là một danh sách các tham số được dùng để trích xuất thông tin cần thiết từ lời yêu cầu của người dùng để xử lý hoặc cũng có thể dùng để phản hồi về cho người dùng. Khi 1 intent được kích hoạt lúc nói chuyện, Dialogflow sẽ bóc tách ra các từ khoá có ý nghĩa. Các từ khoá này được lưu vào trong các Parameters.
• Response: là những phản hồi được định nghĩa sẵn để đáp lại người dùng, nó có thể là một câu trả lời cho một yêu cầu của người dùng hoặc có thể là lời yêu cầu người dùng
29 cung cấp thêm thông tin hoặc một phản hồi kết thúc cuộc hội thoại, là những gì ta sẽ hành động khi nghe người kia nói.
Entity
Là cách mà Dialog hiểu câu nói của người dùng thông qua việc xác định và trích xuất dữ liệu cần thiết từ câu nói đó. Với Intent thì chatbot có thể hiểu được mục đích hay ý nghĩa trong câu nói của người dùng thì Entity sẽ là cách để trích xuất thông tin từ câu nói ấy ra. Với parameter của từng Intent đều có một loại gọi là Entity type, đây chính là cách mà văn bản/âm thanh của người dùng nhập được trích xuất thành dữ liệu có cấu trúc như ta đã nói ở trên.
Một Entity bao gồm 3 phần:
• Loại Entity: định nghĩa ra loại thông tin mà ta muốn trích xuất từ câu truy vấn của người dùng.
• Phần tử Entity: mỗi loại Entity sẽ có nhiều phần tử, mỗi phần tử cung cấp một tập các từ hoặc cụm từ được coi là tương đương.
• Các từ đồng nghĩa và giá trị tham chiếu với Entity: một vài phần tử Entity có nhiều từ hoặc cụm từ mà có nghĩa tương đương nhau, với những Entity này ta cần cung cấp một giá trị tham chiếu và một hoặc nhiều từ, cụm từ đồng nghĩa.
Trong Dialogflow đã cung cấp một lượng lớn Entities có sẵn cho các Intents, như là thời gian, màu sắc, địa chỉ email, …Ngoài ra ta cũng có thể tự tao ra Entity riêng để phù hợp với việc phát triển.
Context
Context trong Dialogflow cũng rất giống như trong ngôn ngữ thông thường của con người. Nếu ta nói “Chúng có màu cam” thì “Chúng” trong câu chỉ đển ai/sự vật/sự việc tùy theo context của câu nói đó. Và Dialogflow dùng Context như là cách để xác định được ý nghĩa chính xác của câu từ trong đó.
30
Follow-up Intent
Là cách để chatbot có thể lưu nhớ được thông tin của cuộc đối thoại, nó sẽ ghi nhớ được các câu nói trước đó để có thể đưa ra câu trả lời tiếp theo chính xác với người dùng hỏi. Ta có thể xem các Follow-up Intent như là Intent con được lồng vào các Intent cha, khi đó Intent cha sẽ đưa ra một Context và chính Context sẽ lại đưa vào Intent con, giữ cho chatbot hiểu được Context của cuộc đối thoại xuyên suốt.
Dialogflow cung cấp rất nhiều Follow-up Intents định nghĩa sẵn như là “Yes”, “No”,
“Cancel”,… dành cho các câu trả lời thông dụng.
Ví dụ: một Intent tên là iTuVan để xử lý yêu cầu của người dùng khi cần tư vấn về sữa, chat bot sẽ đưa ra các câu hỏi gợi mở như “bạn cần mua loại nào: Frisolac Gold, Nan Nestle, Physiolac, Morinaga, Meiji”. Khi người dùng trả lời tên một loại sữa (VD: frisolac) thì chatbot sẽ hỏi tiếp “bạn muốn hỏi về giá hay chỗ mua sữa Frisolac Gold?” để làm được như vậy ta cần tạo thêm một Intent con từ Itent iTuVan bằng cách thêm vào Follow-up Intent, “iTuVan - Frisolac Gold”.
Dialogflow Console
Dialogflow cung cấp giao diện web để cho các nhà phát triển xây đựng chatbot được gọi là Dialogflow Console, và đây chính là công cụ chính cho việc xây dựng, khởi tạo và test các agents chatbot. (Thông qua link: dialogflow.cloud.google.com)
31 Một số hình ảnh giao diện của Dialogflow Console