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 cả loa thông minh, điện thoại, ô tô, TV, tai nghe, v.v. Người dùng trò chuyện với Trợ lý để 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 dành cho 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ụ phương thức thực hiện 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ơ bản để phát triển bằng SDK Hành động cho Trợ lý Google; bạn không cần có kinh nghiệm trước đó về 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ẽ 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 về SDK Hành động cấp 2, bạn sẽ xây dựng thêm Hành động này để tuỳ chỉnh quẻ bói của người dùng dựa trên thông tin họ nhập.
Sản phẩm bạn sẽ tạo ra
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 có các chức năng sau:
- Trả lời người dùng bằng tin nhắn chào mừng
- 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 khối đề xuất mà người dùng có thể nhấp vào để cung cấp thông tin đầu vào
- Sửa đổi lời chào 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 chỉnh 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 thông tin đầu vào của người dùng, còn văn bản bên cạnh loa thể hiện phản hồi của Hành động):


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 Bảng điều khiển Actions 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 phương thức thực hiện bằng trình chỉnh sửa Cloud Functions
Bạn cần có
Môi trường của bạn phải có các công cụ sau:
- 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.js và npm
- 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 Hành động.
Kiểm tra chế độ cài đặt quyền của Google
Để kiểm tra Hành động mà bạn xây dựng 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 Hành động của bạn.
Để bật quyền, hãy làm theo các bước sau:
- Chuyển đến phần Kiểm soát hoạt động.
- Đăng nhập bằng Tài khoản Google của bạn nếu bạn chưa đăng nhập.
- Bật các quyền sau:
- Hoạt động trên web và ứng dụng
- Trong phần 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 dự án Hành động
Dự án Hành động là vùng chứa cho Hành động của bạn.
Để tạo dự án Hành động cho lớp học lập trình này, hãy làm theo các bước sau:
- Mở Bảng điều khiển Actions.
- Nhấp vào Dự án mới.
- Nhập Project name (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.)

- Nhấp vào Tạo dự án.
- Trong màn hình What kind of Action do you want to build? (Bạn muốn tạo loại Hành động nào?), hãy chọn thẻ Custom (Tuỳ chỉnh).
- Nhấp vào Tiếp theo.
- Trên màn hình Bạn muốn tạo ứng dụng như thế nào?, hãy chọn thẻ Dự án trống.
- 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.
Để lấy Mã dự án, hãy làm theo các bước sau:
- 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).
- Nhấp vào Cài đặt dự án.

- 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 bạn trong Google Cloud để triển khai phương thức 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:
- Truy cập vào trang thanh toán của Google Cloud Platform.
- Nhấp vào Thêm tài khoản thanh toán hoặc Tạo tài khoản.
- Nhập thông tin thanh toán.
- 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.
- Truy cập vào trang thanh toán của Google Cloud Platform.
- Nhấp vào thẻ Dự án của tôi.
- Nhấp vào biểu tượng ba dấu chấm trong phần Actions (Hành động) bên cạnh dự án Hành động cho lớp học lập trình.
- Nhấp vào Thay đổi thông tin thanh toán.
- 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.
- 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 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 Hành động giữa Bảng điều khiển Actions và hệ thống tệp cục bộ.
Để cài đặt CLI gactions, 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 Hành động 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 Hành động xuống, hãy làm theo các bước sau:
- Để 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
- Để sao chép cấu hình của dự án Hành động 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 Hành động mà bạn tải xuống từ Bảng điều khiển Actions được trình bày trong cấu trúc tệp YAML. Hình ảnh sau đây cho thấy cấu trúc tệp ở cấp cao:

Cấu trúc tệp bao gồm:
actions/: Đại diện cho dự án Hành động của bạn. Hệ thống sẽ gọiactions.yamlkhi Hành động của bạn được gọi, sau đó gọi tệpcustom/global/actions.intent.MAIN.yaml.custom/: Thư mục mà bạn sẽ làm việc để sửa đổi Hành động.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 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 cụ thể nào và có thể di chuyển giữa các dự án.settings/: Đại diện cho chế độ cài đặt của một dự án Hành động, 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 Hành động tên là MovieTime, thì người dùng có thể gọi Hành động của bạn bằng cách nói một cụm từ như "Ok Google, hãy nói chuyện với MovieTime", trong đó MovieTime là tê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 đó vào môi trường thực tế; 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ể dùng cụm từ "Nói 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. Bạn sẽ tìm hiểu thêm về trình mô phỏng này trong phần sau.
Bạn phải chỉnh sửa lời 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, Hành động của bạn sẽ đưa ra một lời nhắc chung khi lệnh gọi được kích hoạt ("Bắt đầu xây dựng Hành động 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à Hành động gửi lại cho người dùng khi họ gọi Hành động, hãy làm theo các bước sau:
- Mở
custom/global/actions.intent.MAIN.yamltrong trình chỉnh sửa văn bản. - Thay thế văn bản trong trường
speech(Start building your action...) bằng thông báo 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
- 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 của bạn, 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, nhờ đó, 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.
Giờ đây, khi bạn gọi Hành động, Hành động đó sẽ phản hồi bằng lời nhắc tuỳ chỉnh mà bạn đã thêm ("A wondrous greeting, adventurer!...").
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 Hành động. Khi bạn 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 áp dụng cho các phiên bản đã triển khai của dự án Hành động, 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 Hành động trong trình mô phỏng, hãy làm theo các bước sau:
- Để triển khai dự án của bạn lên Bảng điều khiển Actions để thử nghiệm, hãy chạy lệnh sau trong dòng lệnh:
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
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Để gọi Hành động của bạn trong trình mô phỏng, hãy nhập
Talk to my test appvào trường Input (Dữ liệu đầu vào) rồi nhấn phímEnter.

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 lời chào 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 lời chào. Trong phần tiếp theo, bạn sẽ sửa đổi Hành động để cuộc trò chuyện tiếp tục.
Xem nhật ký sự kiện
Khi bạn đang ở thẻ Test (Kiểm thử) trong Bảng điều khiển Actions, 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 ("Nói chuyện với ứng dụng thử nghiệm của tôi") 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:

Nếu nhấp vào mũi tên hướng 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) đã xảy ra trong lượt trò chuyện đó:
userInput: Tương ứng với dữ liệu đầu vào của người dùng ("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 gọi chính của Hành động, đượ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 hiệu ứng chuyển đổi đã chọn trong ý địnhMain invocation, hiện đang 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 biết cách Hành động của bạn hoạt động và là công cụ hữu ích để gỡ lỗi Hành động 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:

4. Tạo cuộc trò chuyện cho Hành động
Giờ đây, khi đã xác định được điều gì sẽ xảy ra sau khi người dùng gọi Hành động, 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 tham gia 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 thì cảnh đó mới 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 có 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 thông tin đầ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 Hành động giả định cung cấp cho người dùng thông tin thực tế 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 quá trình chuyển đổi sang một cảnh có tên là Facts.. Quá trình chuyển đổi này sẽ kích hoạt cảnh Facts, cảnh này sẽ gửi lời nhắc sau cho người dùng: Would you like to hear a fact about cats or dogs? Trong cảnh Facts là một đối tượng có ý định tùy chỉnh có tên là Cat, 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 lời nhắc cho người dùng, trong đó có một thông tin thú vị về mèo.

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 SDK Hành động.
Cùng với nhau, cảnh, ý định và hiệu ứng chuyển đổi tạo nên logic cho cuộc trò chuyệ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 của Hành động. Trong phần sau, bạn sẽ tạo một cảnh và xác định cách cảnh đó được kích hoạt sau khi người dùng gọi Hành động của bạn.
Chuyển 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 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 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:
- Mở
custom/global/actions.intent.MAIN.yamltrong trình chỉnh sửa văn bản. - 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
Thao tác này yêu cầu Hành động của bạn chuyển từ lệnh gọi chính sang cảnh Start.
- Lưu tệp.
- Trong dòng lệnh, hãy tạo một thư mục
scenesmới trong thư mụccustom:
mkdir custom/scenes
- Tạo một tệp mới có tên là
Start.yamltrong thư mụcscenes, đại diện cho cảnhstarttrong Hành động của bạn:
touch custom/scenes/Start.yaml
- Mở
Start.yamltrong trình chỉnh sửa văn bản. - Dán đoạ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 cảnh.
Trong trường hợp này, câu lệnh (Before you continue on your quest...) được thêm vào hàng đợi câu lệnh khi người dùng lần đầu tiên vào cảnh Start.
Thêm khối đề xuất
Khối đề xuất đưa ra các đề xuất mà người dùng có thể nhấp vào. Hành động của bạn sẽ xử lý các đề xuất này dưới dạng dữ liệu đầu vào của người dùng. Trong phần này, bạn sẽ thêm khối đề xuất Yes và No xuất hiện bên dưới câu lệnh 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 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:
- Cập nhật mã trong
Start.yamlcho khớp với đoạn mã sau, trong đó 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"
- 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 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 xem bói 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ử Hành động trong trình mô phỏng, hãy làm theo các bước sau:
- Trong 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
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Nhấp vào Kiểm tra để chuyển đến trình mô phỏng.
- Nhập
Talk to my test appvào trường Input (Dữ liệu đầu vào) rồi nhấnEnter. Hành động của bạn sẽ phản hồi bằng lời nhắcMain invocationvà lời nhắc cảnhStartđược thêm vào, "Trước khi tiếp tục nhiệm vụ, bạn có muốn xem bói không?", cùng với các khối đề xuất đượ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:

- Nhấp vào khối đề xuất Có hoặc Không để trả lời câu hỏi. (Bạn cũng có thể nói "Có" hoặc "Không" hoặc nhập
YeshoặcNovào trường Nhập.)
Khi bạn phản hồi lời nhắc, Hành động của bạn sẽ phản hồi bằng một thông báo cho biết rằng Hành động đó không thể hiểu được thông tin bạn nhập: "Rất tiếc, tôi không hiểu. 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 thông tin đầu vào "Có" hoặc "Không", nên Hành động của bạn sẽ so khớp thông tin đầu vào với ý định NO_MATCH.
Theo mặc định, ý định hệ thống NO_MATCH sẽ đưa ra các câu trả lời chung chung, nhưng bạn có thể tuỳ chỉnh các câu trả lời này để cho người dùng biết rằng bạn không hiểu thông tin 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 thông tin đầu vào của người dùng ba lần.
Thêm ý định yes và no
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 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 ý đị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 ý định yes
Để tạo ý định yes, hãy làm theo các bước sau:
- Trong dòng lệnh, hãy tạo một thư mục mới có tên là
intentstrong thư mụccustom:
mkdir custom/intents
- Tạo một tệp mới có tên
yes.yamltrong thư mụcintents:
touch custom/intents/yes.yaml
- Mở
yes.yamltrong trình chỉnh sửa văn bản. - 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"
- Lưu tệp.
Thêm ý định yes vào cảnh Start
Giờ đây, Hành động có thể hiểu được khi người dùng thể hiện ý định "đồng ý". 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 xem bói không?").
Để thêm đối tượng có ý định tùy chỉnh này vào cảnh Start, hãy làm theo các bước sau:
- Mở
custom/scenes/Start.yamltrong trình chỉnh sửa văn bản. - Thêm trình xử lý
intentEventsvàyesvào cuối tệpStart.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, câu lệnh "Tương lai của bạn phụ thuộc vào vật phẩm bạn chọn sử dụng cho nhiệm vụ..." sẽ được thêm vào hàng đợi câu lệnh. Sau đó, cảnh Start chuyển sang cảnh hệ thống actions.scene.END_CONVERSATION, cảnh này sẽ đưa ra các 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
Tại thời điểm này, Hành động của bạn hiểu được khi nào người dùng muốn nghe vận may của họ và trả về câu trả lời thích hợp.
Để kiểm tra ý định này trong trình mô phỏng, hãy làm theo các bước sau:
- Trong 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
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Nhấp vào Kiểm tra để chuyển đến trình mô phỏng.
- Để kiểm thử Hành động trong trình mô phỏng, hãy nhập
Talk to my test appvào trường Input (Dữ liệu đầu vào) rồi nhấnEnter. - Nhập
Yesvào trường Input (Dữ liệu đầu vào) rồi nhấnEnter. Hoặc bạn có thể nhấp vào khối đề xuất Có.

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 sự trợ giúp mà họ chọn. Sau đó, Hành động của bạn sẽ kết thúc phiên vì bạn đã định cấu hình chuyển đổi End conversation cho ý định yes.
Tạo ý định no
Bây giờ, 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 bói vận may.
Để tạo ý định này, hãy làm theo các bước sau:
- Trong dòng lệnh, hãy tạo một tệp mới có tên
no.yamltrong thư mụcintents:
touch custom/intents/no.yaml
- Mở
no.yamltrong trình chỉnh sửa văn bản. - 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
- 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 thể hiện "không" hoặc điều gì đó 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 nhiệm vụ, bạn có muốn xem bói không?").
Để thêm ý định này cho cảnh Start, hãy làm theo các bước sau:
- Mở
custom/scenes/Start.yamltrong trình chỉnh sửa văn bản. - Thêm trình xử lý
nosau đây vào bên dưới trình xử lýyestrongStart.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
- Lưu tệp.
Kiểm thử ý định no trong trình mô phỏng
Tại thời điểm này, Hành động của bạn hiểu được khi người dùng không muốn nghe về vận may của họ và trả về phản hồi thích hợp.
Để kiểm tra ý định này trong trình mô phỏng, hãy làm theo các bước sau:
- Trong 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
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Nhấp vào Kiểm tra để chuyển đến trình mô phỏng.
- Nhập
Talk to my test appvào trường Input (Dữ liệu đầu vào) rồi nhấnEnter. - Nhập
Novào trường Input (Dữ liệu đầu vào) rồi nhấnEnter. Ngoài ra, bạn có thể nhấp vào khối đề xuấtNo.

Thay vì cho người dùng biết vận may của họ, Hành động của bạn chúc họ may mắn trên hành trình của mình. Sau đó, Hành động của bạn sẽ kết thúc phiên vì bạn đã định cấu hình 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 câu trả lời của Hành động 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 dịch vụ thực hiện yêu cầu chứa logic để tạo câu trả lời linh hoạt cho cuộc trò chuyện.
Phương thức 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 lời chào của Hành động cho người dùng cũ. Tin nhắn 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 bạn, nhà thám hiểm! Chào mừng bạn trở lại vùng đất Gryffinberg huyền thoại!"
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.
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 bạn về một sự kiện xảy ra trong quá trình gọi hoặc các phần cụ thể trong 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 phương thức thực hiệ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
Trong phần này, bạn sẽ sửa đổi phương thức thực hiện để tạo các lời nhắc 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 phương thức thực hiện, hãy làm theo các bước sau:
- Trong dòng lệnh, hãy đảm bảo bạn đang ở trong thư mục gốc của dự án và tạo một thư mục
webhooksmới:
mkdir webhooks
- Tạo một tệp mới có tên
ActionsOnGoogleFulfillment.yamltrong thư mụcwebhooks:
touch webhooks/ActionsOnGoogleFulfillment.yaml
- Mở
ActionsOnGoogleFulfillment.yamltrong trình chỉnh sửa văn bản. - Thêm trình xử lý
greetingvà nội dunginlineCloudFunctionvào tệpActionsOnGoogleFulfillment.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 sử dụng Cloud Functions làm điểm cuối webhook.
- Tạo một thư mục
ActionsOnGoogleFulfillmentmới trong thư mụcwebhooks:
mkdir webhooks/ActionsOnGoogleFulfillment
- Tạo một tệp mới có tên
index.jstrong thư mụcActionsOnGoogleFulfillment:
touch webhooks/ActionsOnGoogleFulfillment/index.js
- Mở
index.jstrong trình chỉnh sửa văn bản. - 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(>39;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.
- Lưu tệp.
- Tạo một tệp mới có tên
package.jsontrong thư mụcActionsOnGoogleFulfillment:
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.
- Mở
package.jsontrong trình chỉnh sửa văn bản. - Sao chép mã từ kho lưu trữ GitHub này rồi dán vào tệp
package.json. - Lưu tệp.
Tìm hiểu 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 Hành động có thuộc tính lastSeenTime hay chưa. Nếu thuộc tính lastSeenTime không được xác định, 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ẽ ghi nhận việc người dùng quay lại 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
Giờ đây, 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 để Hành động của bạn biết cách 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 của bạn nhằm gọi trình xử lý greeting mới, hãy làm theo các bước sau:
- Mở
custom/global/actions.intent.MAIN.yamltrong trình chỉnh sửa văn bản. - Thay thế mã trong
actions.intent.MAIN.yamlbằng mã sau:
actions.intent.MAIN.yaml
handler:
webhookHandler: greeting
transitionToScene: Start
- Lưu tệp.
Giờ đây, khi ý định gọi chính của bạn 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ử Hành động trong trình mô phỏng, hãy làm theo các bước sau:
- Trong 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
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Để kiểm thử Hành động trong trình mô phỏng, hãy nhập
Talk to my test appvào trường Input (Dữ liệu đầu vào) rồi nhấnEnter.
Vì bạn đã thử nghiệm Hành động 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, vì vậy, bạn sẽ nhận được lời chào ngắn gọn sau: "Chào mừng bạn, nhà thám hiểm! Chào mừng bạn trở lại vùng đất Gryffinberg huyền thoại!..."
6. Trực quan hoá 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 nền tảng web có tên là Actions Builder được tích hợp vào Bảng điều khiển Actions. 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 di chuyển tất cả nội dung từ tệp cục bộ sang Trình tạo hành động.
Bảng điều khiển Actions cung cấp hình ảnh trực quan về cấu hình của Hành động. Việc xem Hành động được vạch ra 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 để thử nghiệm.
Để đẩy dự án Hành động và xem dự án đó trong Bảng điều khiển Actions, hãy làm theo các bước sau:
- Trong dòng lệnh, 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.
- Sao chép URL được cung cấp rồi dán vào trình duyệt.
- Trong Bảng điều khiển Actions, hãy nhấp vào Develop (Phát triển) trong thanh điều hướng trên cùng.
- 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 hình ảnh đại diện cho cảnh
Startcủa Hành động, như trong ảnh chụp màn hình sau:

Dọn dẹp dự án [nên làm]
Để tránh phát sinh phí, bạn nên xoá những dự án mà bạn không định sử dụng. Để xoá 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:
- Để 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 nêu trong phần Tắt (xoá) dự án.
- Không bắt buộc: Để xoá ngay dự án của bạn 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 đã biết kiến thức cơ bản về cách xây dựng Hành động cho Trợ lý Google bằng SDK Hành động.
Nội dung bạn đã đề cập
- Cách thiết lập dự án Hành động trong Bảng điều khiển Actions
- Cách sử dụng SDK Hành động để xây dựng dự án Hành động 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 cuộc trò chuyện với Hành động 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, khối đề xuất và phương thức thực hiện
- Cách kiểm tra 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:
- Trang web tài liệu chính thức để phát triển Hành động cho Trợ lý Google
- Trang GitHub của Actions on Google để xem mã mẫu và thư viện
- Cộng đồng Reddit chính thức dành cho các nhà phát triển làm việc với Trợ lý
Theo dõi @ActionsOnGoogle trên Twitter để biết thông báo mới nhất và tweet bằng #AoGDevs để chia sẻ những gì bạn xây dựng!
Khảo sát ý kiến
Trước khi rời đi, vui lòng điền vào một bản khảo sát ngắn về trải nghiệm của bạn.