1 अवलोकन
Google Assistant डेवलपर प्लेटफ़ॉर्म आपको स्मार्ट स्पीकर, फ़ोन, कार, टीवी, हेडफ़ोन और अन्य सहित 1 बिलियन से अधिक डिवाइसों पर Google Assistant, एक वर्चुअल पर्सनल असिस्टेंट की कार्यक्षमता बढ़ाने के लिए सॉफ़्टवेयर बनाने की सुविधा देता है। उपयोगकर्ता किराने का सामान खरीदने या सवारी बुक करने जैसे काम करने के लिए असिस्टेंट को बातचीत में शामिल करते हैं। एक डेवलपर के रूप में, आप उपयोगकर्ताओं और अपनी स्वयं की तृतीय-पक्ष पूर्ति सेवा के बीच आनंददायक और प्रभावी वार्तालाप अनुभवों को आसानी से बनाने और प्रबंधित करने के लिए सहायक डेवलपर प्लेटफ़ॉर्म का उपयोग कर सकते हैं।
यह कोडलैब Google असिस्टेंट, क्लाउड फ़ंक्शंस और क्लाउड फायरस्टोर के साथ विकास के लिए मध्यवर्ती स्तर की अवधारणाओं को शामिल करता है। इस कोडलैब में, आप "स्पेलिंग प्रैक्टिस" नामक एक गेम बनाएंगे जो उपयोगकर्ताओं को शब्दों की वर्तनी पूछने के लिए Google Assistant का उपयोग करता है।
आप क्या बनाएंगे
इस कोडलैब में, आप निम्नलिखित कार्यक्षमता के साथ एक परिष्कृत गेम बनाएंगे:
- उपयोगकर्ता से वर्तनी प्रतिक्रियाएं प्राप्त करता है और, मूल्य के आधार पर, वार्तालाप संबंधी संकेतों को संशोधित करता है
- शब्द की वर्तनी से संबंधित संकेतों के साथ प्रतिक्रिया करता है, जैसे उसकी परिभाषा या शब्द को दोहराना
- एक गेम लूप बनाता है ताकि उपयोगकर्ता शब्द की स्पेलिंग के बाद असिस्टेंट के साथ दोबारा इंटरैक्ट कर सके
निर्माण शुरू करने से पहले, आप "हे Google, स्पेलिंग प्रैक्टिस से बात करें" कहकर अपने Google सहायक-सक्षम डिवाइस पर लाइव एक्शन के साथ बातचीत कर सकते हैं। लौटने वाले उपयोगकर्ता के लिए इस क्रिया के माध्यम से डिफ़ॉल्ट पथ निम्नलिखित इंटरैक्शन जैसा दिखता है:
जब आप इस कोडलैब को पूरा कर लेंगे, तो आपकी पूर्ण की गई कार्रवाई में निम्नलिखित वार्तालाप प्रवाह होगा:
आप क्या सीखेंगे
- क्लाउड फायरस्टोर के साथ कैसे इंटरैक्ट करें
- उपयोगकर्ता से डेटा एकत्र करने के लिए स्लॉट का उपयोग कैसे करें
- उपयोगकर्ता के इनपुट को कैसे संसाधित करें और प्रतिक्रिया कैसे लौटाएँ
- किसी दृश्य में तर्क जोड़ने के लिए शर्तों का उपयोग कैसे करें
- गेम लूप कैसे जोड़ें
आपको किस चीज़ की ज़रूरत पड़ेगी
इस कोडलैब के लिए आवश्यक शर्तों में निम्नलिखित शामिल हैं:
- एक वेब ब्राउज़र, जैसे Google Chrome
- क्लाउड फ़ंक्शंस लिखने के लिए एक आईडीई।
- एक भुगतान विधि. यह कोडलैब फायरबेस के लिए क्लाउड फ़ंक्शंस का उपयोग करता है जिसके लिए आपके प्रोजेक्ट को फायरबेस ब्लेज़ मूल्य निर्धारण योजना पर होना आवश्यक है ( और जानें )।
- शेल कमांड चलाने के लिए एक टर्मिनल
- Node.js 10 या बाद का संस्करण
2. फ़ंक्शन कोड प्राप्त करें
कमांड लाइन से GitHub रिपॉजिटरी को क्लोन करें:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. एक फायरबेस प्रोजेक्ट बनाएं और अपना ऐप सेट करें
एक फायरबेस प्रोजेक्ट बनाएं
- फायरबेस में साइन इन करें।
- फायरबेस कंसोल में, प्रोजेक्ट जोड़ें (या प्रोजेक्ट बनाएं ) पर क्लिक करें, फिर अपने फायरबेस प्रोजेक्ट को
Spelling-Practice
नाम दें।
- प्रोजेक्ट निर्माण विकल्पों पर क्लिक करें। संकेत मिलने पर फायरबेस शर्तों को स्वीकार करें। Google Analytics सेट करना छोड़ें, क्योंकि आप इस ऐप के लिए Analytics का उपयोग नहीं करेंगे।
फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए, फायरबेस प्रोजेक्ट्स को समझें देखें।
ब्लेज़ मूल्य निर्धारण योजना में अपग्रेड करें
फायरबेस के लिए क्लाउड फ़ंक्शंस का उपयोग करने के लिए, आपको अपने फायरबेस प्रोजेक्ट को ब्लेज़ मूल्य निर्धारण योजना में अपग्रेड करना होगा, जिसका अर्थ है कि आप अपने प्रोजेक्ट में एक Google क्लाउड बिलिंग खाता संलग्न करेंगे। इसके लिए आपको क्रेडिट कार्ड या अन्य भुगतान विधि प्रदान करनी होगी।
ब्लेज़ योजना सहित सभी फायरबेस परियोजनाओं के पास अभी भी क्लाउड फ़ंक्शंस के लिए नो-कॉस्ट उपयोग कोटा तक पहुंच है। इस कोडलैब में उल्लिखित चरण निःशुल्क उपयोग सीमा के अंतर्गत आएंगे। हालाँकि, आपको क्लाउड स्टोरेज से छोटे शुल्क ( लगभग $0.03 ) दिखाई देंगे, जिसका उपयोग आपके क्लाउड फ़ंक्शंस बिल्ड छवियों को होस्ट करने के लिए किया जाता है।
4. फायरबेस सीएलआई स्थापित करें
फायरबेस सीएलआई (कमांड लाइन इंटरफ़ेस) आपको अपने क्लाउड फ़ंक्शंस को तैनात करने में सक्षम बनाता है।
आपके ऑपरेटिंग सिस्टम और उपयोग के मामले के आधार पर फायरबेस सीएलआई स्थापित करने के लिए कई विकल्प हैं। यदि आप भी क्लाउड फ़ंक्शंस का उपयोग कर रहे हैं तो निम्नलिखित चरण सबसे सामान्य विकल्प का वर्णन करते हैं।
- सुनिश्चित करें कि आपने npm इंस्टॉल किया है जो आमतौर पर Node.js के साथ आता है।
- निम्नलिखित एनपीएम कमांड चलाकर सीएलआई को स्थापित या अपग्रेड करें:
$ npm -g install firebase-tools
- सत्यापित करें कि सीएलआई को चलाकर सही ढंग से स्थापित किया गया है:
$ firebase --version
सुनिश्चित करें कि फायरबेस सीएलआई का संस्करण 9.0.0 या उसके बाद का है ताकि इसमें क्लाउड फ़ंक्शंस के लिए आवश्यक सभी नवीनतम सुविधाएँ हों। यदि नहीं, तो ऊपर दिखाए अनुसार अपग्रेड करने के लिए npm install -g firebase-tools चलाएँ।
- चलाकर फायरबेस सीएलआई को अधिकृत करें:
$ firebase login
- स्पेलिंग-फ़ंक्शंस-स्टार्ट निर्देशिका से, अपने फ़ायरबेस प्रोजेक्ट का उपयोग करने के लिए फ़ायरबेस सीएलआई सेट करें। निम्नलिखित कमांड चलाएँ, अपनी प्रोजेक्ट आईडी चुनें, फिर निर्देशों का पालन करें। संकेत मिलने पर, आप कोई भी उपनाम चुन सकते हैं, जैसे उदाहरण के लिए
codelab
।
$ firebase use --add
5. फ़ंक्शन निर्देशिका
अब आप गेम के लिए बैकएंड, स्पेलिंग प्रैक्टिस बनाने के लिए क्लाउड फ़ंक्शंस के लिए फायरबेस एसडीके का उपयोग करके कार्यक्षमता जोड़ेंगे।
क्लाउड फ़ंक्शंस आपको सर्वर सेट किए बिना क्लाउड में चलने वाले कोड की अनुमति देता है। यह कोडलैब आपको दिखाएगा कि फ़ायरबेस प्रमाणीकरण, क्लाउड स्टोरेज और फ़ायरबेस रीयलटाइम डेटाबेस ईवेंट पर प्रतिक्रिया करने वाले फ़ंक्शंस कैसे बनाएं। आइए प्रमाणीकरण से शुरुआत करें।
क्लाउड फ़ंक्शंस के लिए फ़ायरबेस एसडीके का उपयोग करते समय, आपका फ़ंक्शंस कोड functions
निर्देशिका (डिफ़ॉल्ट रूप से) के अंतर्गत रहेगा। आपके लिए इसे आसान बनाने के लिए, हमने पहले से ही functions/index.js
फ़ाइल बना ली है जहां आपका कोड जाएगा। आगे बढ़ने से पहले बेझिझक functions
निर्देशिका का निरीक्षण करें।
$ cd functions $ ls
आपका फ़ंक्शन कोड भी एक Node.js ऐप है, और इसलिए एक package.json
आवश्यकता है जो आपके ऐप के बारे में कुछ जानकारी देता है और निर्भरताओं को सूचीबद्ध करता है।
यदि आप Node.js से परिचित नहीं हैं, तो कोडलैब जारी रखने से पहले इसके बारे में अधिक जानने में मदद मिलेगी।
package.json
फ़ाइल पहले से ही दो आवश्यक निर्भरताएँ सूचीबद्ध करती है: क्लाउड फ़ंक्शंस के लिए फ़ायरबेस SDK और फ़ायरबेस एडमिन 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 के स्थान पर चार फ़ंक्शन लिखेंगे। मॉड्यूल आयात करने के लिए कोडलैब के अगले चरण पर जारी रखें।
6. आवश्यक मॉड्यूल आयात करें
इस कोडलैब के लिए तीन मॉड्यूल की आवश्यकता होती है।
-
firebase-functions
मॉड्यूल हमें अपने क्लाउड फ़ंक्शंस के लिए ट्रिगर लिखने की अनुमति देता है -
firebase-admin
मॉड्यूल हमें एडमिन एक्सेस वाले सर्वर पर फायरबेस प्लेटफॉर्म का उपयोग करने की अनुमति देता है, उदाहरण के लिए क्लाउड फायरस्टोर पर लिखने के लिए। - Actions SDK Node.js पूर्ति लाइब्रेरी Google Assistant के लिए Actions SDK हैंडलर को पूरा करती है।
- निम्नलिखित npm कमांड चलाकर क्रियाएँ SDK स्थापित करें:
$ npm install @assistant/conversation
-
index.js
फ़ाइल में, पहले TODO को निम्नलिखित से बदलें।
ये परिवर्तन प्रत्येक आवश्यक मॉड्यूल को आयात करते हैं।
साथ ही, क्लाउड फ़ंक्शंस वातावरण या अन्य Google क्लाउड कंटेनर पर तैनात होने पर फायरबेस एडमिन एसडीके को स्वचालित रूप से कॉन्फ़िगर किया जा सकता है। जब हम 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.
आइए अब सहायक क्रियाओं का समर्थन करने के लिए फ़ंक्शंस का उपयोग करके व्यावसायिक तर्क जोड़ें।
7. फ़ंक्शन बनाएं
शब्द परिभाषाएँ प्राप्त करें और उन्हें क्लाउड फायरस्टोर पर लिखें
आप शब्द परिभाषाएँ प्राप्त करने के लिए dictionaryapi.dev
सार्वजनिक एपीआई का उपयोग करेंगे।
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(); }
क्लाउड फायरस्टोर ट्रिगर जोड़ें
इसके बाद, आप एक क्लाउड फ़ंक्शन बनाएंगे जो क्लाउड फायरस्टोर में जब भी कोई नया दस्तावेज़ बनाया जाता है तो ट्रिगर हो जाता है। यह getWordDetailsFromDictionaryAPI
फ़ंक्शन के माध्यम से शब्द परिभाषाएँ प्राप्त करने के लिए dictionaryapi.dev
API को कॉल करेगा, जिसे हमने अभी ऊपर लिखा है।
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);
अपने सभी कार्यों को तैनात करें
आपके क्लाउड फ़ंक्शंस केवल तभी सक्रिय होंगे जब आप उन्हें फ़ायरबेस पर तैनात कर देंगे।
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 को नोट कर लें। एंडपॉइंट प्राप्त करने के लिए, फायरबेस कंसोल खोलें और फिर स्पेलिंग-प्रैक्टिस प्रोजेक्ट पर क्लिक करें। फ़ंक्शंस समापन बिंदु देखने के लिए फ़ंक्शंस डैशबोर्ड खोलें।
आपने सभी आवश्यक फ़ंक्शन जोड़ना पूरा कर लिया है. अब क्लाउड फायरस्टोर स्थापित करने की ओर बढ़ते हैं।
8. क्लाउड फायरस्टोर सक्षम करें
आपको क्लाउड फायरस्टोर को सक्षम करना होगा।
फायरबेस कंसोल के बिल्ड सेक्शन में, फायरस्टोर पर क्लिक करें। फिर, डेटाबेस बनाएँ पर क्लिक करें।
क्लाउड फायरस्टोर में डेटा तक पहुंच सुरक्षा नियमों द्वारा नियंत्रित की जाती है। आरंभ करने के लिए सबसे पहले आपको डेटा पर कुछ बुनियादी नियम निर्धारित करने होंगे। फ़ायरस्टोर पर क्लिक करें और फिर फ़ायरबेस कंसोल के नियम टैब में, निम्नलिखित नियम जोड़ें, फिर प्रकाशित करें पर क्लिक करें।
निम्नलिखित नियम उन उपयोगकर्ताओं तक डेटा पहुंच को प्रतिबंधित करते हैं जो साइन इन हैं, जो अप्रमाणित उपयोगकर्ताओं को पढ़ने या लिखने से रोकता है।
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. क्लाउड फायरस्टोर में वर्तनी शब्द डेटा जोड़ें
इस चरण में, आप क्लाउड फायरस्टोर पर वर्तनी शब्द डेटा लिखेंगे ताकि आप सहायक (और गेम) के लिए शब्दों की एक सूची तैयार कर सकें।
क्लाउड फायरस्टोर डेटा को संग्रह, दस्तावेज़, फ़ील्ड और उपसंग्रह में संरचित किया गया है। खेल के लिए प्रत्येक शब्द को wordlist
नामक शीर्ष-स्तरीय संग्रह में अपने स्वयं के दस्तावेज़ के रूप में संग्रहीत किया जाएगा। फायरस्टोर संग्रह में प्रत्येक नए दस्तावेज़ के लिए, डिक्शनरी एपीआई सेवा से शब्द विवरण प्राप्त करने के लिए createSpellingpracticeWord फ़ंक्शन ट्रिगर किया जाएगा।
क्लाउड फायरस्टोर संग्रह बनाएं
- फ़ायरबेस कंसोल में, क्लाउड फ़ायरस्टोर अनुभाग पर जाएँ।
- + संग्रहण आरंभ करें पर क्लिक करें.
- संग्रह आईडी टेक्स्टबॉक्स में,
wordlist
दर्ज करें, फिर अगला क्लिक करें।
इसके बाद, हम एक शब्द के लिए एक दस्तावेज़ बनाएंगे: समझौता
- दस्तावेज़ आईडी टेक्स्टबॉक्स में,
agreement
दर्ज करें। - फ़ील्ड टेक्स्टबॉक्स में,
word
दर्ज करें और वैल्यू टेक्स्टबॉक्स मेंagreement
दर्ज करें। - सहेजें पर क्लिक करें.
जब आप इस दस्तावेज़ को क्लाउड फायरस्टोर में जोड़ते हैं, तो यह शब्द के लिए परिभाषा विवरण लाने के लिए आपके createSpellingpracticeWord फ़ंक्शन को ट्रिगर करता है। प्रत्येक शब्द के लिए एक नया दस्तावेज़ बनाकर अधिक शब्द जोड़ें (उदाहरण के लिए: विस्मय, कार, सच, बताओ, बेहतर, यात्रा, ...)।
10. Google Assistant सेट करें
निम्नलिखित अनुभाग वर्णन करते हैं कि अपना Google सहायक विकास परिवेश कैसे सेट करें और अपना एक्शन प्रोजेक्ट कैसे बनाएं।
अपनी Google अनुमति सेटिंग जांचें
इस कोडलैब में आपके द्वारा बनाए गए एक्शन का परीक्षण करने के लिए, आपको आवश्यक अनुमतियां सक्षम करने की आवश्यकता है ताकि सिम्युलेटर आपके एक्शन तक पहुंच सके। अनुमतियाँ सक्षम करने के लिए, इन चरणों का पालन करें:
- गतिविधि नियंत्रण पृष्ठ पर जाएँ.
- यदि आपने पहले से ऐसा नहीं किया है तो अपने Google खाते से साइन इन करें।
- निम्नलिखित अनुमतियाँ सक्षम करें:
- वेब और ऐप गतिविधि
- वेब और ऐप गतिविधि के अंतर्गत, Google सेवाओं का उपयोग करने वाली साइटों, ऐप्स और उपकरणों से Chrome इतिहास और गतिविधि शामिल करें के बगल में स्थित चेकबॉक्स का चयन करें।
एक क्रियाएँ प्रोजेक्ट बनाएँ
आपका एक्शन प्रोजेक्ट आपके एक्शन के लिए एक कंटेनर है। इस कोडलैब के लिए अपना एक्शन प्रोजेक्ट बनाने के लिए, इन चरणों का पालन करें:
- एक्शन कंसोल खोलें।
- नया प्रोजेक्ट क्लिक करें.
- सेवा की शर्तें स्वीकार करें
- टाइप करें या
spelling-practice-codelab
चुनें जिसे आपने फायरबेस कंसोल का उपयोग करके बनाया है। (नाम आपके आंतरिक संदर्भ के लिए है। बाद में, आप अपने प्रोजेक्ट के लिए एक बाहरी नाम सेट कर सकते हैं।)
- प्रोजेक्ट आयात करें पर क्लिक करें.
- आप किस प्रकार की क्रिया का निर्माण करना चाहते हैं? स्क्रीन, कस्टम कार्ड का चयन करें.
- अगला पर क्लिक करें ।
- रिक्त प्रोजेक्ट कार्ड का चयन करें.
- निर्माण आरंभ करें पर क्लिक करें.
- प्रदर्शन नाम के लिए वर्तनी अभ्यास दर्ज करें और सहेजें पर क्लिक करें।
उपयोगकर्ता मंगलाचरण के माध्यम से आपके एक्शन से बातचीत शुरू करते हैं। उदाहरण के लिए, उपयोगकर्ता "हे Google, स्पेलिंग प्रैक्टिस से बात करें" जैसे वाक्यांश कहकर आपकी कार्रवाई का आह्वान कर सकते हैं, जहां स्पेलिंग प्रैक्टिस प्रदर्शन नाम है।
यदि आप इसे उत्पादन में तैनात करना चाहते हैं तो आपकी कार्रवाई में एक प्रदर्शन नाम होना चाहिए; हालाँकि, अपनी कार्रवाई का परीक्षण करने के लिए, आपको प्रदर्शन नाम परिभाषित करने की आवश्यकता नहीं है। इसके बजाय, आप अपनी कार्रवाई शुरू करने के लिए सिम्युलेटर में "मेरे परीक्षण ऐप से बात करें" वाक्यांश का उपयोग कर सकते हैं।
पूर्ति कॉन्फ़िगर करें
आपको क्लाउड फ़ंक्शंस के लिए इवेंट हैंडलर को असिस्टेंट से कनेक्ट करना होगा, जिसे आपने पहले इस कोडलैब में लिखा और तैनात किया था।
अपनी पूर्ति को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
- साइड नेविगेशन में वेबहुक पर क्लिक करें।
- पूर्ति विकल्प के रूप में HTTPS एंडपॉइंट का चयन करें:
- HTTPs एंडपॉइंट टेक्स्टबॉक्स में अपने फ़ंक्शन के एंडपॉइंट का यूआरएल दर्ज करें, फिर सेव पर क्लिक करें।
अगले अनुभाग में, आप एक्शन कंसोल में अपने मुख्य आह्वान के लिए संकेत को अनुकूलित करेंगे।
मुख्य मंगलाचरण स्थापित करें
किसी उपयोगकर्ता द्वारा आपकी कार्रवाई का आह्वान करने के बाद क्या होता है, इसे परिभाषित करने के लिए आपको मुख्य आह्वान को संपादित करना होगा।
डिफ़ॉल्ट रूप से, जब आपका आह्वान ट्रिगर होता है तो एक्शन बिल्डर एक सामान्य संकेत प्रदान करता है ( "मुख्य आह्वान को परिभाषित करके अपना एक्शन बनाना शुरू करें।")।
उस संकेत को संशोधित करने के लिए जिसे आपकी कार्रवाई उपयोगकर्ता द्वारा आपकी कार्रवाई शुरू करने पर वापस भेजती है, इन चरणों का पालन करें:
- नेविगेशन में मुख्य मंगलाचरण पर क्लिक करें।
-
Call your webhook
करें चेक करें और टेक्स्टबॉक्स में इवेंट हैंडलर नामgetSpellingWordList
जोड़ें। - कोड संपादक में,
speech
क्षेत्र में पाठ को निम्नलिखित स्वागत संदेश से बदलें:Welcome to Spelling Practice
नोट: आप अपने संकेतों को संपादित करने के लिए YAML या JSON फ़ॉर्मेटिंग का उपयोग कर सकते हैं।
- सहेजें पर क्लिक करें.
सिम्युलेटर में मुख्य आह्वान का परीक्षण करें
एक्शन कंसोल आपके एक्शन का परीक्षण करने के लिए सिम्युलेटर नामक एक वेब टूल प्रदान करता है। इंटरफ़ेस हार्डवेयर उपकरणों और उनकी सेटिंग्स का अनुकरण करता है, ताकि आप अपने एक्शन के साथ बातचीत कर सकें जैसे कि यह स्मार्ट डिस्प्ले, फोन, स्पीकर या काईओएस पर चल रहा हो।
सिम्युलेटर में अपने एक्शन के मुख्य आह्वान का परीक्षण करने के लिए, इन चरणों का पालन करें:
- शीर्ष नेविगेशन बार में, सिम्युलेटर पर जाने के लिए टेस्ट पर क्लिक करें।
- सिम्युलेटर में अपनी कार्रवाई शुरू करने के लिए, ऊपर बाईं ओर इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें, फिर अपने कीबोर्ड पर एंटर दबाएं।
जब आप अपनी कार्रवाई के मुख्य आह्वान को ट्रिगर करते हैं, तो सहायक आपके अनुकूलित स्वागत संदेश के साथ प्रतिक्रिया करता है। इस बिंदु पर, सहायक द्वारा अभिवादन के साथ जवाब देने के बाद बातचीत समाप्त हो जाती है।
इवेंट लॉग देखें
जब आप टेस्ट टैब में होते हैं, तो दाईं ओर का पैनल इवेंट लॉग दिखाता है, जो वार्तालाप इतिहास को इवेंट लॉग के रूप में प्रदर्शित करता है। प्रत्येक ईवेंट लॉग बातचीत के उस चरण के दौरान होने वाली घटनाओं को प्रदर्शित करता है। इवेंट लॉग देखने के लिए इवेंट से पहले ग्रे आइकन पर क्लिक करें।
आपके एक्शन में वर्तमान में एक इवेंट लॉग है, जो उपयोगकर्ता के इनपुट ( "वर्तनी अभ्यास पर बात करें" ) और आपके एक्शन की प्रतिक्रिया दोनों को दिखाता है। निम्नलिखित स्क्रीनशॉट आपके एक्शन का इवेंट लॉग दिखाता है:
11. वर्तनी अभ्यास के लिए वार्तालाप बनाएँ
अब जब आपने यह परिभाषित कर लिया है कि उपयोगकर्ता द्वारा आपकी कार्रवाई शुरू करने के बाद क्या होता है, तो आप अपनी कार्रवाई की शेष बातचीत का निर्माण कर सकते हैं। स्पेलिंग प्रैक्टिस में चार दृश्य हैं, और आपको प्रत्येक दृश्य को चलाने से पहले सक्रिय करना होगा। किसी दृश्य को सक्रिय करने का सबसे आम तरीका अपनी कार्रवाई को कॉन्फ़िगर करना है ताकि, जब कोई उपयोगकर्ता किसी दृश्य के भीतर उपयोगकर्ता के इरादे से मेल खाता है, तो वह इरादा दूसरे दृश्य में संक्रमण को ट्रिगर करता है और इसे सक्रिय करता है।
मुख्य आह्वान से आरंभिक दृश्य में संक्रमण
इस अनुभाग में, आप Start
नामक एक नया दृश्य बनाते हैं, जो उपयोगकर्ता को यह पूछते हुए एक संकेत भेजता है कि क्या वे स्पेलिंग प्रैक्टिस खेलना शुरू करना चाहते हैं। आप मुख्य आह्वान से नए Start
दृश्य में एक संक्रमण भी जोड़ते हैं।
इस दृश्य को बनाने और इसमें एक ट्रांज़िशन जोड़ने के लिए, इन चरणों का पालन करें:
- शीर्ष नेविगेशन में विकसित करें पर क्लिक करें। फिर, बाएं नेविगेशन में मुख्य मंगलाचरण पर क्लिक करें।
- दाईं ओर ट्रांज़िशन अनुभाग में, ड्रॉप-डाउन मेनू पर क्लिक करें, फिर टेक्स्ट फ़ील्ड में
Start
टाइप करें।
- जोड़ें पर क्लिक करें. यह
Start
नामक एक दृश्य बनाता है, और एक्शन द्वारा उपयोगकर्ता को स्वागत संकेत देने के बाद एक्शन कोStart
दृश्य में स्थानांतरित करने के लिए कहता है। - दृश्यों की सूची दिखाने के लिए बाएं नेविगेशन में दृश्य पर क्लिक करें।
- दृश्य के अंतर्गत,
Start
दृश्य देखने के लिए प्रारंभ पर क्लिक करें। -
Start
दृश्य के ऑन एंटर अनुभाग में + पर क्लिक करें। - संकेत भेजें चुनें.
-
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
सीन के प्रॉम्प्ट में सुझाव चिप्स जोड़ने के लिए, इन चरणों का पालन करें:
-
Start
दृश्य में, कोड संपादक के नीचे सुझावों पर क्लिक करें। यह क्रिया एकल सुझाव चिप जोड़ती है. -
title
फ़ील्ड में,Suggested Response
'Yes'
से बदलें। - उसी फ़ॉर्मेटिंग का उपयोग करते हुए, मैन्युअल रूप से
'No'
और'Help with Phonetics'
नामक एक सुझाव चिप जोड़ें। आपका कोड निम्नलिखित स्निपेट जैसा दिखना चाहिए: - सहेजें पर क्लिक करें.
सिम्युलेटर में अपनी कार्रवाई का परीक्षण करें
इस बिंदु पर, आपकी कार्रवाई को मुख्य आह्वान से प्रारंभ दृश्य में परिवर्तित होना चाहिए और उपयोगकर्ता से पूछना चाहिए कि क्या वे जारी रखना चाहते हैं। सुझाव चिप्स भी सिम्युलेटेड डिस्प्ले में दिखाई देने चाहिए।
सिम्युलेटर में अपनी कार्रवाई का परीक्षण करने के लिए, इन चरणों का पालन करें:
- नेविगेशन बार में, सिम्युलेटर पर ले जाने के लिए टेस्ट पर क्लिक करें।
- सिम्युलेटर में अपनी कार्रवाई का परीक्षण करने के लिए, इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें। - एंट्रर दबाये । आपकी कार्रवाई को
Main invocation
संकेत और अतिरिक्तStart
दृश्य संकेत के साथ प्रतिक्रिया देनी चाहिए, "वर्तनी अभ्यास में आपका स्वागत है। शब्द की वर्तनी के लिए ध्वन्यात्मक वर्णमाला का उपयोग करें। उदाहरण के लिए ए के लिए अल्फा, बी के लिए ब्रावो, सी के लिए चार्ली आदि। क्या आप चाहते हैं जारी रखना?" .
निम्नलिखित स्क्रीनशॉट इस इंटरैक्शन को दिखाता है:
- संकेत का जवाब देने के लिए
Yes
याNo
याHelp with Phonetics
पर क्लिक करें। (आप "हां" या "नहीं" या "फोनेटिक्स में मदद" भी कह सकते हैं या इनपुट फ़ील्ड मेंYes
याNo
याHelp with Phonetics
दर्ज कर सकते हैं।)
जब आप संकेत का जवाब देते हैं, तो आपकी कार्रवाई एक संदेश के साथ प्रतिक्रिया करती है जो दर्शाती है कि यह आपके इनपुट को नहीं समझ सकता है: "क्षमा करें, मैं उसे समझ नहीं पाया। क्या आप दोबारा प्रयास कर सकते हैं?" चूंकि आपने अभी तक "हां" या "नहीं" इनपुट को समझने और उसका जवाब देने के लिए अपनी कार्रवाई को कॉन्फ़िगर नहीं किया है, इसलिए आपकी कार्रवाई आपके इनपुट से NO_MATCH
इरादे से मेल खाती है।
डिफ़ॉल्ट रूप से, NO_MATCH
सिस्टम का उद्देश्य सामान्य प्रतिक्रियाएँ प्रदान करता है, लेकिन आप उपयोगकर्ता को यह इंगित करने के लिए इन प्रतिक्रियाओं को अनुकूलित कर सकते हैं कि आप उनके इनपुट को समझ नहीं पाए हैं। तीन बार उपयोगकर्ता इनपुट का मिलान नहीं हो पाने के बाद असिस्टेंट आपकी कार्रवाई के साथ उपयोगकर्ता की बातचीत को समाप्त कर देता है।
संख्या और ध्वन्यात्मक आशय जोड़ें
अब जब उपयोगकर्ता आपकी कार्रवाई से पूछे गए प्रश्न का उत्तर दे सकते हैं, तो आप उपयोगकर्ताओं की प्रतिक्रियाओं ( "हां" या "नहीं" या "फ़ोनेटिक्स के साथ सहायता" ) को समझने के लिए अपनी कार्रवाई को कॉन्फ़िगर कर सकते हैं। निम्नलिखित अनुभागों में, आप उपयोगकर्ता के इरादे बनाते हैं जो तब मेल खाते हैं जब उपयोगकर्ता "हां" या "नहीं" या "फ़ोनेटिक्स के साथ सहायता" कहता है और इन इरादों को Start
दृश्य में जोड़ते हैं। हम yes
सिस्टम इंटेंट का उपयोग करेंगे और अन्य इंटेंट बनाएंगे।
कोई इरादा no
बनाओ
अब, आपको उपयोगकर्ता को समझने और जवाब देने का कोई इरादा no
बनाना होगा जब वे गेम नहीं खेलना चाहते हों। इस आशय को बनाने के लिए, इन चरणों का पालन करें:
- नेविगेशन में डेवलप पर क्लिक करें।
- इरादों की सूची खोलने के लिए नेविगेशन में कस्टम इरादों पर क्लिक करें।
- इरादों की सूची के अंत में + (प्लस चिह्न) पर क्लिक करें। नए आशय
no
नाम दें और Enter दबाएँ। -
no
इरादे वाला पेज खोलने के लिए 'नहीं' पर क्लिक करें। - प्रशिक्षण वाक्यांश जोड़ें अनुभाग में, वाक्यांश दर्ज करें टेक्स्ट बॉक्स पर क्लिक करें और निम्नलिखित वाक्यांश दर्ज करें:
-
No
-
N
-
I don't want
-
nope
- सहेजें पर क्लिक करें.
Start
दृश्य में कोई इरादा no
जोड़ें
अब, कार्रवाई समझ सकती है जब कोई उपयोगकर्ता "नहीं" या "नहीं" के समान कुछ व्यक्त कर रहा है, जैसे "नहीं" । आपको Start
सीन में no
यूजर इंटेंट जोड़ने की जरूरत है क्योंकि यूजर Start
प्रॉम्प्ट (" वर्तनी अभ्यास में आपका स्वागत है) का जवाब दे रहा है। शब्द की वर्तनी के लिए ध्वन्यात्मक वर्णमाला का उपयोग करें। उदाहरण के लिए ए के लिए अल्फा, बी के लिए ब्रावो, सी के लिए चार्ली आदि। क्या आप जारी रखना चाहते हैं?" )।
Start
दृश्य के लिए इस आशय को जोड़ने के लिए, इन चरणों का पालन करें:
- नेविगेशन में प्रारंभ दृश्य पर क्लिक करें।
- उपयोगकर्ता इरादे प्रबंधन के बगल में
Start
दृश्य में + (प्लस चिह्न) पर क्लिक करें। - आशय अनुभाग में, ड्रॉप-डाउन में नहीं चुनें।
- संकेत भेजें पर क्लिक करें और
speech
फ़ील्ड को निम्नलिखित पाठ के साथ अद्यतन करें:Good Bye
।
आपके संपादक में कोड निम्नलिखित स्निपेट जैसा दिखना चाहिए:
candidates: - first_simple: variants: - speech: >- Goodbye.
- ट्रांज़िशन अनुभाग में, ड्रॉपडाउन से वार्तालाप समाप्त करें चुनें।
- सहेजें पर क्लिक करें.
सिम्युलेटर में कोई इरादा no
परीक्षण करें
इस बिंदु पर, आपकी कार्रवाई समझती है कि उपयोगकर्ता गेम नहीं खेलना चाहता है और उचित प्रतिक्रिया देता है।
सिम्युलेटर में इस आशय का परीक्षण करने के लिए, इन चरणों का पालन करें:
- नेविगेशन बार में, टेस्ट पर क्लिक करें।
- इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें औरEnter
दबाएँ। - इनपुट फ़ील्ड में
No
टाइप करें और Enter दबाएँ। वैकल्पिक रूप से, कोई सुझाव नहीं चिप पर क्लिक करें।
Start
सीन में सिस्टम YES
इंटेंट जोड़ें
अब, हम Start
सीन में सिस्टम इंटेंट "YES" जोड़ देंगे, क्योंकि उपयोगकर्ता Start
प्रॉम्प्ट (" स्पेलिंग प्रैक्टिस में आपका स्वागत है) के लिए हां में प्रतिक्रिया दे रहा है। शब्द की वर्तनी के लिए ध्वन्यात्मक वर्णमाला का उपयोग करें। उदाहरण के लिए ए के लिए अल्फा, के लिए ब्रावो बी, चार्ली फॉर सी आदि। क्या आप जारी रखना चाहते हैं?" )।
इस उपयोगकर्ता अभिप्राय को Start
दृश्य में जोड़ने के लिए, इन चरणों का पालन करें:
- नेविगेशन में प्रारंभ दृश्य पर क्लिक करें।
- यूजर इंटेंट हैंडलिंग के आगे
Start
सीन में + (प्लस चिह्न) पर क्लिक करें। - सभी सिस्टम इंटेंट के अंतर्गत, इंटेंट ड्रॉप-डाउन में हाँ चुनें।
- अपने वेबहुक को कॉल करें पर क्लिक करें और
event handler
टेक्स्टबॉक्स को आपके द्वारा पहले बनाए गए फ़ंक्शन के साथ अपडेट करें:getSpellingWordList
- ट्रांज़िशन अनुभाग में, ड्रॉप-डाउन पर क्लिक करें और वार्तालाप समाप्त करें चुनें।
- सहेजें पर क्लिक करें.
सिम्युलेटर में YES
इरादे का परीक्षण करें
इस बिंदु पर, आपकी कार्रवाई समझती है कि उपयोगकर्ता कब गेम खेलना चाहता है और उचित प्रतिक्रिया देता है।
सिम्युलेटर में इस आशय का परीक्षण करने के लिए, इन चरणों का पालन करें:
- नेविगेशन बार में, टेस्ट पर क्लिक करें।
- सिम्युलेटर में अपनी कार्रवाई का परीक्षण करने के लिए, इनपुट फ़ील्ड में
Talk to Spelling Practice
टाइप करें और एंटर दबाएं। - इनपुट फ़ील्ड में
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
अभिप्राय जोड़ें
अब, जब कोई उपयोगकर्ता "ध्वनिविज्ञान" आशय व्यक्त कर रहा है तो कार्रवाई समझ सकती है। आप phonetics
उपयोगकर्ता अभिप्राय को Start
दृश्य में जोड़ सकते हैं, क्योंकि उपयोगकर्ता Start
संकेत का जवाब दे रहा है ("वर्तनी अभ्यास में आपका स्वागत है। शब्द की वर्तनी के लिए ध्वन्यात्मक वर्णमाला का उपयोग करें। उदाहरण के लिए ए के लिए अल्फा, बी के लिए ब्रावो, सी के लिए चार्ली आदि। क्या आप जारी रखना चाहते हैं?" )।
इस उपयोगकर्ता अभिप्राय को Start
दृश्य में जोड़ने के लिए, इन चरणों का पालन करें:
- नेविगेशन में प्रारंभ दृश्य पर क्लिक करें।
- उपयोगकर्ता इरादे प्रबंधन के बगल में
Start
दृश्य में + (प्लस चिह्न) पर क्लिक करें। - आशय ड्रॉप-डाउन में ध्वन्यात्मकता का चयन करें।
- ट्रांज़िशन अनुभाग में, ड्रॉप-डाउन पर क्लिक करें और वार्तालाप समाप्त करें चुनें।
- सहेजें पर क्लिक करें.
प्रारंभ दृश्य से वर्तनी दृश्य में संक्रमण
इस अनुभाग में, आप वर्तनी नामक एक नया दृश्य बनाते हैं, जो उपयोगकर्ता को ध्वन्यात्मक वर्णमाला का उपयोग करके शब्द की वर्तनी करने का संकेत भेजता है।
इस दृश्य को बनाने और इसमें एक ट्रांज़िशन जोड़ने के लिए, इन चरणों का पालन करें:
- शीर्ष नेविगेशन में विकसित करें पर क्लिक करें। फिर, बाएं नेविगेशन में स्टार्ट सीन पर क्लिक करें।
- यूजर इंटेंट हैंडलिंग सेक्शन में
when actions.intent.YES is matched
क्लिक करें और ट्रांज़िशन सेक्शन में दाईं ओर, ड्रॉप-डाउन मेनू पर क्लिक करें और टेक्स्ट फ़ील्ड मेंSpelling
टाइप करें। - जोड़ें पर क्लिक करें. यह
Spelling
नामक एक दृश्य बनाता है, और YES इरादे के साथ मिलान के बाद क्रिया कोSpelling
दृश्य में बदलने के लिए कहता है। - दृश्यों की सूची दिखाने के लिए बाएं नेविगेशन में दृश्यों का विस्तार करें।
- दृश्य के अंतर्गत,
Spelling
दृश्य देखने के लिए वर्तनी पर क्लिक करें। -
Spelling
दृश्य के ऑन एंटर अनुभाग में + पर क्लिक करें। - अपने वेबहुक पर कॉल करें पर क्लिक करें और इवेंट हैंडलर टेक्स्टबॉक्स में getSpellingWord दर्ज करें।
- संकेत भेजें चुनें.
-
speech
फ़ील्ड में वाक्य को बदलें (Enter the response that users will see or hear...
) को {} से बदलें। वास्तविक प्रॉम्प्ट वेबहुक द्वारा पॉप्युलेट किया जाएगा।
सुझाव चिप्स उपयोगकर्ता के लिए क्लिक करने योग्य सुझाव प्रदान करते हैं जिन्हें आपकी कार्रवाई उपयोगकर्ता इनपुट के रूप में संसाधित करती है।
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
दृश्य में + (प्लस चिह्न) पर क्लिक करें। - आशय ड्रॉप-डाउन में दोहराएँ का चयन करें।
- अपने वेबहुक को कॉल करें और शब्द की परिभाषा प्राप्त करने के लिए ईवेंट हैंडलर टेक्स्टबॉक्स में रिपीटस्पेलिंगवर्ड दर्ज करें।
- संकेत भेजें जांचें.
-
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
दृश्य में + (प्लस चिह्न) पर क्लिक करें। - आशय ड्रॉप-डाउन में परिभाषा का चयन करें.
- अपने WebHook को कॉल करें और वर्ड डेफिनिशन प्राप्त करने के लिए Event हैंडलर टेक्स्टबॉक्स में DefineCoFspellingword दर्ज करें।
- प्रॉम्प्ट भेजें ।
-
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
पर क्लिक करें। - इस प्रकार के मूल्यों में इस प्रकार का समर्थन होगा? अनुभाग, शब्दों और पर्यायवाची विकल्प का चयन करें
- ADD प्रविष्टियों अनुभाग में निम्नलिखित प्रविष्टियों और संबंधित मान दर्ज करें:
ए | अल्फा, सेब, एम्स्टर्डम |
बी | ब्रावो, बटर, बाल्टीमोर |
सी | चार्ली, कैट, कैसाब्लांका |
डी | डेल्टा, कुत्ता, डेनमार्क |
इ | इको, एडवर्ड, एडिसन |
एफ | फॉक्सट्रॉट, फॉक्स, फ्लोरिडा |
जी | गोल्फ, जॉर्ज, गैलीपोली |
एच | होटल, हैरी, हवाना |
मैं | भारत, स्याही, इटालिया |
जे | जूलियट, जॉनी, यरूशलेम |
क | किलो, राजा, किलोग्राम |
एल | लीमा, लव, लंदन |
एम | माइक, पैसा, मेडागास्कर |
एन | नवंबर, न्यूयॉर्क, नैन्सी |
हे | ऑस्कर, ऑरेंज, ओस्लो |
पी | पापा, पेरिस, पीटर |
क्यू | क्यूबेक, रानी |
आर | रोमियो, रोमा, रॉबर्ट |
एस | सिएरा, शुगर, सैंटियागो |
टी | टैंगो, टॉमी, त्रिपोली |
यू | वर्दी, छाता, चाचा |
वी | विक्टर, सिरका, वेलेंसिया |
डब्ल्यू | व्हिस्की, विलियम, वाशिंगटन |
एक्स | एक्स-रे |
य | यांकी, पीला, यॉर्कर |
जेड | ज़ुलु, ज़ेबरा, ज्यूरिख |
आपकी कुंजी-मूल्य तालिका निम्नलिखित की तरह दिखनी चाहिए:
- सहेजें पर क्लिक करें.
स्लॉट भरने को कॉन्फ़िगर करें
अगला, आपको वर्तनी दृश्य में स्लॉट भरने को कॉन्फ़िगर करने की आवश्यकता है। स्लॉट-फिलिंग लॉजिक को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
- नेविगेशन में वर्तनी दृश्य पर क्लिक करें।
- स्लॉट भरने के लिए
Spelling
दृश्य में + (प्लस साइन) पर क्लिक करें। - एंटर स्लॉट नाम फ़ील्ड में, स्लॉट नाम के रूप में
userresponse
जोड़ें। - सेलेक्ट टाइप ड्रॉप-डाउन में, स्लॉट प्रकार के रूप में फ़ोनेटिक_लफैबेट का चयन करें।
- इस स्लॉट की जाँच करें मूल्यों की एक सूची स्वीकार करता है
- चेक इस स्लॉट की आवश्यकता है ।
- कस्टमाइज़ स्लॉट वैल्यू राइटबैक विकल्प चुनें और सेशन पैरामीटर टेक्स्टबॉक्स में UserResponse दर्ज करें।
- सहेजें पर क्लिक करें.
Spelling
स्क्रीन में स्थिति जोड़ें
Spelling
दृश्य में स्थिति जोड़ने के लिए, इन चरणों का पालन करें:
- नेविगेशन में वर्तनी दृश्य पर क्लिक करें।
- कंडीशन के बगल में
Spelling
दृश्य में + (प्लस साइन) पर क्लिक करें। - सीन दर्ज करें
scene.slots.status == "FINAL"
कंडीशन के रूप में - अपने WebHook को कॉल करें और उपयोगकर्ता प्रतिक्रिया को सत्यापित करने के लिए Event हैंडलर टेक्स्टबॉक्स में Verifyspellingword दर्ज करें।
- प्रॉम्प्ट भेजें।
-
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
करें। - एंट्रर दबाये । आपकी कार्रवाई को
Main invocation
प्रॉम्प्ट और अतिरिक्तStart
सीन प्रॉम्प्ट के साथ जवाब देना चाहिए, "स्पेलिंग प्रैक्टिस में आपका स्वागत है। शब्द को वर्तनी के लिए ध्वन्यात्मक वर्णमाला का उपयोग करें। उदाहरण के लिए अल्फा के लिए अल्फा, बी के लिए ब्रावो, सी के लिए चार्ली आदि क्या आप चाहते हैं जारी रखना?" . - जारी रखने के लिए हाँ कहें
- सिम्युलेटर वर्तनी के लिए एक शब्द ध्वनि खेलेंगे
- आप ध्वन्यात्मक अक्षर का उपयोग करके शब्द को जादू कर सकते हैं। उदाहरण के लिए, बेहतर कहने या टाइप करने के लिए "ब्रावो इको टैंगो टैंगो इको रोमियो"
- सिम्युलेटर सही या गलत प्रतिक्रिया के साथ जवाब देगा।
- अगले शब्द को जारी रखने के लिए आगे कहें या खेल लूप से बाहर निकलने के लिए छोड़ दें ।
13. बधाई
बधाई हो, आपने सफलतापूर्वक अपना खेल बनाया है, वर्तनी अभ्यास !
अब आप क्लाउड फायरस्टोर, क्लाउड फ़ंक्शंस और Google असिस्टेंट एक्शन बिल्डर का उपयोग करके गेम बनाने के लिए आवश्यक प्रमुख चरणों को जानते हैं।
आपने क्या कवर किया
- क्लाउड फायरस्टोर के साथ कैसे बातचीत करें
- उपयोगकर्ता से डेटा इकट्ठा करने के लिए स्लॉट का उपयोग कैसे करें
- उपयोगकर्ता के इनपुट को कैसे संसाधित करें और एक प्रतिक्रिया वापस करें
- किसी दृश्य में तर्क जोड़ने के लिए शर्तों का उपयोग कैसे करें
- गेम लूप कैसे जोड़ें
अतिरिक्त शिक्षण संसाधन
आप Google सहायक के लिए निर्माण क्रियाओं के बारे में सीखने के लिए इन संसाधनों का पता लगा सकते हैं:
- Google सहायक के लिए कार्यों को विकसित करने के लिए प्रलेखन
- नमूना कोड और पुस्तकालयों के लिए Google github पृष्ठ पर कार्रवाई
- Google सहायक के साथ काम करने वाले डेवलपर्स के लिए आधिकारिक Reddit समुदाय
- वार्तालाप डिजाइन दिशानिर्देश सर्वोत्तम प्रथाओं और दिशानिर्देशों के लिए दिशानिर्देश
- क्लाउड फायरस्टोर का परिचय
अपनी परियोजना को साफ करें [अनुशंसित]
संभावित आरोपों से बचने के लिए, उन परियोजनाओं को हटाने की सिफारिश की जाती है जिनका आप उपयोग करने का इरादा नहीं रखते हैं। इस कोडेलाब में आपके द्वारा बनाई गई परियोजनाओं को हटाने के लिए, इन चरणों का पालन करें:
- अपने फायरबेस प्रोजेक्ट और संसाधनों को हटाने के लिए, शट डाउन (डिलीटिंग) प्रोजेक्ट्स सेक्शन में सूचीबद्ध चरणों को पूरा करें।
चेतावनी: सुनिश्चित करें कि आप Google क्लाउड कंसोल के सेटिंग्स पृष्ठ पर विलोपन के लिए सही प्रोजेक्ट का चयन करते हैं।
- वैकल्पिक: कार्रवाई कंसोल से तुरंत अपनी परियोजना को हटाने के लिए, प्रोजेक्ट सेक्शन को हटाने में सूचीबद्ध चरणों को पूरा करें। यदि आप इस चरण को पूरा नहीं करते हैं, तो आपकी परियोजना लगभग 30 दिनों के बाद स्वचालित रूप से हटा दी जाएगी।
ट्विटर पर @actionsongoogle & @firebase का अनुसरण करें, जो हमारी नवीनतम घोषणाओं पर बने रहने के लिए और #Googleio को ट्वीट करने के लिए कि आपने क्या बनाया है, को साझा करने के लिए ट्वीट करें!