গুগল অ্যাসিস্ট্যান্ট এবং ক্লাউড ফায়ারস্টোর ব্যবহার করে বানান অনুশীলন গেম

1. সংক্ষিপ্ত বিবরণ

গুগল অ্যাসিস্ট্যান্ট ডেভেলপার প্ল্যাটফর্ম আপনাকে স্মার্ট স্পিকার, ফোন, গাড়ি, টিভি, হেডফোন এবং আরও অনেক কিছু সহ ১ বিলিয়নেরও বেশি ডিভাইসে ভার্চুয়াল ব্যক্তিগত সহকারী গুগল অ্যাসিস্ট্যান্টের কার্যকারিতা প্রসারিত করার জন্য সফ্টওয়্যার তৈরি করতে দেয়। ব্যবহারকারীরা মুদিখানা কেনা বা রাইড বুক করার মতো কাজগুলি সম্পন্ন করার জন্য অ্যাসিস্ট্যান্টকে কথোপকথনে জড়িত করে। একজন ডেভেলপার হিসেবে, আপনি ব্যবহারকারী এবং আপনার নিজস্ব তৃতীয়-পক্ষের পরিপূর্ণতা পরিষেবার মধ্যে সহজেই আনন্দদায়ক এবং কার্যকর কথোপকথনের অভিজ্ঞতা তৈরি এবং পরিচালনা করতে অ্যাসিস্ট্যান্ট ডেভেলপার প্ল্যাটফর্ম ব্যবহার করতে পারেন।

এই কোডল্যাবটিতে গুগল অ্যাসিস্ট্যান্ট, ক্লাউড ফাংশন এবং ক্লাউড ফায়ারস্টোরের সাথে ডেভেলপমেন্টের জন্য মধ্যবর্তী স্তরের ধারণাগুলি অন্তর্ভুক্ত করা হয়েছে। এই কোডল্যাবে, আপনি "স্পেলিং প্র্যাকটিস" নামে একটি গেম তৈরি করবেন যা গুগল অ্যাসিস্ট্যান্ট ব্যবহার করে ব্যবহারকারীদের শব্দের বানান করতে বলবে।

তুমি কী তৈরি করবে

এই কোডল্যাবে, আপনি নিম্নলিখিত কার্যকারিতা সহ একটি অত্যাধুনিক গেম তৈরি করবেন:

  • ব্যবহারকারীর কাছ থেকে বানানের উত্তর গ্রহণ করে এবং মানের উপর নির্ভর করে কথোপকথনের প্রম্পটগুলি পরিবর্তন করে।
  • শব্দের বানান সম্পর্কিত ইঙ্গিত দিয়ে সাড়া দেয়, যেমন এর সংজ্ঞা বা শব্দের পুনরাবৃত্তি
  • একটি গেম লুপ তৈরি করে যাতে ব্যবহারকারী শব্দটি বানান করার পরে আবার Assistant-এর সাথে ইন্টারঅ্যাক্ট করতে পারে

তৈরি শুরু করার আগে, আপনি আপনার Google Assistant-সক্ষম ডিভাইসে "Hey Google, Spelling Practice-এর সাথে কথা বলুন" বলে লাইভ অ্যাকশনের সাথে ইন্টারঅ্যাক্ট করতে পারেন। ফিরে আসা ব্যবহারকারীর জন্য এই অ্যাকশনের মাধ্যমে ডিফল্ট পথটি নিম্নলিখিত ইন্টারঅ্যাকশনের মতো দেখাবে:

এই কোডল্যাবটি শেষ করার পর, আপনার সম্পন্ন অ্যাকশনে নিম্নলিখিত কথোপকথন প্রবাহ থাকবে:

2e9f94dc0ceafc96.png সম্পর্কে

তুমি কি শিখবে

  • ক্লাউড ফায়ারস্টোরের সাথে কীভাবে ইন্টারঅ্যাক্ট করবেন
  • ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহের জন্য স্লট কীভাবে ব্যবহার করবেন
  • কীভাবে একজন ব্যবহারকারীর ইনপুট প্রক্রিয়া করবেন এবং প্রতিক্রিয়া জানাবেন
  • কোনও দৃশ্যে যুক্তি যোগ করার জন্য শর্তগুলি কীভাবে ব্যবহার করবেন
  • কিভাবে একটি গেম লুপ যোগ করবেন

তোমার যা লাগবে

এই কোডল্যাবের পূর্বশর্তগুলির মধ্যে রয়েছে নিম্নলিখিতগুলি:

  • একটি ওয়েব ব্রাউজার, যেমন গুগল ক্রোম
  • ক্লাউড ফাংশন লেখার জন্য একটি IDE।
  • একটি পেমেন্ট পদ্ধতি। এই কোডল্যাবটি Firebase-এর জন্য ক্লাউড ফাংশন ব্যবহার করে যার জন্য আপনার প্রকল্পটি Firebase Blaze মূল্য পরিকল্পনায় থাকা প্রয়োজন ( আরও জানুন )।
  • শেল কমান্ড চালানোর জন্য একটি টার্মিনাল
  • Node.js ১০ বা তার পরবর্তী সংস্করণ

2. ফাংশন কোড পান

কমান্ড লাইন থেকে GitHub রিপোজিটরি ক্লোন করুন:

$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore

৩. একটি ফায়ারবেস প্রকল্প তৈরি করুন এবং আপনার অ্যাপ সেট আপ করুন

একটি ফায়ারবেস প্রকল্প তৈরি করুন

  1. Firebase- এ সাইন ইন করুন।
  2. Firebase কনসোলে, Add Project (অথবা Create a project ) এ ক্লিক করুন, তারপর আপনার Firebase প্রজেক্টের নাম দিন Spelling-Practice

66ae8d1894f4477.png সম্পর্কে

  1. প্রকল্প তৈরির বিকল্পগুলিতে ক্লিক করুন। অনুরোধ করা হলে Firebase শর্তাবলী গ্রহণ করুন। Google Analytics সেট আপ করা এড়িয়ে যান, কারণ আপনি এই অ্যাপের জন্য Analytics ব্যবহার করবেন না।

ফায়ারবেস প্রকল্প সম্পর্কে আরও জানতে, ফায়ারবেস প্রকল্পগুলি বুঝুন দেখুন।

ব্লেজ প্রাইসিং প্ল্যানে আপগ্রেড করুন

Firebase-এর জন্য Cloud Functions ব্যবহার করার জন্য, আপনাকে আপনার Firebase প্রকল্পটিকে Blaze মূল্য পরিকল্পনায় আপগ্রেড করতে হবে, যার অর্থ আপনাকে আপনার প্রকল্পের সাথে একটি Google Cloud Billing অ্যাকাউন্ট সংযুক্ত করতে হবে। এর জন্য আপনাকে একটি ক্রেডিট কার্ড বা অন্য কোনও অর্থপ্রদানের পদ্ধতি প্রদান করতে হবে।

ব্লেজ প্ল্যানের অন্তর্ভুক্ত সকল ফায়ারবেস প্রকল্পের এখনও ক্লাউড ফাংশনের জন্য বিনামূল্যে ব্যবহারের কোটা ব্যবহারের সুযোগ রয়েছে। এই কোডল্যাবে বর্ণিত পদক্ষেপগুলি বিনামূল্যে ব্যবহারের সীমার মধ্যে পড়বে। তবে, আপনি ক্লাউড স্টোরেজ থেকে ছোট চার্জ ( প্রায় $0.03 ) দেখতে পাবেন, যা আপনার ক্লাউড ফাংশন বিল্ড ইমেজ হোস্ট করতে ব্যবহৃত হয়।

৪. ফায়ারবেস সিএলআই ইনস্টল করুন

ফায়ারবেস সিএলআই (কমান্ড লাইন ইন্টারফেস) আপনাকে আপনার ক্লাউড ফাংশন স্থাপন করতে সক্ষম করে।

আপনার অপারেটিং সিস্টেম এবং ব্যবহারের ধরণ অনুসারে Firebase CLI ইনস্টল করার জন্য বেশ কয়েকটি বিকল্প রয়েছে। আপনি যদি ক্লাউড ফাংশন ব্যবহার করেন তবে নিম্নলিখিত পদক্ষেপগুলি সবচেয়ে সাধারণ বিকল্পটি বর্ণনা করে।

  1. নিশ্চিত করুন যে আপনি npm ইনস্টল করেছেন যা সাধারণত Node.js এর সাথে আসে।
  2. নিম্নলিখিত npm কমান্ডটি চালিয়ে CLI ইনস্টল বা আপগ্রেড করুন:
$ npm -g install firebase-tools
  1. CLI সঠিকভাবে ইনস্টল করা হয়েছে কিনা তা যাচাই করুন:
$ firebase --version

নিশ্চিত করুন যে Firebase CLI এর ভার্সনটি 9.0.0 বা তার পরবর্তী যাতে এতে ক্লাউড ফাংশনের জন্য প্রয়োজনীয় সমস্ত সর্বশেষ বৈশিষ্ট্য থাকে। যদি না থাকে, তাহলে উপরে দেখানো হিসাবে আপগ্রেড করতে npm install -g firebase-tools চালান।

  1. নিম্নলিখিতটি চালিয়ে Firebase CLI অনুমোদন করুন:
$ firebase login
  1. spelling-functions-start ডিরেক্টরি থেকে, আপনার Firebase প্রজেক্ট ব্যবহার করার জন্য Firebase CLI সেট আপ করুন। নিম্নলিখিত কমান্ডটি চালান, আপনার প্রজেক্ট আইডি নির্বাচন করুন, তারপর নির্দেশাবলী অনুসরণ করুন। অনুরোধ করা হলে, আপনি যেকোনো উপনাম বেছে নিতে পারেন, যেমন codelab
$ firebase use --add

৫. ফাংশন ডিরেক্টরি

এখন আপনি গেমটির ব্যাকএন্ড, স্পেলিং প্র্যাকটিস তৈরি করতে Firebase SDK for Cloud Functions ব্যবহার করে কার্যকারিতা যোগ করবেন।

ক্লাউড ফাংশন আপনাকে এমন কোড তৈরি করতে সাহায্য করে যা ক্লাউডে চলে কোনও সার্ভার সেট আপ না করেই। এই কোডল্যাব আপনাকে দেখাবে কিভাবে ফায়ারবেস অথেনটিকেশন, ক্লাউড স্টোরেজ এবং ফায়ারবেস রিয়েলটাইম ডাটাবেস ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে পারে এমন ফাংশন তৈরি করতে হয়। আসুন অথেনটিকেশন দিয়ে শুরু করি।

ক্লাউড ফাংশনের জন্য Firebase SDK ব্যবহার করার সময়, আপনার ফাংশন কোডটি functions ডিরেক্টরির অধীনে থাকবে (ডিফল্টরূপে)। আপনার জন্য এটি সহজ করার জন্য, আমরা ইতিমধ্যেই functions/index.js ফাইল তৈরি করেছি যেখানে আপনার কোডটি যাবে। এগিয়ে যাওয়ার আগে functions ডিরেক্টরিটি পরিদর্শন করতে দ্বিধা করবেন না।

$ cd functions
$ ls

আপনার ফাংশন কোডটিও একটি Node.js অ্যাপ, এবং তাই এর জন্য একটি package.json প্রয়োজন যা আপনার অ্যাপ সম্পর্কে কিছু তথ্য দেয় এবং নির্ভরতা তালিকাভুক্ত করে।

যদি আপনি Node.js এর সাথে পরিচিত না হন, তাহলে কোডল্যাব চালিয়ে যাওয়ার আগে এটি সম্পর্কে আরও জানতে সাহায্য করবে।

package.json ফাইলটিতে ইতিমধ্যেই দুটি প্রয়োজনীয় নির্ভরতা তালিকাভুক্ত করা হয়েছে: ক্লাউড ফাংশনের জন্য Firebase SDK এবং Firebase Admin SDK । স্থানীয়ভাবে ইনস্টল করতে, functions ডিরেক্টরি থেকে npm install চালান:

$ npm install

এবার index.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.

আপনাকে প্রথমে প্রয়োজনীয় মডিউলগুলি আমদানি করতে হবে, তারপর TODO-গুলির পরিবর্তে চারটি ফাংশন লিখতে হবে। মডিউলগুলি আমদানি করতে কোডল্যাবের পরবর্তী ধাপে যান।

৬. প্রয়োজনীয় মডিউল আমদানি করুন

এই কোডল্যাবের জন্য তিনটি মডিউল প্রয়োজন।

  • firebase-functions মডিউল আমাদের ক্লাউড ফাংশনের জন্য ট্রিগার লিখতে সাহায্য করে।
  • firebase-admin মডিউল আমাদের অ্যাডমিন অ্যাক্সেস সহ সার্ভারে ফায়ারবেস প্ল্যাটফর্ম ব্যবহার করার অনুমতি দেয়, উদাহরণস্বরূপ ক্লাউড ফায়ারস্টোরে লেখার জন্য।
  • অ্যাকশনস SDK Node.js ফুলফিলমেন্ট লাইব্রেরি গুগল অ্যাসিস্ট্যান্টের জন্য অ্যাকশনস SDK হ্যান্ডলারগুলি পূরণ করে।
  1. নিম্নলিখিত npm কমান্ডটি চালিয়ে Actions SDK ইনস্টল করুন:
$ npm install @assistant/conversation
  1. index.js ফাইলে, প্রথম TODO-টিকে নিম্নলিখিতটি দিয়ে প্রতিস্থাপন করুন।

এই পরিবর্তনগুলি প্রতিটি প্রয়োজনীয় মডিউল আমদানি করে।

এছাড়াও, ক্লাউড ফাংশন পরিবেশ বা অন্যান্য গুগল ক্লাউড কন্টেইনারে স্থাপন করা হলে Firebase অ্যাডমিন SDK স্বয়ংক্রিয়ভাবে কনফিগার করা যেতে পারে। নীচের পরিবর্তনগুলিতে আমরা যখন admin.initializeApp(); কল করি তখন এটি ঘটে।

ইনডেক্স.জেএস

/**
 * 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.

এবার আসুন অ্যাসিস্ট্যান্ট অ্যাকশন সমর্থন করার জন্য ফাংশন ব্যবহার করে ব্যবসায়িক লজিক যোগ করি।

৭. ফাংশন তৈরি করুন

শব্দের সংজ্ঞাগুলি পান এবং ক্লাউড ফায়ারস্টোরে লিখুন।

শব্দের সংজ্ঞা পেতে আপনি dictionaryapi.dev পাবলিক API ব্যবহার করবেন।

index.js ফাইলে, getWordDetailsFromDictionaryAPI এর জন্য TODO এর পরিবর্তে নিম্নলিখিতটি লিখুন:

ইনডেক্স.জেএস

// 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();
}

একটি ক্লাউড ফায়ারস্টোর ট্রিগার যোগ করুন

এরপর, আপনি একটি ক্লাউড ফাংশন তৈরি করবেন যা ক্লাউড ফায়ারস্টোরে একটি নতুন ডকুমেন্ট তৈরি হলেই ট্রিগার হবে। এটি dictionaryapi.dev API কে কল করে শব্দের সংজ্ঞা পাবে getWordDetailsFromDictionaryAPI ফাংশনের মাধ্যমে যা আমরা উপরে লিখেছি।

index.js ফাইলে, createSpellingPracticeWord এর জন্য TODO এর পরিবর্তে নিম্নলিখিতটি লিখুন:

ইনডেক্স.জেএস

// ফায়ারস্টোর ট্রিগার যা প্রতিটি নতুন ফায়ারস্টোর ডকুমেন্টের জন্য getWordDetailsFromDictionaryAPI এর মাধ্যমে শব্দের সংজ্ঞা আনে।

exports.createSpellingPracticeWord = functions.firestore
  .document('wordlist/{word}')
  .onCreate((snap, context) => {
    const newValue = snap.data();
    const word = newValue.word;
    getWordDetailsFromDictionaryAPI(word);
});

খেলার জন্য শব্দের একটি তালিকা পান

আপনি একটি ক্লাউড ফাংশন লিখতে পারেন যা অ্যাসিস্ট্যান্টের জন্য ক্লাউড ফায়ারস্টোর থেকে বানান অনুশীলনের শব্দের একটি তালিকা উদ্ধার করে। এর জন্য, আমরা অ্যাপ হ্যান্ডলার ব্যবহার করি।

index.js ফাইলে, getSpellingWordList এর জন্য TODO-এর পরিবর্তে নিম্নলিখিতটি ব্যবহার করুন।

বিশেষ app.handle এ এই ফাংশনটি যোগ করা হল অ্যাসিস্ট্যান্ট থেকে ফাংশনটি অ্যাক্সেসযোগ্য করার একটি উপায়।

ইনডেক্স.জেএস

// 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;
    });
  });
})

সহকারী সেশন থেকে কিছু বলুন

আপনি একটি ক্লাউড ফাংশন লিখতে পারেন যা শব্দ তালিকা থেকে পরবর্তী বানান শব্দটি ফেরত দেয়।

index.js ফাইলে, getSpellingWord এর জন্য TODO-এর পরিবর্তে নিম্নলিখিতটি দিন:

ইনডেক্স.জেএস

// 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');
});

গেমটিকে শব্দটি পুনরাবৃত্তি করতে সক্ষম করুন

আপনি এমন একটি ক্লাউড ফাংশন লিখতে পারেন যা গেমটির বর্তমান শব্দটি পুনরাবৃত্তি করে।

index.js ফাইলে, repeatSpellingWord এর জন্য TODO এর পরিবর্তে নিম্নলিখিতটি লিখুন:

ইনডেক্স.জেএস

// 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');
});

শব্দের সংজ্ঞা জেনে নিন

আপনি একটি ক্লাউড ফাংশন লিখতে পারেন যা গেমটির বর্তমান শব্দটির সংজ্ঞা প্রদান করে।

index.js ফাইলে, definitionOfSpellingWord এর জন্য TODO এর পরিবর্তে নিম্নলিখিতটি লিখুন:

ইনডেক্স.জেএস

// 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);
});

ব্যবহারকারীর বানান প্রতিক্রিয়া পরীক্ষা করুন

আপনি একটি ক্লাউড ফাংশন লিখতে পারেন যা ব্যবহারকারীর গেমের বর্তমান শব্দটির বানান সম্পর্কে প্রতিক্রিয়া যাচাই করে।

index.js ফাইলে, verifySpellingWord এর জন্য TODO এর পরিবর্তে নিম্নলিখিতটি লিখুন:

ইনডেক্স.জেএস

// 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);

আপনার সমস্ত ফাংশন স্থাপন করুন

আপনার ক্লাউড ফাংশনগুলি শুধুমাত্র Firebase-এ স্থাপন করার পরেই সক্রিয় হবে।

spelling-functions-start ডিরেক্টরির রুট থেকে, নিম্নলিখিত কমান্ডটি চালান:

$ firebase deploy --only functions

এটি কনসোলের আউটপুট যা আপনার দেখা উচিত:

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

পরবর্তীতে ব্যবহারের জন্য ActionsOnGoogleFulfillment ফাংশন Http এন্ডপয়েন্ট url এর একটি নোট তৈরি করুন। এন্ডপয়েন্ট পেতে, Firebase Console খুলুন এবং তারপর spelling-practice project এ ক্লিক করুন। ফাংশন এন্ডপয়েন্ট দেখতে Functions ড্যাশবোর্ড খুলুন।

332cb0437411a242.png সম্পর্কে

আপনি সমস্ত প্রয়োজনীয় ফাংশন যোগ করা সম্পন্ন করেছেন। এখন ক্লাউড ফায়ারস্টোর সেট আপ করার দিকে এগিয়ে যাওয়া যাক।

৮. ক্লাউড ফায়ারস্টোর সক্ষম করুন

আপনাকে ক্লাউড ফায়ারস্টোর সক্ষম করতে হবে।

Firebase কনসোলের Build বিভাগে, Firestore এ ক্লিক করুন। তারপর, Create database এ ক্লিক করুন।

অনুসরণ

ক্লাউড ফায়ারস্টোরে ডেটা অ্যাক্সেস নিরাপত্তা নিয়ম দ্বারা নিয়ন্ত্রিত হয়। শুরু করার জন্য প্রথমে আপনাকে ডেটার উপর কিছু মৌলিক নিয়ম সেট করতে হবে। ফায়ারস্টোরে ক্লিক করুন এবং তারপর ফায়ারবেস কনসোলের রুলস ট্যাবে , নিম্নলিখিত নিয়মগুলি যোগ করুন, তারপর প্রকাশ করুন এ ক্লিক করুন।

নিম্নলিখিত নিয়মগুলি সাইন ইন করা ব্যবহারকারীদের ডেটা অ্যাক্সেস সীমাবদ্ধ করে, যা অননুমোদিত ব্যবহারকারীদের পড়তে বা লিখতে বাধা দেয়।

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;
    }
  }
}

৯. ক্লাউড ফায়ারস্টোরে বানান শব্দের তথ্য যোগ করুন

এই ধাপে, আপনি ক্লাউড ফায়ারস্টোরে বানান শব্দের তথ্য লিখবেন যাতে আপনি সহকারীর (এবং গেমটির) জন্য শব্দের একটি তালিকা তৈরি করতে পারেন।

ক্লাউড ফায়ারস্টোর ডেটা সংগ্রহ, নথি, ক্ষেত্র এবং উপ-সংগ্রহে বিভক্ত। গেমের প্রতিটি শব্দ wordlist নামক একটি শীর্ষ-স্তরের সংগ্রহে নিজস্ব নথি হিসাবে সংরক্ষণ করা হবে। ফায়ারস্টোর সংগ্রহের প্রতিটি নতুন নথির জন্য, অভিধান API পরিষেবা থেকে শব্দের বিবরণ পেতে createSpellingPracticeWord ফাংশনটি ট্রিগার করা হবে।

একটি ক্লাউড ফায়ারস্টোর সংগ্রহ তৈরি করুন

  1. ফায়ারবেস কনসোলে, ক্লাউড ফায়ারস্টোর বিভাগে নেভিগেট করুন।
  2. + সংগ্রহ শুরু করুন এ ক্লিক করুন।
  3. সংগ্রহ আইডি টেক্সটবক্সে, wordlist লিখুন, তারপর Next এ ক্লিক করুন।

1b4ccadb90f52f02.png সম্পর্কে

এরপর, আমরা একটি শব্দের জন্য একটি ডকুমেন্ট তৈরি করব: চুক্তি

  1. ডকুমেন্ট আইডি টেক্সটবক্সে, agreement লিখুন।
  2. ফিল্ড টেক্সটবক্সে, word লিখুন এবং Value টেক্সটবক্সে agreement লিখুন।
  3. সংরক্ষণ করুন ক্লিক করুন।

379037e011e8511e.png সম্পর্কে

যখন আপনি এই ডকুমেন্টটি ক্লাউড ফায়ারস্টোরে যোগ করবেন, তখন এটি আপনার createSpellingPracticeWord ফাংশনটিকে শব্দের সংজ্ঞা বিবরণ আনতে ট্রিগার করবে। প্রতিটি শব্দের জন্য একটি নতুন ডকুমেন্ট তৈরি করে আরও শব্দ (যেমন: awe, car, true, tell, better, commute, ...) যোগ করুন।

১০. গুগল অ্যাসিস্ট্যান্ট সেট আপ করুন

নিম্নলিখিত বিভাগগুলিতে আপনার Google Assistant ডেভেলপমেন্ট পরিবেশ কীভাবে সেট আপ করবেন এবং আপনার Actions প্রকল্প তৈরি করবেন তা বর্ণনা করা হয়েছে।

আপনার Google অনুমতি সেটিংস পরীক্ষা করুন

এই কোডল্যাবে আপনার তৈরি করা অ্যাকশনটি পরীক্ষা করার জন্য, আপনাকে প্রয়োজনীয় অনুমতিগুলি সক্ষম করতে হবে যাতে সিমুলেটরটি আপনার অ্যাকশনটি অ্যাক্সেস করতে পারে। অনুমতিগুলি সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাক্টিভিটি কন্ট্রোল পৃষ্ঠায় যান।
  2. যদি আপনি ইতিমধ্যেই সাইন ইন না করে থাকেন, তাহলে আপনার গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
  3. নিম্নলিখিত অনুমতিগুলি সক্ষম করুন:
  • ওয়েব ও অ্যাপ অ্যাক্টিভিটি
  • ওয়েব ও অ্যাপ অ্যাক্টিভিটির অধীনে, Google পরিষেবা ব্যবহার করে এমন সাইট, অ্যাপ এবং ডিভাইস থেকে Chrome ইতিহাস এবং কার্যকলাপ অন্তর্ভুক্ত করুন এর পাশের চেকবক্সটি নির্বাচন করুন।

c988e1e639e6d6e1.png সম্পর্কে

একটি অ্যাকশন প্রকল্প তৈরি করুন

আপনার অ্যাকশন প্রজেক্ট হল আপনার অ্যাকশনের একটি ধারক। এই কোডল্যাবের জন্য আপনার অ্যাকশন প্রজেক্ট তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন কনসোলটি খুলুন।
  2. নতুন প্রকল্পে ক্লিক করুন।
  3. পরিষেবার শর্তাবলী গ্রহণ করুন

b174d45710b8086b.png সম্পর্কে

  1. Firebase Console ব্যবহার করে তৈরি করা spelling-practice-codelab টাইপ করুন অথবা নির্বাচন করুন। (নামটি আপনার অভ্যন্তরীণ রেফারেন্সের জন্য। পরে, আপনি আপনার প্রকল্পের জন্য একটি বহিরাগত নাম সেট করতে পারেন।)

a2951de5d2001fac.png সম্পর্কে

  1. প্রোজেক্ট আমদানি করুন ক্লিক করুন।
  2. "আপনি কী ধরণের অ্যাকশন তৈরি করতে চান?" স্ক্রিনে, কাস্টম কার্ডটি নির্বাচন করুন।
  3. পরবর্তী ক্লিক করুন।
  4. ফাঁকা প্রকল্প কার্ডটি নির্বাচন করুন।
  5. নির্মাণ শুরু করুন ক্লিক করুন।
  6. প্রদর্শন নামের জন্য বানান অনুশীলন লিখুন এবং সংরক্ষণ করুন ক্লিক করুন।

ব্যবহারকারীরা আপনার অ্যাকশনের সাথে কথোপকথন শুরু করেন invocation এর মাধ্যমে। উদাহরণস্বরূপ, ব্যবহারকারীরা "Hey Google, talk to Spelling Practice" এর মতো একটি বাক্যাংশ বলে আপনার অ্যাকশনটি শুরু করতে পারেন, যেখানে Spelling Practice হল প্রদর্শনের নাম।

আপনার অ্যাকশনটি প্রোডাকশনে স্থাপন করতে চাইলে এর একটি ডিসপ্লে নাম থাকতে হবে; তবে, আপনার অ্যাকশন পরীক্ষা করার জন্য, আপনাকে ডিসপ্লে নামটি সংজ্ঞায়িত করতে হবে না। পরিবর্তে, আপনি আপনার অ্যাকশনটি চালু করতে সিমুলেটরে "টক টু মাই টেস্ট অ্যাপ" বাক্যাংশটি ব্যবহার করতে পারেন।

পূরণ কনফিগার করুন

এই কোডল্যাবে আপনার লেখা এবং আগে স্থাপন করা ক্লাউড ফাংশনগুলির ইভেন্ট হ্যান্ডলারগুলিকে আপনাকে সহকারীর সাথে সংযুক্ত করতে হবে।

আপনার পরিপূর্ণতা কনফিগার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. পাশের নেভিগেশনে ওয়েবহুক- এ ক্লিক করুন।
  2. পূর্ণতা বিকল্প হিসেবে Https এন্ডপয়েন্ট নির্বাচন করুন:

d523bf003e96e66f.png

  1. HTTPs এন্ডপয়েন্ট টেক্সটবক্সে আপনার ফাংশনের এন্ডপয়েন্টের URL লিখুন, তারপর সংরক্ষণ করুন এ ক্লিক করুন।

be53e2cd0d914d54.png সম্পর্কে

পরবর্তী বিভাগে, আপনি অ্যাকশন কনসোলে আপনার প্রধান আহ্বানের জন্য প্রম্পটটি কাস্টমাইজ করবেন।

প্রধান আহ্বান সেট আপ করুন

ব্যবহারকারী আপনার অ্যাকশন চালু করার পরে কী ঘটবে তা নির্ধারণ করতে আপনাকে অবশ্যই প্রধান আমন্ত্রণ সম্পাদনা করতে হবে।

ডিফল্টরূপে, যখন আপনার আমন্ত্রণ ট্রিগার করা হয় তখন অ্যাকশন বিল্ডার একটি জেনেরিক প্রম্পট প্রদান করে ( "প্রধান আমন্ত্রণ নির্ধারণ করে আপনার অ্যাকশন তৈরি শুরু করুন।")।

আপনার Action ব্যবহারকারী যখন আপনার Action আহ্বান করে তখন তাদের কাছে যে প্রম্পট ফেরত পাঠায় তা পরিবর্তন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে প্রধান আহ্বানে ক্লিক করুন।

9ff088c04c995cde.png সম্পর্কে

  1. Call your webhook চেক করুন এবং টেক্সটবক্সে ইভেন্ট হ্যান্ডলারের নাম getSpellingWordList যোগ করুন।
  2. কোড এডিটরে, speech ফিল্ডের টেক্সটটি নিম্নলিখিত স্বাগত বার্তা দিয়ে প্রতিস্থাপন করুন: Welcome to Spelling Practice

দ্রষ্টব্য: আপনার প্রম্পটগুলি সম্পাদনা করতে আপনি YAML অথবা JSON ফর্ম্যাটিং ব্যবহার করতে পারেন।

  1. সংরক্ষণ করুন ক্লিক করুন।

সিমুলেটরে মূল আহ্বান পরীক্ষা করুন

অ্যাকশন কনসোল আপনার অ্যাকশন পরীক্ষা করার জন্য একটি ওয়েব টুল প্রদান করে যাকে সিমুলেটর বলা হয়। ইন্টারফেসটি হার্ডওয়্যার ডিভাইস এবং তাদের সেটিংস সিমুলেট করে, যাতে আপনি আপনার অ্যাকশনের সাথে এমনভাবে কথা বলতে পারেন যেন এটি একটি স্মার্ট ডিসপ্লে, ফোন, স্পিকার বা KaiOS-এ চলছে।

সিমুলেটরে আপনার অ্যাকশনের প্রধান আমন্ত্রণ পরীক্ষা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. উপরের নেভিগেশন বারে, সিমুলেটরে যেতে টেস্ট এ ক্লিক করুন।
  2. সিমুলেটরে আপনার অ্যাকশন চালু করতে, উপরের বাম দিকের ইনপুট ক্ষেত্রে Talk to Spelling Practice টাইপ করুন, তারপর আপনার কীবোর্ডে Enter টিপুন।

651fc8da1ac9aa0a.png সম্পর্কে

যখন আপনি আপনার অ্যাকশনের মূল আহ্বানটি ট্রিগার করেন, তখন অ্যাসিস্ট্যান্ট আপনার কাস্টমাইজড স্বাগত বার্তার মাধ্যমে সাড়া দেয়। এই মুহুর্তে, অ্যাসিস্ট্যান্ট শুভেচ্ছা জানিয়ে সাড়া দেওয়ার পরে কথোপকথনটি শেষ হয়।

ইভেন্ট লগ দেখুন

যখন আপনি "পরীক্ষা " ট্যাবে থাকবেন, তখন ডানদিকের প্যানেলে ইভেন্ট লগগুলি দেখানো হবে, যা কথোপকথনের ইতিহাসকে ইভেন্ট লগ হিসাবে প্রদর্শন করবে। প্রতিটি ইভেন্ট লগ কথোপকথনের সেই মোড়ের সময় ঘটে যাওয়া ঘটনাগুলি প্রদর্শন করবে। ইভেন্ট লগ দেখতে ইভেন্টের আগে ধূসর আইকনে ক্লিক করুন।

আপনার অ্যাকশনে বর্তমানে একটি ইভেন্ট লগ আছে, যা ব্যবহারকারীর ইনপুট ( "Talk to Spelling Practice" ) এবং আপনার অ্যাকশনের প্রতিক্রিয়া উভয়ই দেখায়। নিম্নলিখিত স্ক্রিনশটটি আপনার অ্যাকশনের ইভেন্ট লগ দেখায়:

a6fb192f94426824.png সম্পর্কে

১১. বানান অনুশীলনের জন্য কথোপকথন তৈরি করুন

এখন যেহেতু আপনি নির্ধারণ করেছেন যে একজন ব্যবহারকারী আপনার অ্যাকশন চালু করার পরে কী ঘটে, আপনি আপনার অ্যাকশনের বাকি কথোপকথনটি তৈরি করতে পারেন। স্পেলিং প্র্যাকটিসে চারটি দৃশ্য রয়েছে এবং এটি চালানোর আগে আপনাকে প্রতিটি দৃশ্য সক্রিয় করতে হবে। একটি দৃশ্য সক্রিয় করার সবচেয়ে সাধারণ উপায় হল আপনার অ্যাকশন কনফিগার করা যাতে, যখন কোনও ব্যবহারকারী একটি দৃশ্যের মধ্যে একটি ব্যবহারকারীর অভিপ্রায় মেলে, তখন সেই অভিপ্রায়টি অন্য দৃশ্যে রূপান্তরকে ট্রিগার করে এবং এটি সক্রিয় করে।

প্রধান আমন্ত্রণ থেকে শুরুর দৃশ্যে রূপান্তর

এই বিভাগে, আপনি Start নামে একটি নতুন দৃশ্য তৈরি করেন, যা ব্যবহারকারীকে একটি প্রম্পট পাঠায় যেখানে জিজ্ঞাসা করা হয় যে তারা Spelling Practice বাজানো শুরু করতে চান কিনা। আপনি মূল আহ্বান থেকে নতুন Start দৃশ্যে একটি রূপান্তরও যোগ করেন।

এই দৃশ্যটি তৈরি করতে এবং এতে একটি রূপান্তর যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. উপরের নেভিগেশনে Develop- এ ক্লিক করুন। তারপর, বাম নেভিগেশনে Main invocation-এ ক্লিক করুন।
  2. ডানদিকের ট্রানজিশন বিভাগে, ড্রপ-ডাউন মেনুতে ক্লিক করুন, তারপর টেক্সট ফিল্ডে Start টাইপ করুন।

dd4f1807a57f794d.png সম্পর্কে

  1. Add এ ক্লিক করুন। এটি Start নামে একটি দৃশ্য তৈরি করে এবং Action ব্যবহারকারীকে স্বাগত প্রম্পট প্রদানের পর Action কে Start দৃশ্যে স্থানান্তর করতে বলে।
  2. দৃশ্যের তালিকা দেখতে বাম দিকের নেভিগেশনে দৃশ্যগুলিতে ক্লিক করুন।
  3. দৃশ্যের অধীনে, Start দৃশ্যটি দেখতে শুরু করুন- এ ক্লিক করুন।
  4. Start দৃশ্যের অন এন্টার বিভাগে + ক্লিক করুন।
  5. প্রম্পট পাঠান নির্বাচন করুন।
  6. speech ক্ষেত্রের বাক্যটি ( Enter the response that users will see or hear... ) ব্যবহারকারীকে জিজ্ঞাসা করার জন্য একটি প্রশ্ন দিয়ে প্রতিস্থাপন করুন: Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?

সাজেশন চিপগুলি ব্যবহারকারীর জন্য ক্লিকযোগ্য সাজেশন অফার করে যা আপনার অ্যাকশন ব্যবহারকারীর ইনপুট হিসাবে প্রক্রিয়া করে। এই বিভাগে, আপনি সাজেশন চিপগুলি যোগ করেন যা আপনার কনফিগার করা প্রম্পটের নীচে প্রদর্শিত হয় ( Do you want to play

Spelling Practice

? ) স্ক্রিনযুক্ত ডিভাইসে ব্যবহারকারীদের সহায়তা করার জন্য।

Start দৃশ্যের প্রম্পটে সাজেশন চিপ যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Start " দৃশ্যে, কোড এডিটরের নীচে "সুযোগ" এ ক্লিক করুন। এই ক্রিয়াটি একটি একক পরামর্শ চিপ যোগ করে।
  2. title ক্ষেত্রে, Suggested Response 'Yes' দিয়ে প্রতিস্থাপন করুন।
  3. একই ফর্ম্যাটিং ব্যবহার করে, 'No' এবং 'Help with Phonetics' শিরোনামে একটি সাজেশন চিপ ম্যানুয়ালি যোগ করুন। আপনার কোডটি নিম্নলিখিত স্নিপেটের মতো দেখাবে:
  4. সংরক্ষণ করুন ক্লিক করুন।

5ff2ecdc56801b91.png সম্পর্কে

সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করুন

এই মুহুর্তে, আপনার অ্যাকশনটি মূল আমন্ত্রণ থেকে স্টার্ট দৃশ্যে স্থানান্তরিত হওয়া উচিত এবং ব্যবহারকারীকে জিজ্ঞাসা করা উচিত যে তারা চালিয়ে যেতে চান কিনা। সিমুলেটেড ডিসপ্লেতে সাজেশন চিপগুলিও উপস্থিত হওয়া উচিত।

সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশন বারে, সিমুলেটরে নিয়ে যাওয়ার জন্য টেস্ট এ ক্লিক করুন।
  2. সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করতে, ইনপুট ক্ষেত্রে Talk to Spelling Practice টাইপ করুন।
  3. এন্টার টিপুন। আপনার অ্যাকশনটি Main invocation prompt এবং যোগ করা Start scene prompt, "Welcome to Spelling Practice" এর সাথে সাড়া দেবে। শব্দটির বানান করতে ফোনেটিক বর্ণমালা ব্যবহার করুন। উদাহরণস্বরূপ a এর জন্য alpha, b এর জন্য bravo, c এর জন্য charlie ইত্যাদি। আপনি কি চালিয়ে যেতে চান?"

নিম্নলিখিত স্ক্রিনশটটি এই মিথস্ক্রিয়াটি দেখায়:

338c9570b02a618e.png সম্পর্কে

  1. প্রম্পটে সাড়া দিতে Yes অথবা No অথবা Help with Phonetics পরামর্শ চিপে ক্লিক করুন। (আপনি "হ্যাঁ" অথবা "না" অথবা "ফোনেটিক্সে সাহায্য" বলতে পারেন অথবা ইনপুট ক্ষেত্রে Yes অথবা No অথবা Help with Phonetics " লিখতে পারেন।)

যখন আপনি প্রম্পটে সাড়া দেন, তখন আপনার Action একটি বার্তার সাথে সাড়া দেয় যে এটি আপনার ইনপুট বুঝতে পারছে না: "দুঃখিত, আমি এটা বুঝতে পারিনি। আপনি কি আবার চেষ্টা করতে পারেন?" যেহেতু আপনি এখনও আপনার Action কে "হ্যাঁ" বা "না" ইনপুট বোঝার এবং সাড়া দেওয়ার জন্য কনফিগার করেননি, তাই আপনার Action আপনার ইনপুটটিকে একটি NO_MATCH ইন্টেন্টের সাথে মেলে।

ডিফল্টরূপে, NO_MATCH সিস্টেম ইন্টেন্ট জেনেরিক প্রতিক্রিয়া প্রদান করে, তবে আপনি ব্যবহারকারীর ইনপুট বুঝতে পারেননি তা বোঝাতে এই প্রতিক্রিয়াগুলি কাস্টমাইজ করতে পারেন। ব্যবহারকারীর ইনপুট তিনবার মেলাতে না পারলে অ্যাসিস্ট্যান্ট আপনার অ্যাকশন দিয়ে ব্যবহারকারীর কথোপকথন শেষ করে।

না এবং ধ্বনিবিদ্যার উদ্দেশ্য যোগ করুন

এখন যেহেতু ব্যবহারকারীরা আপনার অ্যাকশনের প্রশ্নের উত্তর দিতে পারেন, তাই আপনি ব্যবহারকারীদের প্রতিক্রিয়া ( "হ্যাঁ" বা "না" অথবা "ফোনেটিক্সে সাহায্য করুন" ) বোঝার জন্য আপনার অ্যাকশনটি কনফিগার করতে পারেন। নিম্নলিখিত বিভাগগুলিতে, আপনি ব্যবহারকারীর ইন্টেন্ট তৈরি করেন যা ব্যবহারকারী "হ্যাঁ" বা "না" অথবা "ফোনেটিক্সে সাহায্য করুন" বলার সাথে মিলে যায় এবং এই ইন্টেন্টগুলি Start দৃশ্যে যুক্ত করেন। আমরা সিস্টেম ইন্টেন্ট yes ব্যবহার করব এবং অন্যান্য ইন্টেন্ট তৈরি করব।

কোনও উদ্দেশ্য তৈরি করবেন no

এখন, ব্যবহারকারী যখন গেমটি খেলতে চাইবে না তখন তাদের বুঝতে এবং প্রতিক্রিয়া জানাতে আপনাকে no (no) অভিপ্রায় তৈরি করতে হবে। এই অভিপ্রায় তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে ডেভেলপ ক্লিক করুন।
  2. ইন্টেন্টের তালিকা খুলতে নেভিগেশনে কাস্টম ইন্টেন্টে ক্লিক করুন।
  3. ইন্টেন্টের তালিকার শেষে + (প্লাস চিহ্ন) ক্লিক করুন। নতুন ইন্টেন্ট নম্বরটির নাম no এবং এন্টার টিপুন।
  4. no ইনটেন্ট" পৃষ্ঠাটি খুলতে "নো" এ ক্লিক করুন।
  5. প্রশিক্ষণ বাক্যাংশ যোগ করুন বিভাগে, শব্দবন্ধ লিখুন টেক্সট বক্সে ক্লিক করুন এবং নিম্নলিখিত বাক্যাংশগুলি লিখুন:
  • No
  • N
  • I don't want
  • nope

98b0c9a7b67ea9b9.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

Start দৃশ্যে কোনও উদ্দেশ্য no যোগ করুন

এখন, অ্যাকশন বুঝতে পারে যখন একজন ব্যবহারকারী "no" বা "no" এর অনুরূপ কিছু, যেমন "nope" প্রকাশ করছেন। আপনাকে Start দৃশ্যে no user intent যোগ করতে হবে কারণ ব্যবহারকারী Start প্রম্পটে সাড়া দিচ্ছেন (" Welcome to Spelling Practice। শব্দটি বানান করতে ফোনেটিক বর্ণমালা ব্যবহার করুন। উদাহরণস্বরূপ a এর জন্য alpha, b এর জন্য bravo, c এর জন্য charlie ইত্যাদি। আপনি কি চালিয়ে যেতে চান?" )।

Start দৃশ্যের জন্য এই উদ্দেশ্যটি যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে স্টার্ট দৃশ্যে ক্লিক করুন।
  2. User intent handling এর পাশের Start দৃশ্যে + (প্লাস চিহ্ন) ক্লিক করুন।
  3. "ইন্টেন্ট" বিভাগে, ড্রপ-ডাউন থেকে "না" নির্বাচন করুন।

51f752e78c8b4942.png সম্পর্কে

  1. প্রম্পট পাঠান ক্লিক করুন এবং নিম্নলিখিত লেখাটি দিয়ে speech ক্ষেত্রটি আপডেট করুন: Good Bye

আপনার এডিটরের কোডটি নিচের স্নিপেটের মতো দেখাবে:

candidates:
  - first_simple:
      variants:
        - speech: >-
             Goodbye.
  1. ট্রানজিশন বিভাগে, ড্রপডাউন থেকে কথোপকথন শেষ করুন নির্বাচন করুন।
  2. সংরক্ষণ করুন ক্লিক করুন।

সিমুলেটরে " no উদ্দেশ্য নেই" পরীক্ষা করুন

এই মুহুর্তে, আপনার অ্যাকশন বুঝতে পারে কখন ব্যবহারকারী গেমটি খেলতে চায় না এবং উপযুক্ত প্রতিক্রিয়া জানায়।

সিমুলেটরে এই অভিপ্রায় পরীক্ষা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশন বারে, পরীক্ষা করুন এ ক্লিক করুন।
  2. ইনপুট ক্ষেত্রে Talk to Spelling Practice টাইপ করুন এবং Enter টিপুন।
  3. ইনপুট ক্ষেত্রে No টাইপ করুন এবং Enter টিপুন। বিকল্পভাবে, No suggestion chip এ ক্লিক করুন।

7727a456b522f31b.png সম্পর্কে

Start দৃশ্যে সিস্টেম YES ইন্টেন্ট যোগ করুন

এখন, আমরা Start দৃশ্যে SYSTEM intent "YES" যোগ করব, যেহেতু ব্যবহারকারী Start প্রম্পটে হ্যাঁ উত্তর দিচ্ছেন (" স্নান অনুশীলনে স্বাগতম। শব্দটি বানান করতে ফোনেটিক বর্ণমালা ব্যবহার করুন। উদাহরণস্বরূপ a এর জন্য alpha, b এর জন্য bravo, c এর জন্য charlie ইত্যাদি। আপনি কি চালিয়ে যেতে চান?" )।

এই ব্যবহারকারীর উদ্দেশ্যটি Start দৃশ্যে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে স্টার্ট দৃশ্যে ক্লিক করুন।
  2. User intent handling এর পাশের Start দৃশ্যে + (প্লাস চিহ্ন) ক্লিক করুন।
  3. All System Intents এর অধীনে, Intent ড্রপ-ডাউনে YES নির্বাচন করুন।

f6cbe789cde49e8f.png সম্পর্কে

  1. আপনার ওয়েবহুক কল করুন এ ক্লিক করুন এবং event handler টেক্সটবক্সটি আপনার আগে তৈরি করা ফাংশন দিয়ে আপডেট করুন: getSpellingWordList
  2. ট্রানজিশন বিভাগে, ড্রপ-ডাউনে ক্লিক করুন এবং কথোপকথন শেষ করুন নির্বাচন করুন।
  3. সংরক্ষণ করুন ক্লিক করুন।

সিমুলেটরে YES অভিপ্রায় পরীক্ষা করুন

এই মুহুর্তে, আপনার অ্যাকশন বুঝতে পারে কখন ব্যবহারকারী গেমটি খেলতে চায় এবং উপযুক্ত প্রতিক্রিয়া জানায়।

সিমুলেটরে এই অভিপ্রায় পরীক্ষা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশন বারে, পরীক্ষা করুন এ ক্লিক করুন।
  2. সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করতে, ইনপুট ক্ষেত্রে Talk to Spelling Practice টাইপ করুন এবং Enter টিপুন।
  3. ইনপুট ক্ষেত্রে Yes টাইপ করুন এবং Enter টিপুন। বিকল্পভাবে, Yes সাজেশন চিপে ক্লিক করুন।

"Your Action" সমস্ত বানান অনুশীলন শব্দের একটি তালিকা সংগ্রহ করে এবং সেগুলিকে সেশনে সংরক্ষণ করে। YES অভিপ্রায়টির জন্য " End conversation transition" নির্বাচন করার কারণে "Your Action" সেশনটি শেষ করে।

Phonetics ইনটেন্ট তৈরি করুন

Phonetics ইনটেন্ট তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে ডেভেলপ ক্লিক করুন।
  2. ইন্টেন্টের তালিকা খুলতে নেভিগেশনে কাস্টম ইন্টেন্টে ক্লিক করুন।
  3. ইন্টেন্ট তালিকার শেষে + (প্লাস চিহ্ন) ক্লিক করুন। নতুন ইন্টেন্ট phonetics নাম দিন এবং Enter টিপুন।
  4. phonetics ইনটেন্ট পৃষ্ঠাটি খুলতে phonetics ইনটেন্টে ক্লিক করুন।
  5. প্রশিক্ষণ বাক্যাংশ যোগ করুন বিভাগে, শব্দবন্ধ লিখুন টেক্সট বক্সে ক্লিক করুন এবং নিম্নলিখিত বাক্যাংশগুলি লিখুন:
  • how do I spell words
  • phonetics
  • help me with phonetics
  • phonetic alphabet

1455bdfca8dae46.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

Start দৃশ্যে phonetics উদ্দেশ্য যোগ করুন

এখন, অ্যাকশন বুঝতে পারে যখন একজন ব্যবহারকারী "ফোনেটিক্স" অভিপ্রায় প্রকাশ করছেন। আপনি Start দৃশ্যে phonetics ব্যবহারকারীর অভিপ্রায় যোগ করতে পারেন, যেহেতু ব্যবহারকারী Start প্রম্পটে সাড়া দিচ্ছেন (" স্নান অনুশীলনে স্বাগতম। শব্দটি বানান করতে ফোনেটিক বর্ণমালা ব্যবহার করুন। উদাহরণস্বরূপ a এর জন্য alpha, b এর জন্য bravo, c এর জন্য charlie ইত্যাদি। আপনি কি চালিয়ে যেতে চান?" )।

এই ব্যবহারকারীর উদ্দেশ্যটি Start দৃশ্যে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে স্টার্ট দৃশ্যে ক্লিক করুন।
  2. User intent handling এর পাশের Start দৃশ্যে + (প্লাস চিহ্ন) ক্লিক করুন।
  3. ইনটেন্ট ড্রপ-ডাউন থেকে ফোনেটিক্স নির্বাচন করুন।

67ee2e08000b2aee.png সম্পর্কে

  1. ট্রানজিশন বিভাগে, ড্রপ-ডাউনে ক্লিক করুন এবং কথোপকথন শেষ করুন নির্বাচন করুন।
  2. সংরক্ষণ করুন ক্লিক করুন।

শুরুর দৃশ্য থেকে বানানের দৃশ্যে রূপান্তর

এই বিভাগে, আপনি Spelling নামে একটি নতুন দৃশ্য তৈরি করবেন, যা ব্যবহারকারীকে ফোনেটিক বর্ণমালা ব্যবহার করে শব্দটি বানান করার জন্য একটি প্রম্পট পাঠাবে।

এই দৃশ্যটি তৈরি করতে এবং এতে একটি রূপান্তর যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. উপরের নেভিগেশনে Develop- এ ক্লিক করুন। তারপর, বাম নেভিগেশনে Start scene-এ ক্লিক করুন।
  2. ইউজার ইনটেন্ট হ্যান্ডলিং বিভাগে when actions.intent.YES is matched ক্লিক করুন এবং ট্রানজিশন বিভাগে ডানদিকে, ড্রপ-ডাউন মেনুতে ক্লিক করুন এবং টেক্সট ফিল্ডে Spelling টাইপ করুন।
  3. Add এ ক্লিক করুন। এটি Spelling নামে একটি দৃশ্য তৈরি করে এবং YES অভিপ্রায় সহ মিলের পরে Action কে Spelling দৃশ্যে স্থানান্তর করতে বলে।
  4. দৃশ্যের তালিকা দেখানোর জন্য বাম নেভিগেশনে দৃশ্যগুলি প্রসারিত করুন।
  5. দৃশ্যাবলীর অধীনে, Spelling দৃশ্যটি দেখতে বানান-এ ক্লিক করুন।
  6. Spelling দৃশ্যের অন এন্টার বিভাগে + ক্লিক করুন।
  7. আপনার ওয়েবহুককে কল করুন এ ক্লিক করুন এবং ইভেন্ট হ্যান্ডলার টেক্সটবক্সে getSpellingWord লিখুন।
  8. প্রম্পট পাঠান নির্বাচন করুন।
  9. speech ফিল্ডের বাক্যটি ( Enter the response that users will see or hear... ) {} দিয়ে প্রতিস্থাপন করুন। আসল প্রম্পটটি ওয়েবহুক দ্বারা পূর্ণ হবে।

সাজেশন চিপগুলি ব্যবহারকারীর জন্য ক্লিকযোগ্য সাজেশন অফার করে যা আপনার অ্যাকশন ব্যবহারকারীর ইনপুট হিসেবে প্রক্রিয়া করে।

Spelling দৃশ্যের প্রম্পটে সাজেশন চিপ যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Spelling দৃশ্যে, কোড এডিটরের নীচের পরামর্শগুলিতে ক্লিক করুন। এই ক্রিয়াটি তিনটি পরামর্শ চিপ যোগ করে।
  2. title ক্ষেত্রে, Suggested Response পরিবর্তে 'Repeat' লিখুন।
  3. একই ফর্ম্যাটিং ব্যবহার করে, 'Skip' শিরোনামের একটি সাজেশন চিপ ম্যানুয়ালি যোগ করুন।
  4. একই ফর্ম্যাটিং ব্যবহার করে, 'Quit' শিরোনামের একটি সাজেশন চিপ ম্যানুয়ালি যোগ করুন। আপনার কোডটি নিম্নলিখিত স্নিপেটের মতো দেখাবে:
  5. সংরক্ষণ করুন ক্লিক করুন।
suggestions:
      - title: 'Repeat'
      - title: 'Skip'
      - title: 'Quit'

e1d437f714ea1539.png সম্পর্কে

Repeat অভিপ্রায় তৈরি করুন

repeat অভিপ্রায় তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে ডেভেলপ ক্লিক করুন।
  2. ইন্টেন্টের তালিকা খুলতে নেভিগেশনে কাস্টম ইন্টেন্টে ক্লিক করুন।
  3. ইন্টেন্টের তালিকার শেষে + (প্লাস চিহ্ন) ক্লিক করুন। নতুন repeat নাম দিন এবং Enter টিপুন।
  4. definition উদ্দেশ্য পৃষ্ঠাটি খুলতে repeat অভিপ্রায়টিতে ক্লিক করুন।
  5. প্রশিক্ষণ বাক্যাংশ যোগ করুন বিভাগে, শব্দবন্ধ লিখুন টেক্সট বক্সে ক্লিক করুন এবং নিম্নলিখিত বাক্যাংশগুলি লিখুন:
  • one more time please
  • say the word again
  • repeat the word
  • tell me again
  • repeat

e61f0b9f80510bc9.png

  1. সংরক্ষণ করুন ক্লিক করুন।

Spelling দৃশ্যে repeat উদ্দেশ্য যোগ করুন

এখন, অ্যাকশন বুঝতে পারে যখন একজন ব্যবহারকারী "পুনরাবৃত্তি" অভিপ্রায় প্রকাশ করছেন। আপনি Spelling দৃশ্যে repeat ব্যবহারকারীর অভিপ্রায় যোগ করতে পারেন, যেহেতু ব্যবহারকারী Spelling প্রম্পটে সাড়া দিচ্ছেন (" ধ্বনিগত বর্ণমালা ব্যবহার করে শব্দের বানান করুন ")।

এই ব্যবহারকারীর উদ্দেশ্যটি Spelling দৃশ্যে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে বানান দৃশ্যে ক্লিক করুন।
  2. User intent handling এর পাশের Spelling দৃশ্যে + (যোগ চিহ্ন) ক্লিক করুন।
  3. ইনটেন্ট ড্রপ-ডাউন থেকে পুনরাবৃত্তি নির্বাচন করুন।

5cfd623b25bedbed.png সম্পর্কে

  1. শব্দের সংজ্ঞা পেতে ইভেন্ট হ্যান্ডলার টেক্সটবক্সে "কল" আপনার ওয়েবহুকটি চেক করুন এবং repeatSpellingWord লিখুন।
  2. প্রম্পট পাঠান চেক করুন।
  3. speech ফিল্ডে ( Enter the response that users will see or hear... ) বাক্যটি '' দিয়ে প্রতিস্থাপন করুন। আসল প্রম্পটটি ওয়েবহুক দ্বারা পূর্ণ হবে।

"যখন পুনরাবৃত্তি মিলে যায়" -এ পরামর্শ চিপ যোগ করুন

  1. " When Repeat is matched " বিভাগে User Intent handling-এর অধীনে, কোড এডিটরের নীচে suggestions- এ ক্লিক করুন। এই ক্রিয়াটি তিনটি suggestion chip যোগ করে।
  2. title ক্ষেত্রে, Suggested Response পরিবর্তে 'Skip' লিখুন।
  3. একই ফর্ম্যাটিং ব্যবহার করে, 'Quit' শিরোনামের একটি সাজেশন চিপ ম্যানুয়ালি যোগ করুন। আপনার কোডটি নিম্নলিখিত স্নিপেটের মতো দেখাবে:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

ab40e4b0c432b97c.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

definition উদ্দেশ্য তৈরি করুন

definition উদ্দেশ্য তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে ডেভেলপ ক্লিক করুন।
  2. ইন্টেন্টের তালিকা খুলতে নেভিগেশনে কাস্টম ইন্টেন্টে ক্লিক করুন।
  3. ইন্টেন্টের তালিকার শেষে + (প্লাস চিহ্ন) ক্লিক করুন। নতুন ইন্টেন্টের definition নাম দিন এবং Enter টিপুন।
  4. definition উদ্দেশ্য পৃষ্ঠাটি খুলতে definition উদ্দেশ্যটিতে ক্লিক করুন।
  5. প্রশিক্ষণ বাক্যাংশ যোগ করুন বিভাগে, শব্দবন্ধ লিখুন টেক্সট বক্সে ক্লিক করুন এবং নিম্নলিখিত বাক্যাংশগুলি লিখুন:
  • I would like to know the definition
  • tell me the definition
  • what does it mean
  • meaning
  • definition
  • what is the definition?

c1b88a9c0b1ac082.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

Spelling দৃশ্যে definition উদ্দেশ্য যোগ করুন

এখন, অ্যাকশন বুঝতে পারে যখন একজন ব্যবহারকারী "সংজ্ঞা" অভিপ্রায় প্রকাশ করছেন। আপনি Spelling দৃশ্যে definition ব্যবহারকারী অভিপ্রায় যোগ করতে পারেন, যেহেতু ব্যবহারকারী Spelling প্রম্পটে সাড়া দিচ্ছেন (" ধ্বনিগত বর্ণমালা ব্যবহার করে শব্দের বানান করুন ")।

এই ব্যবহারকারীর উদ্দেশ্যটি Spelling দৃশ্যে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে বানান দৃশ্যে ক্লিক করুন।
  2. User intent handling এর পাশের Spelling দৃশ্যে + (যোগ চিহ্ন) ক্লিক করুন।
  3. ইনটেন্ট ড্রপ-ডাউন থেকে সংজ্ঞা নির্বাচন করুন।

646bdcac3ad3eb0c.png সম্পর্কে

  1. শব্দের সংজ্ঞা পেতে ইভেন্ট হ্যান্ডলার টেক্সটবক্সে "Call your webhook" চেক করুন এবং definitionOfSpellingWord লিখুন।
  2. প্রম্পট পাঠান চেক করুন।
  3. speech ফিল্ডে ( Enter the response that users will see or hear... ) বাক্যটি ''` দিয়ে প্রতিস্থাপন করুন। আসল প্রম্পটটি ওয়েবহুক দ্বারা পূর্ণ হবে।

ওয়েবহুক প্রতিক্রিয়ায় পরামর্শ চিপ যোগ করুন

  1. Start " দৃশ্যে, কোড এডিটরের নীচে "সুযোগ" এ ক্লিক করুন। এই ক্রিয়াটি তিনটি পরামর্শ চিপ যোগ করে।
  2. title ক্ষেত্রে, Suggested Response পরিবর্তে 'Skip' লিখুন।
  3. একই ফর্ম্যাটিং ব্যবহার করে, 'Quit' শিরোনামের একটি সাজেশন চিপ ম্যানুয়ালি যোগ করুন। আপনার কোডটি নিম্নলিখিত স্নিপেটের মতো দেখাবে:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

25227545839d933f.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

skip ইন্টেন্ট তৈরি করুন

skip ইন্টেন্ট তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে ডেভেলপ ক্লিক করুন।
  2. ইন্টেন্টের তালিকা খুলতে নেভিগেশনে Intents- এ ক্লিক করুন।
  3. ইন্টেন্ট তালিকার শেষে + (প্লাস চিহ্ন) ক্লিক করুন। নতুন ইন্টেন্ট skip নাম দিন এবং Enter টিপুন।
  4. skip ইনটেন্ট পৃষ্ঠাটি খুলতে skip ইনটেন্টে ক্লিক করুন।
  5. প্রশিক্ষণ বাক্যাংশ যোগ করুন বিভাগে, শব্দবন্ধ লিখুন টেক্সট বক্সে ক্লিক করুন এবং নিম্নলিখিত বাক্যাংশগুলি লিখুন:
  • next word
  • go next
  • next
  • skip
  • skip word

d1c4908a3d7882f8.png সম্পর্কে

  1. সংরক্ষণ করুন ক্লিক করুন।

Spelling দৃশ্যে Skip ইনটেন্ট" যোগ করুন

এখন, অ্যাকশন বুঝতে পারে যখন একজন ব্যবহারকারী "skip" অভিপ্রায় প্রকাশ করছেন। আপনি Spelling দৃশ্যে skip user intent যোগ করতে পারেন, যেহেতু ব্যবহারকারী Spelling prompt (" phonetic alphabet ব্যবহার করে শব্দের বানান করুন ") এর উত্তর দিচ্ছেন।

এই ব্যবহারকারীর উদ্দেশ্যটি Spelling দৃশ্যে যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. নেভিগেশনে বানান দৃশ্যে ক্লিক করুন।
  2. ব্যবহারকারীর অভিপ্রায় হ্যান্ডলিন g এর পাশে Spelling দৃশ্যে + (যোগ চিহ্ন) ক্লিক করুন।
  3. Select skip in the intent drop-down.

5465f97542217964.png

  1. In the Transition section on the right, click the drop-down menu and select Spelling .

c8072485ca82bd3f.png

  1. সংরক্ষণ করুন ক্লিক করুন।

Create quit intent

To create the Quit intent, follow these steps:

  1. Click Develop in the navigation.
  2. Click Intents in the navigation to open the list of intents.
  3. Click + (plus sign) at the end of the list of intents. Name the new intent Quit and press Enter .
  4. Click the Quit intent to open the definition intent page.
  5. In the Add training phrases section, click the Enter Phrase text box and enter the following phrases:
  • I quit
  • Goodbye
  • Cancel
  • Exit
  • Quit

9916f77b8766541e.png

  1. সংরক্ষণ করুন ক্লিক করুন।

Add Quit intent to Spelling scene

Now, the Action can understand when a user is expressing a "quit" intent. You can add the quit user intent to the Spelling scene, since the user is responding to the Spelling prompt (" Spell the word using phonetic alphabet ").

To add this user intent to the Spelling scene, follow these steps:

  1. Click the Spelling scene in the navigation.
  2. Click the + (plus sign) in the Spelling scene next to User intent handling .
  3. Select quit in the intent drop-down.

5f62fb18a3653d66.png

  1. In the Transition section on the right, click the drop-down menu and select End conversation . 1ffbe35a7bbbb4b0.png
  2. সংরক্ষণ করুন ক্লিক করুন।

Create phonetic_alphabet type

In this section, you create a new type called phonetic_alphabet , which specifies the phonetic alphabet options the users can choose to spell the word. You can also define a few synonyms for these options in case a user says something similar. In a later section, you add the phonetic_alphabet type to a slot to specify that you want to obtain the user's response.

To create the phonetic_alphabet type, follow these steps:

  1. Click Develop in the navigation.
  2. Click the + (plus sign) under Types .
  3. Type phonetic_alphabet and press Enter .
  4. Click phonetic_alphabet to open the options.
  5. In the What kind of values will this Type support? section, select the Words and synonyms option
  6. Enter the following entries and corresponding values in the Add entries section:

alpha, apple, amsterdam

bravo, butter, baltimore

charlie, cat, casablanca

delta, dog, denmark

echo, edward, edison

foxtrot, fox, florida

golf, george, gallipoli

hotel, harry, havana

আমি

india, ink, italia

juliette, johnny, jerusalem

কে

kilo, king, kilogramme

আমি

lima, love, london

মি

mike, money, madagascar

এন

november, new york, nancy

oscar, orange, oslo

পি

papa, paris, peter

প্রশ্ন

quebec, queen

আর

romeo, roma, robert

গুলি

sierra, sugar, santiago

টি

tango, tommy, tripoli

তুমি

uniform, umbrella, uncle

বনাম

victor, vinegar, Valencia

w সম্পর্কে

whiskey, william, washington

এক্স

এক্স-রে

y

yankee, yellow, yorker

z-এর

zulu, zebra, zurich

Your key-value table should look like the following:

5b5a5cd9fa557e1b.png

  1. সংরক্ষণ করুন ক্লিক করুন।

Configure slot filling

Next, you need to configure slot filling in the Spelling scene. To configure the slot-filling logic, follow these steps:

  1. Click the Spelling scene in the navigation.
  2. Click the + (plus sign) in the Spelling scene for Slot filling .
  3. In the Enter slot name field, add userresponse as the slot name.
  4. In the Select type drop-down, select phonetic_alphabet as the slot type.
  5. Check This slot accepts a list of values
  6. Check This slot is required .
  7. Select Customize slot value writeback option and enter userresponse in the session parameter textbox.

ba57a419877a07f3.png

  1. সংরক্ষণ করুন ক্লিক করুন।

Add Condition to Spelling screen

To add Condition to the Spelling scene, follow these steps:

  1. Click the Spelling scene in the navigation.
  2. Click the + (plus sign) in the Spelling scene next to Condition.
  3. Enter scene.slots.status == "FINAL" as condition
  4. Check the Call your webhook and enter verifySpellingWord in the event handler textbox to verify the user response.
  5. Check Send prompts.
  6. Replace the sentence in the speech field ( Enter the response that users will see or hear... ) with {} . The actual prompt will be populated by webhook.

Add suggestion chips to the webhook response

  1. In the Start scene, click suggestions below the code editor. This action adds three suggestion chips.
  2. In the title field, replace Suggested Response with 'Next' .
  3. Using the same formatting, manually add a suggestion chip titled 'Quit' .Your code should look like the following snippet:
suggestions:
      - title: 'Next'
      - title: 'Quit'

ac3d7a9366ebc1b1.png

  1. সংরক্ষণ করুন ক্লিক করুন।

12. Test Spelling Practice in the simulator

সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. In the navigation bar, click Test to take you to the simulator.
  2. To test your Action in the simulator, type Talk to Spelling Practice in the Input field.
  3. Press Enter . Your Action should respond with the Main invocation prompt and the added Start scene prompt, "Welcome to Spelling Practice. Use the phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?" .
  4. Say Yes to continue
  5. Simulator will play a word sound to spell
  6. You can spell the word using phonetic alphabets. For example, for better say or type "bravo echo tango tango echo romeo"
  7. Simulator will respond with either the correct or incorrect response.
  8. Say next to continue to the next word or say quit to exit the game loop.

১৩. অভিনন্দন

Congratulations, you've successfully built your game, Spelling Practice !

You now know the key steps required to build a game using Cloud Firestore, Cloud Functions, and Google Assistant Action Builder.

তুমি যা কভার করেছো

  • How to interact with Cloud Firestore
  • How to use slots to gather data from the user
  • কীভাবে একজন ব্যবহারকারীর ইনপুট প্রক্রিয়া করবেন এবং প্রতিক্রিয়া জানাবেন
  • How to use conditions to add logic to a scene
  • How to add a game loop

Additional learning resources

You can explore these resources for learning about building Actions for Google Assistant:

আপনার প্রকল্পটি পরিষ্কার করুন [প্রস্তাবিত]

সম্ভাব্য চার্জ এড়াতে, আপনি যে প্রকল্পগুলি ব্যবহার করতে চান না সেগুলি সরিয়ে ফেলার পরামর্শ দেওয়া হচ্ছে। এই কোডল্যাবে আপনার তৈরি প্রকল্পগুলি মুছে ফেলার জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. To delete your Firebase project and resources, complete the steps listed in the Shutting down (deleting) projects section.

Caution: Ensure that you select the correct project for deletion on the Google Cloud Console's Settings page.

  1. Optional: To immediately remove your project from the Actions console, complete the steps listed in the Deleting a project section. If you don't complete this step, your project will automatically be removed after approximately 30 days.

Follow @ActionsOnGoogle & @Firebase on Twitter to stay tuned to our latest announcements and tweet to #GoogleIO to share what you have built!