Mô hình cuộc trò chuyện xác định nội dung người dùng có thể nói với Hành động của bạn và cách Hành động đó phản hồi người dùng. Các thành phần chính của mô hình cuộc trò chuyện là ý định, loại, cảnh và lời nhắc. Sau khi một trong các Hành động của bạn được gọi, Trợ lý Google sẽ chuyển người dùng sang Hành động đó và Hành động đó sẽ bắt đầu cuộc trò chuyện với người dùng, dựa trên mô hình trò chuyện của bạn, bao gồm:
Yêu cầu hợp lệ của người dùng – Để xác định những nội dung người dùng có thể nói với Hành động của bạn, bạn cần tạo một tập hợp ý định tăng cường NLU của Trợ lý để có thể hiểu các yêu cầu dành riêng cho Hành động của bạn. Mỗi ý định đều xác định các cụm từ đào tạo mô tả những gì người dùng có thể nói để khớp với ý định đó. Trợ lý NLU sẽ mở rộng những cụm từ huấn luyện này để đưa vào các cụm từ tương tự và việc tổng hợp các cụm từ đó sẽ tạo ra mô hình ngôn ngữ của ý định.
Logic hành động và phản hồi – Cảnh xử lý ý định, thực hiện logic bắt buộc và tạo lời nhắc để trả về cho người dùng.
Xác định yêu cầu người dùng hợp lệ
Để xác định nội dung người dùng có thể nói với Hành động của bạn, bạn sử dụng kết hợp ý định và kiểu. Ý định và các loại của người dùng cho phép bạn tăng cường NLU của Trợ lý bằng các mô hình ngôn ngữ của riêng bạn. Ý định và kiểu hệ thống cho phép bạn tận dụng các mô hình ngôn ngữ tích hợp và tính năng phát hiện sự kiện, chẳng hạn như người dùng muốn thoát khỏi Hành động của bạn hoặc Trợ lý không phát hiện thấy hoạt động đầu vào.
Tạo ý định của người dùng
Ý định của người dùng cho phép bạn xác định các cụm từ huấn luyện riêng để xác định những gì người dùng có thể nói với Hành động của bạn. Trợ lý NLU sử dụng các cụm từ này để tự huấn luyện hiểu những gì người dùng nói. Khi người dùng nói điều gì đó khớp với mô hình ngôn ngữ của người dùng, Trợ lý sẽ so khớp ý định đó và thông báo cho Hành động của bạn để bạn có thể triển khai logic và trả lời lại người dùng.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/new-intent.png?authuser=5&hl=vi)
Cách tạo ý định của người dùng:
- Trong thẻ Phát triển, hãy nhấp vào Ý định của người dùng > &Vòng tròn; (Ý định mới), chỉ định tên rồi nhấn phím Enter để tạo ý định.
- Nhấp vào ý định mới tạo trong trình đơn bên trái. Trình chỉnh sửa ý định sẽ xuất hiện.
- Thêm các cụm từ huấn luyện vào ý định. Bạn nên thêm càng nhiều cụm từ huấn luyện càng tốt để huấn luyện Trợ lý NLU.
- Không bắt buộc: Chú thích các cụm từ huấn luyện để hướng dẫn Trợ lý NLU phân tích cú pháp và trích xuất các tham số đã nhập từ hoạt động đầu vào của người dùng khớp với loại đã chỉ định:
- Nhập tên cho thông số trong trường Thêm thông số mới.
- Chọn một loại hệ thống trong trình đơn thả xuống hoặc tạo một loại tuỳ chỉnh.
- Chỉ định xem tham số có phải là một danh sách hay không. Điều này giúp tham số thu thập nhiều giá trị cùng loại.
- Trong phần Thêm cụm từ huấn luyện, hãy đánh dấu văn bản bạn muốn áp dụng loại đó. Điều này sẽ yêu cầu Trợ lý NLU coi văn bản được đánh dấu là một tham số. Nếu người dùng nói nội dung khớp với kiểu dữ liệu, thì NLU sẽ trích xuất giá trị đó dưới dạng tham số.
Tạo ý định của hệ thống
Ý định của hệ thống cho phép bạn tận dụng ý định với mô hình ngôn ngữ được xác định trước cho các sự kiện phổ biến như người dùng muốn thoát khỏi Hành động của bạn hoặc khi hoạt động đầu vào của người dùng hết thời gian. Cách tạo ý định của hệ thống:
- Trong thẻ Phát triển, hãy nhấp vào Ý định hệ thống. Có một tập hợp các ý định của hệ thống, chẳng hạn như NO_MATCH, NO_INPUT và CANCEL.
- Mỗi ý định của hệ thống chứa các trình xử lý riêng mà bạn có thể tuỳ chỉnh cho từng loại ý định của hệ thống. Ví dụ: ý định của hệ thống cho phép bạn kích hoạt các sự kiện webhook và gửi lời nhắc tĩnh khi sự kiện đó xảy ra.
Tạo loại tuỳ chỉnh
Các kiểu tuỳ chỉnh cho phép bạn tạo bản đặc tả kiểu của riêng mình để huấn luyện NLU hiểu tập hợp các giá trị cần ánh xạ đến một khoá duy nhất.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/type-options.png?authuser=5&hl=vi)
Cách tạo loại tuỳ chỉnh:
- Trong thẻ Phát triển, hãy nhấp vào Loại > ⊕ (Loại mới).
Chọn cách cung cấp giá trị loại trong phần Loại giá trị nào có hỗ trợ loại này?:
- Từ và từ đồng nghĩa cho phép bạn liên kết nhiều giá trị với một khoá duy nhất, được gọi là một mục nhập. Loại của bạn có thể chứa một hoặc nhiều mục nhập. Nếu chọn tuỳ chọn này, bạn cũng có thể bật các chế độ cài đặt NLU sau:
- Bật tính năng so khớp mờ – Tùy chọn này cho phép so khớp các mục có nhiều từ, ngay cả khi các từ được đọc theo thứ tự khác.
- Chấp nhận giá trị không xác định – Khi bạn không thể chỉ định tất cả giá trị có thể, tuỳ chọn này sẽ chấp nhận những từ hoặc cụm từ không xác định dựa trên dữ liệu huấn luyện ý định và dữ liệu đầu vào xung quanh, chẳng hạn như các mục có thể được thêm vào danh sách hàng tạp hoá.
- Biểu thức chính quy cho phép kiểu khớp với các mẫu biểu thức chính quy dựa trên tiêu chuẩn RE2 của Google.
- Văn bản dạng tự do cho phép loại này khớp với bất cứ điều gì người dùng nói.
- Từ và từ đồng nghĩa cho phép bạn liên kết nhiều giá trị với một khoá duy nhất, được gọi là một mục nhập. Loại của bạn có thể chứa một hoặc nhiều mục nhập. Nếu chọn tuỳ chọn này, bạn cũng có thể bật các chế độ cài đặt NLU sau:
Chỉ định giá trị loại trong phần Thêm mục nhập. Nếu bạn chọn Văn bản dạng biểu mẫu tuỳ ý, thì loại của bạn sẽ khớp với mọi văn bản. Vì vậy, bạn không cần phải cung cấp bất kỳ mục nhập nào.
Xây dựng logic và phản hồi cho Hành động
Trợ lý NLU so khớp yêu cầu của người dùng với ý định để Hành động của bạn có thể xử lý các yêu cầu đó trong cảnh. Cảnh là trình thực thi logic mạnh mẽ, cho phép bạn xử lý các sự kiện trong một cuộc trò chuyện.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene.png?authuser=5&hl=vi)
Tạo cảnh
Các phần sau đây mô tả cách tạo cảnh và xác định chức năng cho giai đoạn vòng đời của từng cảnh.
Cách tạo một cảnh:
- Trong thẻ Phát triển, hãy nhấp vào Màn hình > &Vòng tròn; (Cảnh mới), chỉ định tên rồi nhấn phím Enter để tạo một cảnh.
- Nhấp vào cảnh mới tạo trong trình đơn bên trái. Trình chỉnh sửa cảnh sẽ xuất hiện.
Xác định chế độ thiết lập một lần
Khi một cảnh chuyển sang hoạt động lần đầu tiên, bạn có thể thực hiện các thao tác một lần trong giai đoạn Khi nhập. Giai đoạn Khi nhập chỉ thực thi một lần và là giai đoạn duy nhất không chạy bên trong vòng lặp thực thi của cảnh.
Trong một cảnh, hãy nhấp vào giai đoạn Khi nhập để chỉ định chức năng của cảnh. Bạn có thể chỉ định chức năng sau đây trong giai đoạn này:
- Gọi webhook của bạn – Kích hoạt webhook. Xem tài liệu về webhook để biết thêm thông tin về webhook.
- Gửi lời nhắc – Chỉ định lời nhắc tĩnh cho người dùng để họ biết cách tiếp tục cuộc trò chuyện. Xem tài liệu về lời nhắc để biết thêm thông tin về cách chỉ định lời nhắc.
Hình 4. Ví dụ về một cảnh đang ở bước vào giai đoạn
Kiểm tra điều kiện
Các điều kiện cho phép bạn kiểm tra việc lấp đầy vị trí, bộ nhớ phiên, bộ nhớ người dùng và các tham số bộ nhớ của trang chủ để kiểm soát luồng thực thi cảnh.
Trong cảnh, hãy nhấp vào biểu tượng + cho giai đoạn Điều kiện. Trình chỉnh sửa điều kiện sẽ xuất hiện ở bên phải. Bạn có thể chỉ định chức năng sau đây trong giai đoạn này:
- Điều kiện – Chỉ định câu lệnh có điều kiện thực tế để làm cơ sở logic. Xem tài liệu về conditions để biết thông tin về cú pháp.
- Gọi webhook của bạn – Kích hoạt webhook. Xem tài liệu về webhook để biết thêm thông tin về webhook.
- Gửi lời nhắc – Chỉ định lời nhắc tĩnh để gửi cho người dùng, nhờ đó, họ sẽ biết cách tiếp tục cuộc trò chuyện. Xem tài liệu về lời nhắc để biết thêm thông tin về cách chỉ định lời nhắc.
- Transition (Chuyển đổi) – Chỉ định cảnh cần chuyển đổi khi câu lệnh có điều kiện là true.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-condition.png?authuser=5&hl=vi)
Xác định lấp đầy vị trí
Vùng quảng cáo cho phép bạn trích xuất các tham số đã nhập từ hoạt động đầu vào của người dùng.
Trong trình chỉnh sửa cảnh, hãy nhấp vào biểu tượng dấu + cho giai đoạn Lấp đầy khoảng trống. Trình chỉnh sửa cho vị trí xuất hiện ở bên phải. Bạn có thể chỉ định các thuộc tính sau đây của một khu vực:
- Tên vị trí: Chỉ định tên của vị trí. Nếu bạn muốn tận dụng tính năng liên kết giá trị vùng, hãy sử dụng cùng một tên với tham số ý định tương ứng.
- Loại khe: Chỉ định loại khe theo loại hệ thống hoặc loại tuỳ chỉnh.
- Vị trí này là bắt buộc: Đánh dấu vị trí này là bắt buộc. Nếu được bật, quá trình điền vị trí sẽ không hoàn tất cho đến khi vị trí này được lấp đầy.
- Chỉ định giá trị mặc định cho vị trí này: Chỉ định giá trị mặc định cho vị trí được đọc từ tham số phiên được chỉ định.
- Tuỳ chỉnh chức năng ghi lại giá trị vị trí: Chỉ định một tham số phiên để duy trì giá trị của vị trí sau khi điền xong vị trí.
- Xác thực vùng: Kích hoạt webhook khi vùng quảng cáo được lấp đầy. Chế độ cài đặt này áp dụng cho tất cả các vị trí.
- Gọi webhook của bạn (Bật khi bắt buộc phải có vùng): Kích hoạt một webhook. Hãy xem tài liệu về webhook để biết thêm thông tin về webhook.
- Gửi lời nhắc (Bật khi bắt buộc phải có khung giờ): Chỉ định lời nhắc tĩnh để gửi cho người dùng để họ biết cách tiếp tục cuộc trò chuyện. Hãy xem tài liệu về lời nhắc để biết thêm thông tin về cách chỉ định lời nhắc.
Đối với một số loại vùng quảng cáo (chẳng hạn như các loại vùng liên quan đến giao dịch hoặc mức độ tương tác của người dùng), một phần bổ sung sẽ xuất hiện để bạn có thể định cấu hình vùng. Cấu hình khe có thể thay đổi trải nghiệm trò chuyện cho người dùng dựa trên các thuộc tính mà bạn cung cấp.
Để định cấu hình một vị trí, hãy cung cấp các thuộc tính trong đối tượng JSON trong phương thức thực hiện (được tham chiếu dưới dạng tham số phiên) hoặc trong trình chỉnh sửa JSON cùng dòng.
Bạn có thể tìm thấy các thuộc tính có sẵn cho từng loại vị trí trong
tài liệu tham khảo JSON của Trình tạo hành động. Ví dụ: loại vị trí actions.type.DeliveryAddressValue
tương ứng với nội dung tham chiếu cho vị trí DeliveryAddressValue
.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-slot.png?authuser=5&hl=vi)
Liên kết giá trị vị trí
Trong nhiều trường hợp, kết quả so khớp ý định trước đó có thể bao gồm các tham số lấp đầy một phần hoặc toàn bộ giá trị vị trí của cảnh tương ứng. Trong những trường hợp như vậy, mọi vị trí do tham số ý định lấp đầy sẽ ánh xạ đến vị trí lấp đầy của cảnh nếu tên vị trí khớp với tên tham số ý định.
Ví dụ: nếu người dùng so khớp một ý định đặt đồ uống bằng cách nói "Tôi muốn đặt một tách cà phê vani lớn", thì các ô hiện có cho kích thước, hương vị và loại đồ uống sẽ được coi là đã lấp đầy trong cảnh tương ứng nếu cảnh đó xác định cùng một ô trống.
Xử lý dữ liệu nhập
Trong giai đoạn này, bạn có thể yêu cầu Trợ lý NLU so khớp hoạt động đầu vào của người dùng với ý định. Bạn có thể đặt phạm vi so khớp ý định với một cảnh cụ thể bằng cách thêm ý định mong muốn vào cảnh đó. Điều này cho phép bạn kiểm soát luồng trò chuyện bằng cách yêu cầu Trợ lý so khớp các ý định cụ thể khi một cảnh cụ thể đang hoạt động.
Trong một cảnh, hãy nhấp vào biểu tượng dấu + cho giai đoạn User intent handling (Xử lý ý định của người dùng) hoặc Xử lý ý định của hệ thống. Trình chỉnh sửa cho trình xử lý ý định xuất hiện ở bên phải. Bạn có thể chỉ định chức năng sau đây của trình xử lý ý định:
- Ý định – Chỉ định ý định mà bạn muốn khớp trong cảnh này.
- Gọi webhook của bạn – Kích hoạt webhook. Xem tài liệu về webhook để biết thêm thông tin về cách bạn có thể xử lý một yêu cầu webhook.
- Gửi lời nhắc – Chỉ định lời nhắc tĩnh cho người dùng để họ biết cách phản hồi. Hãy xem tài liệu về lời nhắc để biết thêm thông tin về cách chỉ định lời nhắc.
- Chuyển đổi (nếu có) – Chỉ định cảnh cần chuyển đổi khi ý định được chỉ định trùng khớp.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-customintent.png?authuser=5&hl=vi)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-systemintent.png?authuser=5&hl=vi)