Trò chơi luyện chính tả bằng Google Assistant và Cloud Firestore

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:

2e9f94dc0ceafc96.png

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

  1. Đăng nhập vào Firebase .
  2. 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 .

66ae8d1894f4477.png

  1. 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.

  1. Đảm bảo bạn đã cài đặt npm thường đi kèm với Node.js.
  2. 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
  1. 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.

  1. Cho phép CLI Firebase bằng cách chạy:
$ firebase login
  1. 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âySDK 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.
  1. Cài đặt SDK hành động bằng cách chạy lệnh npm sau:
$ npm install @assistant/conversation
  1. 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.

332cb0437411a242.png

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 .

5c0b4abf4410ffcf.png

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

  1. Trong bảng điều khiển Firebase, điều hướng đến phần Cloud Firestore.
  2. Nhấp vào + Bắt đầu bộ sưu tập .
  3. Trong hộp văn bản Collection ID , nhập wordlist , sau đó nhấp vào Next .

1b4ccadb90f52f02.png

Tiếp theo, chúng ta sẽ tạo một tài liệu cho một từ: thỏa thuận

  1. Trong hộp văn bản ID tài liệu , nhập agreement .
  2. Trong hộp văn bản Trường , nhập word và trong hộp văn bản Giá trị , nhập agreement .
  3. Nhấp vào để lưu .

379037e011e8511e.png

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:

  1. Chuyển đến trang 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 làm như vậy.
  3. 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 .

c988e1e639e6d6e1.png

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:

  1. Mở bảng điều khiển Hành động .
  2. Nhấp vào Dự án mới .
  3. Chấp nhận điều khoản dịch vụ

b174d45710b8086b.png

  1. 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.)

a2951de5d2001fac.png

  1. Nhấp vào Nhập dự án .
  2. 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 .
  3. Bấm tiếp .
  4. Chọn thẻ Dự án trống .
  5. Nhấp vào Bắt đầu xây dựng .
  6. 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ả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:

  1. Nhấp vào Webhook trong điều hướng bên cạnh.
  2. Chọn điểm cuối Https làm tùy chọn thực hiện:

d523bf003e96e66f.png

  1. 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 .

be53e2cd0d914d54.png

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:

  1. Nhấp vào Lời gọi chính trong điều hướng.

9ff088c04c995cde.png

  1. Chọn Call your webhook và thêm tên trình xử lý sự kiện getSpellingWordList vào hộp văn bản.
  2. 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.

  1. 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:

  1. 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.
  2. Để 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.

651fc8da1ac9aa0a.png

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:

a6fb192f94426824.png

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:

  1. 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.
  2. 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.

dd4f1807a57f794d.png

  1. 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ảnh Start sau khi Hành động gửi lời nhắc chào mừng cho người dùng.
  2. Nhấp vào Cảnh trong điều hướng bên trái để hiển thị danh sách cảnh.
  3. Trong Cảnh , nhấp vào Bắt đầu để xem cảnh Start .
  4. Nhấp vào + trong phần Khi nhập của cảnh Start .
  5. Chọn Gửi lời nhắc .
  6. 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:

  1. 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.
  2. Trong trường title , thay thế Suggested Response bằng 'Yes' .
  3. Sử dụng định dạng tương tự, thêm chip gợi ý theo cách thủ công có tiêu đề 'No''Help with Phonetics' . Mã của bạn sẽ trông giống như đoạn mã sau:
  4. Nhấp vào để lưu .

5ff2ecdc56801b91.png

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:

  1. Trong thanh điều hướng, hãy nhấp vào Kiểm tra để đưa bạn đến trình mô phỏng.
  2. Để 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.
  3. 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ảnh Start đượ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:

338c9570b02a618e.png

  1. Bấm vào chip gợi ý Yes hoặc No hoặc Help 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ập Yes hoặc No hoặc Help 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
  3. 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 .
  4. Nhấp vào không để mở trang no ý định.
  5. 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

98b0c9a7b67ea9b9.png

  1. 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:

  1. Nhấp vào cảnh Bắt đầu trong điều hướng.
  2. 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.
  3. Trong phần Ý định , chọn không trong trình đơn thả xuống.

51f752e78c8b4942.png

  1. 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.
  1. 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.
  2. 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:

  1. Trong thanh điều hướng, nhấp vào Kiểm tra .
  2. Nhập Talk to Spelling Practice vào trường Đầu vào và nhấn Enter .
  3. 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 ý.

7727a456b522f31b.png

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:

  1. Nhấp vào cảnh Bắt đầu trong điều hướng.
  2. 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 .
  3. Trong Tất cả ý định hệ thống, chọn trong danh sách thả xuống ý định.

f6cbe789cde49e8f.png

  1. 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
  2. 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 .
  3. 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:

  1. Trong thanh điều hướng, nhấp vào Kiểm tra .
  2. Để 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 .
  3. 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
  3. Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên phonetics ý định mới và nhấn Enter .
  4. Nhấp vào mục đích phonetics để mở trang mục đích phonetics .
  5. 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

1455bdfca8dae46.png

  1. 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:

  1. Nhấp vào cảnh Bắt đầu trong điều hướng.
  2. 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.
  3. Chọn ngữ âm trong danh sách thả xuống ý định.

67ee2e08000b2aee.png

  1. 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.
  2. 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:

  1. 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.
  2. 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ập Spelling vào trường văn bản.
  3. 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ảnh Spelling sau khi khớp với mục đích CÓ.
  4. Mở rộng Cảnh trong điều hướng bên trái để hiển thị danh sách cảnh.
  5. Trong Cảnh , bấm vào Chính tả để xem cảnh Spelling .
  6. Nhấp vào + trong phần Bật nhập của cảnh Spelling .
  7. 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.
  8. Chọn Gửi lời nhắc .
  9. 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:

  1. 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 ý.
  2. Trong trường title , thay thế Suggested Response bằng 'Repeat' .
  3. 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.
  4. 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:
  5. Nhấp vào để lưu .
suggestions:
      - title: 'Repeat'
      - title: 'Skip'
      - title: 'Quit'

e1d437f714ea1539.png

Tạo ý định Repeat

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

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
  3. Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho ý định mới repeat và nhấn Enter .
  4. Bấm vào mục đích repeat để mở trang mục đích definition .
  5. 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

e61f0b9f80510bc9.png

  1. 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:

  1. Bấm vào cảnh Chính tả trong điều hướng.
  2. 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 .
  3. Chọn lặp lại trong trình đơn thả xuống ý định.

5cfd623b25bedbed.png

  1. 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ừ.
  2. Kiểm tra Gửi lời nhắc .
  3. 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"

  1. 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 ý.
  2. Trong trường title , thay thế Suggested Response bằng 'Skip' .
  3. 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'

ab40e4b0c432b97c.png

  1. 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào Ý định tùy chỉnh trong điều hướng để mở danh sách ý định.
  3. Nhấp vào + (dấu cộng) ở cuối danh sách ý định. Đặt tên definition ý định mới và nhấn Enter .
  4. Bấm vào mục đích definition để mở trang mục đích definition .
  5. 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?

c1b88a9c0b1ac082.png

  1. 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:

  1. Nhấp vào cảnh chính tả trong điều hướng.
  2. 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 .
  3. Chọn Định nghĩa trong ý định thả xuống.

646BDCAC3AD3EB0C.png

  1. 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ừ.
  2. Kiểm tra gửi lời nhắc .
  3. 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

  1. 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 ý.
  2. Trong trường title , thay thế Suggested Response bằng 'Skip' .
  3. 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'

25227545839D933F.png

  1. 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào ý định trong điều hướng để mở danh sách các ý định.
  3. Nhấp + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho ý định mới skip và nhấn Enter .
  4. Nhấp vào ý định skip để mở trang skip Intent.
  5. 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

D1C4908A3D7882F8.PNG

  1. 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:

  1. Nhấp vào cảnh chính tả trong điều hướng.
  2. 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.
  3. Chọn Bỏ qua trong ý định thả xuống.

5465F97542217964.png

  1. Trong phần chuyển tiếp ở bên phải, nhấp vào menu thả xuống và chọn Spelling .

C8072485CA82BD3F.PNG

  1. 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào ý định trong điều hướng để mở danh sách các ý định.
  3. Nhấp + (dấu cộng) ở cuối danh sách ý định. Đặt tên cho mục đích mới Quit và nhấn Enter .
  4. Nhấp vào ý định Quit để mở trang ý định định nghĩa .
  5. 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

9916F77B8766541E.PNG

  1. 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:

  1. Nhấp vào cảnh chính tả trong điều hướng.
  2. 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 .
  3. Chọn Thoát khỏi ý định thả xuống.

5F62FB18A3653D66.PNG

  1. Trong phần Chuyển tiếp ở bên phải, nhấp vào menu thả xuống và chọn End conversation . 1FFBE35A7BBBB4B0.PNG
  2. 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:

  1. Nhấp vào Phát triển trong điều hướng.
  2. Nhấp vào + (dấu cộng) trong các loại .
  3. Gõ ngữ phonetic_alphabet và nhấn Enter .
  4. Nhấp vào phonetic_alphabet để mở các tùy chọn.
  5. 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
  6. 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:

5B5A5CD9FA557E1B.PNG

  1. 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:

  1. Nhấp vào cảnh chính tả trong điều hướng.
  2. Nhấp vào + (dấu cộng) trong cảnh Spelling để điền vào khe .
  3. Trong trường Nhập tên khe , thêm userresponse làm tên khe.
  4. Trong các loại bỏ xuống loại chọn , chọn ponetic_alphabet làm loại khe.
  5. Kiểm tra khe này chấp nhận danh sách các giá trị
  6. Kiểm tra khe này là bắt buộc .
  7. 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.

BA57A419877A07F3.png

  1. 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:

  1. Nhấp vào cảnh chính tả trong điều hướng.
  2. Nhấp vào + (dấu cộng) trong cảnh Spelling bên cạnh điều kiện.
  3. Nhập scene.slots.status == "FINAL" dưới dạng điều kiện
  4. 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.
  5. Kiểm tra gửi lời nhắc.
  6. 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

  1. 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 ý.
  2. Trong trường title , thay thế Suggested Response bằng 'Next' .
  3. 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'

AC3D7A9366EBC1B1.PNG

  1. 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:

  1. Trong thanh điều hướng, nhấp vào kiểm tra để đưa bạn đến trình giả lập.
  2. Để 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.
  3. Bấm phím Enter . Hành động của bạn sẽ phản hồi với lời Main invocationdấu nhắc cảnh Start thêm Tiếp tục?" .
  4. Nói để tiếp tục
  5. Simulator sẽ phát một từ âm thanh để đánh vần
  6. 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"
  7. Simulator sẽ phản hồi với phản hồi chính xác hoặc không chính xác.
  8. 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:

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:

  1. Để 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.

  1. 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!