1. खास जानकारी
Google Assistant डेवलपर प्लैटफ़ॉर्म की मदद से, आप सॉफ़्टवेयर बना सकते हैं और एक अरब से ज़्यादा डिवाइसों पर Google Assistant का इस्तेमाल कर सकते हैं. इसमें स्मार्ट स्पीकर, फ़ोन, कार, टीवी, हेडफ़ोन वगैरह शामिल हैं. यह एक वर्चुअल पर्सनल असिस्टेंट है, जो कि Google Assistant की मदद से काम करती है. उपयोगकर्ता किराने का सामान खरीदने या राइड बुक करने जैसे काम पूरे करने के लिए, Assistant से बातचीत करते हैं. डेवलपर के तौर पर, आपके पास Assistant डेवलपर प्लैटफ़ॉर्म का इस्तेमाल करने का विकल्प होता है. इसकी मदद से, उपयोगकर्ताओं और ग्राहक को आइटम भेजने के लिए तीसरे पक्ष की सेवा के बीच बातचीत के दिलचस्प और असरदार अनुभव आसानी से बनाए और मैनेज किए जा सकते हैं.
इस कोडलैब में, Google Assistant, Cloud Functions, और Cloud Firestore के साथ डेवलप करने के बीच के लेवल के कॉन्सेप्ट शामिल हैं. इस कोडलैब में, आपको "वर्तनी की प्रैक्टिस" नाम का एक गेम बनाना होगा जो लोगों से शब्दों की स्पेलिंग बोलने के लिए Google Assistant का इस्तेमाल करती है.
आपको क्या बनाना होगा
इस कोडलैब में, नीचे दी गई सुविधाओं वाला एक बेहतरीन गेम बनाया जा सकता है:
- इसे उपयोगकर्ता से स्पेलिंग के जवाब मिलते हैं और वैल्यू के हिसाब से, बातचीत वाले प्रॉम्प्ट में बदलाव किया जाता है
- जवाब में किसी शब्द की स्पेलिंग से जुड़े संकेत दिए जाते हैं. जैसे, उसकी परिभाषा या शब्द को दोहराना
- यह एक गेम लूप बनाता है. इससे उपयोगकर्ता, शब्द की स्पेलिंग लिखने के बाद, Assistant से दोबारा इंटरैक्ट कर सकता है
डिवाइस बनाने से पहले, Google Assistant की सुविधा वाले डिवाइस पर लाइव ऐक्शन का इस्तेमाल किया जा सकता है. इसके लिए, "Ok Google, स्पेलिंग की प्रैक्टिस करने की सुविधा से बात करो" कहें. लौटने वाले उपयोगकर्ता के लिए इस कार्रवाई का डिफ़ॉल्ट पाथ ऐसा दिखेगा:
इस कोडलैब को पूरा करने के बाद, आपकी पूरी हो चुकी कार्रवाई में बातचीत वाला यह फ़्लो होगा:
आपको इनके बारे में जानकारी मिलेगी
- Cloud Firestore के साथ इंटरैक्ट करने का तरीका
- उपयोगकर्ता से डेटा इकट्ठा करने के लिए स्लॉट इस्तेमाल करने का तरीका
- किसी उपयोगकर्ता के इनपुट को प्रोसेस करने और जवाब देने का तरीका
- किसी सीन में लॉजिक जोड़ने के लिए, शर्तों का इस्तेमाल कैसे करें
- गेम लूप जोड़ने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
इस कोडलैब के लिए ज़रूरी शर्तों में ये चीज़ें शामिल हैं:
- कोई वेब ब्राउज़र, जैसे कि Google Chrome
- Cloud Functions लिखने के लिए एक IDE.
- पेमेंट का तरीका. यह कोडलैब, Firebase के लिए Cloud Functions का इस्तेमाल करता है, जिसके लिए ज़रूरी है कि आपका प्रोजेक्ट Firebase Blaze प्राइसिंग प्लान पर हो ( ज़्यादा जानें).
- शेल कमांड चलाने के लिए टर्मिनल
- Node.js 10 या इसके बाद का वर्शन
2. फ़ंक्शन कोड पाएं
कमांड लाइन से, GitHub रिपॉज़िटरी का क्लोन बनाएं:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Firebase प्रोजेक्ट बनाना और अपना ऐप्लिकेशन सेट अप करना
Firebase प्रोजेक्ट बनाना
- Firebase में साइन इन करें.
- Firebase कंसोल में, प्रोजेक्ट जोड़ें (या प्रोजेक्ट बनाएं) पर क्लिक करें, फिर अपने Firebase प्रोजेक्ट को
Spelling-Practice
नाम दें.
- प्रोजेक्ट बनाने के विकल्पों पर क्लिक करें. अनुरोध किए जाने पर, Firebase की शर्तें स्वीकार करें. Google Analytics को सेट अप न करें, क्योंकि इस ऐप्लिकेशन के लिए Analytics का इस्तेमाल नहीं किया जाएगा.
Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी लेख पढ़ें.
Bleze प्राइसिंग प्लान पर अपग्रेड करना
'Firebase के लिए Cloud Functions' का इस्तेमाल करने के लिए, आपको अपने Firebase प्रोजेक्ट को ब्लेज़ प्राइसिंग प्लान में अपग्रेड करना होगा. इसका मतलब है कि आपको अपने प्रोजेक्ट में Google क्लाउड बिलिंग खाता जोड़ना होगा. इसके लिए आपको क्रेडिट कार्ड या पेमेंट के किसी दूसरे तरीके की जानकारी देनी होगी.
सभी Firebase प्रोजेक्ट के पास अब भी Cloud Functions के इस्तेमाल से जुड़े कोटा का ऐक्सेस है. इन प्रोजेक्ट में Blaze प्लान का इस्तेमाल करने वाले Firebase भी शामिल हैं. इस कोडलैब में बताए गए तरीके, बिना किसी शुल्क के इस्तेमाल करने की सीमाओं के दायरे में आएंगे. हालांकि, आपको Cloud Storage से कुछ शुल्क ( करीब $0.03) दिखेंगे. इसका इस्तेमाल आपके Cloud Functions की मदद से इमेज बनाने के लिए किया जाता है.
4. Firebase सीएलआई इंस्टॉल करें
Firebase सीएलआई (कमांड लाइन इंटरफ़ेस) की मदद से अपने क्लाउड फ़ंक्शन डिप्लॉय किए जा सकते हैं.
आपके ऑपरेटिंग सिस्टम और इस्तेमाल के उदाहरण के आधार पर, Firebase सीएलआई इंस्टॉल करने के कई विकल्प हैं. अगर Cloud Functions का भी इस्तेमाल किया जा रहा है, तो सबसे सामान्य विकल्प के बारे में नीचे बताया गया है.
- पक्का करें कि आपने npm इंस्टॉल किया है जो आम तौर पर Node.js के साथ आता है.
- नीचे दिए गए npm कमांड चलाकर, सीएलआई को इंस्टॉल या अपग्रेड करें:
$ npm -g install firebase-tools
- पुष्टि करें कि सीएलआई को सही तरीके से इंस्टॉल किया गया है. इसके लिए:
$ firebase --version
पक्का करें कि Firebase सीएलआई का वर्शन 9.0.0 या उसके बाद का वर्शन है, ताकि उसमें Cloud Functions के लिए ज़रूरी सभी नई सुविधाएं शामिल की जा सकें. अगर ऐसा नहीं है, तो ऊपर बताए गए तरीके से अपग्रेड करने के लिए, npm install -g firebase-tools चलाएं.
- इसे चलाकर Firebase सीएलआई को अनुमति दें:
$ firebase login
- स्पेलिंग-फ़ंक्शन-स्टार्ट डायरेक्ट्री से, अपने Firebase प्रोजेक्ट का इस्तेमाल करने के लिए, Firebase सीएलआई सेट अप करें. यहां दिया गया निर्देश चलाएं, अपना प्रोजेक्ट आईडी चुनें, फिर निर्देशों का पालन करें. संकेत मिलने पर, आप कोई भी उपनाम चुन सकते हैं, जैसे कि
codelab
.
$ firebase use --add
5. फ़ंक्शन डायरेक्ट्री
अब आपको स्पेलिंग की प्रैक्टिस गेम का बैकएंड बनाने के लिए, Cloud Functions के लिए Firebase SDK टूल का इस्तेमाल करके सुविधा जोड़नी होगी.
Cloud Functions, आपको ऐसा कोड देता है जो सर्वर सेट अप किए बिना क्लाउड पर चलता है. इस कोडलैब से आपको यह पता चलेगा कि Firebase से पुष्टि करने, Cloud Storage, और Firebase रीयल टाइम डेटाबेस इवेंट के हिसाब से काम करने वाले फ़ंक्शन कैसे बनाए जा सकते हैं. चलिए, पुष्टि करने से शुरुआत करते हैं.
Cloud Functions के लिए Firebase SDK टूल का इस्तेमाल करते समय, आपके फ़ंक्शन कोड functions
डायरेक्ट्री (डिफ़ॉल्ट रूप से) में लाइव होंगे. आपके लिए इस प्रक्रिया को और आसान बनाने के लिए, हमने पहले ही functions/index.js
फ़ाइल बना दी है जहां आपका कोड डाला जाएगा. आगे बढ़ने से पहले, functions
डायरेक्ट्री की जांच करें.
$ cd functions $ ls
आपका फ़ंक्शन कोड एक Node.js ऐप्लिकेशन भी है. इसलिए, इसे package.json
की ज़रूरत होती है, जो आपके ऐप्लिकेशन के बारे में कुछ जानकारी देता है और डिपेंडेंसी की सूची बनाता है.
अगर आप Node.js के बारे में नहीं जानते हैं, तो कोडलैब का इस्तेमाल जारी रखने से पहले, आपको इसके बारे में ज़्यादा जानना होगा.
package.json
फ़ाइल में पहले से ही दो ज़रूरी डिपेंडेंसी शामिल हैं: Cloud Functions के लिए Firebase SDK और Firebase एडमिन SDK. उन्हें स्थानीय तौर पर इंस्टॉल करने के लिए, functions
डायरेक्ट्री से npm install
चलाएं:
$ npm install
आइए, अब index.js
फ़ाइल पर एक नज़र डालें:
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.
सबसे पहले आपको ज़रूरी मॉड्यूल इंपोर्ट करने होंगे. उसके बाद, काम की सूची की जगह चार फ़ंक्शन लिखें. मॉड्यूल इंपोर्ट करने के लिए, कोडलैब के अगले चरण पर जाएं.
6. ज़रूरी मॉड्यूल इंपोर्ट करें
इस कोडलैब के लिए तीन मॉड्यूल ज़रूरी हैं.
firebase-functions
मॉड्यूल की मदद से, हम अपने Cloud Functions के लिए ट्रिगर लिख सकते हैंfirebase-admin
मॉड्यूल की मदद से, हम एडमिन ऐक्सेस वाले सर्वर पर Firebase प्लैटफ़ॉर्म इस्तेमाल कर सकते हैं. उदाहरण के लिए, Cloud Firestore पर डेटा भेजने के लिए फ़ाइल.- Actions SDK टूल Node.js फ़ुलफ़िलमेंट लाइब्रेरी, Google Assistant के लिए Actions SDK टूल हैंडलर की सेवा देती है.
- यह npm कमांड चलाकर, Actions SDK टूल को इंस्टॉल करें:
$ npm install @assistant/conversation
index.js
फ़ाइल में, पहले TODO को निम्न से बदलें.
इन बदलावों के ज़रिए, सभी ज़रूरी मॉड्यूल इंपोर्ट किए जाते हैं.
साथ ही, Cloud Functions एनवायरमेंट या दूसरे Google Cloud कंटेनर पर डिप्लॉय किए जाने पर, Firebase एडमिन SDK टूल अपने-आप कॉन्फ़िगर हो सकता है. जब हम नीचे दिए गए बदलावों में से admin.initializeApp();
को कॉल करते हैं, तब ऐसा होता है.
index.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.
अब Assistant की कार्रवाइयों के लिए, फ़ंक्शन का इस्तेमाल करके कारोबारी नियम जोड़ें.
7. फ़ंक्शन बनाएं
शब्दों की परिभाषाएं पाएं और उन्हें Cloud Firestore पर लिखें
शब्द की परिभाषाएं जानने के लिए, आपको dictionaryapi.dev
सार्वजनिक एपीआई का इस्तेमाल करना होगा.
index.js
फ़ाइल में, getWordDetailsFromDictionaryAPI
के लिए TODO को निम्न से बदलें:
index.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(); }
Cloud Firestore ट्रिगर जोड़ें
इसके बाद, आपको एक ऐसा Cloud फ़ंक्शन बनाना होगा जो Cloud Firestore में कोई नया दस्तावेज़ बनाए जाने पर ट्रिगर हो जाएगा. यह हमारे द्वारा अभी ऊपर लिखे गए getWordDetailsFromDictionaryAPI
फ़ंक्शन के माध्यम से शब्दों की परिभाषाएं प्राप्त करने के लिए dictionaryapi.dev
API को कॉल करेगा.
index.js
फ़ाइल में, createSpellingPracticeWord
के लिए TODO को निम्न से बदलें:
index.js
// Firestore ट्रिगर, जो हर नए Firestore दस्तावेज़ के लिए, getWordDetailsFromडिक्शनएपीआई की मदद से, शब्दों की परिभाषाएं फ़ेच करता है
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
गेम के लिए शब्दों की सूची पाएं
आपके पास ऐसा Cloud Function लिखने का विकल्प है जो Assistant के लिए, Cloud Firestore से स्पेलिंग की प्रैक्टिस करने वाले शब्दों की सूची फिर से हासिल करता है. इसके लिए, हम ऐप्लिकेशन हैंडलर का इस्तेमाल करते हैं.
index.js
फ़ाइल में, getSpellingWordList
के लिए TODO को निम्न से बदलें.
इस फ़ंक्शन को खास app.handle
में जोड़ने से, फ़ंक्शन को Assistant से ऐक्सेस किया जा सकता है.
index.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; }); }); })
Assistant सेशन से जवाब पाएँ
आपके पास ऐसा Cloud फ़ंक्शन लिखने का विकल्प होता है जो शब्दों की सूची में से स्पेलिंग वाला अगला शब्द दिखाता है.
index.js
फ़ाइल में, getSpellingWord
के लिए TODO को निम्न से बदलें:
index.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'); });
शब्द दोहराने के लिए गेम चालू करें
आपके पास ऐसा Cloud Function लिखने का विकल्प है जो गेम के मौजूदा शब्द को दोहराता है.
index.js
फ़ाइल में, repeatSpellingWord
के लिए TODO को निम्न से बदलें:
index.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'); });
शब्द की परिभाषा जानना
ऐसा Cloud Function लिखा जा सकता है जो गेम के मौजूदा शब्द की परिभाषा देता हो.
index.js
फ़ाइल में, definitionOfSpellingWord
के लिए TODO को निम्न से बदलें:
index.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); });
उपयोगकर्ता ने स्पेलिंग के जवाब की जांच की हो
Cloud फ़ंक्शन लिखा जा सकता है, जो गेम के मौजूदा शब्द की स्पेलिंग बोलने के तरीके के बारे में उपयोगकर्ता के जवाब की पुष्टि करता है.
index.js
फ़ाइल में, verifySpellingWord
के लिए TODO को निम्न से बदलें:
index.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);
सभी फ़ंक्शन डिप्लॉय करें
आपके Cloud Functions तब ही चालू होंगे, जब आप उन्हें 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 एंडपॉइंट यूआरएल को बाद में इस्तेमाल करने के लिए इसे ध्यान में रखें. एंडपॉइंट पाने के लिए, Firebase कंसोल खोलें. इसके बाद, स्पेलिंग प्रैक्टिस प्रोजेक्ट पर क्लिक करें. फ़ंक्शन एंडपॉइंट देखने के लिए, फ़ंक्शन डैशबोर्ड खोलें.
आपने सभी ज़रूरी फ़ंक्शन जोड़ लिए हैं. चलिए, अब Cloud Firestore को सेट अप करते हैं.
8. Cloud Firestore को चालू करें
आपको Cloud Firestore को चालू करना होगा.
Firebase कंसोल के बिल्ड सेक्शन में Firestore पर क्लिक करें. इसके बाद, डेटाबेस बनाएं पर क्लिक करें.
Cloud Firestore में डेटा का ऐक्सेस, सुरक्षा के नियमों से कंट्रोल किया जाता है. शुरू करने के लिए, सबसे पहले आपको डेटा से जुड़े कुछ बुनियादी नियम सेट करने होंगे. पहले Firestore पर क्लिक करें और फिर Firebase कंसोल के नियम टैब में, ये नियम जोड़ें. इसके बाद, पब्लिश करें पर क्लिक करें.
इन नियमों की वजह से, साइन इन करने वाले उपयोगकर्ताओं को डेटा का ऐक्सेस नहीं मिल पाता. इससे, बिना पुष्टि वाले उपयोगकर्ता कुछ भी पढ़ या लिख नहीं सकते.
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. Cloud Firestore में स्पेलिंग के शब्दों का डेटा जोड़ें
इस चरण में, आपको Cloud Firestore में वर्तनी (स्पेलिंग) शब्दों का डेटा लिखना होगा, ताकि आप Assistant (और गेम) के लिए शब्दों की सूची जनरेट कर सकें.
Cloud Firestore डेटा को कलेक्शन, दस्तावेज़, फ़ील्ड, और सब-कलेक्शन में बांटा जाता है. गेम के हर शब्द को wordlist
नाम के टॉप-लेवल कलेक्शन में उसके अपने दस्तावेज़ के तौर पर सेव किया जाएगा. Firestore कलेक्शन के हर नए दस्तावेज़ के लिए, डिक्शनरी एपीआई सर्विस से शब्द की जानकारी लेने के लिए, createSpellingPracticeWord फ़ंक्शन ट्रिगर किया जाएगा.
Cloud Firestore का कलेक्शन बनाना
- Firebase कंसोल में, Cloud Firestore सेक्शन पर जाएं.
- + कलेक्शन शुरू करें पर क्लिक करें.
- कलेक्शन आईडी टेक्स्ट बॉक्स में,
wordlist
डालें. इसके बाद, आगे बढ़ें पर क्लिक करें.
इसके बाद, हम इस शब्द के लिए एक दस्तावेज़ बनाएंगे: सहमति
- दस्तावेज़ आईडी टेक्स्ट बॉक्स में,
agreement
डालें. - फ़ील्ड टेक्स्ट बॉक्स में,
word
डालें और वैल्यू टेक्स्टबॉक्स मेंagreement
डालें. - सेव करें पर क्लिक करें.
जब इस दस्तावेज़ को Cloud Firestore में जोड़ा जाता है, तब यह शब्द की परिभाषा की जानकारी फ़ेच करने के लिए, आपके createSplitingPracticeWord फ़ंक्शन ट्रिगर करता है. हर शब्द के लिए नया दस्तावेज़ बनाकर ज़्यादा शब्द जोड़ें (उदाहरण के लिए: विस्मय, कार, सच, बताना, बेहतर, यात्रा, ...).
10. Google Assistant सेट अप करें
इन सेक्शन में, Google Assistant के लिए डेवलपमेंट एनवायरमेंट को सेट अप करने और Actions प्रोजेक्ट बनाने का तरीका बताया गया है.
Google खाते से जुड़ी अनुमति की सेटिंग देखें
इस कोडलैब में बनाई गई कार्रवाई की जांच करने के लिए, आपको ज़रूरी अनुमतियां चालू करनी होंगी, ताकि सिम्युलेटर आपकी कार्रवाई को ऐक्सेस कर सके. अनुमतियां चालू करने के लिए, यह तरीका अपनाएं:
- गतिविधि कंट्रोल पेज पर जाएं.
- अगर आपने अपने Google खाते में पहले से साइन इन नहीं किया है, तो उससे साइन इन करें.
- ये अनुमतियां दें:
- वेब और ऐप्लिकेशन गतिविधि
- वेब और ऐप्लिकेशन गतिविधि के लिए, Google की सेवाओं का इस्तेमाल करने वाले डिवाइसों, ऐप्लिकेशन, और साइटों पर की गई मेरी गतिविधि की जानकारी और Chrome इतिहास शामिल करें के आगे दिए गए चेकबॉक्स को चुनें.
Actions प्रोजेक्ट बनाना
आपका Actions प्रोजेक्ट, आपकी सेट की गई कार्रवाई के लिए एक कंटेनर है. इस कोडलैब के लिए ऐक्शन प्रोजेक्ट बनाने के लिए, यह तरीका अपनाएं:
- कार्रवाइयां कंसोल खोलें.
- नया प्रोजेक्ट पर क्लिक करें.
- सेवा की शर्तें स्वीकार करें
- वह
spelling-practice-codelab
टाइप करें या चुनें जिसे आपने Firebase कंसोल का इस्तेमाल करके बनाया था. (यह नाम आपकी जानकारी के लिए है. बाद में, अपने प्रोजेक्ट के लिए कोई बाहरी नाम सेट किया जा सकता है.)
- प्रोजेक्ट इंपोर्ट करें पर क्लिक करें.
- आपको किस तरह की कार्रवाई बनानी है? स्क्रीन पर, पसंद के मुताबिक कार्ड चुनें.
- आगे बढ़ें पर क्लिक करें.
- खाली प्रोजेक्ट कार्ड चुनें.
- बनाना शुरू करें पर क्लिक करें.
- डिसप्ले नेम के लिए, स्पेलिंग प्रैक्टिस डालें और 'सेव करें' पर क्लिक करें.
न्योता देकर उपयोगकर्ता आपकी सेट की गई कार्रवाई के साथ बातचीत शुरू करते हैं. उदाहरण के लिए, उपयोगकर्ता "Ok Google, स्पेलिंग की प्रैक्टिस से बात करो" जैसा वाक्यांश बोलकर, आपकी सेट की गई कार्रवाई को शुरू कर सकते हैं. इसमें स्पेलिंग प्रैक्टिस, डिसप्ले नेम है.
अगर आपको अपने सेट किए गए ऐक्शन को प्रोडक्शन में डिप्लॉय करना है, तो इसका एक डिसप्ले नेम होना ज़रूरी है; हालांकि, अपने Action की जांच करने के लिए आपको डिसप्ले नाम की ज़रूरत नहीं है. इसके बजाय, अपनी कार्रवाई शुरू करने के लिए, सिम्युलेटर में "मेरे टेस्ट ऐप्लिकेशन से बात करो" वाक्यांश का इस्तेमाल किया जा सकता है.
फ़ुलफ़िलमेंट कॉन्फ़िगर करें
आपको इस कोडलैब में पहले लिखे और डिप्लॉय किए गए Cloud Functions के लिए, इवेंट हैंडलर Assistant से कनेक्ट करना होगा.
ग्राहक को आइटम भेजने के लिए, उसे कॉन्फ़िगर करने के लिए यह तरीका अपनाएं:
- साइड नेविगेशन में वेबहुक पर क्लिक करें.
- ग्राहक को आइटम भेजने के विकल्प के तौर पर Https एंडपॉइंट को चुनें:
- एचटीटीपी एंडपॉइंट टेक्स्टबॉक्स में अपने फ़ंक्शन के एंडपॉइंट का यूआरएल डालें. इसके बाद, सेव करें पर क्लिक करें.
अगले सेक्शन में, Actions कंसोल में मुख्य बात के लिए प्रॉम्प्ट को अपनी पसंद के मुताबिक बनाया जा सकता है.
मुख्य बातचीत सेट अप करें
आपकी सेट की गई कार्रवाई को शुरू करने के बाद क्या होता है, यह तय करने के लिए आपको कॉल शुरू करने की मुख्य सुविधा में बदलाव करना होगा.
डिफ़ॉल्ट रूप से, आपकी बात शुरू करने की सुविधा ट्रिगर होने पर, Actions Builder एक सामान्य अनुरोध उपलब्ध कराता है. जैसे- "कॉल की मुख्य बात तय करके, अपनी कार्रवाई बनाना शुरू करें."
उस प्रॉम्प्ट में बदलाव करने के लिए जो आपकी सेट की गई कार्रवाई, उपयोगकर्ता को आपकी कार्रवाई शुरू करने पर वापस भेजती है, यह तरीका अपनाएं:
- नेविगेशन में मुख्य बातचीत पर क्लिक करें.
Call your webhook
पर सही का निशान लगाएं और टेक्स्ट बॉक्स में इवेंट हैंडलर का नामgetSpellingWordList
जोड़ें.- कोड एडिटर में,
speech
फ़ील्ड में मौजूद टेक्स्ट को यहां दिए गए वेलकम मैसेज से बदलें:Welcome to Spelling Practice
ध्यान दें: अपने प्रॉम्प्ट में बदलाव करने के लिए, YAML या JSON फ़ॉर्मैट का इस्तेमाल किया जा सकता है.
- सेव करें पर क्लिक करें.
सिम्युलेटर में मुख्य बातचीत को टेस्ट करें
Actions कंसोल, आपकी कार्रवाई की जांच करने के लिए एक वेब टूल उपलब्ध कराता है. इस टूल को सिम्युलेटर कहते हैं. यह इंटरफ़ेस, हार्डवेयर डिवाइसों और उनकी सेटिंग के हिसाब से काम करता है. इससे कार्रवाई को इस तरह से इस्तेमाल किया जा सकता है, जैसे कि स्मार्ट डिसप्ले, फ़ोन, स्पीकर या KaiOS पर चलाया जा रहा हो.
सिम्युलेटर में अपनी सेट की गई कार्रवाई के मुख्य बोले जाने की जांच करने के लिए, यह तरीका अपनाएं:
- सबसे ऊपर मौजूद नेविगेशन बार में, सिम्युलेटर पर जाने के लिए जांच करें पर क्लिक करें.
- सिम्युलेटर में अपनी सेट की गई कार्रवाई शुरू करने के लिए, सबसे ऊपर बाईं ओर मौजूद इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें. इसके बाद, अपने कीबोर्ड पर Enter दबाएं.
जब आप Action को शुरू करने के लिए बोलकर चुनते हैं, तब Assistant आपके पसंद के मुताबिक बनाए गए वेलकम मैसेज के साथ जवाब देती है. इस दौरान, Assistant के अभिवादन के साथ जवाब देने के बाद, बातचीत खत्म हो जाती है.
इवेंट लॉग देखें
जांच करें टैब में, दाईं ओर मौजूद पैनल में इवेंट लॉग दिखते हैं. इनमें, बातचीत का इतिहास, इवेंट लॉग के तौर पर दिखता है. हर इवेंट लॉग में, बातचीत के उस समय के दौरान होने वाले इवेंट दिखते हैं. इवेंट लॉग देखने के लिए इवेंट से पहले धूसर आइकन क्लिक करें.
आपकी सेट की गई कार्रवाई में फ़िलहाल एक इवेंट लॉग मौजूद है. इसमें उपयोगकर्ता के इनपुट ("स्पेलिंग की प्रैक्टिस से बात करें") और कार्रवाई का जवाब, दोनों दिखते हैं. यह स्क्रीनशॉट आपके Action का इवेंट लॉग दिखाता है:
11. स्पेलिंग की प्रैक्टिस के लिए बातचीत शुरू करें
अब आपको पता है कि जब कोई उपयोगकर्ता आपके Action को शुरू करता है, तब क्या होता है. इसलिए, अब Action की बाकी बातचीत तैयार की जा सकती है. स्पेलिंग प्रैक्टिस में चार सीन हैं. इसलिए, चलाने से पहले आपको हर सीन को चालू करना होगा. किसी सीन को चालू करने का सबसे सामान्य तरीका, अपनी कार्रवाई को कॉन्फ़िगर करना है. इससे, जब कोई उपयोगकर्ता किसी सीन में उपयोगकर्ता के इंटेंट से मैच करता है, तो वह इंटेंट किसी दूसरे सीन पर ट्रिगर होकर उसे चालू कर दे.
बातचीत को मुख्य बातचीत के तौर पर शुरू करने से सीन शुरू करने वाले व्यक्ति पर स्विच करना
इस सेक्शन में, Start
नाम का एक नया सीन बनाया जाता है. इससे लोगों से पूछा जाता है कि क्या वे स्पेलिंग प्रैक्टिस गेम खेलना शुरू करना चाहते हैं. आपने मुख्य बातचीत को शुरू करने के बजाय, नए Start
सीन पर भी ट्रांज़िशन जोड़ा है.
यह सीन बनाने और उसमें कोई ट्रांज़िशन जोड़ने के लिए, यह तरीका अपनाएं:
- सबसे ऊपर मौजूद नेविगेशन में, डेवलप करें पर क्लिक करें. इसके बाद, बाएं नेविगेशन में मुख्य बातचीत पर क्लिक करें.
- दाईं ओर मौजूद ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन मेन्यू पर क्लिक करें. इसके बाद, टेक्स्ट फ़ील्ड में
Start
टाइप करें.
- जोड़ें पर क्लिक करें. इससे
Start
नाम का एक सीन बनता है. साथ ही, उपयोगकर्ता को वेलकम प्रॉम्प्ट मिलने के बाद, Action कोStart
सीन पर ले जाने के लिए कहा जाता है. - सीन की सूची देखने के लिए, बाईं ओर मौजूद नेविगेशन में सीन पर क्लिक करें.
- सीन में जाकर,
Start
सीन देखने के लिए, शुरू करें पर क्लिक करें. Start
सीन के Enter सेक्शन में जाकर, + पर क्लिक करें.- प्रॉम्प्ट भेजें चुनें.
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?
सुझावों वाले चिप में, उपयोगकर्ता को क्लिक किए जा सकने वाले ऐसे सुझाव मिलते हैं जिन्हें आपका Action, उपयोगकर्ता के इनपुट के तौर पर प्रोसेस करता है. इस सेक्शन में, आपने अभी-अभी कॉन्फ़िगर किए गए प्रॉम्प्ट के नीचे, सुझाव वाले चिप जोड़े हैं (Do you want to play
Spelling Practice
?
), स्क्रीन वाले डिवाइसों के उपयोगकर्ताओं की मदद करने के लिए किया जाता है.
Start
सीन के प्रॉम्प्ट में सुझाव वाले चिप जोड़ने के लिए, यह तरीका अपनाएं:
Start
सीन में, कोड एडिटर के नीचे मौजूद सुझावों पर क्लिक करें. इस कार्रवाई से, सुझाव वाला एक चिप जुड़ जाता है.title
फ़ील्ड में,Suggested Response
को'Yes'
से बदलें.- इस फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'No'
और'Help with Phonetics'
टाइटल वाला सुझाव चिप जोड़ें. आपका कोड इस स्निपेट की तरह दिखना चाहिए: - सेव करें पर क्लिक करें.
सिम्युलेटर में अपनी कार्रवाई की जांच करें
इस समय, आपकी सेट की गई कार्रवाई को मुख्य कॉल शुरू करने की जगह से शुरू करें सीन पर ले जाना चाहिए. इसके बाद, उपयोगकर्ता से पूछा जाना चाहिए कि क्या वह इसे जारी रखना चाहता है. सिम्युलेट किए गए डिसप्ले में सुझाव वाले चिप भी दिखने चाहिए.
सिम्युलेटर में अपनी सेट की गई कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:
- सिम्युलेटर पर जाने के लिए, नेविगेशन बार में जांच करें पर क्लिक करें.
- सिम्युलेटर में अपनी सेट की गई कार्रवाई की जांच करने के लिए, इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें. - Enter दबाएं. आपकी सेट की गई कार्रवाई को
Main invocation
औरStart
सीन के प्रॉम्प्ट के साथ जवाब देना चाहिए, "स्पेलिंग प्रैक्टिस में आपका स्वागत है. शब्द की स्पेलिंग लिखने के लिए, फ़ोनेटिक वर्णमाला का इस्तेमाल करें. उदाहरण के लिए, a के लिए ऐल्फ़ा, b के लिए bravo, c के लिए चार्ली वगैरह. क्या आपको जारी रखना है?".
यह स्क्रीनशॉट इस इंटरैक्शन को दिखाता है:
- प्रॉम्प्ट का जवाब देने के लिए,
Yes
,No
याHelp with Phonetics
सुझाव चिप पर क्लिक करें. (आप "हां" या "नहीं" या "फ़ोनेटिक्स से सहायता लें" या इनपुट फ़ील्ड मेंYes
याNo
याHelp with Phonetics
भी डाल सकते हैं.)
प्रॉम्प्ट का जवाब देने पर, आपकी सेट की गई कार्रवाई में यह मैसेज दिखता है कि वह आपका इनपुट नहीं समझ सका: "माफ़ करें, मुझे समझ में नहीं आया. क्या तुम फिर से कोशिश कर सकती हो?" आपने अभी तक "हां" या "नहीं" इनपुट को समझने और उसका जवाब देने के लिए अपनी कार्रवाई को कॉन्फ़िगर नहीं किया है, इसलिए आपकी सेट की गई कार्रवाई आपके इनपुट से NO_MATCH
इंटेंट से मेल खाती है.
डिफ़ॉल्ट रूप से, NO_MATCH
सिस्टम इंटेंट से सामान्य जवाब मिलते हैं. हालांकि, इन जवाबों को पसंद के मुताबिक बनाकर उपयोगकर्ताओं को यह बताया जा सकता है कि आपने उनके इनपुट नहीं समझे हैं. Assistant, उपयोगकर्ता के इनपुट का तीन बार मिलान न होने पर, आपकी सेट की गई कार्रवाई से उपयोगकर्ता की बातचीत को खत्म कर देती है.
नो और फ़ोनेटिक इंटेंट जोड़ें
अब उपयोगकर्ता आपकी सेट की गई कार्रवाई के बारे में पूछे गए सवाल का जवाब दे सकते हैं. इसलिए, कार्रवाई को कॉन्फ़िगर करके यह समझा जा सकता है कि उपयोगकर्ता जवाब ("हां" या "नहीं" या "फ़ोनेटिक्स में सहायता पाएं"). नीचे दिए गए सेक्शन में, ऐसे उपयोगकर्ता इंटेंट बनाए जाते हैं जो तब मेल खाते हैं, जब उपयोगकर्ता "हां", "नहीं" या "फ़ोनेटिक्स की मदद करो" कहते हैं और इन इंटेंट को Start
सीन में जोड़ें. हम सिस्टम इंटेंट yes
का इस्तेमाल करेंगे और दूसरे इंटेंट बनाएंगे.
no
इंटेंट बनाएं
अब आपको no
इंटेंट बनाना होगा, ताकि उपयोगकर्ता जब गेम न खेलना चाहें, तब उनके बारे में समझा जा सके और उन्हें जवाब दिया जा सके. इस इंटेंट को बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में कस्टम इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट को नाम दें
no
और Enter दबाएं. no
इंटेंट पेज खोलने के लिए, नहीं पर क्लिक करें.- ट्रेनिंग के लिए वाक्यांश जोड़ें सेक्शन में, फ़्रेज़ डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
No
N
I don't want
nope
- सेव करें पर क्लिक करें.
Start
सीन में no
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कोई उपयोगकर्ता कब "नहीं" या "no" से मिलता-जुलता कुछ बता रहा है, जैसे कि "nope". आपको Start
सीन में no
यूज़र इंटेंट जोड़ना होगा, क्योंकि उपयोगकर्ता Start
प्रॉम्प्ट ("स्पेलिंग प्रैक्टिस में आपका स्वागत है' का जवाब दे रहा है. शब्द की स्पेलिंग लिखने के लिए, फ़ोनेटिक वर्णमाला का इस्तेमाल करें. उदाहरण के लिए, a के लिए ऐल्फ़ा, b के लिए bravo, c के लिए चार्ली वगैरह. क्या आपको जारी रखना है?").
Start
सीन के लिए इस इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, शुरू करें सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करने के बगल में मौजूद,
Start
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट सेक्शन में, ड्रॉप-डाउन में नहीं चुनें.
- प्रॉम्प्ट भेजें पर क्लिक करें और
speech
फ़ील्ड में यह टेक्स्ट अपडेट करें:Good Bye
.
आपके एडिटर में दिया गया कोड इस स्निपेट की तरह दिखना चाहिए:
candidates: - first_simple: variants: - speech: >- Goodbye.
- ट्रांज़िशन सेक्शन में, ड्रॉपडाउन से बातचीत खत्म करें को चुनें.
- सेव करें पर क्लिक करें.
सिम्युलेटर में no
इंटेंट की जांच करें
इस समय, आपकी सेट की गई कार्रवाई को यह पता चल जाता है कि उपयोगकर्ता ने गेम नहीं खेला है और वह सही जवाब देता है.
सिम्युलेटर में इस इंटेंट की जांच करने के लिए, यह तरीका अपनाएं:
- नेविगेशन बार में, जांच करें पर क्लिक करें.
- इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें औरEnter
दबाएं. - इनपुट फ़ील्ड में
No
टाइप करें और Enter दबाएं. इसके अलावा, 'कोई सुझाव नहीं' वाले चिप पर क्लिक करें.
Start
सीन में सिस्टम YES
इंटेंट जोड़ें
अब हम Start
सीन में सिस्टम इंटेंट "हां" जोड़ देंगे, क्योंकि उपयोगकर्ता Start
प्रॉम्प्ट ("स्पेलिंग प्रैक्टिस में स्वागत है" विकल्प) का जवाब दे रहा है. शब्द की स्पेलिंग लिखने के लिए, फ़ोनेटिक वर्णमाला का इस्तेमाल करें. उदाहरण के लिए, a के लिए ऐल्फ़ा, b के लिए bravo, c के लिए चार्ली वगैरह. क्या आपको जारी रखना है?").
Start
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, शुरू करें सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करना के बगल में मौजूद
Start
सीन में + (प्लस का निशान) पर क्लिक करें. - सभी सिस्टम इंटेंट में जाकर, इंटेंट ड्रॉप-डाउन में हां चुनें.
- अपने वेबहुक को कॉल करें पर क्लिक करें और
event handler
टेक्स्टबॉक्स को उस फ़ंक्शन से अपडेट करें जो आपने पहले बनाया था:getSpellingWordList
- ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन पर क्लिक करें और बातचीत खत्म करें चुनें.
- सेव करें पर क्लिक करें.
सिम्युलेटर में YES
इंटेंट की जांच करें
इस समय, आपकी सेट की गई कार्रवाई को पता चल जाता है कि उपयोगकर्ता ने गेम कब खेला है और वह सही जवाब देता है या नहीं.
सिम्युलेटर में इस इंटेंट की जांच करने के लिए, यह तरीका अपनाएं:
- नेविगेशन बार में, जांच करें पर क्लिक करें.
- सिम्युलेटर में अपनी सेट की गई कार्रवाई की जांच करने के लिए, इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें और Enter दबाएं. - इनपुट फ़ील्ड में
Yes
टाइप करें और Enter दबाएं. इसके अलावा,Yes
सुझाव चिप पर क्लिक करें.
आपकी सेट की गई कार्रवाई, स्पेलिंग की प्रैक्टिस करने वाले सभी शब्दों की सूची फ़ेच करती है और उन्हें सेशन में सेव करती है. इसके बाद, आपकी सेट की गई कार्रवाई सेशन को खत्म कर देती है, क्योंकि आपने YES
इंटेंट के लिए End conversation
ट्रांज़िशन चुना है.
Phonetics
इंटेंट बनाएं
Phonetics
इंटेंट बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में कस्टम इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट का नाम
phonetics
रखें औरEnter
दबाएं. phonetics
इंटेंट पेज खोलने के लिए,phonetics
इंटेंट पर क्लिक करें.- 'ट्रेनिंग वाक्यांश जोड़ें' सेक्शन में, फ़्रेज़ डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
how do I spell words
phonetics
help me with phonetics
phonetic alphabet
- सेव करें पर क्लिक करें.
Start
सीन में phonetics
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कोई उपयोगकर्ता कब "फ़ोनेटिक" इंटेंट दिखा रहा है. Start
सीन में phonetics
यूज़र इंटेंट जोड़ा जा सकता है, क्योंकि उपयोगकर्ता Start
प्रॉम्प्ट ("स्पेलिंग प्रैक्टिस में आपका स्वागत है' का जवाब दे रहा है. शब्द की स्पेलिंग लिखने के लिए, फ़ोनेटिक वर्णमाला का इस्तेमाल करें. उदाहरण के लिए, a के लिए ऐल्फ़ा, b के लिए bravo, c के लिए चार्ली वगैरह. क्या आपको जारी रखना है?").
Start
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, शुरू करें सीन पर क्लिक करें.
- यूज़र इंटेंट हैंडलिंग के बगल में मौजूद,
Start
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट ड्रॉप-डाउन में फ़ोनेटिक्स चुनें.
- ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन पर क्लिक करें और बातचीत खत्म करें चुनें.
- सेव करें पर क्लिक करें.
शुरुआती सीन से स्पेलिंग सीन में ट्रांज़िशन
इस सेक्शन में, स्पेलिंग नाम का एक नया सीन बनाया जाता है. इससे उपयोगकर्ता को फ़ोनेटिक वर्णमाला का इस्तेमाल करके, शब्द की स्पेलिंग लिखने का प्रॉम्प्ट मिलता है.
यह सीन बनाने और उसमें कोई ट्रांज़िशन जोड़ने के लिए, यह तरीका अपनाएं:
- सबसे ऊपर मौजूद नेविगेशन में, डेवलप करें पर क्लिक करें. इसके बाद, बाईं ओर मौजूद नेविगेशन में सीन शुरू करें पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करना सेक्शन में,
when actions.intent.YES is matched
पर क्लिक करें और ट्रांज़िशन सेक्शन की दाईं ओर, ड्रॉप-डाउन मेन्यू पर क्लिक करें और टेक्स्ट फ़ील्ड मेंSpelling
टाइप करें. - जोड़ें पर क्लिक करें. इससे
Spelling
नाम का एक सीन बन जाता है. साथ ही, 'हां' इंटेंट से मैच करने के बाद, Action कोSpelling
सीन पर ले जाने के लिए कहा जाता है. - सीन की सूची देखने के लिए, बाईं ओर मौजूद नेविगेशन में सीन को बड़ा करें.
- सीन में जाकर,
Spelling
सीन देखने के लिए स्पेलिंग पर क्लिक करें. Spelling
सीन के Enter सेक्शन में जाकर, + पर क्लिक करें.- अपने वेबहुक को कॉल करें पर क्लिक करें और इवेंट हैंडलर टेक्स्टबॉक्स में getस्पेलिंगवर्ड डालें.
- प्रॉम्प्ट भेजें चुनें.
speech
फ़ील्ड (Enter the response that users will see or hear...
) में वाक्य को {} से बदलें. असल प्रॉम्प्ट में वेबहुक की मदद से जानकारी अपने-आप भर जाएगी.
सुझावों वाले चिप में, उपयोगकर्ता को क्लिक किए जा सकने वाले ऐसे सुझाव मिलते हैं जिन्हें आपका Action, उपयोगकर्ता के इनपुट के तौर पर प्रोसेस करता है.
Spelling
सीन के प्रॉम्प्ट में सुझाव वाले चिप जोड़ने के लिए, यह तरीका अपनाएं:
Spelling
सीन में, कोड एडिटर के नीचे मौजूद सुझावों पर क्लिक करें. ऐसा करने से, सुझाव वाले तीन चिप जुड़ जाते हैं.title
फ़ील्ड में,Suggested Response
को'Repeat'
से बदलें.- उसी फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'Skip'
टाइटल वाला सुझाव चिप जोड़ें. - उसी फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'Quit'
टाइटल वाला सुझाव चिप जोड़ें. आपका कोड इस स्निपेट की तरह दिखना चाहिए: - सेव करें पर क्लिक करें.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
इंटेंट बनाएं
repeat
इंटेंट बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में कस्टम इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट का नाम
repeat
रखें औरEnter
दबाएं. definition
इंटेंट पेज खोलने के लिए,repeat
इंटेंट पर क्लिक करें.- ट्रेनिंग के लिए वाक्यांश जोड़ें सेक्शन में, वाक्यांश डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
one more time please
say the word again
repeat the word
tell me again
repeat
- सेव करें पर क्लिक करें.
Spelling
सीन में repeat
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कब कोई उपयोगकर्ता "दोहराने" की इच्छा ज़ाहिर करता है. Spelling
सीन में repeat
यूज़र इंटेंट जोड़ा जा सकता है, क्योंकि उपयोगकर्ता Spelling
प्रॉम्प्ट ("फ़ोनेटिक वर्णमाला का इस्तेमाल करके शब्द की स्पेलिंग बताएं") का जवाब दे रहा है.
Spelling
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करना के बगल में मौजूद
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट ड्रॉप-डाउन में दोहराएं चुनें.
- शब्द की परिभाषा जानने के लिए, अपने वेबहुक को कॉल करें पर सही का निशान लगाएं और इवेंट हैंडलर टेक्स्टबॉक्स में repeatcompleteingWord डालें.
- प्रॉम्प्ट भेजें पर सही का निशान लगाएं.
speech
फ़ील्ड (Enter the response that users will see or hear...
) में वाक्य को ‘' से बदलें. असल प्रॉम्प्ट में वेबहुक की मदद से जानकारी अपने-आप भर जाएगी.
"दोहराने के लिए मैच होने पर" टेक्स्ट में सुझाव वाले चिप जोड़ें
- "जब दोहराना मेल खाता हो" में उपयोगकर्ता इंटेंट हैंडलिंग में, कोड एडिटर के नीचे मौजूद सुझाव पर क्लिक करें. ऐसा करने से, सुझाव वाले तीन चिप जुड़ जाते हैं.
title
फ़ील्ड में,Suggested Response
को'Skip'
से बदलें.- इस फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'Quit'
टाइटल वाला सुझाव चिप जोड़ें.आपका कोड इस स्निपेट की तरह दिखना चाहिए:
suggestions: - title: 'Skip' - title: 'Quit'
- सेव करें पर क्लिक करें.
definition
इंटेंट बनाएं
definition
इंटेंट बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में कस्टम इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट का नाम
definition
रखें औरEnter
दबाएं. definition
इंटेंट पेज खोलने के लिए,definition
इंटेंट पर क्लिक करें.- ट्रेनिंग के लिए वाक्यांश जोड़ें सेक्शन में, वाक्यांश डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
I would like to know the definition
tell me the definition
what does it mean
meaning
definition
what is the definition?
- सेव करें पर क्लिक करें.
Spelling
सीन में definition
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कोई उपयोगकर्ता कब "परिभाषा" का इंटेंट दिखा रहा है. Spelling
सीन में definition
यूज़र इंटेंट जोड़ा जा सकता है, क्योंकि उपयोगकर्ता Spelling
प्रॉम्प्ट ("फ़ोनेटिक वर्णमाला का इस्तेमाल करके शब्द की स्पेलिंग बताएं") का जवाब दे रहा है.
Spelling
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करना के बगल में मौजूद
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट ड्रॉप-डाउन में परिभाषा चुनें.
- शब्द की परिभाषा जानने के लिए, अपने वेबहुक को कॉल करें पर सही का निशान लगाएं और इवेंट हैंडलर के टेक्स्टबॉक्स में परिभाषा ऑफ़ स्पेलिंगशब्द डालें.
- प्रॉम्प्ट भेजें पर सही का निशान लगाएं.
speech
फ़ील्ड (Enter the response that users will see or hear...
) में वाक्य को ‘‘` से बदलें. असल प्रॉम्प्ट में वेबहुक की मदद से जानकारी अपने-आप भर जाएगी.
वेबहुक के जवाब में सुझाव वाले चिप जोड़ें
Start
सीन में, कोड एडिटर के नीचे मौजूद, सुझाव पर क्लिक करें. ऐसा करने से, सुझाव वाले तीन चिप जुड़ जाते हैं.title
फ़ील्ड में,Suggested Response
को'Skip'
से बदलें.- इस फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'Quit'
टाइटल वाला सुझाव चिप जोड़ें.आपका कोड इस स्निपेट की तरह दिखना चाहिए:
suggestions: - title: 'Skip' - title: 'Quit'
- सेव करें पर क्लिक करें.
skip
इंटेंट बनाएं
skip
इंटेंट बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में मौजूद इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट का नाम
skip
रखें औरEnter
दबाएं. skip
इंटेंट पेज खोलने के लिए,skip
इंटेंट पर क्लिक करें.- ट्रेनिंग के लिए वाक्यांश जोड़ें सेक्शन में, वाक्यांश डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
next word
go next
next
skip
skip word
- सेव करें पर क्लिक करें.
Spelling
सीन में Skip
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कब कोई उपयोगकर्ता "स्किप करें" का इंटेंट दिखा रहा है. Spelling
सीन में skip
यूज़र इंटेंट जोड़ा जा सकता है, क्योंकि उपयोगकर्ता Spelling
प्रॉम्प्ट ("फ़ोनेटिक वर्णमाला का इस्तेमाल करके शब्द की स्पेलिंग बताएं") का जवाब दे रहा है.
Spelling
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट हैंडलिन के बगल में मौजूद
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट ड्रॉप-डाउन में छोड़ें को चुनें.
- दाईं ओर मौजूद ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन मेन्यू पर क्लिक करके
Spelling
चुनें .
- सेव करें पर क्लिक करें.
quit
इंटेंट बनाएं
Quit
इंटेंट बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- इंटेंट की सूची खोलने के लिए, नेविगेशन में मौजूद इंटेंट पर क्लिक करें.
- इंटेंट की सूची के आखिर में, + (प्लस का निशान) पर क्लिक करें. नए इंटेंट का नाम
Quit
रखें औरEnter
दबाएं. - परिभाषा इंटेंट पेज खोलने के लिए,
Quit
इंटेंट पर क्लिक करें. - ट्रेनिंग के लिए वाक्यांश जोड़ें सेक्शन में, वाक्यांश डालें टेक्स्ट बॉक्स पर क्लिक करें और ये वाक्यांश डालें:
I quit
Goodbye
Cancel
Exit
Quit
- सेव करें पर क्लिक करें.
Spelling
सीन में Quit
इंटेंट जोड़ें
अब, कार्रवाई को यह पता चल सकता है कि कोई उपयोगकर्ता कब "छोड़ें" का इस्तेमाल करता है. Spelling
सीन में quit
यूज़र इंटेंट जोड़ा जा सकता है, क्योंकि उपयोगकर्ता Spelling
प्रॉम्प्ट ("फ़ोनेटिक वर्णमाला का इस्तेमाल करके शब्द की स्पेलिंग बताएं") का जवाब दे रहा है.
Spelling
सीन में इस यूज़र इंटेंट को जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- उपयोगकर्ता के इंटेंट को मैनेज करना के बगल में मौजूद
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - इंटेंट ड्रॉप-डाउन में बाहर निकलें चुनें.
- दाईं ओर मौजूद ट्रांज़िशन सेक्शन में, ड्रॉप-डाउन मेन्यू पर क्लिक करके
End conversation
चुनें . - सेव करें पर क्लिक करें.
phonetic_alphabet
टाइप बनाएं
इस सेक्शन में, phonetic_alphabet
नाम का एक नया टाइप बनाया जाता है. इससे फ़ोनेटिक वर्णमाला के विकल्प तय होते हैं, ताकि उपयोगकर्ता उस शब्द की स्पेलिंग चुन सकें. अगर कोई उपयोगकर्ता इससे मिलता-जुलता कुछ कहता है, तो इन विकल्पों के लिए कुछ समानार्थी शब्द भी तय किए जा सकते हैं. बाद के सेक्शन में, किसी स्लॉट में यह बताने के लिए phonetic_alphabet
टाइप जोड़ा जाता है कि आपको उपयोगकर्ता से जवाब पाना है.
phonetic_alphabet
टाइप बनाने के लिए, यह तरीका अपनाएं:
- नेविगेशन में, डेवलप करें पर क्लिक करें.
- टाइप में जाकर, + (प्लस का निशान) पर क्लिक करें.
phonetic_alphabet
लिखें औरEnter
दबाएं.- विकल्पों को खोलने के लिए,
phonetic_alphabet
पर क्लिक करें. - यह टाइप किस तरह के वैल्यू का इस्तेमाल करेगा? सेक्शन में, शब्द और समानार्थी शब्द विकल्प चुनें
- एंट्री जोड़ें सेक्शन में नीचे दी गई एंट्री और उनसे जुड़ी वैल्यू डालें:
ए | ऐल्फ़ा, सेब, एम्सटर्डम |
b | ब्रावो, बटर, बाल्टीमोर |
सी | चार्ली, बिल्ली, कासाब्लांका |
दिन | डेल्टा, डॉग, डेनमार्क |
ई | इको, एडवर्ड, एडिसन |
महज़ | फ़ॉक्सट्रॉट, फ़ॉक्स, फ़्लोरिडा |
जी | गॉल्फ़, जॉर्ज, गैलिपोली |
घं | होटल, हैरी, हवाना |
i | भारत, इंक, इटली |
j | जूलिएट, जॉनी, यरुशलम |
हज़ार | किलो, किंग, किलोग्राम |
l | लीमा, लव, लंदन |
मी | माइक, मनी, मेडागास्कर |
n | नॉवेंबर, न्यूयॉर्क, नैंसी |
o | ऑस्कर, ऑरेंज, ओस्लो |
| पापा, पेरिस, पीटर |
ति | क्विबेक, क्वीन |
| रोमियो, रोमा, रॉबर्ट |
से | सिएरा, शुगर, सैंटियागो |
ट | टैंगो, टॉमी, त्रिपोली |
u | यूनिफ़ॉर्म, छाता, अंकल |
v | विक्टर, सिरका, वैलेंसिया |
हफ़्ता | व्हिस्की, विलियम, वॉशिंगटन |
x | एक्स-रे |
साल | यांकी, येलो, यॉर्कर |
z | ज़ुलु, ज़ेब्रा, ज़्यूरिख |
आपकी की-वैल्यू टेबल कुछ इस तरह दिखनी चाहिए:
- सेव करें पर क्लिक करें.
स्लॉट भरने की सुविधा कॉन्फ़िगर करें
इसके बाद, आपको स्पेलिंग सीन में स्लॉट भरना कॉन्फ़िगर करना होगा. स्लॉट भरने वाला लॉजिक कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- स्लॉट भरने के लिए
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - स्लॉट का नाम डालें फ़ील्ड में, स्लॉट के नाम के तौर पर
userresponse
जोड़ें. - टाइप चुनें ड्रॉप-डाउन में, स्लॉट टाइप के तौर पर phonetic_alphabet चुनें.
- यह स्लॉट वैल्यू की सूची स्वीकार करता है पर सही का निशान लगाएं
- यह स्लॉट ज़रूरी है पर सही का निशान लगाएं.
- स्लॉट वैल्यू राइटबैक को पसंद के मुताबिक बनाएं विकल्प चुनें और सेशन पैरामीटर टेक्स्टबॉक्स में userresponse डालें.
- सेव करें पर क्लिक करें.
Spelling
स्क्रीन पर शर्त जोड़ें
Spelling
सीन में शर्त जोड़ने के लिए, यह तरीका अपनाएं:
- नेविगेशन में स्पेलिंग सीन पर क्लिक करें.
- शर्त के बगल में मौजूद
Spelling
सीन में + (प्लस का निशान) पर क्लिक करें. - शर्त के तौर पर
scene.slots.status == "FINAL"
डालें - अपने वेबहुक को कॉल करें पर सही का निशान लगाएं और उपयोगकर्ता के जवाब की पुष्टि करने के लिए, इवेंट हैंडलर टेक्स्टबॉक्स में verifyVerifyingWord डालें.
- प्रॉम्प्ट भेजें पर सही का निशान लगाएं.
speech
फ़ील्ड (Enter the response that users will see or hear...
) में वाक्य को {} से बदलें. असल प्रॉम्प्ट में वेबहुक की मदद से जानकारी अपने-आप भर जाएगी.
वेबहुक के जवाब में सुझाव वाले चिप जोड़ें
Start
सीन में, कोड एडिटर के नीचे मौजूद, सुझाव पर क्लिक करें. ऐसा करने से, सुझाव वाले तीन चिप जुड़ जाते हैं.title
फ़ील्ड में,Suggested Response
को'Next'
से बदलें.- इस फ़ॉर्मैट का इस्तेमाल करके, मैन्युअल तरीके से
'Quit'
टाइटल वाला सुझाव चिप जोड़ें.आपका कोड इस स्निपेट की तरह दिखना चाहिए:
suggestions: - title: 'Next' - title: 'Quit'
- सेव करें पर क्लिक करें.
12. सिम्युलेटर में स्पेलिंग की प्रैक्टिस करें
सिम्युलेटर में अपनी सेट की गई कार्रवाई की जांच करने के लिए, यह तरीका अपनाएं:
- सिम्युलेटर पर जाने के लिए, नेविगेशन बार में जांच करें पर क्लिक करें.
- सिम्युलेटर में अपनी सेट की गई कार्रवाई की जांच करने के लिए, इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें. - Enter दबाएं. आपकी सेट की गई कार्रवाई को
Main invocation
औरStart
सीन के प्रॉम्प्ट के साथ जवाब देना चाहिए, "स्पेलिंग प्रैक्टिस में आपका स्वागत है. शब्द की स्पेलिंग लिखने के लिए, फ़ोनेटिक वर्णमाला का इस्तेमाल करें. उदाहरण के लिए, a के लिए ऐल्फ़ा, b के लिए bravo, c के लिए चार्ली वगैरह. क्या आपको जारी रखना है?". - जारी रखने के लिए हां कहें
- सिम्युलेटर, स्पेलिंग के लिए एक शब्द की आवाज़ चलाएगा
- फ़ोनेटिक अक्षरों का इस्तेमाल करके, शब्द की स्पेलिंग लिखी जा सकती है. उदाहरण के लिए, बेहतर के लिए "bravo कदमों टैंगो टैंगो इको रोमियो" को बोलें या लिखें
- सिम्युलेटर, सही या गलत जवाब देगा.
- अगले शब्द पर जाने के लिए आगे बढ़ें बोलें या गेम लूप से बाहर निकलने के लिए छोड़ें बोलें.
13. बधाई
बधाई हो, आपने स्पेलिंग की प्रैक्टिस गेम बना लिया है!
अब आपको Cloud Firestore, Cloud Functions, और Google Assistant Action Builder का इस्तेमाल करके गेम बनाने के ज़रूरी चरणों के बारे में पता है.
आपने क्या कवर किया
- Cloud Firestore के साथ इंटरैक्ट करने का तरीका
- उपयोगकर्ता से डेटा इकट्ठा करने के लिए स्लॉट इस्तेमाल करने का तरीका
- किसी उपयोगकर्ता के इनपुट को प्रोसेस करने और जवाब देने का तरीका
- किसी सीन में लॉजिक जोड़ने के लिए, शर्तों का इस्तेमाल कैसे करें
- गेम लूप जोड़ने का तरीका
सीखने के लिए कुछ और संसाधन
आप Google Assistant के लिए कार्रवाइयां बनाने के बारे में जानने के लिए इन संसाधनों को देख सकते हैं:
- Google Assistant के लिए कार्रवाइयां डेवलप करने के दस्तावेज़
- सैंपल कोड और लाइब्रेरी के लिए, Google GitHub पेज पर कार्रवाइयां
- Google Assistant के साथ काम करने वाले डेवलपर के लिए आधिकारिक Reddit समुदाय
- बातचीत के डिज़ाइन से जुड़े दिशा-निर्देश: इसमें बातचीत की कार्रवाइयों से जुड़े सबसे सही तरीकों और दिशा-निर्देशों के बारे में बताया जाता है
- Cloud Firestore के बारे में जानकारी
अपने प्रोजेक्ट में स्टोरेज खाली करें [सुझाया गया]
संभावित शुल्क देने से बचने के लिए, हमारा सुझाव है कि आप उन प्रोजेक्ट को हटा दें जिनका इस्तेमाल आपको नहीं करना है. इस कोडलैब में बनाए गए प्रोजेक्ट मिटाने के लिए, यह तरीका अपनाएं:
- अपने Firebase प्रोजेक्ट और संसाधनों को मिटाने के लिए, प्रोजेक्ट बंद करना (मिटाना) सेक्शन में दिए गए चरणों को पूरा करें.
चेतावनी: पक्का करें कि आपने Google Cloud Console के सेटिंग पेज पर, मिटाने के लिए सही प्रोजेक्ट चुना हो.
- ज़रूरी नहीं: Actions कंसोल से अपने प्रोजेक्ट को तुरंत हटाने के लिए, प्रोजेक्ट मिटाना सेक्शन में दिए गए चरणों को पूरा करें. अगर ऐसा नहीं किया जाता है, तो आपका प्रोजेक्ट करीब 30 दिनों के बाद अपने-आप हट जाएगा.
@ActionOnGoogle को फ़ॉलो करें और @Firebase से जुड़े अपडेट पाने के लिए, Twitter पर हमारी नई सूचनाएं देखते रहें. साथ ही, #GoogleIO पर ट्वीट करके हमें बताएं कि आपने क्या बनाया!