Xây dựng Hành động cho Trợ lý Google bằng SDK Actions (Cấp 1)

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 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 Trợ lý để 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 độ người mới bắt đầu để phát triển bằng Actions SDK cho Trợ lý Google; bạn không cần có kinh nghiệm nào trước đây với nền tảng này để hoàn thành lớp học lập trình. Trong lớp học lập trình này, bạn sẽ tạo một Thao tác đơn giản cho Trợ lý Google để cho người dùng biết vận may của họ khi bắt đầu cuộc phiêu lưu ở vùng đất thần thoại Gryffinberg. Trong lớp học lập trình Actions SDK cấp 2, bạn sẽ xây dựng thêm Hành động này để tuỳ chỉnh câu nói dựa trên thông tin đầu vào của người dùng.

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 đơn giản có các chức năng sau:

  • Trả lời người dùng bằng một tin nhắn chào hỏi
  • Hỏi người dùng một câu hỏi và phản hồi phù hợp với lựa chọn của người dùng
  • Cung cấp các chip đề xuất mà người dùng có thể nhấp vào để nhập dữ liệu
  • Sửa đổi thông báo chào mừng cho người dùng dựa trên việc họ có phải là người dùng cũ hay không

Khi bạn hoàn thành lớp học lập trình này, Hành động đã hoàn tất sẽ có quy trình trò chuyện sau đây (văn bản bên cạnh micrô biểu thị thông tin đầu vào của người dùng, trong khi văn bản bên cạnh loa biểu thị phản hồi của Hành động):

1c1e79902bed7230.png

18ef55647b4cb52c.png

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

  • Cách tạo dự án trong Bảng điều khiển Actions
  • Cách sử dụng công cụ gactions để đẩy và kéo dự án Hành động giữa Actions Console và hệ thống tệp cục bộ
  • Cách gửi lời nhắc cho người dùng sau khi họ gọi Hành động của bạn
  • Cách xử lý dữ liệu đầu vào của người dùng và trả về phản hồi
  • Cách kiểm thử Hành động trong trình mô phỏng Hành động
  • Cách triển khai việc thực hiện bằng trình chỉnh sửa Cloud Functions

Bạn cần có

Bạn phải có các công cụ sau trong môi trường của mình:

  • Một IDE hoặc trình chỉnh sửa văn bản mà bạn chọn
  • Một cửa sổ dòng lệnh để chạy các lệnh shell cho Node.jsnpm
  • Một trình duyệt web, chẳng hạn như Google Chrome

2. Thiết lập

Các phần sau đây mô tả cách thiết lập môi trường phát triển và tạo dự án Actions.

Kiểm tra chế độ cài đặt quyền của bạn trên Google

Để kiểm thử Thao tác mà bạn tạo trong lớp học lập trình này, bạn cần bật các quyền cần thiết để trình mô phỏng có thể truy cập vào Thao tác của bạn.

Để bật quyền, hãy làm theo các bước sau:

  1. Chuyển đến phần Kiểm soát hoạt động.
  2. Đăng nhập bằng Tài khoản Google của bạn (nếu bạn chưa đăng nhập).
  3. Bật các quyền sau:
  • Hoạt động trên web và ứng dụng
  • Trong mục Hoạt động trên web và ứng dụng, hãy chọn hộp đánh dấu Bao gồm cả nhật ký duyệt web trên Chrome cũng như hoạt động trên những trang web, ứng dụng và thiết bị sử dụng các dịch vụ của Google**.**

Tạo một dự án Actions

Dự án Actions là một vùng chứa cho Hành động của bạn.

Để tạo dự án Actions cho lớp học lập trình này, hãy làm theo các bước sau:

  1. Mở Bảng điều khiển Actions.
  2. Nhấp vào Dự án mới.
  3. Nhập Tên dự án, chẳng hạn như actions-codelab. (Tên này chỉ để bạn tham khảo nội bộ. Sau này, bạn có thể đặt tên bên ngoài cho dự án của mình.)

8cd05a84c1c0a32f.png

  1. Nhấp vào Tạo dự án.
  2. Trong màn hình Bạn muốn tạo loại Thao tác nào?, hãy chọn thẻ Tuỳ chỉnh.
  3. Nhấp vào Tiếp theo.
  4. Trong màn hình How do you want to build it? (Bạn muốn tạo dự án như thế nào?), hãy chọn thẻ Blank project (Dự án trống).
  5. Nhấp vào Bắt đầu xây dựng.

Lưu mã dự án cho Thao tác của bạn

Mã dự án là giá trị nhận dạng duy nhất cho Thao tác của bạn. Bạn cần có mã dự án cho một số bước trong lớp học lập trình này.

Để truy xuất mã dự án, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Actions, hãy nhấp vào biểu tượng ba dấu chấm dọc (chèn biểu tượng tại đây).
  2. Nhấp vào Cài đặt dự án.

6f59050b85943073.png

  1. Sao chép mã dự án**.**

Liên kết tài khoản thanh toán

Nếu chưa có tài khoản thanh toán, bạn cần tạo một tài khoản thanh toán và liên kết tài khoản đó với dự án của mình trong Google Cloud để triển khai yêu cầu thực hiện sau này bằng Cloud Functions.

Để liên kết tài khoản thanh toán với dự án, hãy làm theo các bước sau:

  1. Truy cập vào trang thanh toán của Google Cloud Platform.
  2. Nhấp vào Thêm tài khoản thanh toán hoặc Tạo tài khoản.
  3. Nhập thông tin thanh toán.
  4. Nhấp vào Bắt đầu dùng thử miễn phí hoặc Gửi và bật tính năng thanh toán.
  5. Truy cập vào trang thanh toán của Google Cloud Platform.
  6. Nhấp vào thẻ Dự án của tôi.
  7. Nhấp vào biểu tượng ba dấu chấm trong mục Thao tác bên cạnh dự án Thao tác cho lớp học lập trình.
  8. Nhấp vào Thay đổi thông tin thanh toán.
  9. Trong trình đơn thả xuống, hãy chọn tài khoản thanh toán mà bạn đã thiết lập.
  10. Nhấp vào Thiết lập tài khoản.

Để tránh phát sinh phí, hãy làm theo các bước trong phần Dọn dẹp dự án ở cuối lớp học lập trình này.

Cài đặt giao diện dòng lệnh gactions

Trong lớp học lập trình này, bạn sẽ sử dụng công cụ giao diện dòng lệnh (CLI) gactions để đồng bộ hoá dự án Actions giữa Actions Console và hệ thống tệp cục bộ.

Để cài đặt gactions CLI, hãy làm theo hướng dẫn trong phần Cài đặt công cụ dòng lệnh gactions.

Tải dự án Actions xuống

Bắt đầu phát triển Hành động bằng cách tải dự án Hành động xuống từ Bảng điều khiển Actions.

Để tải dự án của bạn trên Actions xuống, hãy làm theo các bước sau:

  1. Để tạo một thư mục mới và chuyển sang thư mục đó, hãy chạy các lệnh sau:
mkdir myproject
cd myproject
  1. Để sao chép cấu hình của dự án Actions vào hệ thống tệp cục bộ, hãy chạy lệnh sau:
gactions pull --project-id <projectID>

Tìm hiểu cấu trúc tệp

Dự án Actions mà bạn tải xuống từ Actions Console được biểu thị trong cấu trúc tệp YAML. Hình ảnh sau đây cho thấy một biểu diễn cấp cao về cấu trúc tệp:

2aefeeab7c8eb32f.png

Cấu trúc tệp bao gồm những thành phần sau:

  • actions/: Biểu thị dự án Actions của bạn. Hệ thống gọi actions.yaml khi Thao tác của bạn được gọi, sau đó gọi tệp custom/global/actions.intent.MAIN.yaml.
  • custom/: Thư mục mà bạn sẽ làm việc để sửa đổi Thao tác.
  • global/: Thư mục này chứa các ý định hệ thống mà nền tảng tự động thêm vào dự án của bạn. Bạn sẽ tìm hiểu thêm về các ý định hệ thống ở phần sau của lớp học lập trình này.
  • manifest.yaml: Tệp chứa thông tin có thể di chuyển hoặc không dành riêng cho bất kỳ dự án nào và có thể di chuyển giữa các dự án.
  • settings/: Biểu thị các chế độ cài đặt của một dự án Actions, chẳng hạn như tên hiển thị, ngôn ngữ mặc định và danh mục.

3. Bắt đầu cuộc trò chuyện

Người dùng bắt đầu cuộc trò chuyện với Hành động của bạn thông qua lệnh gọi. Ví dụ: nếu bạn có một Thao tác tên là MovieTime, người dùng có thể gọi Thao tác của bạn bằng cách nói một cụm từ như "Ok Google, nói chuyện với MovieTime", trong đó MovieTimetên hiển thị. Hành động của bạn phải có tên hiển thị nếu bạn muốn triển khai hành động đó cho người dùng; tuy nhiên, để kiểm thử Hành động, bạn không cần xác định tên hiển thị. Thay vào đó, bạn có thể sử dụng cụm từ "Nói chuyện với ứng dụng kiểm thử của tôi" trong trình mô phỏng để gọi Thao tác. Bạn sẽ tìm hiểu thêm về trình mô phỏng này ở phần sau của phần này.

Bạn phải chỉnh sửa lệnh gọi chính để xác định điều gì sẽ xảy ra sau khi người dùng gọi Hành động của bạn.

Theo mặc định, Thao tác của bạn sẽ cung cấp một lời nhắc chung khi lệnh gọi của bạn được kích hoạt ("Bắt đầu tạo Thao tác bằng cách xác định lệnh gọi chính").

Trong phần tiếp theo, bạn sẽ tuỳ chỉnh lời nhắc cho lệnh gọi chính trong tệp custom/global/actions.intent.MAIN.yaml.

Thiết lập lệnh gọi chính

Bạn có thể chỉnh sửa câu lệnh gọi chính trong tệp actions.intent.MAIN.yaml.

Để sửa đổi lời nhắc mà Thao tác của bạn gửi lại cho người dùng khi họ gọi Thao tác của bạn, hãy làm theo các bước sau:

  1. Mở custom/global/actions.intent.MAIN.yaml trong trình chỉnh sửa văn bản.
  2. Thay thế văn bản trong trường speech (Start building your action...) bằng thông điệp chào mừng sau đây: A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.

actions.intent.MAIN.yaml

handler:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: A wondrous greeting, adventurer! Welcome to the mythical land of 
                Gryffinberg! Based on your clothes, you are not from around these lands. 
                It looks like you're on your way to an epic journey.
transitionToScene: actions.scene.END_CONVERSATION
  1. Lưu tệp.

Kiểm thử lệnh gọi chính trong trình mô phỏng

Actions Console cung cấp một công cụ trên web để kiểm thử Hành động của bạn, được gọi là trình mô phỏng. Giao diện này mô phỏng các thiết bị phần cứng và chế độ cài đặt của chúng, vì vậy, bạn có thể trò chuyện với Thao tác của mình như thể Thao tác đó đang chạy trên màn hình thông minh, điện thoại, loa hoặc KaiOS.

Khi bạn gọi Hành động của mình, Hành động đó sẽ phản hồi bằng câu lệnh tuỳ chỉnh mà bạn đã thêm ("Xin chào nhà thám hiểm!...").

Bạn có thể sử dụng lệnh gactions deploy preview để kiểm thử Thao tác của mình trong bảng điều khiển mà không cần cập nhật phiên bản của dự án Thao tác. Khi chạy lệnh này, mọi thay đổi bạn thực hiện trong hệ thống tệp cục bộ sẽ không được truyền đến các phiên bản đã triển khai của dự án Actions, nhưng bạn có thể kiểm thử các thay đổi đó trên phiên bản xem trước.

Để kiểm thử lệnh gọi chính của Thao tác trong trình mô phỏng, hãy làm theo các bước sau:

  1. Để triển khai dự án của bạn lên Actions Console để kiểm thử, hãy chạy lệnh sau trong thiết bị đầu cuối:
gactions deploy preview

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Để gọi Hành động của bạn trong trình mô phỏng, hãy nhập Talk to my test app vào trường Đầu vào rồi nhấn Enter.

656f5736af6a5a07.png

Khi bạn kích hoạt lệnh gọi chính của Thao tác, Trợ lý sẽ phản hồi bằng thông điệp chào mừng tuỳ chỉnh của bạn. Tại thời điểm này, cuộc trò chuyện sẽ kết thúc sau khi Trợ lý phản hồi bằng một lời chào. Trong phần tiếp theo, bạn sẽ sửa đổi Thao tác để cuộc trò chuyện tiếp tục.

Xem nhật ký sự kiện

Khi bạn ở thẻ Kiểm thử trong Bảng điều khiển Actions, bảng điều khiển này sẽ cho thấy nhật ký sự kiện, trong đó hiển thị nhật ký cuộc trò chuyện dưới dạng nhật ký sự kiện. Mỗi nhật ký sự kiện sẽ hiển thị các sự kiện xảy ra trong lượt trò chuyện đó.

Hành động của bạn hiện có một nhật ký sự kiện, cho thấy cả thông tin đầu vào của người dùng ("Talk to my test app") và phản hồi của Hành động. Ảnh chụp màn hình sau đây cho thấy nhật ký sự kiện của Hành động:

a1b748d1fcebca80.png

Nếu nhấp vào mũi tên xuống bên cạnh biểu tượng Talk to my test app trong nhật ký sự kiện, bạn có thể thấy các sự kiện (được sắp xếp theo thứ tự thời gian) đã diễn ra trong lượt trò chuyện đó:

  • userInput: Tương ứng với nội dung đầu vào của người dùng ("Talk to my test app") ("Nói chuyện với ứng dụng thử nghiệm của tôi")
  • interactionMatch: Tương ứng với phản hồi chính khi gọi Hành động của bạn, được kích hoạt bằng dữ liệu đầu vào của người dùng. Nếu mở rộng hàng này bằng cách nhấp vào mũi tên, bạn có thể thấy câu lệnh mà bạn đã thêm cho lệnh gọi chính (A wondrous greeting, adventurer!...)
  • endConversation: Tương ứng với quá trình chuyển đổi đã chọn trong ý định Main invocation, hiện kết thúc cuộc trò chuyện. Bạn sẽ tìm hiểu thêm về hiệu ứng chuyển đổi trong phần tiếp theo của lớp học lập trình này.

Nhật ký sự kiện cung cấp thông tin về cách hoạt động của Thao tác và là công cụ hữu ích để gỡ lỗi Thao tác nếu bạn gặp bất kỳ vấn đề nào. Để xem thông tin chi tiết về một sự kiện, hãy nhấp vào mũi tên bên cạnh tên sự kiện, như minh hoạ trong ảnh chụp màn hình sau:

fcc389b59af5bef1.png

4. Tạo cuộc trò chuyện cho Hành động của bạn

Giờ đây, sau khi xác định những gì sẽ xảy ra sau khi người dùng gọi Hành động của bạn, bạn có thể xây dựng phần còn lại của cuộc trò chuyện trong Hành động. Trước khi tiếp tục với lớp học lập trình này, hãy tìm hiểu các thuật ngữ sau để hiểu cách hoạt động của cuộc trò chuyện trong Thao tác:

Thao tác của bạn có thể có một hoặc nhiều cảnh và bạn phải kích hoạt từng cảnh trước khi cảnh đó có thể chạy. Hành động mà bạn tạo trong lớp học lập trình này chỉ có một cảnh có tên là Start. Cách phổ biến nhất để kích hoạt một cảnh là định cấu hình Thao tác để khi hoạt động đầu vào của người dùng khớp với một ý định trong một cảnh, ý định đó sẽ kích hoạt quá trình chuyển đổi sang một cảnh khác và kích hoạt cảnh đó.

Ví dụ: hãy tưởng tượng một Thao tác giả định cung cấp cho người dùng thông tin về động vật. Khi người dùng gọi Thao tác này, ý định Main invocation sẽ được so khớp và kích hoạt quá trình chuyển đổi sang một cảnh có tên là Facts. Quá trình chuyển đổi này kích hoạt cảnh Facts, cảnh này sẽ gửi lời nhắc sau đây cho người dùng: Would you like to hear a fact about cats or dogs? Trong cảnh Facts có một ý định tuỳ chỉnh có tên là Cat. Ý định này chứa các cụm từ huấn luyện mà người dùng có thể nói để nghe một thông tin về mèo, chẳng hạn như "Tôi muốn nghe một thông tin về mèo" hoặc "mèo". Khi người dùng yêu cầu nghe một thông tin thú vị về mèo, ý định Cat sẽ được so khớp và kích hoạt quá trình chuyển đổi sang một cảnh có tên là Cat fact. Cảnh Cat fact sẽ kích hoạt và gửi một lời nhắc cho người dùng, trong đó có một thông tin thú vị về mèo.

a78f549c90c3bff6.png

Hình 1. Quy trình của một lượt trò chuyện thông thường trong một Hành động được tạo bằng Actions SDK.

Các cảnh, ý định và chuyển đổi kết hợp với nhau tạo nên logic cho cuộc trò chuyện của bạn và xác định nhiều đường dẫn mà người dùng có thể chọn trong cuộc trò chuyện của Hành động. Trong phần sau, bạn sẽ tạo một cảnh và xác định cách kích hoạt cảnh đó sau khi người dùng gọi Hành động của bạn.

Chuyển đổi từ lệnh gọi chính sang cảnh

Trong phần này, bạn sẽ tạo một cảnh mới có tên là Start. Cảnh này sẽ gửi một lời nhắc cho người dùng để hỏi xem họ có muốn xem bói hay không. Bạn cũng thêm một chuyển cảnh từ lệnh gọi chính sang cảnh Start mới.

Để tạo cảnh này và thêm hiệu ứng chuyển cảnh vào đó, hãy làm theo các bước sau:

  1. Mở custom/global/actions.intent.MAIN.yaml trong trình chỉnh sửa văn bản.
  2. Thay thế văn bản trong trường transitionToScene (actions.scene.END_CONVERSATION) bằng nội dung sau: transitionToScene: Start

actions.intent.MAIN.yaml

handler:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Welcome to the mythical land of  Gryffinberg! Based on your clothes,
              you are not from around these lands. It looks like you're on your way
              to an epic journey.
transitionToScene: Start

Điều này cho biết Thao tác của bạn sẽ chuyển từ lệnh gọi chính sang cảnh Start.

  1. Lưu tệp.
  2. Trong thiết bị đầu cuối, hãy tạo một thư mục scenes mới trong thư mục custom:
mkdir custom/scenes 
  1. Tạo một tệp mới có tên Start.yaml trong thư mục scenes. Tệp này đại diện cho cảnh start trong Thao tác của bạn:
touch custom/scenes/Start.yaml 
  1. Mở Start.yaml trong trình chỉnh sửa văn bản.
  2. Dán mã sau đây vào tệp Start.yaml:

Start.yaml

onEnter:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Before you continue on your quest, would you like your fortune
              told?

Trong mã tệp Start.yaml, có một trường gọi là onEnter. Đây là giai đoạn đầu tiên chạy trong vòng đời của một cảnh.

Trong trường hợp này, lời nhắc (Before you continue on your quest...) sẽ được thêm vào hàng đợi lời nhắc khi người dùng lần đầu tiên vào cảnh Start.

Thêm khối đề xuất

Các khối đề xuất cung cấp những đề xuất có khả năng nhấp cho người dùng mà Hành động của bạn xử lý dưới dạng hoạt động đầu vào của người dùng. Trong phần này, bạn sẽ thêm các đề xuất dạng chip YesNo xuất hiện bên dưới câu lệnh mà bạn vừa định cấu hình (Before you continue on your quest, would you like your fortune told?) để hỗ trợ người dùng trên các thiết bị có màn hình.

Để thêm các chip đề xuất vào lời nhắc của cảnh Start, hãy làm theo các bước sau:

  1. Cập nhật mã trong Start.yaml để khớp với đoạn mã sau đây. Đoạn mã này bao gồm mã để định cấu hình các chip đề xuất:

Start.yaml

onEnter:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Before you continue on your quest, would you like your fortune
              told?
        suggestions:
        - title: "Yes"
        - title: "No"
  1. Lưu tệp.

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ẽ chuyển từ lệnh gọi chính sang cảnh Start và hỏi người dùng xem họ có muốn biết vận mệnh của mình hay không. Khối đề xuất cũng sẽ xuất hiện trong màn hình mô phỏng.

Để kiểm thử Thao tác trong trình mô phỏng, hãy làm theo các bước sau:

  1. Trong cửa sổ dòng lệnh, hãy chạy lệnh sau:
gactions deploy preview

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Nhấp vào Kiểm thử để chuyển đến trình mô phỏng.
  3. Nhập Talk to my test app vào trường Đầu vào rồi nhấn Enter. Hành động của bạn phải phản hồi bằng câu lệnh Main invocation và câu lệnh cảnh Start đã thêm, "Trước khi tiếp tục hành trình, bạn có muốn biết vận mệnh của mình không?", cùng với các đề xuất dạng chip được hiển thị.

Ảnh chụp màn hình sau đây cho thấy hoạt động tương tác này:

3c2013ebb2da886a.png

  1. Nhấp vào khối đề xuất hoặc Không để phản hồi lời nhắc. (Bạn cũng có thể nói "Có" hoặc "Không" hoặc nhập Yes hoặc No vào trường Đầu vào.)

Khi bạn phản hồi lời nhắc, Thao tác của bạn sẽ phản hồi bằng một thông báo cho biết rằng Thao tác đó không hiểu được thông tin đầu vào của bạn: "Rất tiếc, tôi không hiểu bạn nói gì. Bạn có thể thử lại không?" Vì bạn chưa định cấu hình Hành động để hiểu và phản hồi đầu vào "Có" hoặc "Không", nên Hành động của bạn sẽ so khớp đầu vào của bạn với một ý định NO_MATCH.

Theo mặc định, ý định hệ thống NO_MATCH sẽ cung cấp các phản hồi chung, nhưng bạn có thể tuỳ chỉnh các phản hồi này để cho người dùng biết rằng bạn không hiểu nội dung họ nhập. Trợ lý sẽ kết thúc cuộc trò chuyện của người dùng với Hành động của bạn sau khi không thể so khớp hoạt động đầu vào của người dùng 3 lần.

Thêm ý định yesno

Giờ đây, người dùng có thể trả lời câu hỏi mà Thao tác của bạn đặt ra, bạn có thể định cấu hình Thao tác để hiểu câu trả lời của người dùng ("Có" hoặc "Không"). Trong các phần sau, bạn sẽ tạo các ý định tuỳ chỉnh được so khớp khi người dùng nói "Có" hoặc "Không" và thêm các ý định này vào cảnh Start.

Tạo yes ý định

Để tạo ý định yes, hãy làm theo các bước sau:

  1. Trong thiết bị đầu cuối, hãy tạo một thư mục mới có tên là intents trong thư mục custom:
mkdir custom/intents 
  1. Tạo một tệp mới có tên yes.yaml trong thư mục intents:
touch custom/intents/yes.yaml
  1. Mở yes.yaml trong trình chỉnh sửa văn bản.
  2. Dán đoạn mã sau đây chứa các cụm từ huấn luyện vào yes.yaml:

yes.yaml

trainingPhrases:
- of course
- let's do it
- ok
- sure
- "y"
- "yes"
  1. Lưu tệp.

Thêm ý định yes vào cảnh Start

Giờ đây, Hành động có thể hiểu được khi nào người dùng thể hiện ý định "có". Bạn có thể thêm ý định tuỳ chỉnh yes vào cảnh Start, vì người dùng đang phản hồi lời nhắc Start ("Trước khi tiếp tục hành trình, bạn có muốn biết vận mệnh của mình không?").

Để thêm ý định tuỳ chỉnh này vào cảnh Start, hãy làm theo các bước sau:

  1. Mở custom/scenes/Start.yaml trong trình chỉnh sửa văn bản.
  2. Thêm trình xử lý intentEventsyes vào cuối tệp Start.yaml:

Start.yaml

intentEvents:
- handler:
    staticPrompt:
      candidates:
      - promptResponse:
          firstSimple:
            variants:
            - speech: Your future depends on the item you choose to use for your quest. Choose wisely! Farewell, stranger.
  intent: "yes"
  transitionToScene: actions.scene.END_CONVERSATION

Khi ý định yes được so khớp, lời nhắc "Tương lai của bạn phụ thuộc vào vật phẩm mà bạn chọn sử dụng cho nhiệm vụ của mình..." sẽ được thêm vào hàng đợi lời nhắc. Sau đó, cảnh Start sẽ chuyển sang cảnh hệ thống actions.scene.END_CONVERSATION. Cảnh này sẽ gửi các câu lệnh trong hàng đợi câu lệnh và kết thúc cuộc trò chuyện.

Kiểm thử ý định yes trong trình mô phỏng

Tại thời điểm này, Thao tác của bạn sẽ hiểu được thời điểm người dùng muốn nghe vận may của họ và trả về phản hồi thích hợp.

Để kiểm thử ý định này trong trình mô phỏng, hãy làm theo các bước sau:

  1. Trong cửa sổ dòng lệnh, hãy chạy lệnh sau:
gactions deploy preview

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Nhấp vào Kiểm thử để chuyển đến trình mô phỏng.
  3. Để kiểm thử Thao tác của bạn trong trình mô phỏng, hãy nhập Talk to my test app vào trường Đầu vào rồi nhấn Enter.
  4. Nhập Yes vào trường Đầu vào rồi nhấn Enter. Hoặc bạn có thể nhấp vào khối đề xuất .

f131998710d8ffd8.png

Thao tác của bạn sẽ phản hồi người dùng và cho họ biết vận may của họ phụ thuộc vào sự trợ giúp mà họ chọn. Sau đó, Thao tác của bạn sẽ kết thúc phiên vì bạn đã định cấu hình quá trình chuyển đổi End conversation cho ý định yes.

Tạo no ý định

Giờ đây, bạn có thể tạo ý định no để Hành động của bạn có thể hiểu và phản hồi người dùng khi họ không muốn nghe vận may của mình.

Để tạo ý định này, hãy làm theo các bước sau:

  1. Trong thiết bị đầu cuối, hãy tạo một tệp mới có tên no.yaml trong thư mục intents:
touch custom/intents/no.yaml
  1. Mở no.yaml trong trình chỉnh sửa văn bản.
  2. Dán các cụm từ huấn luyện sau vào tệp no.yaml:

no.yaml

trainingPhrases:
- nope
- I don't want
- "n"
- "no"
- nah
- no thanks
  1. Lưu tệp.

Thêm ý định no vào cảnh Start

Giờ đây, Hành động có thể hiểu khi người dùng nói "không" hoặc một từ tương tự như "không", chẳng hạn như "không". Bạn cần thêm ý định tuỳ chỉnh no vào cảnh Start vì người dùng đang phản hồi lời nhắc Start ("Trước khi tiếp tục hành trình, bạn có muốn biết vận mệnh của mình không?").

Để thêm ý định này cho cảnh Start, hãy làm theo các bước sau:

  1. Mở custom/scenes/Start.yaml trong trình chỉnh sửa văn bản.
  2. Thêm trình xử lý no sau đây bên dưới trình xử lý yes trong Start.yaml:

Start.yaml

- handler:
    staticPrompt:
      candidates:
      - promptResponse:
          firstSimple:
            variants:
            - speech: I understand, stranger. Best of luck on your quest! Farewell.
  intent: "no"
  transitionToScene: actions.scene.END_CONVERSATION
  1. Lưu tệp.

Kiểm thử ý định no trong trình mô phỏng

Tại thời điểm này, Thao tác của bạn sẽ hiểu được khi nào người dùng không muốn nghe lời tiên tri và trả về phản hồi thích hợp.

Để kiểm thử ý định này trong trình mô phỏng, hãy làm theo các bước sau:

  1. Trong cửa sổ dòng lệnh, hãy chạy lệnh sau:
gactions deploy preview

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Nhấp vào Kiểm thử để chuyển đến trình mô phỏng.
  3. Nhập Talk to my test app vào trường Đầu vào rồi nhấn Enter.
  4. Nhập No vào trường Đầu vào rồi nhấn Enter. Hoặc nhấp vào khối đề xuất No.

c0c8b04066577eb2.png

Thay vì đưa ra lời tiên đoán cho người dùng, Thao tác của bạn sẽ chúc họ may mắn trên hành trình của mình. Sau đó, Thao tác của bạn sẽ kết thúc phiên vì bạn đã định cấu hình quá trình chuyển đổi End conversation cho ý định no.

5. Triển khai phương thức thực hiện đơn hàng

Hiện tại, các câu trả lời của Hành động của bạn là tĩnh; khi một cảnh chứa lời nhắc được kích hoạt, Hành động của bạn sẽ gửi cùng một lời nhắc mỗi lần. Trong phần này, bạn sẽ triển khai fulfillment (thực hiện) chứa logic để tạo một câu trả lời đàm thoại linh hoạt.

Logic thực hiện của bạn xác định xem người dùng là người dùng cũ hay người dùng mới và sửa đổi thông báo chào mừng của Thao tác cho người dùng cũ. Thông điệp chào mừng được rút ngắn cho người dùng cũ và ghi nhận việc người dùng quay lại: "Chào mừng nhà thám hiểm! Chào mừng bạn trở lại vùng đất thần thoại Gryffinberg!"

Trong lớp học lập trình này, bạn sẽ sử dụng trình chỉnh sửa Cloud Functions để chỉnh sửa và triển khai mã thực hiện.

Thao tác của bạn có thể kích hoạt webhook để thông báo cho bạn về việc thực hiện một sự kiện xảy ra trong quá trình gọi hoặc các phần cụ thể của quá trình thực thi cảnh. Khi một webhook được kích hoạt, Hành động của bạn sẽ gửi một yêu cầu có tải trọng JSON đến quá trình thực hiện cùng với tên của trình xử lý cần dùng để xử lý sự kiện. Trình xử lý này thực hiện một số logic và trả về phản hồi JSON tương ứng.

Xây dựng quy trình thực hiện đơn hàng

Trong phần này, bạn sẽ sửa đổi yêu cầu thực hiện để tạo các câu lệnh khác nhau cho người dùng cũ và người dùng mới khi họ gọi Hành động của bạn.

Để thêm logic này vào yêu cầu thực hiện, hãy làm theo các bước sau:

  1. Trong thiết bị đầu cuối, hãy đảm bảo bạn đang ở thư mục gốc của dự án và tạo một thư mục webhooks mới:
mkdir webhooks 
  1. Tạo một tệp mới có tên ActionsOnGoogleFulfillment.yaml trong thư mục webhooks:
touch webhooks/ActionsOnGoogleFulfillment.yaml
  1. Mở ActionsOnGoogleFulfillment.yaml trong trình chỉnh sửa văn bản.
  2. Thêm trình xử lý greeting và nội dung inlineCloudFunction vào tệp ActionsOnGoogleFulfillment.yaml:

ActionsOnGoogleFulfillment.yaml

handlers:
- name: greeting
inlineCloudFunction:
  executeFunction: ActionsOnGoogleFulfillment

Tệp ActionsOnGoogleFulfillment.yaml xác định trình xử lý webhook (chẳng hạn như trình xử lý greeting) và hướng dẫn Thao tác của bạn sử dụng Cloud Functions làm điểm cuối webhook.

  1. Tạo một thư mục ActionsOnGoogleFulfillment mới trong thư mục webhooks:
mkdir webhooks/ActionsOnGoogleFulfillment
  1. Tạo một tệp mới có tên index.js trong thư mục ActionsOnGoogleFulfillment:
touch webhooks/ActionsOnGoogleFulfillment/index.js
  1. Mở index.js trong trình chỉnh sửa văn bản.
  2. Thêm mã sau vào index.js:

index.js

const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');

const app = conversation({debug: true});

app.handle('greeting', conv => {
 let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
 if (!conv.user.lastSeenTime) {
   message = 'Welcome to the mythical land of  Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
 }
 conv.add(message);
});


exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);

Mã này xác định trình xử lý greeting, gửi lời chào thích hợp đến

người dùng.

  1. Lưu tệp.
  2. Tạo một tệp mới có tên package.json trong thư mục ActionsOnGoogleFulfillment:
touch webhooks/ActionsOnGoogleFulfillment/package.json

Tệp package.json chỉ định các phần phụ thuộc và siêu dữ liệu khác cho webhook của bạn.

  1. Mở package.json trong trình chỉnh sửa văn bản.
  2. Sao chép mã nguồn từ kho lưu trữ GitHub này rồi dán vào tệp package.json.
  3. Lưu tệp.

Tìm hiểu về mã

Phương thức thực hiện của bạn (sử dụng Thư viện thực hiện Actions on Google cho Node.js) sẽ phản hồi các yêu cầu HTTP từ Trợ lý Google.

Trong đoạn mã trước, bạn xác định trình xử lý greeting. Trình xử lý này sẽ kiểm tra xem người dùng đã từng truy cập vào Thao tác có thuộc tính lastSeenTime hay chưa. Nếu bạn không xác định thuộc tính lastSeenTime, thì người dùng là người dùng mới và nhận được lời chào dành cho người dùng mới. Nếu không, thông báo sẽ ghi nhận việc người dùng quay lại và tạo ra một lời chào đã được sửa đổi.

Cập nhật lệnh gọi chính để kích hoạt webhook

Giờ đây, sau khi xác định hàm greeting, bạn có thể định cấu hình trình xử lý sự kiện greeting trong ý định gọi chính để Thao tác của bạn biết cách gọi hàm này khi người dùng gọi Thao tác của bạn.

Để định cấu hình Thao tác gọi trình xử lý greeting mới, hãy làm theo các bước sau:

  1. Mở custom/global/actions.intent.MAIN.yaml trong trình chỉnh sửa văn bản.
  2. Thay thế mã trong actions.intent.MAIN.yaml bằng mã sau:

actions.intent.MAIN.yaml

handler:
  webhookHandler: greeting
transitionToScene: Start
  1. Lưu tệp.

Giờ đây, khi ý định gọi chính của bạn được so khớp, trình xử lý webhook greeting sẽ được gọi.

Kiểm thử lệnh gọi chính đã cập nhật trong trình mô phỏng

Để kiểm thử Thao tác trong trình mô phỏng, hãy làm theo các bước sau:

  1. Trong cửa sổ dòng lệnh, hãy chạy lệnh sau:
gactions deploy preview

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Để kiểm thử Thao tác của bạn trong trình mô phỏng, hãy nhập Talk to my test app vào trường Đầu vào rồi nhấn Enter.

Vì bạn đã thử nghiệm Thao tác của mình trước đó trong lớp học lập trình này, nên bạn không phải là người dùng mới. Do đó, bạn sẽ nhận được lời chào ngắn gọn sau đây: "Chào mừng nhà thám hiểm! Chào mừng bạn trở lại vùng đất thần thoại Gryffinberg!"

6. Hình dung hành động bằng Actions Builder

Actions SDK có khả năng tương tác với một IDE dựa trên web có tên là Actions Builder được tích hợp vào Actions Console. Bạn có thể đẩy hệ thống tệp cục bộ vào bản nháp của Hành động trong bảng điều khiển bằng lệnh gactions push. Không giống như gactions deploy preview, chỉ cho phép bạn kiểm thử Hành động trong trình mô phỏng, gactions push sẽ di chuyển tất cả nội dung từ tệp cục bộ sang Actions Builder.

Bảng điều khiển Actions cung cấp thông tin trực quan về cấu hình của Hành động. Việc xem Hành động của bạn được lập bản đồ một cách trực quan có thể hữu ích trong quá trình phát triển và không ảnh hưởng đến phiên bản Hành động được phân phát để kiểm thử.

Để đẩy dự án Actions và xem dự án đó trong bảng điều khiển Actions, hãy làm theo các bước sau:

  1. Trong thiết bị đầu cuối, hãy chạy lệnh sau để đẩy dự án của bạn lên bảng điều khiển Actions:
gactions push

Bạn sẽ nhận được kết quả có dạng như sau:

✔ Done. Files were pushed to Actions Console, and you can now view your project with this URL: https://console.actions.google.com/project/{project-id}/overview. If you want to test your changes, run "gactions deploy preview", or navigate to the Test section in the Console.
  1. Sao chép URL được cung cấp rồi dán vào trình duyệt.
  2. Trong Bảng điều khiển Actions, hãy nhấp vào Phát triển trong thanh điều hướng trên cùng.
  3. Nhấp vào mũi tên thả xuống bên cạnh Cảnh rồi nhấp vào Bắt đầu. Bạn sẽ thấy một bản trình bày trực quan về cảnh Start của Thao tác, như minh hoạ trong ảnh chụp màn hình sau:

332404b148609e96.png

Dọn dẹp dự án của bạn [nên dùng]

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

  1. Để 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.
  1. Không bắt buộc: Để xoá ngay dự án của bạn khỏi Actions Console, hãy hoàn tất các bước được liệt kê trong 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.

7. Xin chúc mừng!

Bạn nắm được kiến thức cơ bản về cách tạo Hành động cho Trợ lý Google bằng Actions SDK.

Nội dung bạn đã đề cập

  • Cách thiết lập một dự án Actions trong Bảng điều khiển Actions
  • Cách sử dụng Actions SDK để tạo dự án Actions trên hệ thống tệp cục bộ
  • Cách thêm lời nhắc vào lệnh gọi chính để người dùng có thể bắt đầu trò chuyện với Thao tác của bạn
  • Cách tạo giao diện trò chuyện bằng cảnh, ý định, hiệu ứng chuyển cảnh, chip đề xuất và tính năng thực hiện
  • Cách kiểm thử Hành động bằng trình mô phỏng Hành động

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 các Thao tác cho Trợ lý Google:

Theo dõi @ActionsOnGoogle trên Twitter để nắm bắt thông báo mới nhất và đăng bài kèm thẻ hashtag #AoGDevs để chia sẻ những gì bạn tạo ra!

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ài khảo sát ngắn về trải nghiệm của bạn.