1. Tổng quan
Nền tảng dành cho nhà phát triển Trợ lý Google cho phép bạn tạo phần mềm để mở rộng chức năng của Trợ lý Google (một trợ lý ảo cá nhân) trên hơn 1 tỷ thiết bị, bao gồm cả loa thông minh, điện thoại, ô tô, TV, tai nghe và nhiều thiết bị khác. Người dùng tương tác với Trợ lý thông qua cuộc trò chuyện để thực hiện các việc cần làm, chẳng hạn như mua hàng tạp hoá hoặc đặt xe. Là nhà phát triển, bạn có thể sử dụng nền tảng nhà phát triển Assistant để dễ dàng tạo và quản lý trải nghiệm đàm thoại thú vị và hiệu quả giữa người dùng và dịch vụ thực hiện đơn hàng của bên thứ ba.
Lớp học lập trình này đề cập đến các khái niệm ở cấp độ trung cấp để phát triển bằng Trợ lý Google và dựa trên Hành động được tạo trong lớp học lập trình Cấp 1. Bạn nên hoàn thành lớp học lập trình Cấp 1 trước khi bắt đầu lớp học lập trình này.
Hành động mà bạn tạo trong lớp học lập trình này sẽ cho người dùng biết vận mệnh của họ trong cuộc phiêu lưu ở vùng đất thần thoại Gryffinberg, dựa trên sự trợ giúp mà họ chọn.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ tạo một Thao tác đàm thoại phức tạp với các chức năng sau:
- Thu thập dữ liệu từ người dùng và sửa đổi lời nhắc trò chuyện tuỳ theo giá trị
- Đưa ra các câu hỏi tiếp theo để tiếp tục cuộc trò chuyện
- Tạo một vòng lặp trò chơi để người dùng có thể tương tác lại với Thao tác sau khi nhận được lời tiên tri
Trước khi bắt đầu tạo, bạn có thể tương tác với Hành động đang hoạt động trên thiết bị có Trợ lý Google bằng cách nói "Ok Google, nói chuyện với Fate and Fortune". Đường dẫn mặc định thông qua Thao tác này đối với người dùng cũ sẽ có dạng như sau:
Kiến thức bạn sẽ học được
- Cách sử dụng slot để thu thập dữ liệu từ người dùng
- Cách sử dụng điều kiện để thêm logic vào một cảnh
- Cách thêm một vòng lặp trò chơi
- Cách thêm đường hỗ trợ
Bạn cần có
Các điều kiện tiên quyết cho lớp học lập trình này bao gồm:
- Một trình duyệt web, chẳng hạn như Google Chrome
- Một dự án Hành động cấp 1 đã hoàn thành trong lớp học lập trình ( Tạo Hành động cho Trợ lý Google bằng Trình tạo hành động cấp 1)
Bạn nên làm quen với JavaScript (ES6) (mặc dù không bắt buộc) để hiểu mã thực hiện cho lớp học lập trình này.
2. Tiếp tục xây dựng giao diện trò chuyện
Trong lớp học lập trình đầu tiên, bạn đã tạo một Thao tác đàm thoại đơn giản với một cảnh duy nhất, Start
.
Trong lớp học lập trình này, bạn sẽ mở rộng cuộc trò chuyện của Thao tác. Trong các phần sau, bạn sẽ định cấu hình Thao tác để thực hiện những việc sau:
- Chuyển sang một cảnh
Fortune
mới khi người dùng muốn nghe lời tiên tri - Hỏi người dùng muốn chọn trợ lý nào cho hành trình của mình
- Đưa ra một câu nói tuỳ chỉnh dựa trên lựa chọn của người dùng
Tạo Fortune
cảnh
Trong phần này, bạn sẽ tạo cảnh Fortune
và xác định cách người dùng chuyển sang cảnh đó trong cuộc trò chuyện.
Để tạo một cảnh mới có tên là Fortune
, hãy làm theo các bước sau:
- Mở dự án Actions cấp 1 của lớp học lập trình.
- Nhấp vào Phát triển trong thanh điều hướng.
- Trong phần Cảnh, hãy nhấp vào cảnh Bắt đầu.
- Nhấp vào ý định yes (hộp Khi có kết quả trùng khớp với yes) để mở các lựa chọn.
- Xoá Gửi câu lệnh để xoá câu lệnh.
- Trong phần Chuyển cảnh, hãy nhấp vào trình đơn thả xuống, nhấp vào hộp văn bản rồi nhập
Fortune
. - Nhấp vào Thêm. Thao tác này sẽ tạo một cảnh mới có tên là
Fortune
. Thao tác này cũng thêm một hiệu ứng chuyển đổi từ cảnhStart
sang cảnhFortune
khi người dùng muốn nghe lời tiên đoán.
Xác định logic trò chuyện cho cảnh Fortune
Trong lớp học lập trình này, bạn sẽ định cấu hình cảnh Fortune
để hỏi người dùng: "Bạn chọn gì để giúp bạn trong hành trình của mình, một con rồng, một người phiên dịch hay một chiếc la bàn?" Bạn có thể sử dụng một tính năng gọi là điền khe cắm để thu thập thông tin cần thiết từ người dùng trước khi tiếp tục.
Thao tác của bạn cung cấp thông tin dự đoán cho 3 trợ lý: rồng, người dịch và la bàn. Để định cấu hình Thao tác nhằm xác định 3 lựa chọn này trong thông tin đầu vào của người dùng, bạn phải tạo một loại mới.
Bạn có thể sử dụng các loại trong giai đoạn điền thông tin vào ô của một cảnh để xác định thông tin bạn muốn lấy từ người dùng. Khi phát hiện thấy một kết quả khớp khe trong dữ liệu đầu vào của người dùng, công cụ NLU sẽ trích xuất khe đó dưới dạng một tham số được nhập, nhờ đó bạn có thể thực hiện logic với khe đó trong một cảnh.
Tạo kiểu available_options
Trong phần này, bạn sẽ tạo một loại mới có tên là available_options
. Loại này chỉ định 3 lựa chọn mà người dùng có thể chọn (rồng, người dịch và la bàn) để phản hồi câu lệnh. Bạn cũng xác định một vài từ đồng nghĩa cho các lựa chọn này trong trường hợp người dùng nói điều gì đó tương tự. Trong một phần sau, bạn sẽ thêm loại available_options
vào một vị trí để chỉ định rằng bạn muốn nhận được lựa chọn của người dùng.
Để tạo loại available_options
, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Loại.
- Nhấp vào + (dấu cộng), nhập
available_options
rồi nhấnEnter
. - Nhấp vào biểu tượng
available_options
để mở các lựa chọn.
Các loại được định cấu hình dưới dạng các cặp khoá-giá trị thông tin, trong đó khoá là tên của loại và giá trị là từ đồng nghĩa cho khoá đó. Khi bạn xác định khoá, khoá đó sẽ tự động được thêm dưới dạng một giá trị.
Để thêm 3 lựa chọn mà người dùng có thể chọn, hãy làm theo các bước sau:
- Di chuyển đến phần Thêm mục.
- Trong trường New entry (Mục mới), hãy nhập
dragon
rồi nhấnEnter
. Thao tác này sẽ tạo một khoádragon
. - Nhập
hydra
vào trường Thêm giá trị rồi nhấnEnter
để thêm giá trị này làm giá trị (từ đồng nghĩa). Sau đó, hãy lặp lại bước này cho giá trịlizard
. - Thêm các khoá còn lại và giá trị tương ứng:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
,guide
- Nhấp vào Lưu.
Giờ đây, Thao tác của bạn hiểu rằng available_options
là rồng, người dịch và la bàn, đồng thời cũng có thể nhận ra một số từ đồng nghĩa tương ứng.
Định cấu hình tính năng điền ô
Tiếp theo, bạn cần định cấu hình tính năng điền thông tin vào ô trong cảnh Fortune
. Để định cấu hình logic điền khe, hãy làm theo các bước sau:
- Trong thanh điều hướng, bên dưới Cảnh, hãy nhấp vào Fortune (Tiên tri).
- Trong cảnh
Fortune
, hãy nhấp vào + (dấu cộng) để Điền vào ô. - Trong trường Nhập tên vị trí, hãy thêm
chosenOptions
làm tên vị trí. - Trong danh sách thả xuống Chọn loại, hãy chọn
available_options
làm loại vị trí. - Chọn hộp đánh dấu Đây là vị trí bắt buộc.
- Chọn Gửi câu lệnh, rồi thêm thông báo và các nút đề xuất sau:
candidates:
- first_simple:
variants:
- speech: >-
What do you choose to help you on your quest, a dragon, a
translator, or a compass?
suggestions:
- title: 'Dragon'
- title: 'Translator'
- title: 'Compass'
- Nhấp vào Lưu.
Giờ đây, bạn đã thêm loại available_options
vào vị trí. Loại này cho biết Thông tin bạn cần thu thập từ người dùng (lựa chọn của họ về thiết bị trợ thính) trước khi tiếp tục. Bạn cũng đã định cấu hình một lời nhắc trong khe cắm. Lời nhắc này sẽ được thêm vào hàng đợi lời nhắc khi người dùng chuyển đến giai đoạn điền khe cắm của cảnh.
Xin lưu ý rằng khi bạn đặt tên cho vùng chosenOptions
, trường Tuỳ chỉnh tính năng ghi lại giá trị vùng sẽ được cập nhật bằng cùng tên ($session.params.chosenOptions
). Bạn có thể truy cập vào tham số này theo tên đó trong Actions Builder và trong quá trình thực hiện thông qua thư viện ứng dụng.
Định cấu hình điều kiện scene.slots.status == "FINAL"
Khi bạn thêm một vị trí, điều kiện scene.slots.status == "FINAL"
sẽ tự động được thêm vào danh sách điều kiện.
Điều kiện scene.slots.status == "FINAL"
kiểm tra xem quá trình điền thông tin vào ô đã hoàn tất hay chưa. Khi tất cả các vị trí đều được điền, điều kiện này có thể kích hoạt một webhook, chuyển sang một cảnh mới hoặc thêm câu lệnh vào hàng đợi câu lệnh.
Trong phần này, bạn sẽ định cấu hình scene.slots.status == "FINAL"
để thêm một câu lệnh vào hàng đợi câu lệnh sau khi các vị trí được điền.
Để thêm câu lệnh này vào điều kiện FINAL
, hãy làm theo các bước sau:
- Nhấp vào biểu tượng
scene.slots.status == "FINAL"
để mở cửa sổ lựa chọn. - Chọn Gửi câu lệnh rồi thêm câu lệnh sau:
candidates:
- first_simple:
variants:
- speech: You picked $session.params.chosenOptions.
- Nhấp vào Lưu.
Kiểm thử Hành động trong trình mô phỏng
Đến đây, bạn đã xác định những lựa chọn mà người dùng nên chọn để điền vào vị trí. Sau khi thu thập thông tin này từ người dùng, Thao tác của bạn phải đưa ra một lời nhắc đề cập đến lựa chọn cụ thể mà họ đã chọn.
Để kiểm thử Thao tác, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhấp hoặc nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. (Hoặc bạn có thể nhấp vào nút đề xuất Có.)
- Nhấp, nhập hoặc nói
dragon
. Bạn sẽ nhận được lời nhắc "Bạn đã chọn rồng".
Trong phần tiếp theo, bạn sẽ tuỳ chỉnh câu lệnh cho từng trợ lý mà người dùng có thể chọn.
Tuỳ chỉnh câu lệnh bằng cách sử dụng điều kiện
Trong phần này, bạn sẽ thêm các điều kiện cho từng lựa chọn mà người dùng có thể chọn và thêm một lời nhắc tuỳ chỉnh cho từng điều kiện.
Tuỳ chỉnh câu dragon
Để cập nhật điều kiện và tuỳ chỉnh lời nhắc khi người dùng chọn "rồng", hãy làm theo các bước sau:
- Nhấp vào Phát triển trong thanh điều hướng.
- Trong thanh điều hướng, hãy nhấp vào cảnh Fortune (Vận may).
- Nhấp vào biểu tượng
scene.slots.status == "FINAL"
để mở cửa sổ lựa chọn. - Cập nhật câu điều kiện thành:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- Chọn Gửi câu lệnh.
- Cập nhật câu lệnh bằng câu nói sau đây trong trình chỉnh sửa mã:
candidates:
- first_simple:
variants:
- speech: >-
The people of Gryffinberg will be awestruck by the beauty and power
of the ancient dragon. Much to your dismay, the townspeople fall
into dispute over who will receive the honor of riding the dragon
first. You return home from your quest without everlasting glory or
a dragon.
- Nhấp vào Lưu.
Giờ đây, khi người dùng nói "rồng" hoặc một từ nào đó nghe tương tự, Hành động của bạn sẽ đưa ra một câu nói dựa trên lựa chọn đó. Tiếp theo, bạn thêm 2 lựa chọn còn lại.
Tuỳ chỉnh câu translator
Để thêm điều kiện và tuỳ chỉnh lời nhắc khi người dùng chọn "trình dịch", hãy làm theo các bước sau:
- Nhấp vào + (dấu cộng) bên cạnh Điều kiện.
- Thêm
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
vào trường else if. - Chọn Gửi câu lệnh.
- Thêm câu lệnh sau vào trình chỉnh sửa mã:
candidates:
- first_simple:
variants:
- speech: >-
With the help of the translator, the rival factions in Gryffinberg
are finally able to communicate with each other and resolve their
disputes. You will complete your quest to restore peace in the town.
The translator will be used on many subsequent journeys across the
earth. After its work is done, it retires honorably to a premier
location in the Gryffinberg History Museum.
- Nhấp vào Lưu.
Tuỳ chỉnh câu compass
Để thêm điều kiện và tuỳ chỉnh lời nhắc khi người dùng chọn "la bàn", hãy làm theo các bước sau:
- Nhấp vào + (dấu cộng) bên cạnh Điều kiện.
- Thêm
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
vào hộp văn bản else if. - Chọn Gửi câu lệnh.
- Thêm câu lệnh sau vào trình chỉnh sửa mã:
candidates:
- first_simple:
variants:
- speech: >-
The compass will help you find the mystical and ancient Library of
Gryffinberg. Among its infinite stacks of dusty books, you find one
entitled "Wisdom of the Ages". By the time you've read the
50,000-page tome, the townspeople have forgotten their problems. You
will write a second edition of "Wisdom of the Ages", but have
limited commercial success.
- Nhấp vào Lưu.
Kiểm thử Hành động trong trình mô phỏng
Tại thời điểm này, Thao tác của bạn sẽ cung cấp một câu nói tuỳ chỉnh cho người dùng dựa trên lựa chọn mà họ chọn.
Để kiểm thử Thao tác, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. Hoặc nhấp vào nút đề xuất Có. - Nhấp, nhập hoặc nói
Translator
.
Bạn sẽ nhận được câu nói phù hợp cho lựa chọn "người dịch".
3. Thêm vòng lặp trò chơi
Trong phần này, bạn sẽ định cấu hình Hành động để người dùng có thể chọn một lựa chọn khác và nghe một câu nói khác sau khi chọn. Thay đổi này tương tự như thông báo "Bạn có muốn chơi lại không?" ở cuối trò chơi. Để tạo vòng lặp này, bạn có thể dùng lại các ý định yes
và no
đã tạo trước đó, rồi thêm chúng vào một cảnh mới có tên là Again
.
Tạo Again
cảnh
Trong phần này, bạn sẽ tạo một cảnh Again
mới và thêm một câu lệnh hỏi người dùng xem họ có muốn chọn một lựa chọn khác hay không.
Để tạo cảnh Again
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong thanh điều hướng.
- Nhấp vào biểu tượng + (dấu cộng) trong phần Cảnh.
- Nhập
Again
rồi nhấnEnter
. - Nhấp vào cảnh
Again
trong thanh điều hướng. - Nhấp vào biểu tượng + (dấu cộng) bên cạnh Khi nhấn phím Enter.
- Chọn Gửi câu lệnh, rồi thêm câu lệnh và các nút đề xuất sau:
candidates:
- first_simple:
variants:
- speech: >-
That is what I see for you. Would you like to choose a different option and
explore another future?
suggestions:
- title: 'Yes'
- title: 'No'
- Nhấp vào Lưu.
Thêm hiệu ứng chuyển cảnh từ cảnh Fortune
sang cảnh Again
Sau khi người dùng nhận được lời tiên tri, cuộc trò chuyện cần chuyển sang cảnh Again
mới.
Để thêm hiệu ứng chuyển cảnh từ cảnh Fortune
sang cảnh Again
, hãy làm theo các bước sau:
- Nhấp vào cảnh Fortune (Vận may).
- Nhấp vào điều kiện đầu tiên (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
) để mở cửa sổ lựa chọn. - Di chuyển rồi chọn biểu tượng
Again
trong phần Chuyển cảnh. - Nhấp vào Lưu.
- Nhấp vào điều kiện thứ hai để mở cửa sổ lựa chọn.
- Di chuyển rồi chọn biểu tượng
Again
trong phần Chuyển cảnh. - Nhấp vào Lưu.
- Nhấp vào điều kiện thứ ba để mở cửa sổ lựa chọn.
- Di chuyển rồi chọn biểu tượng
Again
trong phần Chuyển cảnh. - Nhấp vào Lưu.
Kiểm thử Hành động trong trình mô phỏng
Tại thời điểm này, Thao tác của bạn phải đưa ra lời nhắc sau đây cho người dùng sau khi họ nhận được lời tiên tri: "Đó là những gì tôi thấy về bạn. Bạn có muốn chọn một lựa chọn khác và khám phá một tương lai khác không?"
Để kiểm thử Thao tác, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. Hoặc nhấp vào nút đề xuất Có. - Nhấp, nhập hoặc nói
dragon
.
Bạn sẽ nhận được câu nói may mắn cho lựa chọn rồng và lời nhắc Again
.
Thêm ý định và chuyển sang cảnh Again
Trong phần này, bạn sẽ thêm các ý định yes
và no
vào cảnh Again
để Thao tác của bạn hiểu được liệu người dùng có muốn chọn một lựa chọn mới hay không. Bạn cũng thêm các hiệu ứng chuyển đổi phù hợp cho các ý định yes
và no
. Ý định yes
chuyển sang cảnh Fortune
, trong khi ý định no
chuyển sang cảnh hệ thống End conversation
.
Để thêm ý định và hiệu ứng chuyển cảnh vào cảnh Again
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong thanh điều hướng.
- Nhấp vào cảnh
Again
. - Nhấp vào biểu tượng + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
- Chọn có trong trình đơn thả xuống về ý định.
- Chọn
Fortune
trong trình đơn thả xuống Chuyển cảnh. - Nhấp vào Lưu.
- Nhấp vào biểu tượng + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
- Chọn không trong trình đơn thả xuống về ý định.
- Chọn Kết thúc cuộc trò chuyện trong trình đơn thả xuống Chuyển đổi.
- Chọn Gửi câu lệnh rồi thêm câu lệnh sau vào trình chỉnh sửa mã:
candidates:
- first_simple:
variants:
- speech: >-
It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- Nhấp vào Lưu.
Kiểm thử Hành động trong trình mô phỏng
Giờ đây, Thao tác của bạn sẽ hiểu được liệu người dùng muốn chọn một lựa chọn mới hay kết thúc cuộc trò chuyện.
Để kiểm thử ý định yes
, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. Hoặc nhấp vào nút đề xuất Có. - Nhấp, nhập hoặc nói một trong các lựa chọn.
- Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
.
Bạn sẽ nhận được lời nhắc "Bạn chọn gì để giúp bạn trên hành trình của mình: một con rồng, một người phiên dịch hay một la bàn?"
Để kiểm thử ý định no
, hãy làm theo các bước sau:
- Nhấp, nhập hoặc nói một trong các lựa chọn.
- Nhập
No
vào trường nhập rồi nhấnEnter
.
Bạn sẽ nhận được lời nhắc End conversation
: "Tôi rất vui khi bạn hài lòng với lựa chọn của mình. Chúc bạn may mắn trên hành trình này. Tạm biệt."
4. Thêm đường hỗ trợ
Giờ đây, bạn đã tạo được lộ trình chính mà hầu hết người dùng thực hiện trong Thao tác của bạn. Tuy nhiên, người dùng có thể phản hồi câu lệnh trong cảnh Fortune
"Bạn chọn gì để giúp bạn trên hành trình của mình: một con rồng, một người phiên dịch hay một chiếc la bàn?" bằng một lựa chọn không có trong số các lựa chọn được cung cấp.
Trong phần này, bạn sẽ định cấu hình Hành động để hiểu khi nào người dùng chọn "phép thuật", "tiền", "ngựa" hoặc "điện thoại" và nhắc người dùng chọn một trong ba lựa chọn ban đầu khi họ chọn một trong những lựa chọn này. Để định cấu hình logic này, bạn cần tạo một type
mới chứa các lựa chọn khác này và một ý định mới, other_option
, được so khớp khi người dùng nói một trong các lựa chọn này. Bạn cũng cần chú thích các cụm từ huấn luyện trong ý định other_option
để xác định và trích xuất các tham số ý định.
Khi công cụ xử lý ngôn ngữ tự nhiên (NLU) của Trợ lý phát hiện một tham số khớp trong dữ liệu đầu vào của người dùng, công cụ này sẽ trích xuất giá trị dưới dạng một tham số được nhập để bạn có thể thực hiện logic với tham số đó trong một cảnh. Trong lớp học lập trình này, bạn sẽ định cấu hình Thao tác để trích xuất thông tin trợ giúp mà người dùng chọn và tham khảo lựa chọn đó trong một lời nhắc.
Tạo kiểu unavailable_options
Giờ đây, bạn có thể tạo một loại unavailable_options
chứa nhiều lựa chọn khác nhau để Thao tác của bạn có thể xác định dữ liệu đó trong thông tin đầu vào của người dùng.
Để tạo loại unavailable_options
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong thanh điều hướng.
- Nhấp vào biểu tượng + (dấu cộng) trong phần Loại.
- Nhập
unavailable_options
rồi nhấnEnter
. - Nhấp vào biểu tượng
unavailable_options
để mở các lựa chọn. - Nhập các mục sau và giá trị tương ứng trong phần Thêm mục:
|
|
|
|
|
|
|
|
Bảng khoá-giá trị của bạn sẽ có dạng như sau:
- Nhấp vào Lưu.
Tạo other_option
ý định
Tiếp theo, bạn tạo một ý định có tên là other_option
và thêm các cụm từ huấn luyện bao gồm các lựa chọn trong loại unavailable_options
. Ý định này sẽ được so khớp khi người dùng chọn một lựa chọn có trong loại unavailable_options
.
Để tạo và định cấu hình ý định other_option
, hãy làm theo các bước sau:
- Nhấp vào biểu tượng + (dấu cộng) trong mục Đối tượng có mục đích tuỳ chỉnh.
- Nhập
other_option
rồi nhấnEnter
. - Nhấp vào biểu tượng
other_option
để mở cửa sổ. - Thêm các cụm từ huấn luyện sau đây và nhấn
Enter
sau mỗi cụm từ:
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- Trong mục Thêm thông số về ý định, hãy cập nhật tên thông số thành
chosenUnavailableOption
. - Nhấp vào Lưu.
Khi bạn nhập các cụm từ huấn luyện, Actions Builder sẽ nhận dạng spells
, phone
, magic
, cash
và horse
từ loại unavailable_options
, đồng thời tự động làm nổi bật (chú thích) những từ đó. Trình tạo hành động sẽ tự động thêm một tham số ý định trong mục Thêm tham số ý định, như minh hoạ trong hình ảnh sau.
Tham số ý định cho phép bạn trích xuất tên của lựa chọn và sử dụng lựa chọn đó trong một câu lệnh.
Thêm ý định other_option
vào cảnh Fortune
Giờ đây, bạn đã có một ý định, other_option
, có thể xử lý trường hợp người dùng chỉ định một lựa chọn không phải là một trong các lựa chọn ban đầu. Trong phần này, bạn sẽ thêm ý định other_option
vào cảnh Fortune
. Bạn sử dụng tham số ý định để tuỳ chỉnh câu lệnh dựa trên thông tin đầu vào của người dùng.
Để thêm ý định other_option
vào cảnh Fortune
, hãy làm theo các bước sau:
- Nhấp vào cảnh Fortune (Vận may).
- Nhấp vào biểu tượng + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
- Chọn
other_option
trong trình đơn thả xuống về ý định. - Chọn Gửi câu lệnh rồi thêm câu lệnh sau:
candidates:
- first_simple:
variants:
- speech: >-
I have seen the future and a $intent.params.chosenUnavailableOption.original
will not aid you on your journey.
Biểu thức $intent.params.chosenUnavailableOption
đề cập đến đối tượng tham số ý định và $intent.params.chosenUnavailableOption.original
đề cập đến giá trị của đối tượng đó. original property
đề cập đến dữ liệu đầu vào thô mà người dùng chỉ định.
- Nhấp vào Lưu.
Khi người dùng nói một lựa chọn có trong loại unavailable_options
trong cảnh Fortune
, ý định other_option
sẽ được so khớp và thêm một câu lệnh vào hàng đợi câu lệnh. Vì không có hiệu ứng chuyển đổi nào được chỉ định, nên vòng lặp thực thi cảnh sẽ tiếp tục bằng cách đánh giá lại giai đoạn điều kiện. Sau đó, khe chosenOptions
sẽ thêm lời nhắc của mình vào hàng đợi lời nhắc và hàng đợi lời nhắc sẽ được gửi đến người dùng.
Kiểm thử Hành động trong trình mô phỏng
Giờ đây, Thao tác của bạn sẽ phản hồi một cách thích hợp khi người dùng chọn một trong các lựa chọn được liệt kê trong loại unavailable_options
và chỉ định trợ lý mà người dùng đã chọn. Sau đó, Thao tác của bạn sẽ nhắc người dùng chọn một trong các lựa chọn ban đầu (rồng, người dịch hoặc la bàn).
Để kiểm thử Thao tác trong trình mô phỏng, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. Hoặc nhấp vào nút đề xuất Có. - Nhập
magic
vào trường Đầu vào rồi nhấnEnter
.
Bạn có thể nhận thấy lời nhắc không chính xác khi người dùng chọn "magic" vì có mạo từ "a" đứng trước. Bạn sẽ giải quyết vấn đề này trong các phần sau.
Thêm trình xử lý unavailable_options
Để đặt mạo từ "a" trước các lựa chọn thích hợp trong loại unavailable_options
, bạn có thể định cấu hình một trình xử lý sự kiện trong logic thực hiện để kiểm tra xem lựa chọn mà người dùng chọn có cần mạo từ "a" trước đó hay không. Trước tiên, bạn cần định cấu hình Thao tác để gọi trình xử lý trong bảng điều khiển.
Để thêm trình xử lý unavailable_options
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong thanh điều hướng.
- Nhấp vào cảnh
Fortune
. - Trong phần Xử lý ý định của người dùng, hãy nhấp vào Khi other_option được so khớp để mở cửa sổ.
- Bỏ đánh dấu hộp Gửi câu lệnh.
- Chọn hộp đánh dấu Gọi webhook của bạn.
- Nhập
unavailable_options
vào hộp văn bản cho trình xử lý sự kiện.
- Nhấp vào Lưu.
Cập nhật và triển khai dịch vụ thực hiện đơn hàng
Giờ đây, sau khi định cấu hình Thao tác để gọi trình xử lý sự kiện unavailable_options
, bạn có thể cập nhật trình xử lý này trong quá trình thực hiện và triển khai.
Để cập nhật thông tin thực hiện đơn hàng, hãy làm theo các bước sau:
- Nhấp vào Webhook trong thanh điều hướng.
- Thêm mã sau vào trình xử lý
greeting
:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
- Thêm mã sau vào
const app = conversation();
:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Nhấp vào Lưu thông tin thực hiện đơn hàng.
- Nhấp vào Triển khai tính năng thực hiện đơn hàng. Khi quá trình triển khai hoàn tất, một thông báo sẽ xuất hiện phía trên trình chỉnh sửa của bạn: Việc triển khai Hàm trên đám mây của bạn đã được cập nhật.
Tìm hiểu về mã
Trình xử lý unavailable_options
sẽ thực hiện những việc sau:
- Lấy dữ liệu
option
từ đối tượngconv
và chỉ địnhoption
cho thuộc tínhoriginal
. Đây là dữ liệu đầu vào thô của người dùng - Chỉ định
optionKey
cho thuộc tínhresolved
, đây là khoá cho loạiunavailable_options
- Kiểm tra xem
optionKey
có phải là một trong những lựa chọn cần có "a" hay không; nếu có, hãy tạo thông báo có thêm "a" - Thêm tin nhắn qua
conv.add(message)
Kiểm thử Hành động trong trình mô phỏng
Giờ đây, Thao tác của bạn sẽ điều chỉnh câu lệnh dựa trên việc lựa chọn của người dùng từ loại unavailable_options
có yêu cầu một bài viết "a" trước đó hay không.
Để kiểm thử Thao tác, hãy làm theo các bước sau:
- Trong thanh điều hướng, hãy nhấp vào Kiểm thử.
- Nhấp hoặc nhập
Talk to my test app
vào trường Đầu vào rồi nhấnEnter
. - Nhập
Yes
vào trường Đầu vào rồi nhấnEnter
. Hoặc nhấp vào nút đề xuất Có. - Nhập
magic
vào trường Đầu vào rồi nhấnEnter
. - Nhập
horse
vào trường Đầu vào rồi nhấnEnter
.
Thao tác của bạn nên thêm mạo từ "a" trước lựa chọn "horse", đồng thời tạo câu lệnh mà không có mạo từ "a" cho lựa chọn "magic".
Dọn dẹp dự án của bạn [nên dùng]
Để tránh bị tính phí không cần thiết, bạn nên xoá những dự án mà bạn không có ý định sử dụng. Để xoá các dự án mà bạn đã tạo trong lớp học lập trình này, hãy làm theo các bước sau:
- Để xoá Dự án trên đám mây và tài nguyên, hãy hoàn thành các bước được liệt kê trong phần Tắt (xoá) dự án.
- Không bắt buộc: Để xoá ngay dự án của bạn khỏi Actions Console, hãy xem phần Xoá dự án. Nếu bạn không hoàn tất bước này, dự án của bạn sẽ tự động bị xoá sau khoảng 30 ngày.
5. Xin chúc mừng!
Giờ đây, bạn đã nắm được các kỹ năng bậc trung cần thiết để tạo Hành động cho Trợ lý Google.
Nội dung bạn đã đề cập
- Cách phát triển Thao tác trò chuyện bằng thư viện thực hiện Node.js
- Cách sử dụng các vị trí để thu thập dữ liệu từ người dùng
- Cách sử dụng điều kiện để thêm logic vào cảnh
- Cách thêm một vòng lặp trò chơi
- Cách thêm đường hỗ trợ
Tìm hiểu thêm
Hãy khám phá các tài nguyên sau để tìm hiểu thêm về cách tạo Hành động cho Trợ lý Google:
- Tài liệu để phát triển Hành động cho Trợ lý Google
- Trang GitHub của Actions on Google để xem mã mẫu và thư viện
- Cộng đồng Reddit chính thức dành cho các nhà phát triển làm việc với Trợ lý Google
- Nguyên tắc thiết kế cuộc trò chuyện để biết các phương pháp hay nhất và nguyên tắc liên quan đến Thao tác đàm thoại
Theo dõi @ActionsOnGoogle trên Twitter để nắm bắt những thông báo mới nhất của chúng tôi và đăng bài kèm thẻ hashtag #AoGDevs để chia sẻ những gì bạn đã tạo!
Bài khảo sát nhận ý kiến phản hồi
Trước khi rời đi, vui lòng điền vào một bản khảo sát ngắn về trải nghiệm của bạn.