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ý 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à nhiều thiết bị khác. 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 hoá hoặc đặt xe. Là nhà phát triển, bạn có thể sử dụng nền tảng Trợ lý dành cho nhà phát triển để 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 đơn hàng của riêng bạn.

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

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 Hành động đơn giản bằng các hàm sau:

  • Trả lời người dùng bằng tin nhắn chào mừng
  • Đặt câu hỏi và trả lời phù hợp với lựa chọn của người dùng
  • Cung cấp các khối đề xuất mà người dùng có thể nhấp vào để cung cấp dữ liệu đầu vào
  • 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 kết thúc lớp học lập trình này, Hành động đã hoàn tất của bạn sẽ có luồng trò chuyện sau đây (văn bản bên cạnh micrô thể hiện hoạt động đầu vào của người dùng, còn văn bản bên cạnh người nói thể hiện phản hồi của Hành động):

1c1e79902bed7230.pngS

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ụ gHành động để đẩy và kéo dự án Hành động giữa Bảng điều khiển Actions và hệ thống tệp cục bộ của bạn
  • 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 của bạn trong Trình mô phỏng hành động
  • Cách triển khai phương thức thực hiện bằng trình chỉnh sửa Cloud Functions

Bạn cần có

Bạn phải sử dụng các công cụ sau đây trong môi trường của mình:

  • IDE hoặc trình chỉnh sửa văn bản mà bạn chọn
  • Một thiết bị đầu cuối để 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 Google

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

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

  1. Chuyển đến mục 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. Cấp các quyền sau đây:
  • Hoạt động trên web và ứng dụng
  • Trong Web & Hoạt động ứng dụng, 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 (Hành động)

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 để 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.pngS

  1. Nhấp vào Tạo dự án.
  2. Trong màn hình Bạn muốn tạo loại hành động nào?, hãy chọn thẻ Tuỳ chỉnh.
  3. Nhấp vào Tiếp theo.
  4. Trong màn hình Bạn muốn xây dựng dự án như thế nào?, hãy chọn thẻ Dự án trống.
  5. Nhấp vào Bắt đầu xây dựng.

Lưu mã dự án cho Hành động của bạn

Mã dự án là giá trị nhận dạng riêng biệt cho Hành động 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 của bạ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 vào đây).
  2. Nhấp vào Cài đặt dự án.

6f59050b85943073.pngS

  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 rồi liên kết tài khoản đó với dự án của mình trong Google Cloud để triển khai phương thức thực hiện vào lúc khác 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 của bạ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 phần Actions (Thao tác) bên cạnh dự án Actions (Thao tác) cho lớp học lập trình này.
  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 Đặt 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 gaction

Trong lớp học lập trình này, bạn sẽ dùng công cụ giao diện dòng lệnh (CLI) của g actions để đồng bộ hoá dự án Actions (Thao tác) giữa Bảng điều khiển Actions và hệ thống tệp trên máy của bạn.

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

Tải dự án Actions xuống

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

Để tải dự á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à thay đổi trong 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 qua bảng điều khiển Actions được thể hiện trong cấu trúc tệp YAML. Hình ảnh sau đây minh hoạ cấp cao về cấu trúc tệp:

2aefeeab7c8eb32f.pngS

Cấu trúc tệp bao gồm:

  • actions/: Đại diện cho dự án Hành động. Hệ thống gọi actions.yaml khi Hành động của bạn được gọi, sau đó sẽ gọi tệp custom/global/actions.intent.MAIN.yaml.
  • custom/: Thư mục mà bạn sẽ dùng để sửa đổi Hành động của mình.
  • global/: Thư mục này chứa ý đị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ề ý định của hệ thống ở phần sau của lớp học lập trình này.
  • manifest.yaml: Một 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 nhất định 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 dự án Hành động, chẳng hạn như tên hiển thị, ngôn ngữ và danh mục mặc định.

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

Người dùng bắt đầu trò chuyện với Hành động của bạn thông qua lời gọi. Ví dụ: nếu bạn có một Hành động tên là MovieTime, thì người dùng có thể gọi Hành động đó 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 đó trên kênh phát hành công khai; 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ừ "Trò chuyện với ứng dụng thử nghiệm của tôi" trong trình mô phỏng để gọi Hành động của bạn. Bạn sẽ tìm hiểu thêm về trình mô phỏng ở phần sau của phần này.

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

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

Ở 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 lời nhắc lệnh gọi chính trong tệp actions.intent.MAIN.yaml.

Để sửa đổi lời nhắc mà Hành động của bạn gửi lại cho người dùng khi họ gọi Hành động 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ế nội dung trong trường speech (Start building your action...) bằng tin nhắn chào mừng sau: 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

Bảng điều khiển Actions cung cấp một công cụ web để kiểm thử Hành động, 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 tương ứng. Nhờ vậy, bạn có thể trò chuyện với Hành động của mình như thể hành động đ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, giờ đây, Hành động đó sẽ phản hồi bằng lời nhắc tuỳ chỉnh mà bạn đã thêm ("A tuyệt diệu, nhà thám hiểm!...").

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

Để kiểm thử lệnh gọi chính của Hành động 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 trên Bảng điều khiển Actions để 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 một 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 Input (Đầu vào) rồi nhấn Enter.

656f5736af6a5a07.pngS

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

Xem nhật ký sự kiện

Khi bạn đang ở thẻ Kiểm tra trong Bảng điều khiển thao tác, bảng điều khiển sẽ hiển thị nhật ký sự kiện, trong đó cho thấy nhật ký trò chuyện dưới dạng nhật ký sự kiện. Mỗi nhật ký sự kiện 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 ("Trò chuyện với ứng dụng kiểm tra của tôi") và phản hồi cho Hành động của bạn. Ả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 Talk to my test app trong nhật ký sự kiện, bạn có thể xem các sự kiện được sắp xếp theo trình tự thời gian và diễn ra trong lượt trò chuyện đó:

  • userInput: Tương ứng với thông tin đầu vào của người dùng ("Trò chuyện với ứng dụng kiểm thử của tôi")
  • interactionMatch: Tương ứng với phản hồi lệnh gọi chính của Hành động, được kích hoạt bằng hoạt động đầ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ể nhìn thấy lời nhắc mà bạn đã thêm cho lệnh gọi chính (A wondrous greeting, adventurer!...)
  • endConversation: Tương ứng với hiệu ứng 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 cho bạn biết cách hoạt động của Hành động và là công cụ hữu ích để gỡ lỗi cho Hành động của bạn nếu bạn gặp vấn đề. Để 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ư trong ảnh chụp màn hình sau đây:

fcc389b59af5bef1.png

4. Tạo cuộc trò chuyện trong Hành động

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

Hành động 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 hành động đó có thể chạy. Hành động bạn tạo trong lớp học lập trình này chỉ có một cảnh với tiêu đề Start. Cách phổ biến nhất để kích hoạt một cảnh là định cấu hình Hành động sao cho 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, thì ý đị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 Hành động giả định cung cấp cho người dùng thông tin về động vật. Khi người dùng gọi Hành động này, ý định Main invocation sẽ được so khớp và kích hoạt hiệu ứng chuyển đổi sang một cảnh có tên là Facts.. Hiệu ứng chuyển đổi này sẽ kích hoạt cảnh Facts và 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 là một ý định tuỳ chỉnh có tên là Cat, trong đó có 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ư "I want toListen a rất Trên thực tế về mèo" hoặc "cat". Khi người dùng yêu cầu nghe thông tin về mèo, ý định Cat sẽ được khớp và kích hoạt hiệu ứng 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 lời nhắc cho người dùng, trong đó có chứa thông tin về mèo.

a78f549c90c3bff6.png

Hình 1. Quy trình của một lượt trò chuyện điển hình trong một Hành động được xây dựng bằng SDK Hành động.

Cảnh, ý định và hiệu ứng 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 các đường dẫn khác nhau mà người dùng có thể thực hiện thông qua cuộc trò chuyện trong 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 họ có muốn xem bói không. Bạn cũng thêm hiệu ứng chuyển đổi 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 đổ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ế văn bản trong trường transitionToScene (actions.scene.END_CONVERSATION) bằng văn bản 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

Thao tác này sẽ yêu cầu Hành động chuyển từ lệnh gọi chính sang cảnh Start.

  1. Lưu tệp.
  2. Trong dòng lệnh, 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 là Start.yaml trong thư mục scenes, đại diện cho cảnh start trong Hành động 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 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 tên 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 vào cảnh Start lần đầu tiên.

Thêm khối đề xuất

Khối đề xuất cung cấp các đề xuất có thể 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 khối đề xuất YesNo xuất hiện bên dưới lời nhắc mà bạn vừa thiết lập (Before you continue on your quest, would you like your fortune told?) để hỗ trợ người dùng sử dụng thiết bị có màn hình.

Để thêm các khối đề xuất vào câu lệnh 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, bao gồm cả mã để định cấu hình khối đề 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, Hành động của bạn phải 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 xem bói hay không. Khối đề xuất cũng sẽ xuất hiện trên màn hình mô phỏng.

Để 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 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 một trình duyệt.
  2. Nhấp vào Kiểm tra để chuyển bạn đến trình mô phỏng.
  3. Nhập Talk to my test app vào trường Input (Đầu vào) rồi nhấn Enter. Hành động của bạn nên phản hồi bằng câu lệnh Main invocation và lời nhắc cảnh Start được thêm vào: "Trước khi tiếp tục nhiệm vụ, bạn có muốn nhận thông tin bói không?", cùng với các khối đề xuất hiển thị.

Ảnh chụp màn hình sau đây minh hoạ 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 "Yes" hoặc "No" hoặc nhập Yes hay No vào trường Input.)

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

Theo mặc định, ý định của hệ thống NO_MATCH sẽ đưa ra phản hồi chung 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 chưa hiểu ý định của họ. 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 khớp được hoạt động đầu vào của người dùng 3 lần.

Thêm ý định yesno

Giờ đây, khi người dùng có thể trả lời câu hỏi mà Hành động của bạn đặt ra, bạn có thể định cấu hình Hành động để hiểu rõ hành động 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 phù hợp khi người dùng nói "Yes" hoặc "No", rồi thêm các ý định này vào cảnh Start.

Tạo ý định yes

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

  1. Trong dòng lệnh, 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 là 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ã chứa các cụm từ huấn luyện sau 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ể biết được thời điểm 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 nhiệm vụ, bạn có muốn biết bói không?).

Để thêm đối tượng có ý đị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 khớp, lời nhắc "Tương lai của bạn phụ thuộc vào vật phẩm bạn chọn dùng cho nhiệm vụ..." sẽ được thêm vào hàng đợi lời nhắc. Sau đó, cảnh Start sẽ chuyển đổi sang cảnh hệ thống actions.scene.END_CONVERSATION. Cảnh này đưa ra lời nhắc trong hàng đợi lời nhắc và kết thúc cuộc trò chuyện.

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

Đến đây, Hành động của bạn nắm được thời điểm người dùng muốn biết thông tin may mắn 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 một trình duyệt.
  2. Nhấp vào Kiểm tra để chuyển bạn đến trình mô phỏng.
  3. Để kiểm thử 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 Input (Đầu vào) rồi nhấn Enter.
  4. Nhập Yes vào trường Input (Đầu vào) rồi nhấn Enter. Ngoài ra, hãy nhấp vào khối đề xuất .

f131998710d8ffd8.png

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

Tạo ý định no

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

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

  1. Trong cửa sổ dòng lệnh, hãy tạo một tệp mới có tên là 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 đây 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 được khi nào người dùng đang thể hiện "no" hoặc nội dung nào đó tương tự như "no", chẳng hạn như "nope". 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 nhiệm vụ, bạn có muốn biết bói 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

Đến đây, Hành động của bạn nắm được khi nào người dùng không muốn biết thông tin may mắn và trả về phản hồi phù 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 một trình duyệt.
  2. Nhấp vào Kiểm tra để chuyển bạn đến trình mô phỏng.
  3. Nhập Talk to my test app vào trường Input (Đầu vào) rồi nhấn Enter.
  4. Nhập No vào trường Input (Đầu vào) rồi nhấn Enter. Ngoài ra, bạn có thể nhấp vào khối đề xuất No.

c0c8b04066577eb2.png

Thay vì tặng vận may cho người dùng, Hành động của bạn lại chúc họ may mắn trên hành trình. Sau đó, Hành động của bạn kết thúc phiên vì bạn đã định cấu hình hiệu ứng chuyển đổi End conversation cho ý định no.

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

Hiện tại, các phản hồi cho Hành động của bạn ở dạng tĩnh; khi một cảnh có chứa câu lệnh được kích hoạt, Hành động của bạn sẽ gửi cùng một câu lệnh mỗi lần. Trong phần này, bạn sẽ triển khai phương thức thực hiện có chứa logic để tạo một phản hồi linh hoạt khi trò chuyện.

Phương thức thực hiện của bạn sẽ 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 tin nhắn chào của Hành động dành cho người dùng cũ. Thông báo chào được rút ngắn đối với người dùng cũ và ghi nhận sự trở lại của người dùng: "Một lời chào tuyệt vời, nhà thám hiểm! Chào mừng bạn trở lại vùng đất thần thoại Gryffinberg!"

Đối với lớp học lập trình này, bạn sẽ sử dụng trình chỉnh sửa Hàm của Cloud để chỉnh sửa và triển khai mã phương thức thực hiện.

Hành động của bạn có thể kích hoạt webhook thông báo cho phương thức thực hiện của một sự kiện xảy ra trong lệnh gọi hoặc các phần cụ thể của quá trình thực thi một 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 phương thức thực hiện của bạn cùng với tên của trình xử lý 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 phương thức thực hiện đơn hàng

Trong phần này, bạn sẽ sửa đổi phương thức thực hiện để tạo nhiều lời nhắc 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 phương thức thực hiện, hãy làm theo các bước sau:

  1. Trong cửa sổ dòng lệnh, hãy đảm bảo bạn đang ở thư mục gốc của dự án rồi tạo một thư mục webhooks mới:
mkdir webhooks 
  1. Tạo một tệp mới có tên là 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 (như trình xử lý greeting) và yêu cầu Hành động của bạn sử dụng Chức năng đám mây làm điểm cuối webhook.

  1. Tạo 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 là 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. Trình xử lý này sẽ 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 là 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 đoạn mã 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 mã nguồn

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

Trong đoạn mã trước đó, bạn sẽ định nghĩa trình xử lý greeting. Trình xử lý này sẽ kiểm tra xem trước đây người dùng đã truy cập vào Hành động bằng 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à sẽ 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ẽ xác nhận sự quay lại của người dùng và tạo lời chào đã sửa đổi.

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

Bây giờ, bạn đã định nghĩa được 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 để Hành động biết cần gọi hàm này khi người dùng gọi Hành động của bạn.

Để định cấu hình Hành động nhằm 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 đoạn 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 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 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 một trình duyệt.
  2. Để kiểm thử 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 Input (Đầu vào) rồi nhấn Enter.

Vì trước đó bạn đã kiểm thử Hành động của mình 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. Vì vậy, bạn nhận được lời chào ngắn như sau: "Một lời chào thật kỳ diệu, nhà thám hiểm! Chào mừng bạn trở lại vùng đất thần thoại của Gryffinberg!..."

6. Trực quan hoá hành động bằng Trình tạo thao tác

SDK Actions có khả năng tương tác với một IDE dựa trên nền tảng web có tên là Actions Builder (Trình tạo hành động). API này được tích hợp vào bảng điều khiển Actions. Bạn có thể đẩy hệ thống tệp trên máy 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 di chuyển tất cả nội dung từ các tệp cục bộ sang Trình tạo hành động.

Bảng điều khiển Actions cung cấp bản trình bày trực quan về cấu hình của Hành động. Việc xem được liên kết trực quan Hành động của bạn 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 cho mục đích thử nghiệm.

Để đẩy dự án Actions của bạn và xem dự án đó trong Bảng điều khiển Actions, 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 để đẩy dự án của bạn đế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 một trình duyệt.
  2. Trong Bảng điều khiển Actions, hãy nhấp vào Phát triển ở 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 Scenes (Cảnh) rồi nhấp vào Start (Bắt đầu). Bạn sẽ thấy bản trình bày trực quan cảnh Start của Hành động, như minh hoạ trong ảnh chụp màn hình sau đây:

332404b148609e96.pngS

Dọn dẹp dự án [nên dùng]

Để tránh phát sinh các khoản phí có thể phát sinh, bạn nên xóa các dự án 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:

  1. Để xoá dự án trên đám mây và các tài nguyên, hãy hoàn tất các bước được liệt kê trong phần Tắt (xoá) dự án.
  1. Không bắt buộc: Để xoá dự án ngay lập tức khỏi Bảng điều khiển Actions, 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 ứng dụng Actions for Google Assistant bằng Actions SDK.

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

  • Cách thiết lập 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 Hành động của bạn
  • Cách tạo giao diện trò chuyện có cảnh, ý định, hiệu ứng chuyển đổi, khối đề xuất và phương thức 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 xây dựng Hành động cho Trợ lý Google:

Theo dõi @ActionsOnGoogle trên Twitter để biết những thông báo mới nhất và tweet với #AoGDevs để chia sẻ những sản phẩm của bạn!

Bài khảo sát nhận ý 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.