1. Genel Bakış
Google Asistan geliştirici platformu, sanal bir kişisel asistan olan Google Asistan'ın işlevselliğini akıllı hoparlörler, telefonlar, arabalar, TV'ler, kulaklıklar ve daha fazlası dahil olmak üzere 1 milyardan fazla cihaza genişletecek yazılım oluşturmanıza olanak tanır. Kullanıcılar yiyecek satın almak veya araç rezervasyonu yapmak gibi işleri halletmek için Asistan'la sohbete katılıyor. Bir geliştirici olarak, kullanıcılar ile kendi üçüncü taraf sipariş karşılama hizmetiniz arasında keyifli ve etkili konuşma deneyimlerini kolayca oluşturmak ve yönetmek için Asistan geliştirici platformunu kullanabilirsiniz.
Bu codelab, Google Asistan, Cloud Functions ve Cloud Firestore ile geliştirmeye yönelik orta düzey kavramları kapsar. Bu codelab'de, kullanıcılardan kelimeleri hecelemelerini istemek için Google Asistan'ı kullanan "Yazım Uygulaması" adlı bir oyun geliştireceksiniz.
Ne inşa edeceksin
Bu codelab'de aşağıdaki işlevlere sahip gelişmiş bir oyun geliştireceksiniz:
- Kullanıcıdan yazım yanıtlarını alır ve değere bağlı olarak konuşma istemlerini değiştirir
- Kelimenin tanımı veya tekrarı gibi, kelimenin yazılışıyla ilgili ipuçlarıyla yanıt verir
- Kullanıcının kelimeyi yazdıktan sonra Asistan'la tekrar etkileşimde bulunabilmesi için bir oyun döngüsü oluşturur
Oluşturmaya başlamadan önce, Google Asistan özellikli cihazınızda "Hey Google, Yazım Pratiği ile konuş" diyerek canlı Eylem ile etkileşimde bulunabilirsiniz. Geri dönen bir kullanıcı için bu Eylemin varsayılan yolu aşağıdaki etkileşime benzer:
Bu codelab'i bitirdiğinizde tamamladığınız Action'ınız aşağıdaki konuşma akışına sahip olacaktır:
Ne öğreneceksin
- Cloud Firestore ile nasıl etkileşim kurulur?
- Kullanıcıdan veri toplamak için yuvalar nasıl kullanılır?
- Bir kullanıcının girişi nasıl işlenir ve yanıt nasıl döndürülür?
- Bir sahneye mantık eklemek için koşullar nasıl kullanılır?
- Oyun döngüsü nasıl eklenir
İhtiyacınız olan şey
Bu codelab'in önkoşulları aşağıdakileri içerir:
- Google Chrome gibi bir web tarayıcısı
- Bulut İşlevlerini yazmak için bir IDE.
- Bir ödeme yöntemi. Bu codelab, projenizin Firebase Blaze fiyatlandırma planında olmasını gerektiren Firebase için Bulut İşlevlerini kullanır ( Daha fazla bilgi edinin ).
- Kabuk komutlarını çalıştıracak bir terminal
- Node.js 10 veya üzeri
2. İşlev kodunu alın
GitHub deposunu komut satırından kopyalayın:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Bir Firebase projesi oluşturun ve uygulamanızı kurun
Firebase projesi oluşturma
- Firebase'de oturum açın.
- Firebase konsolunda Proje Ekle'yi (veya Proje oluştur'u ) tıklayın ve ardından Firebase projenize
Spelling-Practice
adını verin.
- Proje oluşturma seçeneklerine tıklayın. İstenirse Firebase şartlarını kabul edin. Bu uygulama için Analytics kullanmayacağınız için Google Analytics kurulumunu atlayın.
Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama konusuna bakın.
Blaze fiyatlandırma planına yükseltme
Firebase için Cloud Functions'ı kullanmak için Firebase projenizi Blaze fiyatlandırma planına yükseltmeniz gerekir; bu, projenize bir Google Cloud Faturalandırma hesabı ekleyeceğiniz anlamına gelir. Bu, bir kredi kartı veya başka bir ödeme yöntemi sağlamanızı gerektirir.
Blaze planındakiler de dahil olmak üzere tüm Firebase projeleri hâlâ Cloud Functions'ın ücretsiz kullanım kotalarına erişebilir. Bu codelab'de özetlenen adımlar, ücretsiz kullanım sınırları dahilinde olacaktır. Ancak, Cloud Functions derleme görüntülerinizi barındırmak için kullanılan Cloud Storage'dan küçük ücretler ( yaklaşık 0,03 ABD doları ) göreceksiniz.
4. Firebase CLI'yi yükleyin
Firebase CLI (komut satırı arayüzü), Bulut İşlevlerinizi dağıtmanıza olanak tanır.
İşletim sisteminize ve kullanım senaryonuza bağlı olarak Firebase CLI'yi yüklemek için çeşitli seçenekler vardır. Aşağıdaki adımlarda, Cloud Functions'ı da kullanıyorsanız en yaygın seçenek açıklanmaktadır.
- Genellikle Node.js ile birlikte gelen npm'yi yüklediğinizden emin olun.
- Aşağıdaki npm komutunu çalıştırarak CLI'yi yükleyin veya yükseltin:
$ npm -g install firebase-tools
- Aşağıdakileri çalıştırarak CLI'nin doğru şekilde kurulduğunu doğrulayın:
$ firebase --version
Firebase CLI sürümünün 9.0.0 veya üzeri olduğundan emin olun; böylece Cloud Functions için gereken en yeni özelliklerin tümüne sahip olur. Değilse, yukarıda gösterildiği gibi yükseltme yapmak için npm install -g firebase-tools komutunu çalıştırın.
- Aşağıdakileri çalıştırarak Firebase CLI'yi yetkilendirin:
$ firebase login
- Spelling-functions-start dizininden Firebase CLI'yi Firebase projenizi kullanacak şekilde ayarlayın. Aşağıdaki komutu çalıştırın, Proje Kimliğinizi seçin ve ardından talimatları izleyin. İstendiğinde, örneğin
codelab
gibi herhangi bir Takma Adı seçebilirsiniz.
$ firebase use --add
5. İşlevler dizini
Artık Spelling Practice oyununun arka ucunu oluşturmak için Firebase SDK for Cloud Functions'ı kullanarak işlevsellik ekleyeceksiniz.
Bulut İşlevleri, bir sunucu kurmanıza gerek kalmadan bulutta çalışan kodlara sahip olmanızı sağlar. Bu codelab size Firebase Authentication, Cloud Storage ve Firebase Realtime Database olaylarına tepki veren işlevlerin nasıl oluşturulacağını gösterecektir. Kimlik Doğrulama ile başlayalım.
Cloud Functions için Firebase SDK'yı kullanırken, işlev kodunuz functions
dizini altında yer alır (varsayılan olarak). İşinizi kolaylaştırmak için kodunuzun gideceği functions/index.js
dosyasını zaten oluşturduk. İlerlemeden önce functions
dizinini incelemekten çekinmeyin.
$ cd functions $ ls
İşlev kodunuz aynı zamanda bir Node.js uygulamasıdır ve bu nedenle uygulamanız hakkında bazı bilgiler veren ve bağımlılıkları listeleyen bir package.json
ihtiyaç duyar.
Node.js'ye aşina değilseniz codelab'e devam etmeden önce onun hakkında daha fazla bilgi edinmek size yardımcı olacaktır.
package.json
dosyası zaten iki gerekli bağımlılığı listeliyor: Cloud Functions için Firebase SDK'sı ve Firebase Admin SDK'sı . Bunları yerel olarak yüklemek için functions
dizininden npm install
çalıştırın:
$ npm install
Şimdi index.js
dosyasına bir göz atalım:
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.
Önce gerekli modülleri içe aktaracaksınız, ardından TODO'ların yerine dört işlevi yazacaksınız. Modülleri içe aktarmak için codelab'in bir sonraki adımına geçin.
6. Gerekli modülleri içe aktarın
Bu codelab üç modül gerektirir.
-
firebase-functions
modülü, Bulut İşlevlerimiz için tetikleyicileri yazmamıza olanak tanır -
firebase-admin
modülü, örneğin Cloud Firestore'a yazmak için Firebase platformunu yönetici erişimi olan bir sunucuda kullanmamıza olanak tanır. - Actions SDK Node.js Yerine Getirme Kitaplığı, Google Asistan için Actions SDK işleyicilerini karşılar.
- Aşağıdaki npm komutunu çalıştırarak Actions SDK'yı yükleyin:
$ npm install @assistant/conversation
-
index.js
dosyasında ilk TODO'yu aşağıdakiyle değiştirin.
Bu değişiklikler gerekli modüllerin her birini içe aktarır.
Ayrıca Firebase Yönetici SDK'sı, Cloud Functions ortamına veya başka bir Google Cloud kapsayıcısına dağıtıldığında otomatik olarak yapılandırılabilir. admin.initializeApp();
çağırdığımızda olan budur. aşağıdaki değişikliklerde.
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.
Şimdi Asistan Eylemlerini destekleyecek işlevleri kullanarak iş mantığını ekleyelim.
7. İşlevler oluşturun
Kelime tanımlarını alın ve Cloud Firestore'a yazın
Kelime tanımlarını almak için dictionaryapi.dev
genel API'sini kullanacaksınız.
index.js
dosyasında getWordDetailsFromDictionaryAPI
için TODO'yu aşağıdakiyle değiştirin:
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 tetikleyicisi ekleme
Daha sonra, Cloud Firestore'da yeni bir belge oluşturulduğunda tetiklenen bir Bulut İşlevi oluşturacaksınız. Biraz önce yazdığımız getWordDetailsFromDictionaryAPI
fonksiyonu üzerinden kelime tanımlarını almak için dictionaryapi.dev
API'sini çağıracaktır.
index.js
dosyasında, createSpellingPracticeWord
TODO'sunu aşağıdakiyle değiştirin:
index.js
// Her yeni Firestore belgesi için getWordDetailsFromDictionaryAPI aracılığıyla kelime tanımlarını getiren Firestore tetikleyicisi
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Oyun için kelimelerin bir listesini alın
Asistan için Cloud Firestore'dan yazım alıştırması kelimelerinin listesini alan bir Bulut İşlevi yazabilirsiniz. Bunun için uygulama işleyicisini kullanıyoruz.
index.js
dosyasında getSpellingWordList
için TODO'yu aşağıdakiyle değiştirin.
Bu işlevi özel app.handle
eklemek, işleve Asistan'dan erişilebilmesini sağlamanın bir yoludur.
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; }); }); })
Asistan oturumundan bir kelime alın
Kelime listesinden sonraki yazılış kelimesini döndüren bir Bulut İşlevi yazabilirsiniz.
index.js
dosyasında getSpellingWord
için YAPILACAKLAR'ı aşağıdakiyle değiştirin:
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'); });
Kelimeyi tekrarlamak için oyunu etkinleştirin
Oyun için geçerli kelimeyi tekrarlayan bir Bulut Fonksiyonu yazabilirsiniz.
index.js
dosyasında, repeatSpellingWord
için TODO'yu aşağıdakiyle değiştirin:
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'); });
Kelimenin tanımını öğrenin
Oyun için geçerli kelimenin tanımını sağlayan bir Bulut İşlevi yazabilirsiniz.
index.js
dosyasında, definitionOfSpellingWord
için TODO'yu aşağıdakiyle değiştirin:
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); });
Kullanıcının yazım yanıtını kontrol edin
Kullanıcının oyun için geçerli kelimenin nasıl yazılacağına ilişkin yanıtını doğrulayan bir Bulut İşlevi yazabilirsiniz.
index.js
dosyasında, verifySpellingWord
için TODO'yu aşağıdakiyle değiştirin:
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);
Tüm işlevlerinizi dağıtın
Bulut İşlevleriniz yalnızca onları Firebase'e dağıttıktan sonra etkin olacaktır.
spelling-functions-start
dizininin kökünden aşağıdaki komutu çalıştırın:
$ firebase deploy --only functions
Görmeniz gereken konsol çıktısı budur:
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
Daha sonra kullanmak üzere ActionsOnGoogleFulfillment işlevi Http uç nokta URL'sini not edin. Uç noktayı almak için Firebase Konsolu'nu açın ve ardından yazım alıştırması projesine tıklayın. İşlevlerin uç noktasını görüntülemek için İşlevler kontrol panelini açın.
Gerekli tüm işlevleri eklemeyi tamamladınız. Şimdi Cloud Firestore kurulumuna geçelim.
8. Cloud Firestore'u etkinleştirin
Cloud Firestore'u etkinleştirmeniz gerekecek.
Firebase konsolunun Derleme bölümünde Firestore'u tıklayın. Daha sonra Veritabanı oluştur'u tıklayın.
Cloud Firestore'daki verilere erişim Güvenlik Kuralları tarafından kontrol edilir. Başlamak için öncelikle veriler üzerinde bazı temel kurallar belirlemeniz gerekir. Firestore'u tıklayın ve ardından Firebase konsolunun Kurallar sekmesinde aşağıdaki kuralları ekleyin ve ardından Yayınla'yı tıklayın.
Aşağıdaki kurallar, oturum açmış olan kullanıcıların veri erişimini kısıtlayarak, kimliği doğrulanmamış kullanıcıların okuma veya yazma yapmasını engeller.
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. Yazım kelimeleri verilerini Cloud Firestore'a ekleyin
Bu adımda, Asistan (ve oyun) için bir kelime listesi oluşturabilmeniz amacıyla Cloud Firestore'a yazım kelimeleri verilerini yazacaksınız.
Cloud Firestore verileri koleksiyonlar, belgeler, alanlar ve alt koleksiyonlar halinde yapılandırılmıştır. Oyunun her kelimesi, wordlist
adı verilen üst düzey bir koleksiyonda kendi belgesi olarak saklanacaktır. Firestore koleksiyonundaki her yeni belge için, Dictionary API hizmetinden kelime ayrıntılarını almak üzere createSpellingPracticeWord işlevi tetiklenecektir.
Cloud Firestore koleksiyonu oluşturma
- Firebase konsolunda Cloud Firestore bölümüne gidin.
- + Koleksiyonu başlat'a tıklayın.
- Koleksiyon Kimliği metin kutusuna
wordlist
yazın ve İleri'ye tıklayın.
Daha sonra tek kelimelik bir belge oluşturacağız: anlaşma
- Belge Kimliği metin kutusuna
agreement
girin. - Alan metin kutusuna
word
girin ve Değer metin kutusunaagreement
girin. - Kaydet'i tıklayın.
Bu belgeyi Cloud Firestore'a eklediğinizde, kelimenin tanım ayrıntılarını getirmek için createSpellingPracticeWord işlevinizi tetikler. Her kelime için yeni bir belge oluşturarak daha fazla kelime ekleyin (örneğin: huşu, araba, doğru, söyle, daha iyi, işe gidip gelme, ...).
10. Google Asistan'ı kurun
Aşağıdaki bölümlerde Google Asistan geliştirme ortamınızı nasıl kuracağınız ve Actions projenizi nasıl oluşturacağınız açıklanmaktadır.
Google izin ayarlarınızı kontrol edin
Bu codelab'de oluşturduğunuz Eylemi test etmek için simülatörün Eyleminize erişebilmesi için gerekli izinleri etkinleştirmeniz gerekir. İzinleri etkinleştirmek için şu adımları izleyin:
- Etkinlik kontrolleri sayfasına gidin.
- Henüz yapmadıysanız Google Hesabınızla oturum açın.
- Aşağıdaki izinleri etkinleştirin:
- Web ve Uygulama Etkinliği
- Web ve Uygulama Etkinliği altında, Chrome geçmişini ve Google hizmetlerini kullanan siteler, uygulamalar ve cihazlardaki etkinlikleri dahil et seçeneğinin yanındaki onay kutusunu seçin.
Eylemler projesi oluşturma
Actions projeniz Action'ınız için bir kapsayıcıdır. Bu codelab'e yönelik Eylemler projenizi oluşturmak için şu adımları izleyin:
- Eylemler konsolunu açın.
- Yeni proje'yi tıklayın.
- Hizmet şartlarını kabul edin
- Firebase Konsolu'nu kullanarak oluşturduğunuz
spelling-practice-codelab
yazın veya seçin. (Ad, dahili referansınız içindir. Daha sonra projeniz için harici bir ad belirleyebilirsiniz.)
- Projeyi içe aktar'ı tıklayın.
- Ne tür bir Eylem oluşturmak istiyorsunuz? ekranında Özel kartı seçin.
- Sonrakine tıkla .
- Boş proje kartını seçin.
- Oluşturmaya başla'yı tıklayın.
- Görünen ad için Yazım Uygulaması'na girin ve kaydet'i tıklayın.
Kullanıcılar çağrı yoluyla Action'ınızla konuşmayı başlatır. Örneğin, kullanıcılar "Hey Google, Spelling Practice ile konuşun" gibi bir ifade söyleyerek İşleminizi başlatabilir; burada Spelling Practice görünen addır.
Üretime dağıtmak istiyorsanız İşleminizin bir görünen adı olmalıdır; ancak İşleminizi test etmek için görünen adı tanımlamanıza gerek yoktur. Bunun yerine, Eyleminizi başlatmak için simülatördeki "Test uygulamamla konuş" ifadesini kullanabilirsiniz.
Yerine getirmeyi yapılandır
Bu codelab'de daha önce yazdığınız ve dağıttığınız Bulut İşlevleri için olay işleyicilerini Asistan'a bağlamanız gerekir.
Karşılamanızı yapılandırmak için şu adımları izleyin:
- Yan gezinme panelinde Webhook'a tıklayın.
- Yerine getirme seçeneği olarak HTTPS uç noktasını seçin:
- İşlevinizin uç noktasının URL'sini HTTP uç noktası metin kutusuna girin ve ardından Kaydet'i tıklayın.
Sonraki bölümde, Eylemler konsolundaki ana çağrınıza ilişkin istemi özelleştireceksiniz.
Ana çağrıyı ayarla
Bir kullanıcı Eyleminizi çağırdıktan sonra ne olacağını tanımlamak için ana çağrıyı düzenlemeniz gerekir.
Varsayılan olarak Actions Builder, çağrınız tetiklendiğinde genel bir bilgi istemi sağlar ( "Ana çağrıyı tanımlayarak Eyleminizi oluşturmaya başlayın.").
Action'ınızın kullanıcıya, Action'ınızı çağırdığında geri gönderdiği istemi değiştirmek için şu adımları izleyin:
- Gezinme bölümünde Ana çağrıya tıklayın.
-
Call your webhook
işaretleyin ve metin kutusuna olay işleyicisi adınıgetSpellingWordList
ekleyin. - Kod düzenleyicide,
speech
alanındaki metni aşağıdaki karşılama mesajıyla değiştirin:Welcome to Spelling Practice
Not: İstemlerinizi düzenlemek için YAML veya JSON biçimlendirmesini kullanabilirsiniz.
- Kaydet'i tıklayın.
Simülatördeki ana çağrıyı test edin
Actions konsolu, Action'ınızı test etmek için simülatör adı verilen bir web aracı sağlar. Arayüz donanım cihazlarını ve ayarlarını simüle eder, böylece Action'ınızla sanki bir Akıllı Ekranda, telefonda, hoparlörde veya KaiOS'ta çalışıyormuş gibi sohbet edebilirsiniz.
Eyleminizin ana çağrısını simülatörde test etmek için şu adımları izleyin:
- Simülatöre gitmek için üst gezinme çubuğunda Test Et'e tıklayın.
- Simülatörde Eyleminizi başlatmak için sol üstteki giriş alanına Konuşarak
Talk to Spelling Practice
yazın ve ardından klavyenizde Enter tuşuna basın.
Eyleminizin ana çağrısını tetiklediğinizde Asistan, özelleştirilmiş karşılama mesajınızla yanıt verir. Bu noktada Asistan'ın selamlamayla karşılık vermesiyle konuşma sona eriyor.
Olay günlüklerini görüntüle
Test sekmesinde olduğunuzda sağdaki panel, konuşma geçmişini olay günlükleri olarak görüntüleyen olay günlüklerini gösterir. Her olay günlüğü, görüşmenin o aşamasında meydana gelen olayları görüntüler. Olay günlüğünü görüntülemek için olayın önündeki gri simgeye tıklayın.
Action'ınızda şu anda hem kullanıcının girişini ( "Yazım Pratiğiyle Konuşun" ) hem de Action'ınızın yanıtını gösteren bir olay günlüğü var. Aşağıdaki ekran görüntüsü Action'ınızın olay günlüğünü gösterir:
11. Yazım Pratiği için sohbeti oluşturun
Artık bir kullanıcı Action'ınızı çağırdıktan sonra ne olacağını tanımladığınıza göre, Action'ınızın geri kalan konuşmasını oluşturabilirsiniz. Spelling Practice'in dört sahnesi vardır ve çalıştırılmadan önce her sahneyi etkinleştirmeniz gerekir. Bir sahneyi etkinleştirmenin en yaygın yolu, Eyleminizi, bir kullanıcı bir sahne içindeki kullanıcı amacıyla eşleştiğinde bu amacın başka bir sahneye geçişi tetikleyeceği ve onu etkinleştirecek şekilde yapılandırmaktır.
Ana çağrıdan başlangıç sahnesine geçiş
Bu bölümde, kullanıcıya Yazım Alıştırması oynamaya başlamak isteyip istemediğini soran bir istem gönderen Start
adında yeni bir sahne oluşturursunuz. Ayrıca ana çağrıdan yeni Start
sahnesine bir geçiş de eklersiniz.
Bu sahneyi oluşturmak ve ona bir geçiş eklemek için şu adımları izleyin:
- Üst gezinme bölümünde Geliştir'e tıklayın. Ardından sol gezinme bölmesinde Ana çağrıya tıklayın.
- Sağdaki Geçiş bölümünde açılır menüyü tıklayın ve ardından metin alanına
Start
yazın.
- Ekle'yi tıklayın. Bu,
Start
adında bir sahne oluşturur ve Action kullanıcıya hoş geldiniz istemini ilettikten sonra Action'aStart
sahnesine geçmesini söyler. - Sahnelerin listesini göstermek için sol gezinme bölmesinde Sahneler'i tıklayın.
-
Start
sahnesini görmek için Sahneler altında Başlat'ı tıklayın. -
Start
sahnesinin Giriş bölümünde + öğesine tıklayın. - İstem gönder'i seçin.
-
speech
alanındaki cümleyi (Enter the response that users will see or hear...
) kullanıcıya soracağınız bir soruyla değiştirin:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
Öneri çipleri, kullanıcıya, Eyleminizin kullanıcı girişi olarak işlediği tıklanabilir öneriler sunar. Bu bölümde, az önce yapılandırdığınız istemin altında görünen öneri çiplerini eklersiniz ( Do you want to play
Spelling Practice
?
) ekranlı cihazlarda kullanıcıları desteklemek için.
Start
sahnesinin istemine öneri çipleri eklemek için şu adımları izleyin:
-
Start
sahnesinde, kod düzenleyicinin altındaki önerilere tıklayın. Bu eylem, tek bir öneri çipi ekler. -
title
alanındaSuggested Response
'Yes'
ile değiştirin. - Aynı biçimlendirmeyi kullanarak,
'No'
ve'Help with Phonetics'
başlıklı bir öneri çipini manuel olarak ekleyin. Kodunuz aşağıdaki kod parçasına benzemelidir: - Kaydet'i tıklayın.
Eyleminizi simülatörde test edin
Bu noktada, Eyleminiz ana çağrıdan Başlat sahnesine geçmeli ve kullanıcıya devam etmek isteyip istemediğini sormalıdır. Simüle edilen ekranda öneri çipleri de görünmelidir.
Eyleminizi simülatörde test etmek için şu adımları izleyin:
- Gezinme çubuğunda sizi simülatöre götürmek için Test Et'e tıklayın.
- Eyleminizi simülatörde test etmek için Giriş alanına
Talk to Spelling Practice
yazın. - Enter tuşuna basın . Eyleminiz
Main invocation
istemi ve eklenenStart
sahnesi istemiyle yanıt vermelidir : "Yazım Uygulamasına Hoş Geldiniz. Kelimeyi hecelemek için fonetik alfabeyi kullanın. Örneğin a için alfa, b için bravo, c için charlie vb. devam etmek?" .
Aşağıdaki ekran görüntüsü bu etkileşimi göstermektedir:
- İsteme yanıt vermek için
Yes
veyaNo
veyaHelp with Phonetics
öneri çipine tıklayın. (Ayrıca "Evet" veya "Hayır" veya "Fonetik Yardımı" diyebilir veya Giriş alanınaYes
veyaNo
veyaHelp with Phonetics
girebilirsiniz.)
İsteme yanıt verdiğinizde Action'ınız, girişinizi anlayamadığını belirten bir mesajla yanıt verir: "Üzgünüm, anlayamadım. Tekrar deneyebilir misiniz?" Eyleminizi henüz "Evet" veya "Hayır" girişini anlayacak ve yanıtlayacak şekilde yapılandırmadığınız için Eyleminiz, girişinizi NO_MATCH
amacıyla eşleştirir.
Varsayılan olarak, NO_MATCH
sistem amacı genel yanıtlar sağlar, ancak bu yanıtları, kullanıcıya girişini anlamadığınızı gösterecek şekilde özelleştirebilirsiniz. Asistan, kullanıcı girişini üç kez eşleştiremediğinde kullanıcının İşleminizle olan görüşmesini sonlandırır.
Hayır ve fonetik amaçları ekleyin
Artık kullanıcılar Action'ınızın sorduğu soruyu yanıtlayabildiğine göre, Action'ınızı kullanıcıların yanıtlarını anlayacak şekilde yapılandırabilirsiniz ( "Evet" veya "Hayır" veya "Fonetik Konusunda Yardım" ). Aşağıdaki bölümlerde, kullanıcı "Evet" veya "Hayır" ya da "Fonetik Konusunda Yardım" dediğinde eşleşen kullanıcı niyetleri oluşturacak ve bu niyetleri Start
sahnesine ekleyeceksiniz. Sistem niyetini kullanacağız yes
ve başka niyetler yaratacağız.
no
amaç yaratma
Artık kullanıcı oyunu oynamak istemediğinde onu anlamak ve ona yanıt vermek için no
niyet yaratmamanız gerekiyor. Bu amacı oluşturmak için şu adımları izleyin:
- Gezinme bölümünde Geliştir'e tıklayın.
- Amaçların listesini açmak için gezinme bölümünde Özel Amaçlar'a tıklayın.
- Amaç listesinin sonundaki + (artı işareti) öğesine tıklayın. Yeni amaç
no
adlandırın ve Enter tuşuna basın. - Niyet
no
sayfasını açmak için hayır'ı tıklayın. - Eğitim cümleleri ekle bölümünde, İfade Girin metin kutusuna tıklayın ve aşağıdaki ifadeleri girin:
-
No
-
N
-
I don't want
-
nope
- Kaydet'i tıklayın.
Start
sahnesine amaç no
Artık Eylem, bir kullanıcının "hayır" veya "hayır " gibi "hayır" a benzer bir ifade ifade ettiğini anlayabilir. Kullanıcı Start
istemine yanıt verdiğinden, Start
sahnesine kullanıcı amacı no
ifadesini eklemeniz gerekir (" Yazım Uygulamasına Hoş Geldiniz. Kelimeyi hecelemek için fonetik alfabeyi kullanın. Örneğin a için alpha, b için bravo, c için charlie vb. Devam etmek istiyor musunuz?" ).
Start
sahnesine bu amacı eklemek için şu adımları izleyin:
- Gezinme bölümünde Başlangıç sahnesine tıklayın.
-
Start
sahnesinde Kullanıcı amacı işleme'nin yanındaki + (artı) işaretine tıklayın. - Niyet bölümünde açılır menüden hayır seçeneğini seçin.
- İstem gönder'e tıklayın ve
speech
alanını şu metinle güncelleyin:Good Bye
.
Editörünüzdeki kod aşağıdaki kod parçasına benzemelidir:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Geçiş bölümünde açılır menüden Konuşmayı sonlandır'ı seçin.
- Kaydet'i tıklayın.
Simülatörde amaç no
test edin
Bu noktada Action'ınız, kullanıcının oyunu oynamak istemediğini anlar ve uygun yanıtı verir.
Bu amacı simülatörde test etmek için şu adımları izleyin:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanına
Talk to Spelling Practice
yazın veEnter
basın. - Giriş alanına
No
yazın ve Enter tuşuna basın. Alternatif olarak Öneri yok çipine tıklayın.
Start
sahnesine sistem YES
amacını ekleyin
Şimdi, kullanıcı Başlat istemine evet yanıtı verdiğinden, Start
sahnesine SİSTEM niyetini "EVET" ekleyeceğiz (" Start
Pratiğine Hoş Geldiniz. Kelimeyi hecelemek için fonetik alfabeyi kullanın. Örneğin a için alfa, bravo için bravo b, c için Charlie vb. Devam etmek istiyor musunuz?" ).
Bu kullanıcının amacını Start
sahnesine eklemek için şu adımları izleyin:
- Gezinme bölümünde Başlangıç sahnesine tıklayın.
-
Start
sahnesinde Kullanıcı amacı işleme seçeneğinin yanındaki + (artı) işaretini tıklayın. - Tüm Sistem Amaçları altında, amaç açılır menüsünde EVET'i seçin.
- Web kancanızı çağırın'a tıklayın ve
event handler
metin kutusunu daha önce oluşturduğunuz işlevle güncelleyin:getSpellingWordList
- Geçiş bölümünde açılır menüyü tıklayın ve Konuşmayı bitir ' i seçin.
- Kaydet'i tıklayın.
Simülatörde YES
amacını test edin
Bu noktada Action'ınız kullanıcının oyunu oynamak istediğini anlar ve uygun yanıtı verir.
Bu amacı simülatörde test etmek için şu adımları izleyin:
- Gezinme çubuğunda Test'i tıklayın.
- Eyleminizi simülatörde test etmek için Giriş alanına
Talk to Spelling Practice
yazın ve Enter tuşuna basın. - Giriş alanına
Yes
yazın ve Enter tuşuna basın. Alternatif olarakYes
öneri çipine tıklayın.
İşleminiz, tüm yazım alıştırması kelimelerinin bir listesini getirir ve bunları oturumda saklar. İşleminiz, YES
amacı için End conversation
geçişini seçtiğiniz için oturumu sonlandırır.
Phonetics
amacı oluşturun
Phonetics
amacını oluşturmak için şu adımları izleyin:
- Gezinme bölümünde Geliştir'e tıklayın.
- Amaçların listesini açmak için gezinme bölümünde Özel Amaçlar'a tıklayın.
- Amaç listesinin sonundaki + (artı işareti) öğesine tıklayın. Yeni amaç
phonetics
adlandırın veEnter
tuşuna basın. -
phonetics
amaç sayfasını açmak içinphonetics
amacı tıklayın. - Eğitim cümleleri ekle bölümünde, İfade Girin metin kutusuna tıklayın ve aşağıdaki ifadeleri girin:
-
how do I spell words
-
phonetics
-
help me with phonetics
-
phonetic alphabet
- Kaydet'i tıklayın.
Start
sahnesine phonetics
amacı ekleme
Artık Eylem, bir kullanıcının "fonetik" amacını ifade ettiğini anlayabilir. Kullanıcı Start
istemine yanıt verdiği için phonetics
kullanıcı amacını Start
sahnesine ekleyebilirsiniz (" Yazım Uygulamasına Hoş Geldiniz. Kelimeyi hecelemek için fonetik alfabeyi kullanın. Örneğin a için alpha, b için bravo, c için charlie vb. Devam etmek istiyor musunuz?" ).
Bu kullanıcının amacını Start
sahnesine eklemek için şu adımları izleyin:
- Gezinme bölümünde Başlangıç sahnesine tıklayın.
-
Start
sahnesinde Kullanıcı amacı işleme'nin yanındaki + (artı) işaretine tıklayın. - Amaç açılır menüsünden fonetiği seçin.
- Geçiş bölümünde açılır menüye tıklayın ve Konuşmayı sonlandır'ı seçin.
- Kaydet'i tıklayın.
Başlangıç sahnesinden Yazım sahnesine geçiş
Bu bölümde, kullanıcıya sözcüğü fonetik alfabeyi kullanarak hecelemesi için bir istem gönderen Yazım Denetimi adlı yeni bir sahne oluşturursunuz.
Bu sahneyi oluşturmak ve ona bir geçiş eklemek için şu adımları izleyin:
- Üst gezinme bölümünde Geliştir'e tıklayın. Ardından sol gezinme bölmesinde Sahneyi başlat'a tıklayın.
- Kullanıcı amacı işleme bölümünde
when actions.intent.YES is matched
tıklayın ve geçiş bölümünde sağdaki açılır menüye tıklayın ve metin alanınaSpelling
yazın. - Ekle'yi tıklayın. Bu,
Spelling
adında bir sahne oluşturur ve Eyleme, YES amacı ile eşleştirme sonrasındaSpelling
Sahnesine geçmesini söyler. - Sahnelerin listesini göstermek için sol gezinme bölmesinde Sahneler'i genişletin.
-
Spelling
sahnesini görmek için Sahneler altında Yazım Denetimi'ni tıklayın. -
Spelling
sahnesinin Giriş bölümünde + öğesine tıklayın. - Web kancanızı arayın'a tıklayın ve olay işleyici metin kutusuna getSpellingWord yazın.
- İstem gönder'i seçin.
-
speech
alanındaki cümleyi (Enter the response that users will see or hear...
) {} ile değiştirin. Gerçek bilgi istemi webhook tarafından doldurulacaktır.
Öneri çipleri, kullanıcıya, Eyleminizin kullanıcı girişi olarak işlediği tıklanabilir öneriler sunar.
Spelling
denetimi sahnesinin istemine öneri çipleri eklemek için şu adımları izleyin:
-
Spelling
sahnesinde, kod düzenleyicinin altındaki önerilere tıklayın. Bu eylem üç öneri çipi ekler. -
title
alanındaSuggested Response
'Repeat'
ile değiştirin. - Aynı biçimlendirmeyi kullanarak
'Skip'
başlıklı bir öneri çipini manuel olarak ekleyin. - Aynı biçimlendirmeyi kullanarak,
'Quit'
başlıklı bir öneri çipini manuel olarak ekleyin. Kodunuz aşağıdaki kod parçasına benzemelidir: - Kaydet'i tıklayın.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
amacı oluştur
repeat
amacını oluşturmak için şu adımları izleyin:
- Gezinme bölümünde Geliştir'e tıklayın.
- Amaçların listesini açmak için gezinme bölümünde Özel Amaçlar'a tıklayın.
- Amaç listesinin sonundaki + (artı işareti) öğesine tıklayın. Yeni amaç
repeat
bir ad verin veEnter
tuşuna basın. -
definition
amacı sayfasını açmak içinrepeat
amacına tıklayın. - Eğitim cümleleri ekle bölümünde, İfade Girin metin kutusuna tıklayın ve aşağıdaki ifadeleri girin:
-
one more time please
-
say the word again
-
repeat the word
-
tell me again
-
repeat
- Kaydet'i tıklayın.
Spelling
sahnesine repeat
amacı ekleyin
Artık Eylem, bir kullanıcının "tekrarlama" niyetini ifade ettiğini anlayabilir. Kullanıcı Spelling
istemine yanıt verdiğinden (" Fonetik alfabeyi kullanarak sözcüğü yazın ") Spelling
Denetimi sahnesine repeat
kullanıcı amacını ekleyebilirsiniz.
Bu kullanıcının amacını Spelling
sahnesine eklemek için şu adımları izleyin:
- Gezinme bölümünde Yazım denetimi sahnesini tıklayın.
-
Spelling
sahnesinde, Kullanıcı amacını işleme seçeneğinin yanındaki + (artı) işaretini tıklayın. - Amaç açılır menüsünde tekrarlamayı seçin.
- Kelime tanımını almak için Web kancanızı arayın seçeneğini işaretleyin ve olay işleyici metin kutusuna Tekrarlanan Yazım Sözcüğü'nü girin.
- İstemleri gönder seçeneğini işaretleyin.
-
speech
alanındaki cümleyi (Enter the response that users will see or hear...
) '' ile değiştirin. Gerçek bilgi istemi webhook tarafından doldurulacaktır.
"Tekrar eşleştiğinde" seçeneğine öneri çipleri ekleyin
- Kullanıcı Niyeti işleme altındaki " Tekrar eşleştiğinde " bölümünde, kod düzenleyicinin altındaki önerilere tıklayın. Bu eylem üç öneri çipi ekler.
-
title
alanındaSuggested Response
'Skip'
ile değiştirin. - Aynı biçimlendirmeyi kullanarak
'Quit'
başlıklı bir öneri çipini manuel olarak ekleyin. Kodunuz aşağıdaki kod parçasına benzemelidir:
suggestions: - title: 'Skip' - title: 'Quit'
- Kaydet'i tıklayın.
definition
amacı oluştur
definition
amacını oluşturmak için şu adımları izleyin:
- Gezinme bölümünde Geliştir'e tıklayın.
- Amaçların listesini açmak için gezinme bölümünde Özel Amaçlar'a tıklayın.
- Amaç listesinin sonundaki + (artı işareti) öğesine tıklayın. Yeni amaç
definition
bir ad verin veEnter
tuşuna basın. -
definition
amacı sayfasını açmak içindefinition
amacına tıklayın. - Eğitim cümleleri ekle bölümünde, İfade Girin metin kutusuna tıklayın ve aşağıdaki ifadeleri girin:
-
I would like to know the definition
-
tell me the definition
-
what does it mean
-
meaning
-
definition
-
what is the definition?
- Kaydet'i tıklayın.
Spelling
sahnesine definition
amacı ekleme
Artık Eylem, bir kullanıcının "tanım" amacını ifade ettiğini anlayabilir. Kullanıcı Spelling
istemine yanıt verdiğinden (" Fonetik alfabeyi kullanarak sözcüğü yazın ") Spelling
sahnesine definition
kullanıcı amacını ekleyebilirsiniz.
Bu kullanıcının amacını Spelling
sahnesine eklemek için şu adımları izleyin:
- Navigasyondaki yazım sahnesini tıklayın.
- Kullanıcı niyetinin kullanımının yanındaki
Spelling
sahnesindeki + (artı işaret) tıklayın. - Amaç açılır menüsünde tanımı seçin.
- Webhook'unuzu arayın ve kelime tanımını almak için olay işleyicisi metin kutusuna tanımlama sözcüğünü girin.
- Gönder istemelerini kontrol edin.
-
speech
alanındaki cümleyi değiştirin (Enter the response that users will see or hear...
) '' 'ile. Gerçek istem WebHook tarafından doldurulacaktır.
Webhook yanıtına öneri çipleri ekleyin
-
Start
sahnesinde, kod düzenleyicisinin altındaki önerileri tıklayın. Bu eylem üç öneri yongası ekler. -
title
alanında,Suggested Response
'Skip'
ile değiştirin. - Aynı biçimlendirmeyi kullanarak,
'Quit'
başlıklı bir öneri çipi ekleyin. Kodunuz aşağıdaki snippet'e benzemelidir:
suggestions: - title: 'Skip' - title: 'Quit'
- Kaydet'i tıklayın.
skip
Niyeti Oluştur
skip
niyetini oluşturmak için şu adımları izleyin:
- Navigasyonda Geliştir'i tıklayın.
- Niyet listesini açmak için gezinme niyetini tıklayın.
- Niyet listesinin sonunda + (artı işaret) tıklayın. Yeni niyet
skip
atlayın veEnter
tuşuna basın. -
skip
Niyeti sayfasını açmak içinskip
niyetini tıklayın. - Eğitim İfadeleri Ekle bölümünde, İfade Metin Kutusu'nu tıklayın ve aşağıdaki ifadeleri girin:
-
next word
-
go next
-
next
-
skip
-
skip word
- Kaydet'i tıklayın.
Spelling
sahnesine atlama niyetini Skip
Şimdi, eylem bir kullanıcının "atlama" niyetini ifade ettiğinde anlayabilir. Kullanıcı Spelling
istemine yanıt verdiğinden (" kelimeyi fonetik alfabe kullanarak heceleyin ") skip
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı niyetini Spelling
sahnesine eklemek için şu adımları izleyin:
- Navigasyondaki yazım sahnesini tıklayın.
- Kullanıcı Niyeti Handlin G'nin yanındaki
Spelling
sahnesindeki + (artı işaret) tıklayın. - Amaç açılır durumunda Skip'i seçin.
- Sağdaki geçiş bölümünde açılır menüyü tıklayın ve
Spelling
seçin.
- Kaydet'i tıklayın.
quit
niyeti yarat
Quit
niyetini oluşturmak için şu adımları izleyin:
- Navigasyonda Geliştir'i tıklayın.
- Niyet listesini açmak için gezinme niyetini tıklayın.
- Niyet listesinin sonunda + (artı işaret) tıklayın. Yeni
Quit
adlandırın veEnter
tuşuna basın. - Tanım Niyet sayfasını açmak için
Quit
Niyeti'ni tıklayın. - Eğitim İfadeleri Ekle bölümünde, İfade Metin Kutusu'nu tıklayın ve aşağıdaki ifadeleri girin:
-
I quit
-
Goodbye
-
Cancel
-
Exit
-
Quit
- Kaydet'i tıklayın.
Spelling
sahnesine Quit
niyetini ekleyin
Şimdi, eylem bir kullanıcının "bırak" niyetini ifade ettiğinde anlayabilir. Kullanıcı Spelling
istemine yanıt verdiğinden (" kelimeyi fonetik alfabe kullanarak heceleyin ") çünkü quit
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı niyetini Spelling
sahnesine eklemek için şu adımları izleyin:
- Navigasyondaki yazım sahnesini tıklayın.
- Kullanıcı niyetinin kullanımının yanındaki
Spelling
sahnesindeki + (artı işaret) tıklayın. - Amaç açılır menüsünde çıkmayı seçin.
- Sağdaki geçiş bölümünde açılır menüyü tıklatın ve
End conversation
seçin. - Kaydet'i tıklayın.
phonetic_alphabet
Tipi Oluştur
Bu bölümde, kullanıcıların kelimeyi hecelemeyi seçebilecekleri fonetik alfabe seçeneklerini belirten phonetic_alphabet
adlı yeni bir tür oluşturursunuz. Bir kullanıcının benzer bir şey söylemesi durumunda, bu seçenekler için birkaç eş anlamlılığı da tanımlayabilirsiniz. Daha sonraki bir bölümde, kullanıcının yanıtını almak istediğinizi belirtmek için bir yuvaya phonetic_alphabet
türünü eklersiniz.
phonetic_alphabet
türünü oluşturmak için şu adımları izleyin:
- Navigasyonda Geliştir'i tıklayın.
- Türlerin altındaki + (artı işaret) tıklayın.
-
phonetic_alphabet
yazın veEnter
tuşuna basın. - Seçenekleri açmak için
phonetic_alphabet
tıklayın. - Bu tür ne tür değerlerde desteklenecek? Bölüm, Kelimeler ve Eş anlamlılar seçeneğini seçin
- Girişler Ekle bölümüne aşağıdaki girişleri ve karşılık gelen değerleri girin:
A | Alpha, Apple, Amsterdam |
B | Bravo, tereyağı, Baltimore |
C | Charlie, Kedi, Kazablanka |
D | Delta, köpek, Danimarka |
e | Echo, Edward, Edison |
F | Foxtrot, Fox, Florida |
G | Golf, George, Gelibolu |
H | Otel, Harry, Havana |
Ben | Hindistan, Mürekkep, Italia |
J | Juliette, Johnny, Kudüs |
k | Kilo, kral, kilogram |
ben | Lima, aşk, Londra |
M | Mike, para, Madagaskar |
N | Kasım, New York, Nancy |
Ö | Oscar, Orange, Oslo |
P | Papa, Paris, Peter |
Q | Quebec, kraliçe |
R | Romeo, Roma, Robert |
S | Sierra, Şeker, Santiago |
T | Tango, Tommy, Trablus |
sen | üniforma, şemsiye, amca |
v | Victor, Sirke, Valencia |
w | Viski, William, Washington |
X | röntgen |
sen | Yankee, Sarı, Yorker |
z | Zulu, Zebra, Zürih |
Anahtar değer tablonuz aşağıdakilere benzemelidir:
- Kaydet'i tıklayın.
Yuva doldurmayı yapılandırın
Ardından, yazım sahnesinde yuva dolgusunu yapılandırmanız gerekir. Yuva doldurma mantığını yapılandırmak için şu adımları izleyin:
- Navigasyondaki yazım sahnesini tıklayın.
- Yuva doldurma için
Spelling
sahnesindeki + (artı işaret) tıklayın. - Yuva adı alanına girin , yuva adı olarak
userresponse
ekleyin. - Türü seçme açılır menüsünde, yuva türü olarak Phonetic_alphabet'i seçin.
- Bu yuvanın bir değer listesini kabul ettiğini kontrol edin
- Bu yuvanın gerekli olduğunu kontrol edin.
- Slot değeri yazma seçeneğini özelleştir ve Oturum Parametresi TextBox'a UserResponse girmeyi seçin.
- Kaydet'i tıklayın.
Spelling
ekranına koşul ekle
Spelling
sahnesine koşul eklemek için şu adımları izleyin:
- Navigasyondaki yazım sahnesini tıklayın.
- Koşulun yanındaki
Spelling
sahnesindeki + (artı işaret) tıklayın. -
scene.slots.status == "FINAL"
in koşul olarak girin - Kullanıcı yanıtını doğrulamak için WebHook'unuzu arayın ve etkinlik işleyicisi metin kutusuna VERIFYSPellingword girin.
- Gönder istemelerini kontrol edin.
-
speech
alanındaki cümleyi değiştirin (Enter the response that users will see or hear...
) {} ile. Gerçek istem WebHook tarafından doldurulacaktır.
Webhook yanıtına öneri çipleri ekleyin
-
Start
sahnesinde, kod düzenleyicisinin altındaki önerileri tıklayın. Bu eylem üç öneri yongası ekler. -
title
alanında,Suggested Response
'Next'
ile değiştirin. - Aynı biçimlendirmeyi kullanarak,
'Quit'
başlıklı bir öneri çipi ekleyin. Kodunuz aşağıdaki snippet'e benzemelidir:
suggestions: - title: 'Next' - title: 'Quit'
- Kaydet'i tıklayın.
12. Simülatörde yazım pratiğini test edin
Eyleminizi simülatörde test etmek için şu adımları izleyin:
- Navigasyon çubuğunda, sizi simülatöre götürmek için test tıklayın.
- Eyleminizi simülatörde test etmek için, giriş alanındaki
Talk to Spelling Practice
konuşun. - Enter tuşuna basın . Eyleminiz
Main invocation
istemi ve eklenenStart
sahnesi istemi ile yanıt vermelidir, "Yazım uygulamasına hoş geldiniz. Kelimeyi hecelemek için fonetik alfabeyi kullanın. Örneğin A için Alfa, B için Bravo, C Charlie için vb. devam etmek?" . - Devam etmek için evet deyin
- Simülatör heceleyecek bir kelime sesi çalacak
- Kelimeyi fonetik alfabeler kullanarak heceleyebilirsiniz. Örneğin , "Bravo Echo Tango Tango Echo Romeo"
- Simülatör doğru veya yanlış yanıtla yanıt verecektir.
- Sonraki bir sonraki kelimeye devam etmek için söyleyin veya oyun döngüsünden çıkmayı bırakın .
13. Tebrikler
Tebrikler, oyununuzu, heceleme pratiğinizi başarıyla inşa ettiniz!
Artık Cloud Firestore, Cloud işlevleri ve Google Assistant Action Builder kullanarak bir oyun oluşturmak için gereken temel adımları biliyorsunuz.
Ne kapsadın
- Cloud Firestore ile Nasıl Etkileşim Yapılır
- Kullanıcıdan veri toplamak için yuvalar nasıl kullanılır
- Bir kullanıcının girişi nasıl işlenir ve bir yanıt döndürür
- Bir sahneye mantık eklemek için koşullar nasıl kullanılır
- Oyun Döngüsü Nasıl Eklenir
Ek öğrenme kaynakları
Google Assistant için eylemler oluşturma hakkında bilgi edinmek için bu kaynakları keşfedebilirsiniz:
- Google Asistan için Eylemler Geliştirme Belgeleri
- Örnek kodu ve kütüphaneler için Google Github sayfasındaki eylemler
- Google Asistan ile çalışan geliştiriciler için resmi Reddit topluluğu
- Konuşma eylemleri ile ilgili en iyi uygulamalar ve yönergeler için konuşma tasarımı yönergeleri
- Cloud Firestore'a Giriş
Projenizi temizleyin [önerilir]
Olası suçlamalar yapmaktan kaçınmak için, kullanmak istemediğiniz projeleri kaldırmanız önerilir. Bu codelab'da oluşturduğunuz projeleri silmek için şu adımları izleyin:
- Firebase projenizi ve kaynaklarınızı silmek için kapatma (silme) projeleri bölümünde listelenen adımları tamamlayın.
DİKKAT: Google Cloud Console'ın Ayarları sayfasında silme için doğru projeyi seçtiğinizden emin olun.
- İsteğe bağlı: Projenizi hemen eylemler konsolundan kaldırmak için, bir proje bölümünde listelenen adımları tamamlayın. Bu adımı tamamlamazsanız, projeniz yaklaşık 30 gün sonra otomatik olarak kaldırılır.
En son duyurularımızı izlemeye devam etmek için Twitter'da @ActionSonsongoogle & @Firebase'i takip edin ve yaptıklarınızı paylaşmak için #Googleio'ya tweet atın!