1. بررسی اجمالی
پلتفرم توسعهدهنده Google Assistant به شما امکان میدهد نرمافزاری ایجاد کنید تا عملکرد Google Assistant، یک دستیار شخصی مجازی، را در بیش از 1 میلیارد دستگاه، از جمله بلندگوهای هوشمند، تلفنها، خودروها، تلویزیونها، هدفونها و موارد دیگر گسترش دهید. کاربران برای انجام کارهایی مانند خرید مواد غذایی یا رزرو یک سواری، دستیار را در مکالمه قرار می دهند. بهعنوان یک توسعهدهنده، میتوانید از پلتفرم توسعهدهنده Assistant برای ایجاد و مدیریت تجربیات گفتگوی لذتبخش و مؤثر بین کاربران و سرویسهای شخص ثالث خود استفاده کنید.
این کد لبه مفاهیم سطح متوسط را برای توسعه با دستیار Google، توابع ابری و Cloud Firestore پوشش میدهد. در این لبه کد، شما یک بازی به نام «تمرین املا» خواهید ساخت که با استفاده از دستیار گوگل از کاربران میخواهد تا کلمات را املا کنند.
چیزی که خواهی ساخت
در این کد لبه، شما یک بازی پیچیده با قابلیت های زیر می سازید:
- پاسخهای املایی را از کاربر دریافت میکند و بسته به مقدار، درخواستهای مکالمه را تغییر میدهد.
- با نکات مربوط به املای کلمه مانند تعریف آن یا تکرار کلمه پاسخ می دهد
- یک حلقه بازی ایجاد می کند تا کاربر بتواند پس از املای کلمه دوباره با دستیار ارتباط برقرار کند
قبل از شروع ساخت، میتوانید با گفتن «Hey Google, Talk to Spelling Practice» در دستگاهی که دارای «دستیار Google» است، با اکشن زنده تعامل کنید. مسیر پیشفرض این Action برای یک کاربر بازگشتی شبیه تعامل زیر است:
وقتی این کد لبه را تمام کردید، Action تکمیل شده شما جریان مکالمه زیر را خواهد داشت:
چیزی که یاد خواهید گرفت
- نحوه تعامل با Cloud Firestore
- نحوه استفاده از اسلات ها برای جمع آوری داده ها از کاربر
- نحوه پردازش ورودی کاربر و بازگشت پاسخ
- نحوه استفاده از شرایط برای افزودن منطق به صحنه
- چگونه یک حلقه بازی اضافه کنیم
آنچه شما نیاز دارید
پیش نیازهای این کد لبه شامل موارد زیر است:
- یک مرورگر وب، مانند گوگل کروم
- یک IDE برای نوشتن توابع ابری.
- یک روش پرداخت این کد لبه از توابع Cloud برای Firebase استفاده می کند که نیاز دارد پروژه شما در طرح قیمت گذاری Firebase Blaze باشد ( بیشتر بیاموزید ).
- ترمینال برای اجرای دستورات پوسته
- Node.js 10 یا بالاتر
2. کد توابع را دریافت کنید
مخزن GitHub را از خط فرمان کلون کنید:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. یک پروژه Firebase ایجاد کنید و برنامه خود را راه اندازی کنید
یک پروژه Firebase ایجاد کنید
- وارد Firebase شوید.
- در کنسول Firebase، روی Add Project (یا Create a project ) کلیک کنید، سپس پروژه Firebase خود را
Spelling-Practice
نامگذاری کنید.
- روی گزینه های ایجاد پروژه کلیک کنید. در صورت درخواست، شرایط Firebase را بپذیرید. از تنظیم Google Analytics صرفنظر کنید، زیرا از Analytics برای این برنامه استفاده نخواهید کرد.
برای کسب اطلاعات بیشتر درباره پروژههای Firebase، به درک پروژههای Firebase مراجعه کنید.
به طرح قیمت گذاری Blaze ارتقا دهید
برای استفاده از توابع Cloud برای Firebase، باید پروژه Firebase خود را به طرح قیمت گذاری Blaze ارتقا دهید، به این معنی که یک حساب Google Cloud Billing را به پروژه خود متصل خواهید کرد. برای این کار باید کارت اعتباری یا روش پرداخت دیگری ارائه کنید.
همه پروژههای Firebase، از جمله پروژههای موجود در طرح Blaze، همچنان به سهمیههای استفاده بدون هزینه برای توابع ابری دسترسی دارند. مراحل ذکر شده در این کد لبه در محدوده استفاده بدون هزینه قرار می گیرند. با این حال، هزینه های کوچک ( حدود 0.03 دلار ) را از Cloud Storage خواهید دید که برای میزبانی تصاویر ساخت Cloud Functions شما استفاده می شود.
4. Firebase CLI را نصب کنید
Firebase CLI (رابط خط فرمان) شما را قادر می سازد تا توابع Cloud خود را مستقر کنید.
گزینه های مختلفی برای نصب Firebase CLI بسته به سیستم عامل و مورد استفاده شما وجود دارد. اگر از توابع ابری نیز استفاده می کنید، مراحل زیر رایج ترین گزینه را شرح می دهد.
- مطمئن شوید که npm را نصب کرده اید که معمولاً با Node.js ارائه می شود.
- با اجرای دستور npm زیر، CLI را نصب یا ارتقا دهید:
$ npm -g install firebase-tools
- با اجرای زیر بررسی کنید که CLI به درستی نصب شده است:
$ firebase --version
مطمئن شوید که نسخه Firebase CLI 9.0.0 یا جدیدتر باشد تا آخرین ویژگی های مورد نیاز برای Cloud Function را داشته باشد. اگر نه، npm install -g firebase-tools را اجرا کنید تا همانطور که در بالا نشان داده شده است ارتقا دهید.
- مجوز Firebase CLI را با اجرای:
$ firebase login
- از دایرکتوری spelling-functions-start، Firebase CLI را برای استفاده از پروژه Firebase خود تنظیم کنید. دستور زیر را اجرا کنید، ID پروژه خود را انتخاب کنید، سپس دستورالعمل ها را دنبال کنید. وقتی از شما خواسته شد، میتوانید هر نام مستعاری را انتخاب کنید، مثلاً
codelab
.
$ firebase use --add
5. دایرکتوری توابع
اکنون با استفاده از Firebase SDK for Cloud Functions عملکردی را برای ساختن پسزمینه بازی، Spelling Practice اضافه میکنید.
Cloud Functions به شما امکان می دهد کدی داشته باشید که بدون نیاز به راه اندازی سرور در فضای ابری اجرا شود. این کد لبه به شما نشان می دهد که چگونه توابعی بسازید که به رویدادهای Firebase Authentication، Cloud Storage و Firebase Realtime Database واکنش نشان دهند. بیایید با احراز هویت شروع کنیم.
هنگام استفاده از Firebase SDK برای توابع Cloud، کد توابع شما در فهرست functions
(به طور پیش فرض) قرار می گیرد. برای اینکه کار را برای شما آسانتر کنیم، قبلاً فایل functions/index.js
را ایجاد کردهایم که کد شما در آن قرار میگیرد. قبل از حرکت به جلو، به راحتی دایرکتوری functions
را بررسی کنید.
$ cd functions $ ls
کد توابع شما نیز یک برنامه Node.js است و بنابراین به یک package.json
نیاز دارد که اطلاعاتی درباره برنامه شما ارائه دهد و وابستگی ها را فهرست کند.
اگر با Node.js آشنایی ندارید، به شما کمک می کند تا قبل از ادامه نرم افزار Codelab بیشتر در مورد آن بدانید.
فایل package.json
قبلاً دو وابستگی لازم را فهرست میکند: Firebase SDK برای توابع Cloud و Firebase Admin SDK . برای نصب آنها به صورت محلی، npm install
از پوشه functions
اجرا کنید:
$ 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.
ابتدا ماژول های مورد نیاز را وارد می کنید، سپس چهار تابع را به جای TODO ها می نویسید. برای وارد کردن ماژول ها، به مرحله بعدی کد لبه ادامه دهید.
6. ماژول های مورد نیاز را وارد کنید
این کد لبه به سه ماژول نیاز دارد.
- ماژول
firebase-functions
به ما اجازه میدهد تا محرکهای عملکردهای ابری خود را بنویسیم - ماژول
firebase-admin
به ما این امکان را می دهد که از پلتفرم Firebase در سروری با دسترسی ادمین استفاده کنیم، به عنوان مثال برای نوشتن در Cloud Firestore. - Actions SDK Node.js Fulfillment Library کنترلکنندههای Actions SDK را برای دستیار Google تکمیل میکند.
- با اجرای دستور npm زیر Actions SDK را نصب کنید:
$ npm install @assistant/conversation
- در فایل
index.js
اولین TODO را با موارد زیر جایگزین کنید.
این تغییرات هر یک از ماژول های مورد نیاز را وارد می کنند.
همچنین، Firebase Admin SDK میتواند بهطور خودکار هنگام استقرار در یک محیط Cloud Functions یا سایر محفظههای Google Cloud پیکربندی شود. این همان چیزی است که وقتی ما 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 Actions اضافه کنیم.
7. ایجاد توابع
تعاریف کلمات را دریافت کنید و آنها را در Cloud Firestore بنویسید
برای دریافت تعاریف کلمه از API عمومی dictionaryapi.dev
استفاده خواهید کرد.
در فایل index.js
، TODO را برای getWordDetailsFromDictionaryAPI
با موارد زیر جایگزین کنید:
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 Function ایجاد می کنید که هر زمان که یک سند جدید در Cloud Firestore ایجاد می شود، فعال می شود. برای دریافت تعاریف کلمات از طریق تابع getWordDetailsFromDictionaryAPI
که درست در بالا نوشتیم، API dictionaryapi.dev
را فراخوانی می کند.
در فایل index.js
، TODO را برای createSpellingPracticeWord
با موارد زیر جایگزین کنید:
index.js
// راهانداز Firestore که تعاریف کلمه را از طریق getWordDetailsFromDictionaryAPI برای هر سند Firestore جدید واکشی میکند
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
لیستی از کلمات بازی را دریافت کنید
میتوانید یک تابع ابری بنویسید که فهرستی از کلمات تمرین املا را از Cloud Firestore برای دستیار بازیابی میکند. برای این کار از برنامه کنترلر استفاده می کنیم.
در فایل index.js
، TODO را برای getSpellingWordList
با موارد زیر جایگزین کنید.
افزودن این عملکرد به app.handle
ویژه راهی برای دسترسی به عملکرد از طریق دستیار است.
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; }); }); })
یک کلمه از جلسه دستیار دریافت کنید
می توانید یک تابع ابری بنویسید که کلمه املای بعدی را از لیست کلمات برمی گرداند.
در فایل index.js
، TODO را برای getSpellingWord
با عبارت زیر جایگزین کنید:
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
، TODO را برای repeatSpellingWord
با عبارت زیر جایگزین کنید:
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
، TODO را برای definitionOfSpellingWord
با عبارت زیر جایگزین کنید:
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); });
پاسخ املایی کاربر را بررسی کنید
می توانید یک تابع ابری بنویسید که پاسخ کاربر را در مورد نحوه املای کلمه فعلی بازی تأیید می کند.
در فایل index.js
، TODO را برای verifySpellingWord
با موارد زیر جایگزین کنید:
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 شما فقط پس از استقرار آنها در 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
برای استفاده بعدی، نشانی وب نقطه پایانی Http تابع ActionsOnGoogleFulfillment را یادداشت کنید. برای دریافت نقطه پایانی، کنسول Firebase را باز کنید و سپس روی spelling-practice project کلیک کنید. برای مشاهده نقطه پایانی توابع، داشبورد توابع را باز کنید.
شما افزودن تمام توابع مورد نیاز را تکمیل کرده اید. حالا بیایید به راه اندازی Cloud Firestore برویم.
8. Cloud Firestore را فعال کنید
باید Cloud Firestore را فعال کنید.
در بخش ساخت کنسول Firebase، روی Firestore کلیک کنید. سپس روی ایجاد پایگاه داده کلیک کنید.
دسترسی به داده ها در Cloud Firestore توسط قوانین امنیتی کنترل می شود. ابتدا برای شروع باید قوانین اساسی را روی داده ها تنظیم کنید. روی Firestore کلیک کنید و سپس در تب Rules کنسول Firebase، قوانین زیر را اضافه کنید، سپس روی Publish کلیک کنید.
قوانین زیر دسترسی به دادهها را برای کاربرانی که به سیستم وارد شدهاند محدود میکند، که از خواندن یا نوشتن کاربران احراز هویت نشده جلوگیری میکند.
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 برای دریافت جزئیات کلمه از سرویس Dictionary API فعال می شود.
یک مجموعه Cloud Firestore ایجاد کنید
- در کنسول Firebase، به بخش Cloud Firestore بروید.
- روی + شروع مجموعه کلیک کنید.
- در کادر متنی مجموعه شناسه ،
wordlist
وارد کنید، سپس روی Next کلیک کنید.
بعد، یک سند برای یک کلمه ایجاد می کنیم: توافق
- در جعبه متن شناسه سند ،
agreement
وارد کنید. - در کادر متنی فیلد ،
word
وارد کنید و در کادر متنی مقدار ،agreement
وارد کنید. - روی ذخیره کلیک کنید.
وقتی این سند را به Cloud Firestore اضافه میکنید، تابع createSpellingPracticeWord شما را برای واکشی جزئیات تعریف کلمه فعال میکند. با ایجاد یک سند جدید برای هر کلمه، کلمات بیشتری (به عنوان مثال: awe, car, true, tell, better, commute,...) اضافه کنید.
10. دستیار گوگل را راه اندازی کنید
بخشهای زیر نحوه راهاندازی محیط توسعه Google Assistant و ایجاد پروژه Actions را توضیح میدهند.
تنظیمات مجوز Google خود را بررسی کنید
برای آزمایش اکشنی که در این کد لبه می سازید، باید مجوزهای لازم را فعال کنید تا شبیه ساز بتواند به اکشن شما دسترسی داشته باشد. برای فعال کردن مجوزها، مراحل زیر را دنبال کنید:
- به صفحه Activity Controls بروید.
- اگر قبلاً این کار را نکردهاید، با حساب Google خود وارد شوید.
- مجوزهای زیر را فعال کنید:
- فعالیت وب و برنامه
- در بخش «فعالیت وب و برنامه» ، کادر تأیید کنار « شامل سابقه Chrome و فعالیت از سایتها، برنامهها و دستگاههایی که از خدمات Google استفاده میکنند» را انتخاب کنید.
یک پروژه Actions ایجاد کنید
پروژه Actions شما محفظه ای برای Action شماست. برای ایجاد پروژه Actions خود برای این کد لبه، مراحل زیر را دنبال کنید:
- کنسول Actions را باز کنید.
- پروژه جدید را کلیک کنید.
- شرایط خدمات را بپذیرید
-
spelling-practice-codelab
را که با استفاده از Firebase Console ایجاد کرده اید، تایپ کرده یا انتخاب کنید. (این نام برای مرجع داخلی شما است. بعداً می توانید یک نام خارجی برای پروژه خود تعیین کنید.)
- روی Import project کلیک کنید.
- در چه نوع اکشنی می خواهید بسازید؟ کارت سفارشی را انتخاب کنید.
- روی Next کلیک کنید.
- کارت پروژه خالی را انتخاب کنید.
- روی Start building کلیک کنید.
- برای نام نمایشی، Spelling Practice را وارد کنید و روی ذخیره کلیک کنید.
کاربران مکالمه را با Action شما از طریق فراخوانی شروع می کنند. برای مثال، کاربران میتوانند با گفتن عبارتی مانند «Hey Google, talk to Spelling Practice» که در آن Spelling Practice نام نمایشی است، Action شما را فراخوانی کنند.
اگر میخواهید اکشن شما را در تولید اجرا کنید، باید نام نمایشی داشته باشد. با این حال، برای آزمایش Action خود، نیازی به تعریف نام نمایشی ندارید. در عوض، می توانید از عبارت Talk to my test app در شبیه ساز برای فراخوانی Action خود استفاده کنید.
پیکربندی انجام
شما باید به Assistant وصل کنید، کنترلکنندههای رویداد را برای توابع Cloud که قبلاً در این Codelab نوشتهاید و اجرا کردهاید.
برای پیکربندی تکمیل خود، این مراحل را دنبال کنید:
- روی Webhook در ناوبری کناری کلیک کنید.
- نقطه پایانی Https را به عنوان گزینه تکمیل انتخاب کنید:
- URL نقطه پایانی تابع خود را در کادر متنی HTTPs endpoint وارد کنید، سپس روی Save کلیک کنید.
در بخش بعدی، درخواست برای فراخوانی اصلی خود را در کنسول Actions سفارشی میکنید.
فراخوانی اصلی را تنظیم کنید
شما باید فراخوان اصلی را ویرایش کنید تا مشخص کنید پس از اینکه کاربر اقدام شما را فراخواند چه اتفاقی می افتد.
بهطور پیشفرض، Actions Builder هنگامی که فراخوانی شما راهاندازی میشود، یک اعلان عمومی ارائه میدهد ( "با تعریف فراخوان اصلی شروع به ساختن کنش کنید.").
برای اصلاح درخواستی که Action شما هنگام فراخوانی Action شما برای کاربر ارسال میکند، این مراحل را دنبال کنید:
- روی فراخوان اصلی در مسیریابی کلیک کنید.
-
Call your webhook
را علامت بزنید و نام مدیریت رویدادgetSpellingWordList
در جعبه متن اضافه کنید. - در ویرایشگر کد، متن را در قسمت
speech
با پیام خوشامدگویی زیر جایگزین کنید:Welcome to Spelling Practice
توجه: میتوانید از قالببندی YAML یا JSON برای ویرایش درخواستهای خود استفاده کنید.
- روی ذخیره کلیک کنید.
فراخوانی اصلی را در شبیه ساز تست کنید
کنسول Actions یک ابزار وب برای آزمایش Action شما به نام شبیه ساز ارائه می دهد. این رابط دستگاههای سختافزاری و تنظیمات آنها را شبیهسازی میکند، بنابراین میتوانید با Action خود طوری صحبت کنید که گویی روی نمایشگر هوشمند، تلفن، بلندگو یا KaiOS اجرا میشود.
برای آزمایش فراخوانی اصلی Action خود در شبیه ساز، این مراحل را دنبال کنید:
- در نوار پیمایش بالا، روی Test کلیک کنید تا به شبیه ساز بروید.
- برای فراخوانی Action خود در شبیه ساز،
Talk to Spelling Practice
در قسمت ورودی سمت چپ تایپ کنید، سپس Enter را در صفحه کلید خود فشار دهید.
وقتی فراخوان اصلی Action خود را فعال میکنید، «دستیار» با پیام خوشآمدگویی سفارشیشده شما پاسخ میدهد. در این مرحله، پس از پاسخ دستیار با سلام و احوالپرسی، مکالمه به پایان می رسد.
مشاهده گزارش رویداد
وقتی در برگه تست هستید، پانل سمت راست گزارشهای رویداد را نشان میدهد که تاریخچه مکالمه را به عنوان گزارش رویداد نمایش میدهد. هر گزارش رویداد رویدادهایی را که در آن نوبت مکالمه اتفاق میافتد نمایش میدهد. برای مشاهده گزارش رویداد روی نماد خاکستری قبل از رویداد کلیک کنید.
Action شما در حال حاضر دارای یک گزارش رویداد است که هم ورودی کاربر ( "Talk to Spelling Practice" ) و هم پاسخ Action شما را نشان می دهد. اسکرین شات زیر گزارش رویداد Action شما را نشان می دهد:
11. مکالمه را برای تمرین املا بسازید
اکنون که مشخص کرده اید پس از فراخوانی یک کاربر Action شما چه اتفاقی می افتد، می توانید بقیه مکالمه Action خود را بسازید. Spelling Practice چهار صحنه دارد و شما باید هر صحنه را قبل از اجرا فعال کنید. متداول ترین راه برای فعال کردن یک صحنه این است که Action خود را به گونه ای پیکربندی کنید که وقتی یک کاربر با هدف کاربر در یک صحنه مطابقت دارد، آن قصد انتقال به صحنه دیگری را آغاز کرده و آن را فعال می کند.
انتقال از فراخوان اصلی به صحنه شروع
در این بخش، شما یک صحنه جدید به نام Start
ایجاد میکنید که از کاربر درخواست میکند که آیا میخواهد بازی Spelling Practice را شروع کند یا خیر. شما همچنین یک انتقال از فراخوان اصلی به صحنه Start
جدید اضافه می کنید.
برای ایجاد این صحنه و افزودن یک انتقال به آن، مراحل زیر را دنبال کنید:
- روی توسعه در پیمایش بالا کلیک کنید. سپس، روی فراخوانی اصلی در ناوبری سمت چپ کلیک کنید.
- در قسمت Transition در سمت راست، روی منوی کشویی کلیک کنید، سپس
Start
در قسمت متن تایپ کنید.
- روی افزودن کلیک کنید. این یک صحنه به نام
Start
ایجاد میکند و به Action میگوید که پس از اینکه Action اعلان خوشآمدگویی را به کاربر تحویل میدهد، به صحنهStart
منتقل شود. - برای نمایش لیست صحنه ها روی صحنه ها در ناوبری سمت چپ کلیک کنید.
- در قسمت Scenes ، روی Start کلیک کنید تا صحنه
Start
را ببینید. - در قسمت On enter صحنه
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?
تراشههای پیشنهاد پیشنهادات قابل کلیکی را برای کاربر ارائه میدهند که Action شما به عنوان ورودی کاربر پردازش میکند. در این بخش، تراشههای پیشنهادی را اضافه میکنید که در زیر فرمانی که پیکربندی کردهاید ظاهر میشوند ( Do you want to play
Spelling Practice
?
) برای پشتیبانی از کاربران در دستگاه های دارای صفحه نمایش.
برای افزودن تراشههای پیشنهادی به درخواست صحنه Start
، این مراحل را دنبال کنید:
- در صحنه
Start
، روی پیشنهادات زیر ویرایشگر کد کلیک کنید. این عمل یک تراشه پیشنهادی را اضافه می کند. - در قسمت
title
،Suggested Response
با'Yes'
جایگزین کنید. - با استفاده از همان قالببندی، به صورت دستی یک تراشه پیشنهادی با عنوان
'No'
و'Help with Phonetics'
اضافه کنید. کد شما باید شبیه قطعه زیر باشد: - روی ذخیره کلیک کنید.
اکشن خود را در شبیه ساز تست کنید
در این مرحله، Action شما باید از فراخوان اصلی به صحنه Start منتقل شود و از کاربر بپرسد که آیا مایل به ادامه کار است یا خیر. تراشه های پیشنهادی نیز باید در نمایشگر شبیه سازی شده ظاهر شوند.
برای آزمایش Action خود در شبیه ساز، مراحل زیر را دنبال کنید:
- در نوار پیمایش، روی Test کلیک کنید تا به شبیه ساز هدایت شوید.
- برای آزمایش Action خود در شبیه ساز،
Talk to Spelling Practice
در قسمت Input تایپ کنید. - Enter را فشار دهید. اکشن شما باید با فرمان
Main invocation
و اعلان صحنهStart
اضافه شده، "به تمرین املا خوش آمدید. از الفبای آوایی برای املای کلمه استفاده کنید. به عنوان مثال آلفا برای a، براوو برای b، چارلی برای c و غیره پاسخ دهد. آیا می خواهید ادامه بده؟" .
تصویر زیر این تعامل را نشان می دهد:
- برای پاسخ به درخواست، روی تراشه پیشنهاد
Yes
یاNo
یاHelp with Phonetics
کلیک کنید. (همچنین می توانید بگویید "بله" یا "خیر" یا "کمک با آوایی" یاYes
یاNo
یاHelp with Phonetics
در قسمت ورودی وارد کنید.)
وقتی به درخواست پاسخ میدهید، Action شما با پیامی پاسخ میدهد که نشان میدهد نمیتواند ورودی شما را بفهمد: "متأسفم، متوجه نشدم. میتوانید دوباره امتحان کنید؟" از آنجایی که هنوز Action خود را برای درک و پاسخ دادن به ورودی «بله» یا «خیر» پیکربندی نکردهاید، Action شما ورودی شما را با یک هدف NO_MATCH
مطابقت میدهد.
به طور پیشفرض، هدف سیستم NO_MATCH
پاسخهای عمومی را ارائه میدهد، اما میتوانید این پاسخها را سفارشی کنید تا به کاربر نشان دهید که ورودی او را متوجه نشدهاید. دستیار مکالمه کاربر را با Action شما پس از اینکه سه بار با ورودی کاربر مطابقت نداشته باشد پایان میدهد.
نه و مقاصد آوایی را اضافه کنید
اکنون که کاربران میتوانند به سؤالی که Action شما مطرح میکند پاسخ دهند، میتوانید Action خود را طوری پیکربندی کنید که پاسخهای کاربران را بفهمد ( "بله" یا "خیر" یا "کمک به آواشناسی" ). در بخشهای بعدی، مقاصد کاربر را ایجاد میکنید که با گفتن «بله» یا «نه» یا «کمک به فونتیک» با کاربر مطابقت دارند و این مقاصد را به صحنه Start
اضافه میکنید. ما از سیستم intent yes
استفاده خواهیم کرد و قصدهای دیگری ایجاد خواهیم کرد.
no
قصدی ایجاد نکنید
اکنون، شما باید no
قصد برای درک و پاسخ به کاربر در زمانی که او نمی خواهد بازی را انجام دهد، ایجاد کنید. برای ایجاد این هدف، مراحل زیر را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- برای باز کردن لیست مقاصد، روی Custom Intents در ناوبری کلیک کنید.
- روی + (علامت بعلاوه) در انتهای لیست مقاصد کلیک کنید. نام intent جدید را
no
بگذارید و Enter را فشار دهید. - روی no کلیک کنید تا صفحه
no
قصد باز شود. - در قسمت افزودن عبارات آموزشی ، در کادر متنی Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
No
-
N
-
I don't want
-
nope
- روی ذخیره کلیک کنید.
no
قصد به صحنه Start
اضافه کنید
اکنون، Action میتواند بفهمد که کاربر در حال بیان «نه» یا چیزی شبیه به «نه» ، مانند «نه» است. شما باید هدف no
کاربر را به صحنه Start
اضافه کنید زیرا کاربر به دستور Start
پاسخ می دهد (" به تمرین املا خوش آمدید. از الفبای آوایی برای املای کلمه استفاده کنید. به عنوان مثال alpha برای a، bravo برای b، charlie برای c. و غیره. آیا می خواهید ادامه دهید؟" ).
برای افزودن این intent به صحنه Start
، مراحل زیر را دنبال کنید:
- روی صحنه شروع در مسیریابی کلیک کنید.
- روی + (علامت بعلاوه) در صحنه
Start
کنار User intent handling کلیک کنید. - در قسمت Intent از منوی کشویی no را انتخاب کنید.
- روی Send prompts کلیک کنید و قسمت
speech
را با متن زیر به روز کنید:Good Bye
.
کد موجود در ویرایشگر شما باید شبیه قطعه زیر باشد:
candidates: - first_simple: variants: - speech: >- Goodbye.
- در بخش Transition ، از منوی بازشو، پایان مکالمه را انتخاب کنید.
- روی ذخیره کلیک کنید.
no
قصد در شبیه ساز تست کنید
در این مرحله، Action شما متوجه میشود که کاربر نمیخواهد بازی را انجام دهد و پاسخ مناسب را برمیگرداند.
برای آزمایش این هدف در شبیه ساز، مراحل زیر را دنبال کنید:
- در نوار پیمایش، روی تست کلیک کنید.
-
Talk to Spelling Practice
در قسمت Input تایپ کنید وEnter
فشار دهید. - در قسمت Input
No
تایپ کرده و Enter را فشار دهید. یا روی تراشه بدون پیشنهاد کلیک کنید.
سیستم YES
intent را به صحنه Start
اضافه کنید
اکنون، منظور SYSTEM "YES" را به صحنه Start
اضافه می کنیم، زیرا کاربر به دستور Start
پاسخ مثبت می دهد (" به تمرین املا خوش آمدید. برای املای کلمه از الفبای آوایی استفاده کنید. به عنوان مثال alpha برای a، bravo برای ب، چارلی برای ج و غیره. آیا می خواهید ادامه دهید؟ ).
برای افزودن این هدف کاربر به صحنه Start
، مراحل زیر را دنبال کنید:
- روی صحنه شروع در مسیریابی کلیک کنید.
- روی + (علامت بعلاوه) در صحنه
Start
در کنار User intent handling کلیک کنید. - در قسمت All System Intent ها، YES را در منوی کشویی Intent انتخاب کنید.
- روی Call your webhook کلیک کنید و جعبه متن
event handler
را با تابعی که قبلا ایجاد کردید به روز کنید:getSpellingWordList
- در بخش انتقال ، روی منوی کشویی کلیک کنید و پایان مکالمه را انتخاب کنید.
- روی ذخیره کلیک کنید.
قصد YES
را در شبیه ساز تست کنید
در این مرحله، Action شما متوجه می شود که کاربر چه زمانی می خواهد بازی را انجام دهد و پاسخ مناسب را برمی گرداند.
برای آزمایش این هدف در شبیه ساز، مراحل زیر را دنبال کنید:
- در نوار پیمایش، روی تست کلیک کنید.
- برای آزمایش Action خود در شبیه ساز،
Talk to Spelling Practice
در قسمت Input تایپ کنید و Enter را فشار دهید. -
Yes
در قسمت Input تایپ کرده و Enter را فشار دهید. یا روی تراشه پیشنهادYes
کلیک کنید.
Action شما فهرستی از تمام کلمات تمرین املایی را دریافت می کند و آنها را در جلسه ذخیره می کند. سپس Action شما جلسه را به پایان میرساند زیرا انتقال End conversation
برای هدف YES
انتخاب کردهاید.
ایجاد هدف Phonetics
برای ایجاد هدف Phonetics
، مراحل زیر را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- برای باز کردن لیست مقاصد، روی Custom Intents در ناوبری کلیک کنید.
- روی + (علامت بعلاوه) در انتهای لیست مقاصد کلیک کنید. نام
phonetics
قصد جدید را بگذارید وEnter
فشار دهید. - روی قصد
phonetics
کلیک کنید تا صفحه هدفphonetics
باز شود. - در قسمت افزودن عبارات آموزشی، روی کادر متنی Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
how do I spell words
-
phonetics
-
help me with phonetics
-
phonetic alphabet
- روی ذخیره کلیک کنید.
قصد phonetics
به صحنه Start
اضافه کنید
اکنون، اکشن می تواند بفهمد که یک کاربر قصد "آواشناسی" را بیان می کند. میتوانید هدف کاربر phonetics
را به صحنه Start
اضافه کنید، زیرا کاربر به دستور Start
پاسخ میدهد (" به تمرین املا خوش آمدید. از الفبای آوایی برای املای کلمه استفاده کنید. به عنوان مثال alpha برای a، bravo برای b، charlie برای c. و غیره. آیا می خواهید ادامه دهید؟" ).
برای افزودن این هدف کاربر به صحنه Start
، مراحل زیر را دنبال کنید:
- روی صحنه شروع در مسیریابی کلیک کنید.
- روی + (علامت بعلاوه) در صحنه
Start
کنار User intent handling کلیک کنید. - Phonetics را در منوی کشویی intent انتخاب کنید.
- در بخش Transition ، روی منوی کشویی کلیک کنید و پایان گفتگو را انتخاب کنید.
- روی ذخیره کلیک کنید.
انتقال از صحنه شروع به صحنه املا
در این بخش، یک صحنه جدید به نام Spelling ایجاد میکنید که با استفاده از الفبای آوایی، یک اعلان به کاربر ارسال میکند.
برای ایجاد این صحنه و افزودن یک انتقال به آن، مراحل زیر را دنبال کنید:
- روی توسعه در پیمایش بالا کلیک کنید. سپس، روی شروع صحنه در ناوبری سمت چپ کلیک کنید.
- در قسمت User intent handling
when actions.intent.YES is matched
کلیک کنید و در سمت راست در قسمت transition روی منوی کشویی کلیک کنید وSpelling
در قسمت متن تایپ کنید. - روی افزودن کلیک کنید. این یک صحنه به نام
Spelling
ایجاد میکند و به Action میگوید پس از تطبیق با قصد YES، به صحنهSpelling
منتقل شود. - برای نمایش فهرست صحنه ها، صحنه ها را در پیمایش سمت چپ باز کنید.
- در بخش صحنهها ، روی Spelling کلیک کنید تا صحنه
Spelling
را ببینید. - در قسمت On enter صحنه
Spelling
روی + کلیک کنید. - روی Call your webhook کلیک کنید و getSpellingWord را در جعبه متنی رویداد handler وارد کنید.
- درخواست ارسال را انتخاب کنید.
- جمله را در قسمت
speech
(Enter the response that users will see or hear...
) با {} قرار دهید. درخواست واقعی با webhook پر می شود.
تراشههای پیشنهاد پیشنهادات قابل کلیکی را برای کاربر ارائه میدهند که Action شما به عنوان ورودی کاربر پردازش میکند.
برای افزودن تراشههای پیشنهادی به درخواست صحنه Spelling
، این مراحل را دنبال کنید:
- در صحنه
Spelling
، روی پیشنهادات زیر ویرایشگر کد کلیک کنید. این عمل سه تراشه پیشنهاد اضافه می کند. - در قسمت
title
،Suggested Response
با'Repeat'
جایگزین کنید. - با استفاده از همان قالببندی، به صورت دستی یک تراشه پیشنهادی با عنوان
'Skip'
اضافه کنید. - با استفاده از همان قالببندی، به صورت دستی یک تراشه پیشنهادی با عنوان
'Quit'
اضافه کنید. کد شما باید شبیه قطعه زیر باشد: - روی ذخیره کلیک کنید.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
intent ایجاد کنید
برای ایجاد repeat
intent، مراحل زیر را دنبال کنید:
- روی توسعه در مسیریابی کلیک کنید.
- برای باز کردن لیست مقاصد، روی Custom Intents در ناوبری کلیک کنید.
- روی + (علامت بعلاوه) در انتهای لیست مقاصد کلیک کنید. نام
repeat
قصد جدید را بگذارید وEnter
فشار دهید. - روی
repeat
قصد کلیک کنید تا صفحه هدفdefinition
باز شود. - در قسمت افزودن عبارات آموزشی ، روی کادر متنی Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
one more time please
-
say the word again
-
repeat the word
-
tell me again
-
repeat
- روی ذخیره کلیک کنید.
قصد repeat
را به صحنه Spelling
اضافه کنید
اکنون، Action میتواند بفهمد که یک کاربر قصد "تکرار" را بیان میکند. میتوانید قصد repeat
کاربر را به صحنه Spelling
اضافه کنید، زیرا کاربر به اعلان Spelling
پاسخ میدهد (" املا کلمه با استفاده از الفبای آوایی ").
برای افزودن این هدف کاربر به صحنه Spelling
، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- روی + (علامت بعلاوه) در صحنه
Spelling
در کنار User intent handling کلیک کنید. - تکرار را در منوی کشویی intent انتخاب کنید.
- برای دریافت تعریف کلمه، گزینه Call your webhook را علامت بزنید و repeatSpellingWord را در کادر متنی رویداد handler وارد کنید.
- دستورات ارسال را علامت بزنید.
- جمله را در قسمت
speech
(Enter the response that users will see or hear...
) با '' قرار دهید. درخواست واقعی با webhook پر می شود.
افزودن تراشههای پیشنهادی به «وقتی تکرار مطابقت دارد»
- در « وقتی تکرار تطبیق داده میشود » در بخش مدیریت هدف کاربر، روی پیشنهادات زیر ویرایشگر کد کلیک کنید. این عمل سه تراشه پیشنهاد اضافه می کند.
- در قسمت
title
،'Skip'
را جایگزین «Suggested Response
» کنید. - با استفاده از همان قالببندی، به صورت دستی یک تراشه پیشنهادی با عنوان
'Quit'
اضافه کنید. کد شما باید شبیه قطعه زیر باشد:
suggestions: - title: 'Skip' - title: 'Quit'
- روی ذخیره کلیک کنید.
قصد definition
ایجاد کنید
برای ایجاد هدف definition
، مراحل زیر را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- برای باز کردن لیست مقاصد، روی Custom Intents در ناوبری کلیک کنید.
- روی + (علامت بعلاوه) در انتهای لیست مقاصد کلیک کنید.
definition
قصد جدید را نامگذاری کنید وEnter
فشار دهید. - روی قصد
definition
کلیک کنید تا صفحه هدفdefinition
باز شود. - در قسمت افزودن عبارات آموزشی ، روی کادر متنی Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
I would like to know the definition
-
tell me the definition
-
what does it mean
-
meaning
-
definition
-
what is the definition?
- روی ذخیره کلیک کنید.
قصد definition
را به صحنه Spelling
اضافه کنید
اکنون، Action میتواند بفهمد که یک کاربر قصد «تعریف» را بیان میکند. میتوانید هدف کاربر definition
را به صحنه Spelling
اضافه کنید، زیرا کاربر به فرمان Spelling
پاسخ میدهد (" املا کلمه با استفاده از الفبای آوایی ").
برای افزودن این هدف کاربر به صحنه Spelling
، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- روی + (به علاوه علامت) در صحنه
Spelling
کنار کاربری قصد کاربر کلیک کنید. - تعریف را در کشویی قصد انتخاب کنید.
- با تلفن خود تماس بگیرید و در جعبه متن Handler Event DefinitionOfSpellingWord را وارد کنید تا Word Definition را بدست آورید.
- ارسال نامه ها را بررسی کنید.
- جمله را در قسمت
speech
جایگزین کنید (Enter the response that users will see or hear...
. سریع سریع توسط Webhook جمع می شود.
تراشه های پیشنهادی را به پاسخ Webhook اضافه کنید
- در صحنه
Start
، روی پیشنهادات زیر ویرایشگر کد کلیک کنید. این عمل سه تراشه پیشنهادی را اضافه می کند. - در قسمت
title
،Suggested Response
با'Skip'
جایگزین کنید. - با استفاده از همان قالب بندی ، به صورت دستی یک تراشه پیشنهادی با عنوان
'Quit'
اضافه کنید. کد شما باید مانند قطعه زیر باشد:
suggestions: - title: 'Skip' - title: 'Quit'
- روی ذخیره کلیک کنید.
قصد skip
را ایجاد کنید
برای ایجاد هدف skip
، این مراحل را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- برای باز کردن لیست اهداف ، روی اهداف موجود در ناوبری کلیک کنید.
- در انتهای لیست اهداف ، + (به علاوه علامت) را کلیک کنید. نام جدید را نامگذاری
skip
وEnter
فشار دهید. - برای باز کردن صفحه
skip
Intent ، رویskip
Intent کلیک کنید. - در بخش Add Presses ، روی کادر متن Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
next word
-
go next
-
next
-
skip
-
skip word
- روی ذخیره کلیک کنید.
Skip
به صحنه Spelling
اضافه کنید
اکنون ، این عمل می تواند درک کند که کاربر در حال بیان یک هدف "پرش" است. می توانید هدف کاربر skip
را به صحنه Spelling
اضافه کنید ، زیرا کاربر در حال پاسخ دادن به سریع Spelling
(" هجی کردن کلمه با استفاده از الفبای آوایی ") است.
برای افزودن این هدف کاربر به صحنه Spelling
، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- در صحنه
Spelling
کنار کاربر با هدف Handlin G ، روی + (به علاوه علامت) کلیک کنید. - Skip را در کشویی قصد انتخاب کنید.
- در بخش انتقال در سمت راست ، روی منوی کشویی کلیک کنید و
Spelling
انتخاب کنید.
- روی ذخیره کلیک کنید.
قصد quit
را ایجاد کنید
برای ایجاد هدف Quit
، این مراحل را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- برای باز کردن لیست اهداف ، روی اهداف موجود در ناوبری کلیک کنید.
- در انتهای لیست اهداف ، + (به علاوه علامت) را کلیک کنید. نام جدید را
Quit
وEnter
فشار دهید. - برای باز کردن صفحه Definition Intent ، روی هدف
Quit
کلیک کنید. - در بخش Add Presses ، روی کادر متن Enter Phrase کلیک کنید و عبارات زیر را وارد کنید:
-
I quit
-
Goodbye
-
Cancel
-
Exit
-
Quit
- روی ذخیره کلیک کنید.
اضافه Quit
قصد به صحنه Spelling
را اضافه کنید
اکنون ، این عمل می تواند درک کند که کاربر در حال بیان یک هدف "ترک" است. شما می توانید هدف کاربر Spelling
quit
کنید ، زیرا کاربر در حال پاسخ دادن به سریع Spelling
است (" کلمه را با استفاده از الفبای آوایی" هجی کنید ).
برای افزودن این هدف کاربر به صحنه Spelling
، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- روی + (به علاوه علامت) در صحنه
Spelling
کنار کاربری قصد کاربر کلیک کنید. - SELECT را در کشویی قصد انتخاب کنید.
- در بخش Transition در سمت راست ، روی منوی کشویی کلیک کنید و
End conversation
انتخاب کنید. - روی ذخیره کلیک کنید.
نوع phonetic_alphabet
ایجاد کنید
در این بخش ، شما یک نوع جدید به نام phonetic_alphabet
ایجاد می کنید ، که گزینه های الفبای آوایی را که کاربران می توانند برای هجی کردن کلمه انتخاب کنند ، مشخص می کند. در صورتی که کاربر چیزی مشابه را بگوید ، می توانید چند مترادف را برای این گزینه ها تعریف کنید. در بخش بعدی ، نوع phonetic_alphabet
را به یک شکاف اضافه می کنید تا مشخص کنید که می خواهید پاسخ کاربر را بدست آورید.
برای ایجاد نوع phonetic_alphabet
، این مراحل را دنبال کنید:
- روی توسعه در ناوبری کلیک کنید.
- روی انواع + (به علاوه علامت) کلیک کنید.
-
phonetic_alphabet
تایپ کرده وEnter
فشار دهید. - برای باز کردن گزینه ها ، روی
phonetic_alphabet
کلیک کنید. - در چه نوع مقادیری از این نوع پشتیبانی می کند؟ بخش ، گزینه کلمات و مترادف را انتخاب کنید
- ورودی های زیر و مقادیر مربوطه را در بخش Add Entries وارد کنید:
الف | آلفا ، اپل ، آمستردام |
ب | براوو ، کره ، بالتیمور |
ج | چارلی ، گربه ، کازابلانکا |
د | دلتا ، سگ ، دانمارک |
ه | اکو ، ادوارد ، ادیسون |
f | Foxtrot ، Fox ، فلوریدا |
g | گلف ، جورج ، گالیپولی |
ساعت | هتل ، هری ، هاوانا |
من | هند ، جوهر ، ایتالیا |
j | جولیت ، جانی ، اورشلیم |
ک | کیلو ، کینگ ، کیلوگرم |
ل | لیما ، عشق ، لندن |
متر | مایک ، پول ، ماداگاسکار |
n | نوامبر ، نیویورک ، نانسی |
o | اسکار ، نارنجی ، اسلو |
ص | پاپا ، پاریس ، پیتر |
q | کبک ، ملکه |
r | رومئو ، رومی ، رابرت |
س | سیرا ، شکر ، سانتیاگو |
تی | تانگو ، تامی ، طرابلس |
تو | یکنواخت ، چتر ، دایی |
v | ویکتور ، سرکه ، والنسیا |
w | ویسکی ، ویلیام ، واشنگتن |
x | اشعه ایکس |
y | یانکی ، زرد ، یورکی |
z | زولو ، زبرا ، زوریخ |
جدول ارزش کلید شما باید مانند موارد زیر باشد:
- روی ذخیره کلیک کنید.
پیکربندی را پر کنید
در مرحله بعد ، شما باید در صحنه املایی پر کنید. برای پیکربندی منطق پر کردن شکاف ، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- برای پر کردن شکاف روی + (به علاوه علامت) در صحنه
Spelling
کلیک کنید. - در قسمت Enter Slot Name ،
userresponse
به عنوان نام شکاف اضافه کنید. - در نوع کشویی Select ، phonet_alphabet را به عنوان نوع شکاف انتخاب کنید.
- بررسی کنید این شکاف لیستی از مقادیر را می پذیرد
- بررسی این شکاف مورد نیاز است .
- گزینه ارسال برگه Slot Customize را انتخاب کنید و UserResponse را در جعبه Texte Parameter Session وارد کنید.
- روی ذخیره کلیک کنید.
شرط را به صفحه Spelling
اضافه کنید
برای افزودن شرط به صحنه Spelling
، این مراحل را دنبال کنید:
- روی صحنه املا در ناوبری کلیک کنید.
- در صحنه
Spelling
کنار شرط ، روی + (به علاوه علامت) کلیک کنید. - وارد صحنه شوید
scene.slots.status == "FINAL"
به عنوان شرایط - با تلفن خود تماس بگیرید و در جعبه متن Handler Event VerifyspellingWord را وارد کنید تا پاسخ کاربر را تأیید کنید.
- ارسال نامه ها را بررسی کنید.
- جمله را در قسمت
speech
جایگزین کنید (Enter the response that users will see or hear...
) را با {} وارد کنید. سریع سریع توسط Webhook جمع می شود.
تراشه های پیشنهادی را به پاسخ Webhook اضافه کنید
- در صحنه
Start
، روی پیشنهادات زیر ویرایشگر کد کلیک کنید. این عمل سه تراشه پیشنهادی را اضافه می کند. - در قسمت
title
،Suggested Response
با'Next'
جایگزین کنید. - با استفاده از همان قالب بندی ، به صورت دستی یک تراشه پیشنهادی با عنوان
'Quit'
اضافه کنید. کد شما باید مانند قطعه زیر باشد:
suggestions: - title: 'Next' - title: 'Quit'
- روی ذخیره کلیک کنید.
12. آزمایش املایی را در شبیه ساز تست کنید
برای آزمایش عملکرد خود در شبیه ساز ، این مراحل را دنبال کنید:
- در نوار ناوبری ، روی تست کلیک کنید تا شما را به شبیه ساز ببرد.
- برای آزمایش عملکرد خود در شبیه ساز ، در قسمت ورودی صحبت کنید
Talk to Spelling Practice
. - Enter را فشار دهید. عمل شما باید با درخواست
Main invocation
و سریع صحنهStart
، پاسخ دهد ، "به تمرین املایی خوش آمدید. از الفبای آوایی برای هجی کردن کلمه استفاده کنید. به عنوان مثال Alpha برای A ، Bravo برای B ، Charlie for C و غیره. آیا می خواهید ادامه دهید؟ " . - برای ادامه کار بله بگویید
- شبیه ساز برای هجی یک صدا صدا می زند
- می توانید کلمه را با استفاده از الفبای آوایی هجی کنید. به عنوان مثال ، برای بهتر بگویید یا "Bravo Echo Tango Tango Echo Romeo" را تایپ کنید
- شبیه ساز با پاسخ صحیح یا نادرست پاسخ خواهد داد.
- برای ادامه کلمه بعدی بگویید یا برای خروج از حلقه بازی ، کنار بگذارید .
13. تبریک می گویم
تبریک می گویم ، شما با موفقیت بازی خود را ، تمرین املایی ساخته اید!
شما اکنون مراحل اصلی لازم برای ساختن یک بازی را با استفاده از Firestore Cloud ، توابع ابر و Assistant Assistant Action Builder می دانید.
آنچه را پوشانده اید
- نحوه تعامل با Firestore Cloud
- نحوه استفاده از اسلات برای جمع آوری داده ها از کاربر
- نحوه پردازش ورودی کاربر و بازگشت پاسخ
- نحوه استفاده از شرایطی برای افزودن منطق به صحنه
- نحوه اضافه کردن یک حلقه بازی
منابع یادگیری اضافی
شما می توانید برای یادگیری در مورد اقدامات برای دستیار Google این منابع را کشف کنید:
- مستندات برای توسعه اقدامات برای دستیار Google
- اقدامات در صفحه Google GitHub برای کد نمونه و کتابخانه ها
- جامعه رسمی Reddit برای توسعه دهندگان که با دستیار Google کار می کنند
- دستورالعمل های طراحی مکالمه برای بهترین شیوه ها و دستورالعمل های مربوط به اقدامات مکالمه
- آشنایی با Firestore Cloud
پروژه خود را پاک کنید [توصیه شده]
برای جلوگیری از تحمل هزینه های احتمالی ، توصیه می شود پروژه هایی را که قصد استفاده از آنها را ندارید حذف کنید. برای حذف پروژه هایی که در این CodeLab ایجاد کرده اید ، این مراحل را دنبال کنید:
- برای حذف پروژه و منابع Firebase خود ، مراحل ذکر شده در بخش پروژه های خاموش (حذف) را انجام دهید.
احتیاط: اطمینان حاصل کنید که پروژه صحیح حذف را در صفحه تنظیمات کنسول Google Cloud انتخاب کرده اید.
- اختیاری: برای حذف بلافاصله پروژه خود از کنسول اقدامات ، مراحل ذکر شده در بخش حذف یک پروژه را تکمیل کنید. اگر این مرحله را کامل نکنید ، پروژه شما پس از حدود 30 روز به طور خودکار حذف می شود.
ActionSongOogle و FireBase را در توییتر دنبال کنید تا با آخرین اطلاعیه های ما در ارتباط باشید و به #googleio توییت کنید تا آنچه را که ساخته اید به اشتراک بگذارید!