1. Khái quát chung
Nền tảng nhà phát triển Google Assistant cho phép bạn tạo phần mềm để mở rộng chức năng của Google Assistant, 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.v. Người dùng tương tác với Trợ lý trong cuộc trò chuyện để hoàn thành công việc, chẳng hạn như mua hàng tạp hóa hoặc đặt chuyến đi. Với tư cách 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 bên thứ ba 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 cấp độ trung cấp để phát triển với Google Assistant, Cloud Functions và Cloud Firestore. Trong lớp học lập trình này, bạn sẽ xây dựng một trò chơi có tên "Thực hành đánh vần" sử dụng Trợ lý Google để yêu cầu người dùng đánh vần các từ.
Những gì bạn sẽ xây dựng
Trong lớp học lập trình này, bạn sẽ xây dựng một trò chơi phức tạp với chức năng sau:
- Nhận phản hồi chính tả từ người dùng và tùy thuộc vào giá trị, sửa đổi lời nhắc hội thoại
- Trả lời bằng các gợi ý liên quan đến cách đánh vần từ đó, như định nghĩa của từ đó hoặc lặp lại từ đó
- Tạo vòng lặp trò chơi để người dùng có thể tương tác lại với Trợ lý sau khi đánh vần từ đó
Trước khi bắt đầu xây dựng, bạn có thể tương tác với Hành động trực tiếp trên thiết bị hỗ trợ Google Assistant bằng cách nói "Ok Google, nói chuyện với Thực hành chính tả". Đường dẫn mặc định thông qua Hành động này cho người dùng cũ trông giống như tương tác sau:
Khi bạn hoàn thành lớp học lập trình này, Hành động đã hoàn thành của bạn sẽ có luồng hội thoại sau:
Bạn sẽ học được gì
- Cách tương tác với Cloud Firestore
- Cách sử dụng slot để thu thập dữ liệu từ người dùng
- Cách xử lý dữ liệu nhập của người dùng và trả về phản hồi
- Cách sử dụng các điều kiện để thêm logic vào một cảnh
- Cách thêm vòng lặp trò chơi
Những gì bạn cần
Các điều kiện tiên quyết cho lớp học lập trình này bao gồm:
- Trình duyệt web, chẳng hạn như Google Chrome
- Một IDE để viết các hàm đám mây.
- Một phương thức thanh toán. Lớp học lập trình này sử dụng Chức năng đám mây cho Firebase, yêu cầu dự án của bạn phải nằm trong gói giá Firebase Blaze ( Tìm hiểu thêm ).
- Một thiết bị đầu cuối để chạy lệnh shell
- Node.js 10 trở lên
2. Lấy mã chức năng
Sao chép kho GitHub từ dòng lệnh:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Tạo dự án Firebase và Thiết lập ứng dụng của bạn
Tạo dự án Firebase
- Đăng nhập vào Firebase .
- Trong bảng điều khiển Firebase, hãy nhấp vào Thêm dự án (hoặc Tạo dự án ), sau đó đặt tên cho dự án Firebase của bạn
Spelling-Practice
.
- Nhấp qua các tùy chọn tạo dự án. Chấp nhận các điều khoản của Firebase nếu được nhắc. Bỏ qua việc thiết lập Google Analytics vì bạn sẽ không sử dụng Analytics cho ứng dụng này.
Để tìm hiểu thêm về các dự án Firebase, hãy xem Tìm hiểu các dự án Firebase .
Nâng cấp lên gói giá Blaze
Để sử dụng Cloud Functions cho Firebase, bạn cần nâng cấp dự án Firebase của mình lên gói giá Blaze , nghĩa là bạn sẽ đính kèm tài khoản Google Cloud Billing vào dự án của mình. Điều này yêu cầu bạn cung cấp thẻ tín dụng hoặc phương thức thanh toán khác.
Tất cả các dự án Firebase, bao gồm cả những dự án trong gói Blaze, vẫn có quyền truy cập vào hạn mức sử dụng miễn phí cho Chức năng đám mây. Các bước được nêu trong lớp học lập trình này sẽ nằm trong giới hạn sử dụng miễn phí. Tuy nhiên, bạn sẽ phải trả một khoản phí nhỏ ( khoảng 0,03 USD ) từ Cloud Storage, được sử dụng để lưu trữ hình ảnh xây dựng Chức năng đám mây của bạn.
4. Cài đặt Firebase CLI
Firebase CLI (giao diện dòng lệnh) cho phép bạn triển khai các Chức năng đám mây của mình.
Có một số tùy chọn để cài đặt Firebase CLI tùy thuộc vào hệ điều hành và trường hợp sử dụng của bạn. Các bước sau đây mô tả tùy chọn phổ biến nhất nếu bạn cũng đang sử dụng Cloud Functions.
- Đảm bảo bạn đã cài đặt npm thường đi kèm với Node.js.
- Cài đặt hoặc nâng cấp CLI bằng cách chạy lệnh npm sau:
$ npm -g install firebase-tools
- Xác minh rằng CLI đã được cài đặt chính xác bằng cách chạy:
$ firebase --version
Đảm bảo phiên bản Firebase CLI là 9.0.0 trở lên để có tất cả các tính năng mới nhất cần thiết cho Chức năng đám mây. Nếu không, hãy chạy npm install -g firebase-tools để nâng cấp như hình trên.
- Cho phép CLI Firebase bằng cách chạy:
$ firebase login
- Từ thư mục bắt đầu chính tả-chức năng, hãy thiết lập Firebase CLI để sử dụng dự án Firebase của bạn. Chạy lệnh sau, chọn ID dự án của bạn, sau đó làm theo hướng dẫn. Khi được nhắc, bạn có thể chọn bất kỳ Bí danh nào, chẳng hạn như
codelab
chẳng hạn.
$ firebase use --add
5. Thư mục chức năng
Bây giờ, bạn sẽ thêm chức năng bằng cách sử dụng SDK Firebase dành cho Cloud Functions để xây dựng phần phụ trợ cho trò chơi, Luyện tập chính tả .
Cloud Functions cho phép bạn có mã chạy trên đám mây mà không cần phải thiết lập máy chủ. Lớp học lập trình này sẽ chỉ cho bạn cách xây dựng các hàm phản ứng với các sự kiện Xác thực Firebase, Lưu trữ đám mây và Cơ sở dữ liệu thời gian thực Firebase. Hãy bắt đầu với Xác thực.
Khi sử dụng SDK Firebase cho Chức năng đám mây, mã chức năng của bạn sẽ nằm trong thư mục functions
(theo mặc định). Để giúp bạn dễ dàng hơn, chúng tôi đã tạo tệp functions/index.js
để chứa mã của bạn. Vui lòng kiểm tra thư mục functions
trước khi tiếp tục.
$ cd functions $ ls
Mã chức năng của bạn cũng là một ứng dụng Node.js và do đó cần có package.json
cung cấp một số thông tin về ứng dụng của bạn và liệt kê các phần phụ thuộc.
Nếu bạn chưa quen với Node.js , bạn nên tìm hiểu thêm về nó trước khi tiếp tục lớp học lập trình.
Tệp package.json
đã liệt kê hai phần phụ thuộc bắt buộc: SDK Firebase cho Chức năng đám mây và SDK quản trị Firebase . Để cài đặt chúng cục bộ, hãy chạy npm install
từ thư mục functions
:
$ npm install
Bây giờ chúng ta hãy xem tệp index.js
:
chỉ mục.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here. // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Trước tiên, bạn sẽ nhập các mô-đun cần thiết, sau đó viết bốn hàm thay cho TODO. Tiếp tục đến bước tiếp theo của lớp học lập trình để nhập mô-đun.
6. Nhập các mô-đun cần thiết
Lớp học lập trình này yêu cầu ba mô-đun.
- Mô-đun
firebase-functions
cho phép chúng tôi viết các trình kích hoạt cho Chức năng đám mây của mình - Mô-đun
firebase-admin
cho phép chúng tôi sử dụng nền tảng Firebase trên máy chủ có quyền truy cập quản trị viên, chẳng hạn như để ghi vào Cloud Firestore. - Thư viện hoàn thành SDK hành động Node.js đáp ứng các trình xử lý SDK hành động cho Trợ lý Google.
- Cài đặt SDK hành động bằng cách chạy lệnh npm sau:
$ npm install @assistant/conversation
- Trong tệp
index.js
, hãy thay thế TODO đầu tiên bằng TODO sau đây.
Những thay đổi này sẽ nhập từng mô-đun cần thiết.
Ngoài ra, SDK quản trị Firebase có thể được định cấu hình tự động khi được triển khai trên môi trường Chức năng đám mây hoặc vùng chứa Google Cloud khác. Đây là điều đang xảy ra khi chúng ta gọi admin.initializeApp();
trong những thay đổi dưới đây.
chỉ mục.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // Import the Actions SDK const {conversation} = require('@assistant/conversation'); const https = require('https'); const app = conversation(); const cors = require('cors')({origin: true}); // Import the Firebase SDK for Cloud Functions. const functions = require('firebase-functions'); // Import and initialize the Firebase Admin SDK. const admin = require('firebase-admin'); admin.initializeApp(); // To access Cloud Firestore const db = admin.firestore(); // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the shuffleWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Bây giờ, hãy thêm logic nghiệp vụ bằng cách sử dụng các hàm để hỗ trợ Hành động của Trợ lý.
7. Tạo hàm
Lấy định nghĩa từ và viết chúng vào Cloud Firestore
Bạn sẽ sử dụng API công khai dictionaryapi.dev
để lấy định nghĩa của từ.
Trong tệp index.js
, hãy thay thế TODO cho getWordDetailsFromDictionaryAPI
bằng nội dung sau:
chỉ mục.js
// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service // Function uses service provided by https://dictionaryapi.dev/ async function getWordDetailsFromDictionaryAPI(word) { let responseData=""; let req = https.request({ host: 'api.dictionaryapi.dev', port: 443, path:'/api/v2/entries/en/' + word, method:'GET' }, (res) => { res.setEncoding('utf8'); res.on('data', d => { responseData+=d; }) res.on('end',function(){ let object = JSON.parse(responseData) const wordListRef = db.collection('wordlist'); wordListRef.doc(object[0].word).set( object[0] ); return responseData; }); }); req.end(); }
Thêm trình kích hoạt Cloud Firestore
Tiếp theo, bạn sẽ tạo Chức năng đám mây kích hoạt bất cứ khi nào tài liệu mới được tạo trong Cloud Firestore. Nó sẽ gọi API dictionaryapi.dev
để lấy định nghĩa từ thông qua hàm getWordDetailsFromDictionaryAPI
mà chúng tôi đã viết ở trên.
Trong tệp index.js
, hãy thay thế TODO cho createSpellingPracticeWord
bằng nội dung sau:
chỉ mục.js
// Trình kích hoạt Firestore tìm nạp định nghĩa từ thông qua getWordDetailsFromDictionaryAPI cho mọi tài liệu Firestore mới
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Nhận danh sách các từ cho trò chơi
Bạn có thể viết Hàm đám mây để truy xuất danh sách các từ thực hành chính tả từ Cloud Firestore cho Trợ lý. Đối với điều này, chúng tôi sử dụng trình xử lý ứng dụng.
Trong tệp index.js
, hãy thay thế TODO cho getSpellingWordList
bằng nội dung sau.
Việc thêm chức năng này vào app.handle
đặc biệt là một cách giúp chức năng này có thể truy cập được từ Trợ lý.
chỉ mục.js
// Store the list of spelling words in Assistant session app.handle('getSpellingWordList', conv => { const wordListRef = db.collection('wordlist').limit(50); const snapshot = wordListRef; if (snapshot.empty) { console.log('No matching documents.'); return; } VocabularyList = [] return snapshot.get().then(snapshot => { snapshot.forEach(doc => { if (doc.data().word) { let definition = 'unknown'; let audio = 'unknown'; try { if(doc.data().hasOwnProperty('meanings')) { if(doc.data().meanings[0].hasOwnProperty('definitions')) { definition = doc.data().meanings[0].definitions[0].definition; } } if(doc.data().hasOwnProperty('phonetics')) { if(doc.data().phonetics.length > 0) audio = doc.data().phonetics[0].audio; } } catch (error) { console.log(error); } let obj = { word: doc.data().word, answer: doc.data().word.split("").join(" "), definition: definition, audio: audio } VocabularyList.push(obj); } // Shuffle the array let currentIndex = VocabularyList.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = VocabularyList[currentIndex]; VocabularyList[currentIndex] = VocabularyList[randomIndex]; VocabularyList[randomIndex] = temporaryValue; } conv.session.params.vocabWord = VocabularyList; conv.session.params.vocabWordIndex = 0; }); }); })
Nhận một lời từ phiên Trợ lý
Bạn có thể viết Hàm đám mây trả về từ đánh vần tiếp theo từ danh sách từ.
Trong tệp index.js
, thay thế TODO cho getSpellingWord
bằng nội dung sau:
chỉ mục.js
// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response app.handle('getSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { conv.session.params.vocabWordIndex+=1; const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Cho phép trò chơi lặp lại từ đó
Bạn có thể viết Hàm đám mây lặp lại từ hiện tại cho trò chơi.
Trong tệp index.js
, hãy thay thế TODO cho repeatSpellingWord
bằng nội dung sau:
chỉ mục.js
// Returns current spelling word app.handle('repeatSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Nhận định nghĩa của từ
Bạn có thể viết Hàm đám mây cung cấp định nghĩa của từ hiện tại cho trò chơi.
Trong tệp index.js
, hãy thay thế TODO cho definitionOfSpellingWord
bằng nội dung sau:
chỉ mục.js
// Returns spelling word definition from Assistant session parameter app.handle('definitionOfSpellingWord', conv => { conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition); });
Kiểm tra phản hồi chính tả của người dùng
Bạn có thể viết Hàm đám mây để xác minh phản hồi của người dùng về cách đánh vần từ hiện tại cho trò chơi.
Trong tệp index.js
, hãy thay thế TODO cho verifySpellingWord
bằng nội dung sau:
chỉ mục.js
// Verifies user spelling response app.handle('verifySpellingWord', conv => { try { userResponse = conv.intent.params.userresponse.resolved.join(""); if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) { conv.add('You are correct. Say next to continue.'); } else { conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.'); } } catch (error) { conv.add('Sorry. I did not understand your response' ); } }); exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
Triển khai tất cả các chức năng của bạn
Chức năng đám mây của bạn sẽ chỉ hoạt động sau khi bạn triển khai chúng lên Firebase.
Từ thư mục gốc của thư mục spelling-functions-start
, hãy chạy lệnh sau:
$ firebase deploy --only functions
Đây là đầu ra của giao diện điều khiển bạn sẽ thấy:
i deploying functions i functions: ensuring necessary APIs are enabled... ⚠ functions: missing necessary APIs. Enabling now... i env: ensuring necessary APIs are enabled... ⚠ env: missing necessary APIs. Enabling now... i functions: waiting for APIs to activate... i env: waiting for APIs to activate... ✔ env: all necessary APIs are enabled ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... i functions: packaged functions (X.XX KB) for uploading ✔ functions: functions folder uploaded successfully i starting release process (may take several minutes)... i functions: creating function createSpellingPracticeWord(us-central1)... ✔ functions[createSpellingPracticeWord(us-central1)]: Successful create operation. i functions: creating function ActionsOnGoogleFulfillment(us-central1)... ✔ functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation. ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview
Ghi lại url điểm cuối http của hàm ActionsOnGoogleFulfillment để sử dụng sau. Để lấy điểm cuối, hãy mở Bảng điều khiển Firebase rồi nhấp vào dự án thực hành chính tả . Mở bảng điều khiển Hàm để xem điểm cuối của hàm.
Bạn đã hoàn thành việc thêm tất cả các chức năng cần thiết. Bây giờ hãy chuyển sang thiết lập Cloud Firestore.
8. Kích hoạt Cloud Firestore
Bạn sẽ cần kích hoạt Cloud Firestore.
Trong phần Build của bảng điều khiển Firebase, nhấp vào Firestore . Sau đó, nhấp vào Tạo cơ sở dữ liệu .
Quyền truy cập vào dữ liệu trong Cloud Firestore được kiểm soát bởi Quy tắc bảo mật. Trước tiên, bạn cần đặt một số quy tắc cơ bản về dữ liệu để bắt đầu. Nhấp vào Firestore rồi trong tab Quy tắc của bảng điều khiển Firebase, thêm các quy tắc sau, sau đó nhấp vào Xuất bản .
Các quy tắc sau hạn chế quyền truy cập dữ liệu đối với người dùng đã đăng nhập, điều này ngăn người dùng chưa được xác thực đọc hoặc viết.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // // WARNING: These rules are insecure! We will replace them with // more secure rules later in the codelab // allow read, write: if request.auth != null; } } }
9. Thêm dữ liệu từ chính tả vào Cloud Firestore
Trong bước này, bạn sẽ ghi dữ liệu từ chính tả vào Cloud Firestore để có thể tạo danh sách các từ cho Trợ lý (và trò chơi).
Dữ liệu Cloud Firestore được cấu trúc thành các bộ sưu tập, tài liệu, trường và bộ sưu tập con. Mỗi từ trong trò chơi sẽ được lưu trữ dưới dạng tài liệu riêng trong bộ sưu tập cấp cao nhất có tên là wordlist
. Đối với mọi tài liệu mới trong bộ sưu tập Firestore, hàm createSpellingPracticeWord sẽ được kích hoạt để lấy chi tiết từ từ dịch vụ API Từ điển .
Tạo bộ sưu tập Cloud Firestore
- Trong bảng điều khiển Firebase, điều hướng đến phần Cloud Firestore.
- Nhấp vào + Bắt đầu bộ sưu tập .
- Trong hộp văn bản Collection ID , nhập
wordlist
, sau đó nhấp vào Next .
Tiếp theo, chúng ta sẽ tạo một tài liệu cho một từ: thỏa thuận
- Trong hộp văn bản ID tài liệu , nhập
agreement
. - Trong hộp văn bản Trường , nhập
word
và trong hộp văn bản Giá trị , nhậpagreement
. - Nhấp vào để lưu .
Khi bạn thêm tài liệu này vào Cloud Firestore, nó sẽ kích hoạt hàm createSpellingPracticeWord của bạn để tìm nạp chi tiết định nghĩa cho từ đó. Thêm nhiều từ hơn (ví dụ: awe, car, true, Tell,tốt hơn, đi lại, ...) bằng cách tạo tài liệu mới cho mỗi từ.
10. Thiết lập Trợ lý Google
Các phần sau đây mô tả cách thiết lập môi trường phát triển Trợ lý Google và tạo dự án Hành động của bạn.
Kiểm tra cài đặt quyền Google của bạn
Để 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 trang 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 làm như vậy.
- Kích hoạt các quyền sau:
- Hoạt động trên web và ứng dụng
- Trong Hoạt động web và ứng dụng , hãy chọn hộp kiểm bên cạnh Bao gồm lịch sử Chrome và hoạt động từ các trang web, ứng dụng và thiết bị sử dụng dịch vụ của Google .
Tạo dự án Hành động
Dự án Hành động của bạn là nơi chứa 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 Hành động .
- Nhấp vào Dự án mới .
- Chấp nhận điều khoản dịch vụ
- Nhập hoặc chọn
spelling-practice-codelab
mà bạn đã tạo bằng Bảng điều khiển Firebase. (Tên này dùng để tham khảo nội bộ của bạn. 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 Nhập dự án .
- Trong phần Bạn muốn xây dựng loại hành động nào? màn hình, hãy chọn thẻ Tùy chỉnh .
- Bấm tiếp .
- Chọn thẻ Dự án trống .
- Nhấp vào Bắt đầu xây dựng .
- Nhập Thực hành chính tả cho tên hiển thị và nhấp vào lưu.
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ời gọi . Ví dụ: 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ư "Này Google, nói chuyện với Thực hành chính tả", trong đó Thực hành chính tả 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 nó vào sản xuất; tuy nhiên, để kiểm tra Hành động của mình, 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 mình.
Định cấu hình thực hiện
Bạn cần kết nối với Trợ lý các trình xử lý sự kiện cho Hàm đám mây mà bạn đã viết và triển khai trước đó trong lớp học lập trình này.
Để định cấu hình quá trình thực hiện của bạn, hãy làm theo các bước sau:
- Nhấp vào Webhook trong điều hướng bên cạnh.
- Chọn điểm cuối Https làm tùy chọn thực hiện:
- Nhập URL của điểm cuối hàm của bạn vào hộp văn bản điểm cuối HTTP , sau đó nhấp vào Lưu .
Trong phần tiếp theo, bạn sẽ tùy chỉnh lời nhắc cho lệnh gọi chính của mình trong bảng điều khiển Hành động.
Thiết lập lời gọi chính
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, Trình tạo hành động cung cấp lời nhắc chung khi lệnh gọi của bạn được kích hoạt ( "Bắt đầu xây dựng Hành động của bạn bằng cách xác định lệnh gọi chính.").
Để 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:
- Nhấp vào Lời gọi chính trong điều hướng.
- Chọn
Call your webhook
và thêm tên trình xử lý sự kiệngetSpellingWordList
vào hộp văn bản. - Trong trình soạn thảo mã, hãy thay thế văn bản trong trường
speech
bằng thông báo chào mừng sau:Welcome to Spelling Practice
Lưu ý: Bạn có thể sử dụng định dạng YAML hoặc JSON để chỉnh sửa lời nhắc của mình.
- Nhấp vào để lưu .
Kiểm tra lệnh gọi chính trong trình mô phỏng
Bảng điều khiển Hành động cung cấp một công cụ web để kiểm tra Hành động của bạn được gọi là trình mô phỏng . Giao diện mô phỏng các thiết bị phần cứng và cài đặt của chúng, vì vậy bạn có thể trò chuyện với Hành động của mình như thể nó đang chạy trên Màn hình thông minh, điện thoại, loa hoặc KaiOS.
Để kiểm tra lời gọi chính của Hành động của bạn trong trình mô phỏng, hãy làm theo các bước sau:
- Trong thanh điều hướng trên cùng, hãy nhấp vào Kiểm tra để đi tới trình mô phỏng.
- Để gọi Hành động của bạn trong trình mô phỏng, hãy nhập
Talk to Spelling Practice
vào trường nhập ở trên cùng bên trái, sau đó nhấn Enter trên bàn phím của bạn.
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 thông báo chào mừng tùy chỉnh của bạn. Tại thời điểm này, cuộc trò chuyện kết thúc sau khi Trợ lý trả lời bằng lời chào.
Xem nhật ký sự kiện
Khi bạn ở tab Kiểm tra , bảng bên phải hiển thị nhật ký sự kiện , hiển thị lịch sử hội thoại 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 đó. Để xem nhật ký sự kiện hãy nhấp vào biểu tượng màu xám trước sự kiện.
Hành động của bạn hiện có một nhật ký sự kiện hiển thị cả thông tin nhập của người dùng ( "Talk to Spelling Practice" ) và phản hồi của Hành động của bạn. Ảnh chụp màn hình sau đây hiển thị nhật ký sự kiện Hành động của bạn:
11. Xây dựng đoạn hội thoại để luyện tập chính tả
Bây giờ bạn đã 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, bạn có thể xây dựng phần còn lại của cuộc trò chuyện về Hành động của mình. Luyện tập chính tả có bốn cảnh và bạn phải kích hoạt từng cảnh trước khi cảnh đó có thể chạy. Cách phổ biến nhất để kích hoạt một cảnh là định cấu hình Hành động của bạn để khi người dùng khớp với ý định của người dùng trong một cảnh, ý định đó sẽ kích hoạt quá trình chuyển đổi sang cảnh khác và kích hoạt cảnh đó.
Chuyển từ lời gọi chính sang cảnh bắt đầu
Trong phần này, bạn tạo một cảnh mới có tên Start
, cảnh này sẽ gửi lời nhắc tới người dùng hỏi xem họ có muốn bắt đầu chơi Luyện tập chính tả hay không. Bạn cũng thêm quá trình 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 tiếp vào cảnh đó, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng trên cùng. Sau đó, nhấp vào Lời gọi chính trong điều hướng bên trái.
- Trong phần Chuyển tiếp ở bên phải, nhấp vào menu thả xuống, sau đó nhập
Start
vào trường văn bản.
- Nhấp vào Thêm . Thao tác này tạo ra một cảnh có tên là
Start
và yêu cầu Hành động chuyển sang cảnhStart
sau khi Hành động gửi lời nhắc chào mừng cho người dùng. - Nhấp vào Cảnh trong điều hướng bên trái để hiển thị danh sách cảnh.
- Trong Cảnh , nhấp vào Bắt đầu để xem cảnh
Start
. - Nhấp vào + trong phần Khi nhập của cảnh
Start
. - Chọn Gửi lời nhắc .
- Thay thế câu trong trường
speech
(Enter the response that users will see or hear...
) bằng một câu hỏi để hỏi người dùng:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
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 dữ liệu nhập của người dùng. Ở phần này bạn thêm chip gợi ý xuất hiện bên dưới lời nhắc bạn vừa cấu hình ( Do you want to play
Spelling Practice
?
) để hỗ trợ người dùng trên các thiết bị có màn hình.
Để thêm khối gợi ý vào lời nhắc của cảnh Start
, hãy làm theo các bước sau:
- Trong cảnh
Start
, hãy nhấp vào các đề xuất bên dưới trình chỉnh sửa mã. Hành động này sẽ thêm một khối gợi ý duy nhất. - Trong trường
title
, thay thếSuggested Response
bằng'Yes'
. - Sử dụng định dạng tương tự, thêm chip gợi ý theo cách thủ công có tiêu đề
'No'
và'Help with Phonetics'
. Mã của bạn sẽ trông giống như đoạn mã sau: - Nhấp vào để lưu .
Kiểm tra hành động của bạn trong trình mô phỏng
Tại thời điểm này, Hành động của bạn sẽ chuyển từ lệnh gọi chính sang cảnh Bắt đầu và hỏi người dùng xem họ có muốn tiếp tục không. Các chip gợi ý 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:
- Trong thanh điều hướng, hãy nhấp vào Kiểm tra để đưa bạn đến trình mô phỏng.
- Để kiểm tra Hành động của bạn trong trình mô phỏng, hãy nhập Nói
Talk to Spelling Practice
vào trường Đầu vào. - Bấm phím Enter . Hành động của bạn sẽ phản hồi bằng lời
Main invocation
và lời nhắc cảnhStart
được thêm vào, "Chào mừng đến với Luyện tập chính tả. Sử dụng bảng chữ cái ngữ âm để đánh vần từ đó. Ví dụ: alpha cho a, bravo cho b, charlie cho c, v.v. Bạn có muốn Tiếp tục?" .
Ảnh chụp màn hình sau đây cho thấy sự tương tác này:
- Bấm vào chip gợi ý
Yes
hoặcNo
hoặcHelp with Phonetics
để phản hồi lời nhắc. (Bạn cũng có thể nói "Có" hoặc "Không" hoặc "Trợ giúp về Ngữ âm" hoặc nhậpYes
hoặcNo
hoặcHelp with Phonetics
trong trường Nhập liệu .)
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 Hành động đó không thể hiểu thông tin bạn nhập: "Xin lỗi, tôi chưa hiểu. Bạn có thể thử lại không?" Vì bạn chưa định cấu hình Hành động của mình để hiểu và phản hồi với thông tin nhập "Có" hoặc "Không" , nên Hành động của bạn sẽ khớp thông tin đầu vào của bạn với ý định NO_MATCH
.
Theo mặc định, mục đích của hệ thống NO_MATCH
cung cấp các phản hồi chung nhưng bạn có thể tùy 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 thông tin họ nhập. Trợ lý 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ể khớp thông tin nhập của người dùng ba lần.
Thêm không và ý định ngữ âm
Giờ đây, 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 của mình để hiểu câu trả lời của người dùng ( "Có" hoặc "Không" hoặc "Trợ giúp về Ngữ âm" ). Trong các phần sau, bạn tạo các ý định của người dùng phù hợp khi người dùng nói "Có" hoặc "Không" hoặc "Trợ giúp về Ngữ âm" và thêm các ý định này vào cảnh Start
. Chúng tôi sẽ sử dụng ý định hệ thống yes
và sẽ tạo các ý định khác.
no
ý định
Bây giờ, bạn cần tạo ra ý định no
hiểu và phản hồi với người dùng khi họ không muốn chơi trò chơi. Để tạo ý định này, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
- Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho ý định mới
no
và nhấn Enter . - Nhấp vào không để mở trang
no
ý định. - Trong phần Thêm cụm từ đào tạo , nhấp vào hộp văn bản Nhập cụm từ và nhập các cụm từ sau:
-
No
-
N
-
I don't want
-
nope
- Nhấp vào để lưu .
Thêm no
ý định vào cảnh Start
Bây giờ, 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ư "no" , chẳng hạn như "nope" . Bạn cần thêm mục đích no
người dùng vào cảnh Start
vì người dùng đang phản hồi lời nhắc Start
(" Chào mừng bạn đến với Thực hành Chính tả. Sử dụng bảng chữ cái phiên âm để đánh vần từ này. Ví dụ: alpha cho a, bravo cho b, charlie cho c v.v. Bạn có muốn tiếp tục không?" ).
Để thêm ý định này cho cảnh Start
, hãy làm theo các bước sau:
- Nhấp vào cảnh Bắt đầu trong điều hướng.
- Nhấp vào dấu + (dấu cộng) trong cảnh
Start
bên cạnh Xử lý ý định của người dùng. - Trong phần Ý định , chọn không trong trình đơn thả xuống.
- Nhấp vào Gửi lời nhắc và cập nhật trường
speech
với nội dung sau:Good Bye
.
Mã trong trình soạn thảo của bạn sẽ giống như đoạn mã sau:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Trong phần Chuyển tiếp , chọn Kết thúc cuộc trò chuyện từ danh sách thả xuống.
- Nhấp vào để lưu .
Kiểm tra no
ý định trong trình mô phỏng
Tại thời điểm này, Hành động của bạn sẽ hiểu khi nào người dùng không muốn chơi trò chơi 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 thanh điều hướng, nhấp vào Kiểm tra .
- Nhập
Talk to Spelling Practice
vào trường Đầu vào và nhấnEnter
. - Nhập
No
vào trường Đầu vào và nhấn Enter. Ngoài ra, hãy nhấp vào khối Không có gợi ý.
Thêm ý định YES
của hệ thống vào cảnh Start
Bây giờ, chúng tôi sẽ thêm ý định HỆ THỐNG "CÓ" vào cảnh Start
, vì người dùng đang trả lời có với lời nhắc Start
(" Chào mừng bạn đến với Thực hành Chính tả. Sử dụng bảng chữ cái phiên âm để đánh vần từ đó. Ví dụ: alpha cho a, bravo cho b, Charlie cho c, v.v. Bạn có muốn tiếp tục không?" ).
Để thêm ý định của người dùng này vào cảnh Start
, hãy làm theo các bước sau:
- Nhấp vào cảnh Bắt đầu trong điều hướng.
- Nhấp vào dấu + (dấu cộng) trong cảnh
Start
bên cạnh Xử lý ý định của người dùng . - Trong Tất cả ý định hệ thống, chọn CÓ trong danh sách thả xuống ý định.
- Nhấp vào Gọi webhook của bạn và cập nhật hộp văn bản
event handler
với chức năng bạn đã tạo trước đó:getSpellingWordList
- Trong phần Chuyển tiếp , nhấp vào menu thả xuống và chọn Kết thúc cuộc trò chuyện .
- Nhấp vào để lưu .
Kiểm tra ý đị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 thời điểm người dùng muốn chơi trò chơi 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 thanh điều hướng, nhấp vào Kiểm tra .
- Để kiểm tra Hành động của bạn trong trình mô phỏng, hãy nhập
Talk to Spelling Practice
vào trường Đầu vào và nhấn Enter . - Nhập
Yes
vào trường Đầu vào và nhấn Enter . Ngoài ra, hãy nhấp vào khối gợi ýYes
.
Hành động của bạn tìm nạp danh sách tất cả các từ luyện tập chính tả và lưu trữ chúng trong phiên. Sau đó, Hành động của bạn sẽ kết thúc phiên vì bạn đã chọn chuyển tiếp End conversation
cho mục đích YES
.
Tạo ý định Phonetics
âm
Để tạo ý định Phonetics
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
- Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên
phonetics
ý định mới và nhấnEnter
. - Nhấp vào mục đích
phonetics
để mở trang mục đíchphonetics
. - Trong phần Thêm cụm từ đào tạo, nhấp vào hộp văn bản Nhập cụm từ và nhập các cụm từ sau:
-
how do I spell words
-
phonetics
-
help me with phonetics
-
phonetic alphabet
- Nhấp vào để lưu .
Thêm ý định phonetics
âm vào cảnh Start
Bây giờ, Hành động có thể hiểu khi người dùng thể hiện ý định "ngữ âm" . Bạn có thể thêm ý định phonetics
của người dùng vào cảnh Start
, vì người dùng đang phản hồi lời nhắc Start
(" Chào mừng bạn đến với Thực hành Chính tả. Sử dụng bảng chữ cái ngữ âm để đánh vần từ đó. Ví dụ: alpha cho a, bravo cho b, charlie cho c v.v. Bạn có muốn tiếp tục không?" ).
Để thêm ý định của người dùng này vào cảnh Start
, hãy làm theo các bước sau:
- Nhấp vào cảnh Bắt đầu trong điều hướng.
- Nhấp vào dấu + (dấu cộng) trong cảnh
Start
bên cạnh Xử lý ý định của người dùng. - Chọn ngữ âm trong danh sách thả xuống ý định.
- Trong phần Chuyển tiếp , nhấp vào menu thả xuống và chọn Kết thúc cuộc trò chuyện.
- Nhấp vào để lưu .
Chuyển từ cảnh Bắt đầu sang cảnh Chính tả
Trong phần này, bạn tạo một cảnh mới có tên Chính tả , cảnh này sẽ gửi lời nhắc tới người dùng đánh vần từ đó bằng cách sử dụng bảng chữ cái phiên âm.
Để tạo cảnh này và thêm hiệu ứng chuyển tiếp vào cảnh đó, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng trên cùng. Sau đó, nhấp vào Bắt đầu cảnh trong điều hướng bên trái.
- Trong phần Xử lý mục đích của người dùng , hãy nhấp
when actions.intent.YES is matched
và ở bên phải trong phần chuyển tiếp , hãy nhấp vào menu thả xuống và nhậpSpelling
vào trường văn bản. - Nhấp vào Thêm . Điều này tạo ra một cảnh có tên
Spelling
và yêu cầu Hành động chuyển sang cảnhSpelling
sau khi khớp với mục đích CÓ. - Mở rộng Cảnh trong điều hướng bên trái để hiển thị danh sách cảnh.
- Trong Cảnh , bấm vào Chính tả để xem cảnh
Spelling
. - Nhấp vào + trong phần Bật nhập của cảnh
Spelling
. - Nhấp vào Gọi webhook của bạn và nhập getSpellingWord vào hộp văn bản xử lý sự kiện.
- Chọn Gửi lời nhắc .
- Thay thế câu trong trường
speech
(Enter the response that users will see or hear...
) bằng {} . Lời nhắc thực tế sẽ được đưa ra bởi webhook.
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 dữ liệu nhập của người dùng.
Để thêm khối gợi ý vào lời nhắc của cảnh Spelling
, hãy làm theo các bước sau:
- Trong cảnh
Spelling
, hãy nhấp vào các đề xuất bên dưới trình chỉnh sửa mã. Hành động này sẽ thêm ba khối gợi ý. - Trong trường
title
, thay thếSuggested Response
bằng'Repeat'
. - Sử dụng định dạng tương tự, thêm khối gợi ý có tiêu đề
'Skip'
theo cách thủ công. - Sử dụng định dạng tương tự, thêm chip gợi ý theo cách thủ công có tiêu đề
'Quit'
. Mã của bạn sẽ trông giống như đoạn mã sau: - Nhấp vào để lưu .
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Tạo ý định Repeat
Để tạo ý định repeat
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
- Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho ý định mới
repeat
và nhấnEnter
. - Bấm vào mục đích
repeat
để mở trang mục đíchdefinition
. - Trong phần Thêm cụm từ đào tạo , nhấp vào hộp văn bản Nhập cụm từ và nhập các cụm từ sau:
-
one more time please
-
say the word again
-
repeat the word
-
tell me again
-
repeat
- Nhấp vào để lưu .
Thêm ý định repeat
vào cảnh Spelling
Bây giờ, Hành động có thể hiểu khi nào người dùng thể hiện ý định "lặp lại" . Bạn có thể thêm ý định repeat
của người dùng vào cảnh Spelling
vì người dùng đang phản hồi Lời nhắc Spelling
(" Đánh vần từ bằng bảng chữ cái phiên âm ").
Để thêm mục đích của người dùng này vào cảnh Spelling
, hãy làm theo các bước sau:
- Bấm vào cảnh Chính tả trong điều hướng.
- Nhấp vào dấu + (dấu cộng) trong cảnh
Spelling
bên cạnh Xử lý mục đích của người dùng . - Chọn lặp lại trong trình đơn thả xuống ý định.
- Kiểm tra Gọi webhook của bạn và nhập lặp lạiSpellingWord vào hộp văn bản xử lý sự kiện để nhận định nghĩa từ.
- Kiểm tra Gửi lời nhắc .
- Thay thế câu trong trường
speech
(Enter the response that users will see or hear...
) bằng ''. Lời nhắc thực tế sẽ được đưa ra bởi webhook.
Thêm khối đề xuất vào "Khi lặp lại được khớp"
- Trong phần " Khi lặp lại được khớp " trong phần Xử lý ý định của người dùng, hãy nhấp vào đề xuất bên dưới trình chỉnh sửa mã. Hành động này sẽ thêm ba khối gợi ý.
- Trong trường
title
, thay thếSuggested Response
bằng'Skip'
. - Bằng cách sử dụng định dạng tương tự, hãy thêm khối đề xuất có tiêu đề
'Quit'
theo cách thủ công. Mã của bạn sẽ giống như đoạn mã sau:
suggestions: - title: 'Skip' - title: 'Quit'
- Nhấp vào để lưu.
Tạo ý định definition
nghĩa
Để tạo mục đích definition
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
- Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên
definition
ý định mới và nhấnEnter
. - Bấm vào mục đích
definition
để mở trang mục đíchdefinition
. - Trong phần Thêm cụm từ đào tạo , nhấp vào hộp văn bản Nhập cụm từ và nhập các cụm từ sau:
-
I would like to know the definition
-
tell me the definition
-
what does it mean
-
meaning
-
definition
-
what is the definition?
- Nhấp vào để lưu .
Thêm definition
đích định nghĩa vào cảnh Spelling
Bây giờ, Hành động có thể hiểu khi nào người dùng thể hiện ý định "định nghĩa" . Bạn có thể thêm ý định của người dùng definition
vào cảnh Spelling
, vì người dùng đang trả lời dấu nhắc Spelling
(" đánh vần từ sử dụng bảng chữ cái ngữ âm ").
Để thêm ý định của người dùng này vào cảnh Spelling
, hãy làm theo các bước sau:
- Nhấp vào cảnh chính tả trong điều hướng.
- Nhấp vào + (dấu cộng) trong cảnh
Spelling
bên cạnh việc xử lý ý định của người dùng . - Chọn Định nghĩa trong ý định thả xuống.
- Kiểm tra cuộc gọi Webhook của bạn và nhập định nghĩaFspellingWordWord trong Hộp văn bản xử lý sự kiện để nhận định nghĩa từ.
- Kiểm tra gửi lời nhắc .
- Thay thế câu trong trường
speech
(Enter the response that users will see or hear...
) bằng '' `. Lời nhắc thực tế sẽ được trang bị Webhook.
Thêm chip đề xuất vào phản hồi webhook
- Trong cảnh
Start
, nhấp vào các đề xuất bên dưới Trình chỉnh sửa mã. Hành động này thêm ba chip gợi ý. - Trong trường
title
, thay thếSuggested Response
bằng'Skip'
. - Sử dụng cùng một định dạng, theo cách thủ công một chip gợi ý có tiêu đề
'Quit'
. Mã của bạn sẽ trông giống như đoạn trích sau:
suggestions: - title: 'Skip' - title: 'Quit'
- Nhấp vào để lưu .
Tạo ý định skip
qua
Để tạo ý định skip
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào ý định trong điều hướng để mở danh sách các ý định.
- Nhấp + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho ý định mới
skip
và nhấnEnter
. - Nhấp vào ý định
skip
để mở trangskip
Intent. - Trong phần Thêm cụm từ đào tạo , nhấp vào hộp văn bản nhập cụm từ và nhập các cụm từ sau:
-
next word
-
go next
-
next
-
skip
-
skip word
- Nhấp vào để lưu .
Thêm ý định Skip
vào cảnh Spelling
Bây giờ, hành động có thể hiểu khi người dùng đang thể hiện ý định "bỏ qua" . Bạn có thể thêm ý định skip
người dùng vào cảnh Spelling
, vì người dùng đang trả lời dấu nhắc Spelling
(" đánh vần từ sử dụng bảng chữ cái ngữ âm ").
Để thêm ý định của người dùng này vào cảnh Spelling
, hãy làm theo các bước sau:
- Nhấp vào cảnh chính tả trong điều hướng.
- Nhấp vào + (dấu cộng) trong cảnh
Spelling
bên cạnh ý định của người dùng Handlin g. - Chọn Bỏ qua trong ý định thả xuống.
- Trong phần chuyển tiếp ở bên phải, nhấp vào menu thả xuống và chọn
Spelling
.
- Nhấp vào để lưu .
Tạo quit
định bỏ
Để tạo ý định Quit
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào ý định trong điều hướng để mở danh sách các ý định.
- Nhấp + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho mục đích mới
Quit
và nhấnEnter
. - Nhấp vào ý định
Quit
để mở trang ý định định nghĩa . - Trong phần Thêm cụm từ đào tạo , nhấp vào hộp văn bản nhập cụm từ và nhập các cụm từ sau:
-
I quit
-
Goodbye
-
Cancel
-
Exit
-
Quit
- Nhấp vào để lưu.
Thêm Quit
định thoát vào cảnh Spelling
Bây giờ, hành động có thể hiểu khi người dùng đang thể hiện ý định "bỏ" . Bạn có thể thêm ý định của người dùng quit
vào cảnh Spelling
, vì người dùng đang phản hồi lời nhắc Spelling
(" đánh vần từ sử dụng bảng chữ cái ngữ âm ").
Để thêm ý định của người dùng này vào cảnh Spelling
, hãy làm theo các bước sau:
- Nhấp vào cảnh chính tả trong điều hướng.
- Nhấp vào + (dấu cộng) trong cảnh
Spelling
bên cạnh việc xử lý ý định của người dùng . - Chọn Thoát khỏi ý định thả xuống.
- Trong phần Chuyển tiếp ở bên phải, nhấp vào menu thả xuống và chọn
End conversation
. - Nhấp vào để lưu .
Tạo loại phonetic_alphabet
Trong phần này, bạn tạo một loại mới có tên là phonetic_alphabet
, trong đó chỉ định các tùy chọn bảng chữ cái ngữ âm mà người dùng có thể chọn đánh vần từ. Bạn cũng có thể xác định một vài từ đồng nghĩa cho các tùy chọn này trong trường hợp người dùng nói điều gì đó tương tự. Trong phần sau, bạn thêm loại phonetic_alphabet
vào một khe để chỉ định rằng bạn muốn có được phản hồi của người dùng.
Để tạo loại ngữ phonetic_alphabet
, hãy làm theo các bước sau:
- Nhấp vào Phát triển trong điều hướng.
- Nhấp vào + (dấu cộng) trong các loại .
- Gõ ngữ
phonetic_alphabet
và nhấnEnter
. - Nhấp vào
phonetic_alphabet
để mở các tùy chọn. - Trong loại giá trị nào sẽ hỗ trợ loại này? Phần, chọn tùy chọn từ và từ đồng nghĩa
- Nhập các mục sau và các giá trị tương ứng trong phần Thêm mục :
Một | Alpha, Apple, Amsterdam |
b | Bravo, bơ, Baltimore |
c | Charlie, Cat, Casablanca |
d | Delta, Dog, Đan Mạch |
e | Echo, Edward, Edison |
f | Foxtrot, Fox, Florida |
g | Golf, George, Gallipoli |
h | Khách sạn, Harry, Havana |
Tôi | Ấn Độ, mực, Italia |
j | Juliette, Johnny, Jerusalem |
k | Kilo, King, Kilogram |
tôi | Lima, tình yêu, London |
tôi | Mike, Tiền, Madagascar |
N | Tháng 11, New York, Nancy |
ồ | Oscar, Orange, Oslo |
P | Papa, Paris, Peter |
q | Quebec, nữ hoàng |
r | Romeo, Roma, Robert |
S | Sierra, Sugar, Santiago |
t | Tango, Tommy, Tripoli |
bạn | đồng phục, ô, chú |
v | Victor, giấm, Valencia |
w | Whiskey, William, Washington |
x | tia X |
y | Yankee, Vàng, Yorker |
z | Zulu, Zebra, Zurich |
Bảng giá trị khóa của bạn sẽ trông giống như sau:
- Nhấp vào để lưu .
Định cấu hình vị trí làm đầy
Tiếp theo, bạn cần định cấu hình điền vào cảnh chính tả. Để định cấu hình logic lấp đầy khe, hãy làm theo các bước sau:
- Nhấp vào cảnh chính tả trong điều hướng.
- Nhấp vào + (dấu cộng) trong cảnh
Spelling
để điền vào khe . - Trong trường Nhập tên khe , thêm
userresponse
làm tên khe. - Trong các loại bỏ xuống loại chọn , chọn ponetic_alphabet làm loại khe.
- Kiểm tra khe này chấp nhận danh sách các giá trị
- Kiểm tra khe này là bắt buộc .
- Chọn Tùy chỉnh tùy chọn Write giá trị khe và nhập UserResponse vào hộp văn bản tham số phiên.
- Nhấp vào để lưu .
Thêm điều kiện vào màn hình Spelling
Để thêm điều kiện vào cảnh Spelling
, hãy làm theo các bước sau:
- Nhấp vào cảnh chính tả trong điều hướng.
- Nhấp vào + (dấu cộng) trong cảnh
Spelling
bên cạnh điều kiện. - Nhập
scene.slots.status == "FINAL"
dưới dạng điều kiện - Kiểm tra cuộc gọi Webhook của bạn và nhập VerifySpellingWord trong hộp văn bản xử lý sự kiện để xác minh phản hồi của người dùng.
- Kiểm tra gửi lời nhắc.
- Thay thế câu trong trường
speech
(Enter the response that users will see or hear...
) bằng {} . Lời nhắc thực tế sẽ được trang bị Webhook.
Thêm chip đề xuất vào phản hồi webhook
- Trong cảnh
Start
, nhấp vào các đề xuất bên dưới Trình chỉnh sửa mã. Hành động này thêm ba chip gợi ý. - Trong trường
title
, thay thếSuggested Response
bằng'Next'
. - Sử dụng cùng một định dạng, theo cách thủ công một chip gợi ý có tiêu đề
'Quit'
. Mã của bạn sẽ trông giống như đoạn trích sau:
suggestions: - title: 'Next' - title: 'Quit'
- Nhấp vào để lưu .
12. Kiểm tra thực hành chính tả trong trình giả lập
Để kiểm tra hành động của bạn trong trình giả lập, hãy làm theo các bước sau:
- Trong thanh điều hướng, nhấp vào kiểm tra để đưa bạn đến trình giả lập.
- Để kiểm tra hành động của bạn trong trình giả lập, hãy gõ
Talk to Spelling Practice
trong trường đầu vào. - Bấm phím Enter . Hành động của bạn sẽ phản hồi với lời
Main invocation
và dấu nhắc cảnhStart
thêm Tiếp tục?" . - Nói có để tiếp tục
- Simulator sẽ phát một từ âm thanh để đánh vần
- Bạn có thể đánh vần từ sử dụng bảng chữ cái ngữ âm. Ví dụ, để nói tốt hơn hoặc loại "Bravo Echo Tango Tango Echo Romeo"
- Simulator sẽ phản hồi với phản hồi chính xác hoặc không chính xác.
- Nói tiếp theo để tiếp tục từ tiếp theo hoặc nói thoát để thoát khỏi vòng lặp trò chơi.
13. Xin chúc mừng
Xin chúc mừng, bạn đã xây dựng thành công trò chơi của mình, thực hành chính tả !
Bây giờ bạn đã biết các bước chính cần thiết để xây dựng một trò chơi bằng cách sử dụng đám mây Firestore, các chức năng đám mây và Trình tạo hành động trợ lý của Google.
Những gì bạn đã bảo hiểm
- Cách tương tác với đám mây Firestore
- Cách sử dụng các khe để thu thập dữ liệu từ người dùng
- Cách xử lý đầu vào của người dùng và trả lại phản hồi
- Cách sử dụng điều kiện để thêm logic vào một cảnh
- Cách thêm vòng lặp trò chơi
Tài nguyên học tập bổ sung
Bạn có thể khám phá các tài nguyên này để tìm hiểu về việc xây dựng các hành động cho Google Assistant:
- Tài liệu phát triển hành động cho Google Assistant
- Hành động trên trang Google GitHub cho mã mẫu và thư viện
- Cộng đồng Reddit chính thức cho các nhà phát triển làm việc với Trợ lý Google
- Hướng dẫn thiết kế cuộc trò chuyện cho các thực tiễn và hướng dẫn tốt nhất về các hành động đàm thoại
- Giới thiệu về Firestore đám mây
Dọn dẹp dự án của bạn [Khuyến nghị]
Để tránh phải chịu các khoản phí có thể, nên loại bỏ các dự án mà bạn không có ý định sử dụng. Để xóa các dự án bạn đã tạo trong codelab này, hãy làm theo các bước sau:
- Để xóa dự án và tài nguyên Firebase của bạn, hãy hoàn thành các bước được liệt kê trong phần Dự án tắt (Xóa) .
THẬN TRỌNG: Đảm bảo rằng bạn chọn đúng dự án để xóa trên trang Cài đặt của Google Cloud Console.
- Tùy chọn: Để xóa ngay dự án của bạn khỏi bảng điều khiển hành động, hãy hoàn thành các bước được liệt kê trong phần Xóa một dự án . Nếu bạn không hoàn thành bước này, dự án của bạn sẽ tự động bị xóa sau khoảng 30 ngày.
Theo dõi @ActionSongoogle & @firebase trên Twitter để theo dõi các thông báo mới nhất của chúng tôi và tweet cho #Googleio để chia sẻ những gì bạn đã xây dựng!