Xây dựng các Hành động cho Trợ lý Google bằng cách sử dụng Trình tạo hành động (Cấp 2)

1. Tổng quan

Nền tảng 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, trợ lý cá nhân ảo trên hơn 1 tỷ thiết bị, bao gồm loa thông minh, điện thoại, ô tô, TV, tai nghe và hơn thế nữa. Người dùng tương tác với Trợ lý trong cuộc trò chuyện để hoàn thành công việc, chẳng hạn như mua hàng tạp hóa 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 Trợ lý để dễ dàng tạo và quản lý trải nghiệm trò chuyện thú vị và hiệu quả giữa người dùng và dịch vụ thực hiện bên thứ ba của riêng bạn.

Lớp học lập trình này đề cập đến các khái niệm cấp trung gian để phát triển thông qua Trợ lý Google và xây dựng 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 chương trình này.

Hành động bạn xây dựng trong lớp học lập trình này sẽ cho người dùng biết may mắn của họ vì sứ mệnh của họ ở 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 xây dựng Hành động trò chuyện tinh vi 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 tùy thuộc vào giá trị đó
  • Trả lời các câu hỏi để tiếp tục trò chuyện
  • Tạo vòng lặp trò chơi để người dùng có thể tương tác lại với Hành động sau khi nhận được may mắn

Trước khi bắt đầu xây dựng, bạn có thể tương tác với Hành động trực tiếp trên thiết bị có Trợ lý Google bằng cách nói "Ok Google, nói chuyện với Fate và Fortune". Đường dẫn mặc định thông qua Hành động này cho người dùng cũ sẽ trông giống như lượt tương tác sau:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

Kiến thức bạn sẽ học được

  • Cách sử dụng vùng quảng cáo để 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 vòng lặp trò chơi
  • Cách thêm đường dẫn hỗ trợ

Bạn cần có

Các điều kiện tiên quyết đối với lớp học lập trình này bao gồm:

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 yêu cầu 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 Hành động trò chuyện đơn giản với một cảnh duy nhất là Start.

Trong lớp học lập trình này, bạn mở rộng cuộc trò chuyện của Hành động. Trong các phần sau, bạn định cấu hình Hành động của mình để thực hiện những việc sau:

  • Chuyển sang cảnh Fortune mới khi người dùng muốn nghe may mắn của mình
  • Hỏi người dùng hỗ trợ họ muốn chọn cho hành trình của mình
  • Phân phối vận may tùy chỉnh dựa trên lựa chọn của người dùng

Tạo cảnh trên Fortune

Trong phần này, bạn tạo cảnh Fortune và xác định cách người dùng chuyển sang cảnh đó trong khi trò chuyện.

Để tạo cảnh mới có tên là Fortune, hãy làm theo các bước sau:

  1. Mở dự án Hành động cấp 1 trong lớp học lập trình của bạn.
  2. Nhấp vào Phát triển trong thanh điều hướng.
  3. Trong mục Scenes, hãy nhấp vào cảnh Start (Bắt đầu).
  4. Nhấp vào ý định (hộp Khi có kết quả phù hợp) để mở các tùy chọn.
  5. Xóa Gửi lời nhắc để xóa lời nhắc.
  6. Trong phần Chuyển tiếp, 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.
  7. 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 tiếp từ cảnh Start sang cảnh Fortune khi người dùng muốn nghe may mắn của mình.

56682a0c7459b98c.png

Xác định logic trò chuyện cho cảnh Fortune

Trong lớp học lập trình này, bạn định cấu hình cảnh Fortune để yêu cầu người dùng và "Bạn chọn cách nào để giúp bạn thực hiện nhiệm vụ, rồng, biên dịch viên hoặc la bàn{5}quot; Bạn có thể sử dụng chức năng có tên là lấp đầy vùng để thu thập thông tin cần thiết từ người dùng trước khi tiếp tục.

Hành động của bạn mang lại may mắn cho ba người hỗ trợ: rồng, người dịch và la bàn. Để định cấu hình Hành động của bạn để xác định ba tùy chọn này trong dữ liệu đầ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 lấp đầy vùng của cảnh để xác định thông tin bạn muốn từ người dùng. Khi phát hiện thấy một kết quả phù hợp trong nội dung do người dùng nhập, công cụ NLU trích xuất vị trí đó dưới dạng một thông số đã nhập. Nhờ đó, bạn có thể thực hiện logic đó trong một cảnh.

Tạo loại available_options

Trong phần này, bạn tạo một loại mới có tên là available_options, loại này chỉ định ba tùy chọn mà người dùng có thể chọn (dragon, trình dịch và la bàn) để phản hồi lời nhắc. Bạn cũng xác định một vài từ đồng nghĩa cho các tùy chọn này trong trường hợp người dùng nói điều gì đó tương tự. Trong phần sau, bạn thêm loại available_options vào một vị trí để chỉ định rằng bạn muốn người dùng chọn.

Để tạo loại available_options, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Loại.
  2. Nhấp vào dấu + (dấu cộng), nhập available_options rồi nhấn Enter.
  3. Nhấp vào biểu tượng available_options để mở các tùy chọn.

Các loại được định cấu hình dưới dạng các cặp thông tin-khóa, trong đó khóa là tên của loại và giá trị là từ đồng nghĩa cho khóa đó. Khi bạn xác định khóa, khóa sẽ tự động được thêm dưới dạng giá trị.

Để thêm ba tùy chọn mà người dùng có thể chọn, hãy làm theo các bước sau:

  1. Cuộn đến phần Thêm mục nhập.
  2. Trong trường Mục mới, hãy nhập dragon rồi nhấn Enter. Thao tác này sẽ tạo một phím dragon.
  3. Nhập hydra vào trường Thêm giá trị rồi nhấn Enter để thêm giá trị đó dưới dạng một giá trị (từ đồng nghĩa). Sau đó, hãy lặp lại bước này cho giá trị lizard.
  4. Thêm phần còn lại của khóa và giá trị tương ứng:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. Nhấp vào Lưu.

Hành động của bạn hiện hiểu rằng available_options là rồng, máy biên 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 lấp đầy vùng

Tiếp theo, bạn cần định cấu hình lấp đầy vị trí trong cảnh Fortune. Để định cấu hình logic lấp đầy vùng, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, ở mục Scenes, hãy nhấp vào Fortune.
  2. Trong cảnh Fortune, hãy nhấp vào dấu + (dấu cộng) để điền vị trí.
  3. Trong trường Nhập tên vùng, hãy thêm chosenOptions làm tên vùng.
  4. Trong danh sách thả xuống Chọn loại, hãy chọn available_options làm loại vị trí.
  5. Chọn hộp đánh dấu Mục này là bắt buộc.

a461b906476e244.png

  1. Chọn Gửi lời nhắc và thêm các tin nhắn và khối đề 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'
  1. Nhấp vào Lưu.

Bây giờ, bạn đã thêm loại available_options vào vùng đó để cho Hành động của bạn biết thông tin mà bạn cần thu thập từ người dùng (lựa chọn hỗ trợ của họ) trước khi tiếp tục. Bạn cũng đã định cấu hình lời nhắc trong vị trí, lời nhắc này sẽ được thêm vào hàng đợi lời nhắc khi người dùng đến giai đoạn lấp đầy vị trí.

Xin lưu ý rằng khi bạn đặt tên cho vùng chosenOptions, trường Tùy chỉnh phần ghi đè giá trị vùng được cập nhật với cùng tên ($session.params.chosenOptions). Bạn có thể truy cập vào tham số này theo tên đó trong Trình tạo hành động và trong thực hiện quảng cáo 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í, tình trạng 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 để hoàn thành việc lấp đầy vị trí. Khi tất cả các vị trí đã được lấp đầy, điều kiện này có thể kích hoạt webhook, chuyển đổi sang cảnh mới hoặc thêm lời nhắc vào hàng đợi lời nhắc.

Trong phần này, bạn định cấu hình scene.slots.status == "FINAL" để thêm lời nhắc vào hàng đợi lời nhắc sau khi lấp đầy các vị trí đó.

Để thêm lời nhắc này vào điều kiện FINAL, bạn hãy làm theo các bước sau:

  1. Nhấp vào biểu tượng scene.slots.status == "FINAL" để mở cửa sổ tùy chọn.
  2. Chọn Gửi lời nhắc và thêm lời nhắc sau:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. Nhấp vào Lưu.

Thử nghiệm Hành động của bạn trong trình mô phỏng

Tại thời điểm này, bạn đã xác định các tùy chọn mà người dùng nên chọn để lấp đầy vùng. Sau khi nhận được thông tin này từ người dùng, Hành động của bạn phải cung cấp lời nhắc tham chiếu đến tùy chọn cụ thể mà họ chọn.

Để kiểm tra Hành động của bạn, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhấp hoặc nhập Talk to my test app trong trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. (Hoặc bạn có thể nhấp vào khối đề xuất .)

a899d45c542668f6.png

  1. Nhấp, nhập hoặc nói dragon. Bạn sẽ nhận được lời nhắc "Bạn đã chọn Dragon."

Trong phần tiếp theo, bạn có thể tùy chỉnh lời nhắc cho mỗi ứng dụng mà người dùng có thể chọn.

Tùy chỉnh lời nhắc bằng cách sử dụng các điều kiện

Trong phần này, bạn thêm điều kiện cho từng lựa chọn mà người dùng có thể chọn và thêm lời nhắc tuỳ chỉnh cho mỗi điều kiện.

Tuỳ chỉnh may mắn dragon

Để cập nhật điều kiện và tùy chỉnh lời nhắc khi người dùng chọn "dragon", hãy làm theo các bước sau:

  1. Nhấp vào Phát triển trong thanh điều hướng.
  2. Trong thanh điều hướng, hãy nhấp vào cảnh Điều chỉnh may.
  3. Nhấp vào biểu tượng scene.slots.status == "FINAL" để mở cửa sổ tùy chọn.
  4. Cập nhật câu lệnh điều kiện thành: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. Chọn Gửi lời nhắc.
  6. Trong trình soạn thảo mã, hãy cập nhật lời nhắc sau bằng 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.
  1. Nhấp vào Lưu.

d31767232ad908bd.png

Giờ đây, khi người dùng nói "dragon" hoặc điều gì đó nghe có vẻ tương tự, Hành động của bạn sẽ mang đến may mắn dựa trên lựa chọn đó. Tiếp theo, bạn thêm hai lựa chọn còn lại.

Tuỳ chỉnh may mắn translator

Để thêm điều kiện và điều chỉnh lời nhắc khi người dùng chọn "translate", hãy làm theo các bước sau:

  1. Nhấp vào dấu + (dấu cộng) bên cạnh Điều kiện.
  2. Thêm scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" vào trường else if.
  3. Chọn Gửi lời nhắc.
  4. Thêm lời nhắc sau vào trình soạn thảo 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.
  1. Nhấp vào Lưu.

c1af65e70dbf3dfe.png

Tuỳ chỉnh may mắn compass

Để thêm điều kiện và tùy chỉnh lời nhắc khi người dùng chọn "compass", hãy làm theo các bước sau:

  1. Nhấp vào dấu + (dấu cộng) bên cạnh Điều kiện.
  2. Thêm scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" vào hộp văn bản else if.
  3. Chọn Gửi lời nhắc.
  4. Thêm lời nhắc sau vào trình soạn thảo 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.
  1. Nhấp vào Lưu.

Thử nghiệm Hành động của bạn trong trình mô phỏng

Tại thời điểm này, Hành động của bạn sẽ cung cấp may mắn cho người dùng dựa trên tùy chọn mà họ chọn.

Để kiểm tra Hành động của bạn, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. Hoặc nhấp vào khối đề xuất .
  4. Nhấp, nhập hoặc nói Translator.

29e17f950bd0dd71.png

Bạn sẽ nhận được may mắn phù hợp với tùy chọn "translate".

3. Thêm vòng lặp trò chơi

Trong phần này, bạn thiết lập Hành động của mình để người dùng có thể chọn một tùy chọn khác và nghe một may mắn khác sau khi lựa chọn. Thay đổi này tương tự như thông báo "Bạn có muốn chơi lại{/8}quot; khi kết thúc trò chơi hay không. Để tạo vòng lặp này, bạn có thể sử dụng lại các ý định yesno đã tạo trước đó và thêm chúng vào một cảnh mới có tên là Again.

Tạo cảnh trên Again

Trong phần này, bạn tạo một cảnh Again mới và thêm lời nhắc hỏi người dùng xem họ có muốn chọn một tùy chọn khác hay không.

Để tạo cảnh Again, hãy làm theo các bước sau:

  1. Nhấp vào Phát triển trong thanh điều hướng.
  2. Nhấp vào dấu + (dấu cộng) trong mục Scenes.
  3. Nhập Again rồi nhấn Enter.
  4. Nhấp vào cảnh Again trong thanh điều hướng.
  5. Nhấp vào dấu + (dấu cộng) bên cạnh Khi nhập.
  6. Chọn Gửi lời nhắc và thêm các lời nhắc và khối đề 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'
  1. Nhấp vào Lưu.

Thêm hiệu ứng chuyển đổi từ Fortune sang Again cảnh

Sau khi người dùng nhận được may mắn, cuộc trò chuyện cần chuyển sang cảnh Again mới.

Để chuyển đổi từ cảnh Fortune sang cảnh Again, hãy làm theo các bước sau:

  1. Nhấp vào cảnh Fortune.
  2. Nhấp vào điều kiện đầu tiên (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") để mở cửa sổ tùy chọn.
  3. Di chuyển xuống rồi chọn Again trong mục Chuyển đổi.
  4. Nhấp vào Lưu.
  5. Nhấp vào điều kiện thứ hai để mở cửa sổ tùy chọn.
  6. Di chuyển xuống rồi chọn Again trong mục Chuyển đổi.
  7. Nhấp vào Lưu.
  8. Nhấp vào điều kiện thứ ba để mở cửa sổ tùy chọn.
  9. Di chuyển xuống rồi chọn Again trong mục Chuyển đổi.
  10. Nhấp vào Lưu.

Thử nghiệm Hành động của bạn trong trình mô phỏng

Tại thời điểm này, Hành động của bạn sẽ cung cấp lời nhắc sau cho người dùng sau khi họ nhận được may mắn: "Đó là những gì tôi nhìn thấy cho bạn. Bạn có muốn chọn một lựa chọn khác và khám phá một "hạn mức" khác trong tương lai không?

Để kiểm tra Hành động của bạn, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. Hoặc nhấp vào khối đề xuất .
  4. Nhấp, nhập hoặc nói dragon.

b299e9fed9aedb69.png

Bạn sẽ nhận được may mắn cho lựa chọn rồng và lời nhắc Again.

Thêm ý định và chuyển đổi sang cảnh Again

Trong phần này, bạn thêm ý định yesno vào cảnh Again để Hành động của bạn hiểu được người dùng có muốn chọn một lựa chọn mới hay không. Bạn cũng có thể thêm các chuyển đổi phù hợp cho ý định yesno. Ý định yes sẽ chuyển sang cảnh Fortune, trong khi ý định no sẽ chuyển sang cảnh hệ thống End conversation.

Để thêm ý định và chuyển đổi vào cảnh Again, hãy làm theo các bước sau:

  1. Nhấp vào Phát triển trong thanh điều hướng.
  2. Nhấp vào cảnh Again.
  3. Nhấp vào + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
  4. Chọn từ trình đơn thả xuống ý định.
  5. Chọn Fortune từ trình đơn thả xuống Chuyển tiếp.
  6. Nhấp vào Lưu.

c2efba35ea881b0d.png

  1. Nhấp vào + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
  2. Chọn không trong trình đơn thả xuống ý định.
  3. Chọn Kết thúc cuộc trò chuyện từ trình đơn thả xuống Chuyển tiếp.
  4. Chọn Gửi lời nhắc và thêm lời nhắc sau vào trình soạn thảo mã:
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. Nhấp vào Lưu.

Thử nghiệm Hành động của bạn trong trình mô phỏng

Lúc này, Hành động của bạn sẽ biết được 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 tra ý định yes, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. Hoặc nhấp vào khối đề xuất .
  4. Nhấp, nhập hoặc nói một trong các tùy chọn.
  5. Nhập Yes vào trường Nhập rồi nhấn Enter.

5d0690332efe2e29.png

Bạn sẽ nhận được lời nhắc, "Bạn chọn cách nào để giúp mình trong nhiệm vụ, rồng, biên dịch viên hoặc la bàn{5}quot;

Để kiểm tra ý định no, hãy làm theo các bước sau:

  1. Nhấp, nhập hoặc nói một trong các tùy chọn.
  2. Nhập No vào trường nhập dữ liệu rồi nhấn Enter.

Bạn sẽ nhận được lời nhắc End conversation: " Tôi rất vui khi biết bạn đã hài lòng với lựa chọn của mình. Chúc may mắn cho bạn. Tạm biệt."

4. Thêm một đường dẫn hỗ trợ

Giờ đây, bạn đã xây dựng đường dẫn chính mà hầu hết người dùng thực hiện trong Hành động của bạn. Tuy nhiên, người dùng có thể phản hồi lời nhắc thông qua cảnh Fortune"Bạn chọn cách nào để giúp bạn thực hiện nhiệm vụ, rồng, biên dịch viên hoặc la bàn{5}quot;, với lựa chọn không phải là một trong các tùy chọn được cung cấp.

Trong phần này, bạn thiết lập Hành động của mình để hiểu khi nào người dùng chọn "magic", "money", "horse" hoặc "phone" 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 tùy chọn này. Để định cấu hình logic này, bạn cần tạo một type mới có chứa các lựa chọn khác và ý định mới, other_option, phù hợ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ừ đào tạo trong ý định other_option để xác định và trích xuất các thông số ý định.

Khi công cụ xử lý ngôn ngữ tự nhiên (NLU) của Trợ lý phát hiện thấy thông số khớp trong dữ liệu người dùng nhập vào, công cụ sẽ trích xuất giá trị dưới dạng thông số đã nhập để bạn có thể thực hiện logic cùng với thông số đó trong một cảnh. Trong lớp học lập trình này, bạn thiết lập Hành động của mình để trích xuất trợ giúp mà người dùng chọn và tham khảo lựa chọn đó trong lời nhắc.

Tạo loại unavailable_options

Bây giờ, bạn có thể tạo loại unavailable_options chứa nhiều tùy chọn khác nhau để Hành động của bạn có thể xác định dữ liệu đó trong dữ liệu đầ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:

  1. Nhấp vào Phát triển trong thanh điều hướng.
  2. Nhấp vào dấu + (dấu cộng) trong Loại.
  3. Nhập unavailable_options rồi nhấn Enter.
  4. Nhấp vào biểu tượng unavailable_options để mở các tùy chọn.
  5. Nhập các mục nhập và giá trị tương ứng sau đây trong phần Thêm mục nhập:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

Bảng khóa-giá trị của bạn phải có dạng như sau:

c9e119e0f5fb2a47.png

  1. Nhấp vào Lưu.

Tạo ý định other_option

Tiếp theo, bạn tạo một ý định có tên là other_option và thêm các cụm từ đào tạo bao gồm các tùy chọn trong loại unavailable_options. Ý định này được so khớp khi người dùng chọn một lựa chọn 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:

  1. Nhấp vào + (dấu cộng) trong Ý định tùy chỉnh.
  2. Nhập other_option rồi nhấn Enter.
  3. Nhấp vào biểu tượng other_option để mở cửa sổ.
  4. Thêm các cụm từ đào tạo 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
  1. Trong phần Thêm thông số ý định, hãy cập nhật tên thông số thành chosenUnavailableOption.
  2. Nhấp vào Lưu.

Khi bạn nhập các cụm từ huấn luyện, Trình tạo hành động sẽ nhận dạng spells, phone, magic, cashhorse từ loại unavailable_options và tự động đánh dấu (chú thích) các từ đó. Trình tạo hành động sẽ tự động thêm một thông số ý định trong phần Thêm thông số ý định, như minh họa trong hình ảnh sau.

Thông số ý định cho phép bạn trích xuất tên của tùy chọn và sử dụng tùy chọn đó trong lời nhắc.

df61d4489f0910.png

Thêm ý định other_option vào cảnh Fortune

Giờ đây, bạn có một ý định, other_option, có thể xử lý việc người dùng chỉ định một tùy chọn không phải là một trong các tùy chọn ban đầu. Trong phần này, bạn thêm ý định other_option vào cảnh Fortune. Bạn sử dụng thông số ý định để tùy chỉnh lời nhắc 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:

  1. Nhấp vào cảnh Fortune.
  2. Nhấp vào + (dấu cộng) bên cạnh Xử lý ý định của người dùng.
  3. Chọn other_option từ trình đơn thả xuống ý định.
  4. Chọn Gửi lời nhắc và thêm lời nhắc 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 đầu vào thô mà người dùng chỉ định.

  1. Nhấp vào Lưu.

4bab1efbe21056aa.png

Khi người dùng nói một tùy chọn được liệt kê trong loại unavailable_options trong cảnh Fortune, ý định other_option sẽ được so khớp và thêm một lời nhắc vào hàng đợi lời nhắc. Vì không có chuyển đổi nào được chỉ định nên vòng lặp thực thi cảnh tiếp tục bằng cách đánh giá lại giai đoạn điều kiện. Sau đó, vùng chosenOptions sẽ thêm lời nhắc 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.

Thử nghiệm Hành động của bạn trong trình mô phỏng

Hành động của bạn sẽ phản hồi thích hợp khi người dùng chọn một trong các tùy chọn được liệt kê trong loại unavailable_options và chỉ định tùy chọn hỗ trợ mà người dùng đã chọn. Sau đó, Hành động 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 tra Hành động của bạn trong trình mô phỏng, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhập Talk to my test app vào trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. Hoặc nhấp vào khối đề xuất .
  4. Nhập magic vào trường Nhập rồi nhấn Enter.

3a42c33eca435f32.png

Bạn có thể nhận thấy rằng lời nhắc này nghe có vẻ không đúng khi người dùng chọn "magic" do bài viết "a" được đặt trước nó. Bạn có thể giải quyết vấn đề này trong các phần sau.

Thêm trình xử lý unavailable_options

Để đặt bài viết "a" trước các lựa chọn thích hợp từ loại unavailable_options, bạn có thể định cấu hình trình xử lý sự kiện trong logic thực hiện để kiểm tra xem tùy chọn mà người dùng chọn có cần &"a" trước khi lựa chọn đó không. Trước tiên, bạn cần định cấu hình Hành động của mình để 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:

  1. Nhấp vào Phát triển trong thanh điều hướng.
  2. Nhấp vào cảnh Fortune.
  3. Trong mục Xử lý ý định của người dùng, hãy nhấp vào Khi các giá trị kia được khớp để mở cửa sổ.
  4. Bỏ đánh dấu hộp Gửi lời nhắc.
  5. Chọn hộp đánh dấu Gọi webhook của bạn.
  6. Nhập unavailable_options vào hộp văn bản cho trình xử lý sự kiện.

52a0fba115f1b377.png

  1. Nhấp vào Lưu.

Cập nhật và triển khai phương thức thực hiện đơn hàng

Bây giờ bạn đã định cấu hình Hành động của mình để gọi trình xử lý sự kiện unavailable_options, bạn có thể cập nhật trình xử lý trong việc thực hiện và triển khai trình xử lý đó.

Để cập nhật phương thức thực hiện đơn hàng, hãy làm theo các bước sau:

  1. Nhấp vào Webhook trong thanh điều hướng.
  2. 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);
});
  1. Thêm mã sau trong const app = conversation();:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. Nhấp vào Lưu giá trị thực hiện.
  2. Nhấp vào Triển khai phương thức thực hiện. Khi quá trình triển khai hoàn tất, thông báo ở phía trên trình chỉnh sửa của bạn sẽ là Quá trình triển khai Chức năng đám mây của bạn đã được cập nhật.

Tìm hiểu về mã

Trình xử lý unavailable_options làm những việc sau:

  • Lấy dữ liệu option từ đối tượng conv và chỉ định option cho thuộc tính original, là dữ liệu đầu vào thô từ người dùng
  • Gán optionKey cho thuộc tính resolved, là khóa cho loại unavailable_options
  • Kiểm tra xem optionKey có phải là một trong các tùy chọn cần dùng "a" nếu có, tạo thông báo có thêm "a"
  • Thêm tin nhắn qua conv.add(message)

Thử nghiệm Hành động của bạn trong trình mô phỏng

Hành động của bạn bây giờ sẽ điều chỉnh lời nhắc 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 "a" bài viết trước nó hay không.

Để kiểm tra Hành động của bạn, hãy làm theo các bước sau:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra.
  2. Nhấp hoặc nhập Talk to my test app trong trường Nhập rồi nhấn Enter.
  3. Nhập Yes vào trường Nhập rồi nhấn Enter. Hoặc nhấp vào khối đề xuất .
  4. Nhập magic vào trường Nhập rồi nhấn Enter.
  5. Nhập horse vào trường Nhập rồi nhấn Enter.

54ee24c5c3c56e.png

Hành động của bạn nên thêm "a" bài viết trước lựa chọn "horse" trong khi tạo lời nhắc mà không có "a" bài viết cho lựa chọn "magic".

Dọn dẹp dự án của bạn [nên làm]

Để tránh phát sinh các khoản phí có thể phát sinh, bạn nên xóa những dự án mà bạn không định sử dụng. Để xóa các dự án 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:

  1. Để xóa Dự án Cloud và các tài nguyên, hãy hoàn tất các bước nêu trong phần Dừng dự án (xóa) dự án.
  1. Không bắt buộc: Để xóa ngay dự án của bạn khỏi Bảng điều khiển Actions, hãy xem phần Xóa 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 đã học các kỹ năng trung gian cần thiết để tạo Hành động cho Trợ lý Google.

Những điều bạn đã biết

  • Cách phát triển Hành động trò chuyện bằng thư viện thực hiện Node.js
  • Cách sử dụng vùng để thu thập dữ liệu từ người dùng
  • Cách sử dụng các điều kiện để thêm logic vào cảnh
  • Cách thêm vòng lặp trò chơi
  • Cách thêm đường dẫn 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 xây dựng Hành động cho Trợ lý Google:

Hãy theo dõi @ ActionsOnGoogle trên Twitter để theo dõi các thông báo mới nhất của chúng tôi cũng như tweet và #AoGDevs để chia sẻ những gì bạn đã xây dựng được!

Khảo sát về ý kiến phản hồi

Trước khi thoát, vui lòng điền vào bản khảo sát ngắn về trải nghiệm của bạn.