1. Genel Bakış
Google Asistan geliştirici platformu, Google Asistan'ın işlevselliğini akıllı hoparlörler, telefonlar, arabalar, TV'ler ve kulaklıklar dahil olmak üzere 1 milyardan fazla cihazda genişletmek için yazılım oluşturmanıza olanak tanır. Kullanıcılar, alışveriş yapma veya araç rezervasyonu yapma gibi işlemleri gerçekleştirmek için Asistan ile etkileşime girer. Geliştirici olarak, kullanıcılar ile kendi üçüncü taraf karşılama hizmetiniz arasında keyifli ve etkili sohbet deneyimleri oluşturup yönetmek için Asistan geliştirici platformunu kolayca kullanabilirsiniz.
Bu codelab'de Google Asistan, Cloud Functions ve Cloud Firestore ile geliştirme yapmaya yönelik orta düzey kavramlar ele alınmaktadır. Bu codelab'de, kullanıcılardan kelimelerin yazımını istemek için Google Asistan'ı kullanan "Yazım Alıştırması" adlı bir oyun oluşturacaksınız.
Ne oluşturacaksınız?
Bu codelab'de, aşağıdaki işlevlere sahip gelişmiş bir oyun oluşturacaksınız:
- Kullanıcıdan yazım yanıtları alır ve değere bağlı olarak sohbet istemlerini değiştirir.
- Kelimenin tanımını yaparak veya kelimeyi tekrarlayarak kelimenin yazımıyla ilgili ipuçları veriyor.
- Kullanıcının kelimeyi heceledikten sonra Asistan ile tekrar etkileşim kurabilmesi için oyun döngüsü oluşturur.
Geliştirmeye başlamadan önce "Ok Google, Spelling Practice ile konuş" diyerek Google Asistan özellikli cihazınızda canlı Action ile etkileşime geçebilirsiniz. Geri gelen bir kullanıcının bu işlemdeki varsayılan yolu aşağıdaki etkileşim gibi görünür:
Bu codelab'i tamamladığınızda, tamamlanan İşleminiz aşağıdaki sohbet akışına sahip olur:
Neler öğreneceksiniz?
- Cloud Firestore ile etkileşim kurma
- Kullanıcıdan veri toplamak için yuvaları kullanma
- Kullanıcı girişini işleme ve yanıt döndürme
- Bir sahneye mantık eklemek için koşulları kullanma
- Oyun döngüsü ekleme
Gerekenler
Bu codelab'in ön koşulları şunlardır:
- Google Chrome gibi bir web tarayıcısı
- Cloud Functions işlevleri yazmak için bir IDE.
- Bir ödeme yöntemi. Bu codelab'de, projenizin Firebase Blaze fiyatlandırma planında olmasını gerektiren Cloud Functions for Firebase kullanılmaktadır ( Daha fazla bilgi).
- Kabuk komutlarını çalıştırmak için bir terminal
- Node.js 10 veya sonraki sürümler
2. İşlev kodunu alma
GitHub deposunu komut satırından klonlayın:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Firebase projesi oluşturma ve uygulamanızı ayarlama
Firebase projesi oluşturma
- Firebase'de oturum açın.
- Firebase konsolunda Proje ekle'yi (veya Proje oluştur'u) tıklayın, ardından Firebase projenizi adlandırın
Spelling-Practice
.
- Proje oluşturma seçeneklerini tıklayın. İstenirse Firebase şartlarını kabul edin. Bu uygulama için Analytics'i kullanmayacağınızdan Google Analytics'i ayarlamayı atlayın.
Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
Blaze fiyatlandırma planına yükseltme
Cloud Functions for Firebase'i kullanmak için Firebase projenizi Blaze fiyatlandırma planına yükseltmeniz gerekir. Bu durumda, projenize bir Google Cloud Faturalandırma hesabı bağlarsınız. Bu işlem için kredi kartı veya başka bir ödeme yöntemi sağlamanız gerekir.
Blaze planındaki projeler de dahil olmak üzere tüm Firebase projeleri, Cloud Functions'ın ücretsiz kullanım kotalarına erişmeye devam edebilir. Bu codelab'de belirtilen adımlar, ücretsiz kullanım sınırları içinde yer alı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ı) alınır.
4. Firebase CLI'yı yükleme
Firebase CLI (komut satırı arayüzü), Cloud Functions'ınızı dağıtmanıza olanak tanır.
İşletim sisteminize ve kullanım alanınıza bağlı olarak Firebase CLI'yı 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'yı yükleyin veya yükseltin:
$ npm -g install firebase-tools
- Aşağıdaki komutu çalıştırarak CLI'nın doğru şekilde yüklendiğini doğrulayın:
$ firebase --version
Firebase CLI sürümünün 9.0.0 veya sonraki bir sürüm olduğundan emin olun. Böylece, Cloud Functions için gereken en yeni özelliklerin tümüne sahip olursunuz. Aksi takdirde, yukarıda gösterildiği gibi yükseltmek için npm install -g firebase-tools komutunu çalıştırın.
- Aşağıdaki komutu çalıştırarak Firebase CLI'yi yetkilendirin:
$ firebase login
- Spelling-functions-start dizininden Firebase projenizi kullanmak için Firebase CLI'yı ayarlayın. Aşağıdaki komutu çalıştırın, proje kimliğinizi seçin ve talimatları uygulayın. İstendiğinde, örneğin
codelab
gibi bir takma ad seçebilirsiniz.
$ firebase use --add
5. İşlevler dizini
Şimdi, Spelling Practice oyununun arka ucunu oluşturmak için Cloud Functions için Firebase SDK'yı kullanarak işlevsellik ekleyeceksiniz.
Cloud Functions, sunucu kurmanıza gerek kalmadan bulutta çalışan kodlara sahip olmanızı sağlar. Bu codelab'de, Firebase Authentication, Cloud Storage ve Firebase Realtime Database etkinliklerine tepki veren işlevleri nasıl oluşturacağınız gösterilecektir. İşe kimlik doğrulama ile başlayalım.
Cloud Functions için Firebase SDK'yı kullanırken işlevler kodunuz (varsayılan olarak) functions
dizininde yer alır. İşinizi kolaylaştırmak için kodunuzun yerleştirileceği functions/index.js
dosyasını sizin için oluşturduk. Devam etmeden önce functions
dizinini inceleyebilirsiniz.
$ cd functions $ ls
İşlev kodunuz da 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
gerektirir.
Node.js hakkında bilginiz yoksa codelab'e devam etmeden önce bu konuda daha fazla bilgi edinmeniz faydalı olacaktır.
package.json
dosyasında zaten iki zorunlu bağımlılık listeleniyor: Cloud Functions için Firebase SDK ve Firebase Admin SDK. Bunları yerel olarak yüklemek için functions
dizininden npm install
komutunu çalıştırın:
$ npm install
Şimdi index.js
dosyasına 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 aktaracak, ardından TODO'ların yerine dört işlev yazacaksınız. Modülleri içe aktarmak için codelab'in sonraki adımına geçin.
6. Gerekli modülleri içe aktarın
Bu codelab için üç modül gerekir.
firebase-functions
modülü, Cloud Functions'ımız için tetikleyiciler yazmamıza olanak tanır.firebase-admin
modülü, Firebase platformunu yönetici erişimi olan bir sunucuda kullanmamıza (ör. Cloud Firestore'a yazmak için) olanak tanır.- Actions SDK Node.js Fulfillment Library, 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 Admin SDK, Cloud Functions ortamına veya başka bir Google Cloud kapsayıcısına dağıtıldığında otomatik olarak yapılandırılabilir. Aşağıdaki değişikliklerde admin.initializeApp();
olarak adlandırılan özellikler şunlardır:
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 de Asistan İşlemleri'ni desteklemek için işlevleri kullanarak iş mantığı ekleyelim.
7. İşlevler oluşturma
Kelime tanımlarını alıp Cloud Firestore'a yazma
Kelime tanımlarını almak için dictionaryapi.dev
herkese açık API'yi kullanacaksınız.
index.js
dosyasında, getWordDetailsFromDictionaryAPI
için yapılacaklar listesini aşağıdakilerle 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
Ardından, Cloud Firestore'da yeni bir doküman oluşturulduğunda tetiklenen bir Cloud Functions işlevi oluşturacaksınız. Hemen yukarıda yazdığımız getWordDetailsFromDictionaryAPI
işlevi aracılığıyla kelime tanımlarını almak için dictionaryapi.dev
API'sini çağırır.
index.js
dosyasında, createSpellingPracticeWord
için yapılacaklar listesini aşağıdakilerle 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 kelime listesi alma
Asistan için Cloud Firestore'dan yazım alıştırması kelimelerinin listesini alan bir Cloud Function yazabilirsiniz. Bunun için uygulama işleyiciyi kullanırız.
index.js
dosyasında, getSpellingWordList
için yapılacaklar listesini aşağıdakilerle değiştirin.
Bu işlevi özel app.handle
'ye eklemek, işlevi Asistan'dan erişilebilir hale getirmenin 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 kelime alma
Kelime listesindeki bir sonraki heceleme kelimesini döndüren bir Cloud Functions işlevi yazabilirsiniz.
index.js
dosyasında, getSpellingWord
için yapılacaklar listesini aşağıdakilerle 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'); });
Oyunun kelimeyi tekrar etmesini etkinleştirme
Oyun için mevcut kelimeyi tekrarlayan bir Cloud Functions işlevi yazabilirsiniz.
index.js
dosyasında, repeatSpellingWord
için yapılacaklar listesini aşağıdakilerle 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ı öğrenme
Oyun için mevcut kelimenin tanımını sağlayan bir Cloud Functions işlevi yazabilirsiniz.
index.js
dosyasında, definitionOfSpellingWord
için yapılacaklar listesini aşağıdakilerle 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 etme
Kullanıcının, oyundaki mevcut kelimenin nasıl yazılacağıyla ilgili yanıtını doğrulayan bir Cloud Functions işlevi yazabilirsiniz.
index.js
dosyasında, verifySpellingWord
için yapılacaklar listesini aşağıdakilerle 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ğıtma
Cloud Functions işlevleriniz yalnızca Firebase'e dağıttıktan sonra etkin olur.
spelling-functions-start
dizininin kökünden aşağıdaki komutu çalıştırın:
$ firebase deploy --only functions
Görmeniz gereken konsol çıkışı şudur:
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şlevinin HTTP uç nokta URL'sini not edin. Uç noktayı almak için Firebase Console'u açın ve spelling-practice projesini tıklayın. İşlevler uç noktasını görüntülemek için İşlevler kontrol panelini açın.
Gerekli tüm işlevleri ekleme işlemini tamamladınız. Şimdi Cloud Firestore'u ayarlamaya geçelim.
8. Cloud Firestore'u etkinleştirin
Cloud Firestore'u etkinleştirmeniz gerekir.
Firebase konsolunun Build (Oluştur) bölümünde Firestore'u tıklayın. Ardından Veritabanı oluştur'u tıklayın.
Cloud Firestore'daki verilere erişim, güvenlik kurallarıyla kontrol edilir. Başlamak için öncelikle verilerle ilgili bazı temel kurallar belirlemeniz gerekir. Firestore'u tıklayın ve ardından Firebase konsolunun Kurallar sekmesinde aşağıdaki kuralları ekleyin, ardından Yayınla'yı tıklayın.
Aşağıdaki kurallar, veri erişimini oturum açmış kullanıcılarla sınırlandırır. Bu sayede, kimliği doğrulanmamış kullanıcıların okuma veya yazma işlemleri yapması engellenir.
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'a yazım sözcükleri verileri ekleme
Bu adımda, Asistan (ve oyun) için kelime listesi oluşturabilmek amacıyla heceleme kelimeleri verilerini Cloud Firestore'a yazacaksınız.
Cloud Firestore verileri koleksiyonlar, belgeler, alanlar ve alt koleksiyonlar halinde yapılandırılır. Oyundaki her kelime, wordlist
adlı üst düzey koleksiyonda kendi dokümanı olarak saklanır. Firestore koleksiyonundaki her yeni doküman için Dictionary API hizmetinden kelime ayrıntılarını almak üzere createSpellingPracticeWord işlevi tetiklenir.
Cloud Firestore koleksiyonu oluşturma
- Firebase konsolunda Cloud Firestore bölümüne gidin.
- + Koleksiyonu başlat'ı tıklayın.
- Koleksiyon kimliği metin kutusuna
wordlist
girip Sonraki'yi tıklayın.
Ardından, sözleşme kelimesi için bir doküman oluşturacağız.
- Document ID (Doküman Kimliği) metin kutusuna
agreement
girin. - Alan metin kutusuna
word
, Değer metin kutusuna iseagreement
yazın. - Kaydet'i tıklayın.
Bu belgeyi Cloud Firestore'a eklediğinizde, kelimenin tanım ayrıntılarını getirmek için createSpellingPracticeWord işleviniz tetiklenir. Her kelime için yeni bir belge oluşturarak daha fazla kelime ekleyin (örneğin: hayranlık, araba, doğru, söyle, daha iyi, işe gitmek, ...).
10. Google Asistan'ı kurma
Aşağıdaki bölümlerde, Google Asistan geliştirme ortamınızı nasıl ayarlayacağınız ve İşlemler projenizi nasıl oluşturacağınız açıklanmaktadır.
Google izin ayarlarınızı kontrol etme
Bu codelab'de oluşturduğunuz işlemi test etmek için simülatörün işleminize erişebilmesi için gerekli izinleri etkinleştirmeniz gerekir. İzinleri etkinleştirmek için aşağıdaki adımları uygulayın:
- 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 bölümünde, Chrome geçmişini ve Google hizmetlerini kullanan site, uygulama ve cihazlardaki etkinlikleri ekle seçeneğinin yanındaki onay kutusunu işaretleyin.
Actions projesi oluşturma
Actions projeniz, Action'ınız için bir kapsayıcıdır. Bu codelab için Actions projenizi oluşturmak üzere aşağıdaki adımları uygulayın:
- Actions Console'u açın.
- Yeni proje'yi tıklayın.
- Hizmet şartlarını kabul etme
- Firebase konsolunu kullanarak oluşturduğunuz
spelling-practice-codelab
öğesini yazın veya seçin. (Bu 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 işlem oluşturmak istiyorsunuz? ekranında Özel kartını seçin.
- İleri'yi tıklayın.
- Boş proje kartını seçin.
- Derlemeye başla'yı tıklayın.
- Görünen ad olarak Yazım Alıştırması'nı girin ve kaydet'i tıklayın.
Kullanıcılar, çağırma yoluyla İşleminizle sohbet başlatır. Örneğin, kullanıcılar "Ok Google, Spelling Practice ile konuş" gibi bir ifade söyleyerek İşleminizi çağırabilir. Burada Spelling Practice, görünen addır.
İşleminizi üretime dağıtmak istiyorsanız işleminizin bir görünen adı olmalıdır. Ancak İşleminizi test etmek için görünen adı tanımlamanız gerekmez. Bunun yerine, İşleminizi çağırmak için simülatörde "Test uygulamamla konuş" ifadesini kullanabilirsiniz.
İstek karşılamayı yapılandırın
Bu codelab'de daha önce yazdığınız ve dağıttığınız Cloud Functions'ın etkinlik işleyicilerini Asistan'a bağlamanız gerekir.
Yerine getirme ayarlarınızı yapılandırmak için aşağıdaki adımları uygulayın:
- Yan gezinme çubuğunda Webhook'u tıklayın.
- Karşılama seçeneği olarak Https uç noktası'nı seçin:
- İşlevinizin uç noktasının URL'sini HTTPs uç noktası metin kutusuna girin ve Kaydet'i tıklayın.
Sonraki bölümde, İşlemler Konsolu'nda ana çağırma işleminizin istemini özelleştireceksiniz.
Ana çağırma ifadesini ayarlama
Kullanıcı, İşleminizi çağırdıktan sonra ne olacağını tanımlamak için ana çağırmayı düzenlemeniz gerekir.
Actions Builder, varsayılan olarak çağırma işleminiz tetiklendiğinde genel bir istem sağlar ("Ana çağırmayı tanımlayarak İşleminizi oluşturmaya başlayın.").
İşleminiz çağrıldığında İşleminizin kullanıcıya geri gönderdiği istemi değiştirmek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Ana çağırma'yı tıklayın.
Call your webhook
seçeneğini işaretleyin ve metin kutusuna etkinlik işleyici 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.
Ana çağırmayı simülatörde test etme
Actions Console, İşleminizi test etmek için simülatör adlı bir web aracı sunar. Arayüz, donanım cihazlarını ve ayarlarını simüle eder. Böylece, Akıllı Ekran, telefon, hoparlör veya KaiOS'te çalışıyormuş gibi İşleminizle etkileşimde bulunabilirsiniz.
İşleminizin ana çağırma ifadesini simülatörde test etmek için aşağıdaki adımları uygulayın:
- Simülatöre gitmek için üst gezinme çubuğunda Test'i tıklayın.
- İşleminizi simülatörde çağırmak için sol üstteki giriş alanına
Talk to Spelling Practice
yazın ve klavyenizde Enter tuşuna basın.
İşleminizin ana çağırma ifadesini tetiklediğinizde Asistan, özelleştirilmiş karşılama mesajınızla yanıt verir. Bu noktada, Asistan karşılama mesajıyla yanıt verdikten sonra görüşme sona erer.
Olay günlüklerini görüntüleme
Test sekmesindeyken sağdaki panelde, görüşme geçmişini etkinlik günlükleri olarak gösteren etkinlik günlükleri yer alır. Her etkinlik günlüğünde, görüşmenin o dönüşünde gerçekleşen etkinlikler gösterilir. Etkinlik günlüğünü görüntülemek için etkinliğin önündeki gri simgeyi tıklayın.
İşleminizde şu anda hem kullanıcının girişini ("Talk to Spelling Practice") hem de İşleminizin yanıtını gösteren bir etkinlik günlüğü var. Aşağıdaki ekran görüntüsünde İşleminizin etkinlik günlüğü gösterilmektedir:
11. Yazım alıştırması için görüşme oluşturma
Kullanıcılar İşleminizi çağırdıktan sonra ne olacağını tanımladığınıza göre, İşleminizin görüşmesinin geri kalanını oluşturabilirsiniz. Yazım Alıştırması dört sahneden oluşur ve çalıştırılabilmesi için her sahneyi etkinleştirmeniz gerekir. Bir sahneyi etkinleştirmenin en yaygın yolu, İşleminizi bir kullanıcı bir sahnedeki kullanıcı amacına uygun şekilde yapılandırmaktır. Bu durumda, amaç başka bir sahneye geçişi tetikler ve bu sahneyi etkinleştirir.
Ana çağırmadan başlangıç sahnesine geçiş
Bu bölümde, Start
adlı yeni bir sahne oluşturursunuz. Bu sahne, kullanıcıya Yazım Alıştırması'nı oynamaya başlamak isteyip istemediğini soran bir istem gönderir. Ayrıca, ana çağırmadan yeni Start
sahnesine bir geçiş ekleyin.
Bu sahneyi oluşturmak ve sahneye geçiş eklemek için aşağıdaki adımları uygulayın:
- Üst gezinme menüsünde Geliştir'i tıklayın. Ardından, soldaki gezinme menüsünde Ana çağırma'yı tıklayın.
- Sağdaki Geçiş bölümünde açılır menüyü tıklayın, ardından metin alanına
Start
yazın.
- Ekle'yi tıklayın. Bu işlem,
Start
adlı bir sahne oluşturur ve İşleme, kullanıcıya karşılama istemini sunduktan sonraStart
sahnesine geçmesini söyler. - Sahne listesini göstermek için soldaki gezinme panelinde Sahneler'i tıklayın.
- Sahneler bölümünde
Start
sahnesini görmek için Başlat'ı tıklayın. Start
sahnesinin On enter (Girişte) bölümünde + simgesini tıklayın.- İstemleri gönder'i seçin.
speech
alanındaki cümleyi (Enter the response that users will see or hear...
) kullanıcıya sorulacak 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ının tıklayabileceği ve İşleminizin kullanıcı girişi olarak işleyeceği öneriler sunar. Bu bölümde, az önce yapılandırdığınız istemin altında görünen öneri çipleri ekleyebilirsiniz (Do you want to play
Spelling Practice
?
) ekranlı cihazlardaki kullanıcıları desteklemek için.
Start
sahnesinin istemine öneri çipleri eklemek için aşağıdaki adımları uygulayın:
Start
sahnesinde, kod düzenleyicinin altındaki önerileri tıklayın. Bu işlemle tek bir öneri çipi eklenir.title
alanındaSuggested Response
değerini'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 snippet'e benzemelidir: - Kaydet'i tıklayın.
İşleminizi simülatörde test etme
Bu noktada, İşleminiz ana çağırmadan Başlat sahnesine geçiş yapmalı ve kullanıcıya devam etmek isteyip istemediğini sormalıdır. Öneri çipleri, simüle edilmiş ekranda da görünmelidir.
İşleminizi simülatörde test etmek için aşağıdaki adımları uygulayın:
- Simülasyon aracına gitmek için gezinme çubuğunda Test'i tıklayın.
- İşleminizi simülatörde test etmek için Giriş alanına
Talk to Spelling Practice
yazın. - Enter tuşuna basın. İşleminiz,
Main invocation
istemi ve eklenenStart
sahne istemiyle yanıt vermelidir: "Yazım Alıştırması'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 istiyor musunuz?".
Aşağıdaki ekran görüntüsünde bu etkileşim gösterilmektedir:
- İsteme yanıt vermek için
Yes
,No
veyaHelp with Phonetics
öneri çipini tıklayın. ("Evet" veya "Hayır" ya da "Fonetikle ilgili yardım" da diyebilir veya Giriş alanınaYes
,No
ya daHelp with Phonetics
girebilirsiniz.)
İsteme yanıt verdiğinizde İşleminiz, girişinizi anlayamadığını belirten bir mesajla yanıt veriyor: "Üzgünüm, anlayamadım. Tekrar deneyebilir misiniz?" İşleminizi henüz "Evet" veya "Hayır" girişini anlayıp yanıtlayacak şekilde yapılandırmadığınız için İşleminiz, girişinizi NO_MATCH
niyetiyle eşleştiriyor.
NO_MATCH
sistem amacı, varsayılan olarak genel yanıtlar sağlar ancak bu yanıtları özelleştirerek kullanıcının girişini anlamadığınızı belirtebilirsiniz. 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 telaffuz amaçları ekleme
Kullanıcılar artık İşleminizin sorduğu soruya yanıt verebildiğinden İşleminizi, kullanıcıların yanıtlarını ("Evet", "Hayır" veya "Fonetikle İlgili Yardım") anlayacak şekilde yapılandırabilirsiniz. Aşağıdaki bölümlerde, kullanıcı "Evet" veya "Hayır" ya da "Fonetikle ilgili yardım" dediğinde eşleşen kullanıcı amaçları oluşturacak ve bu amaçları Start
sahnesine ekleyeceksiniz. Sistem amacını yes
kullanırız ve başka amaçlar oluştururuz.
no
amacı oluşturma
Şimdi, kullanıcı oyunu oynamak istemediğinde onu anlamak ve yanıt vermek için no
niyetini oluşturmanız gerekiyor. Bu amacı oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaç listesini açmak için gezinme bölümünde Özel Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
no
ad verin ve Enter tuşuna basın. no
amaç sayfasını açmak için hayır'ı tıklayın.- Eğitim ifadeleri ekle bölümünde, İfade Girin metin kutusunu tıklayın ve aşağıdaki ifadeleri girin:
No
N
I don't want
nope
- Kaydet'i tıklayın.
Start
sahnesine no
amacı ekle
Artık İşlem, kullanıcının "hayır" veya "hayır"'a benzer bir ifade (ör. "yok") kullandığını anlayabilir. Kullanıcı, Start
istemine ("Yazım Alıştırması'na hoş geldiniz.no
Start
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 istiyor musunuz?").
Start
sahnesi için bu amacı eklemek üzere aşağıdaki adımları uygulayın:
- Gezinme bölümünde Başlangıç sahnesini tıklayın.
- Kullanıcı amacını işleme'nin yanındaki
Start
sahnesinde + (artı işareti) simgesini tıklayın. - Amaç bölümündeki açılır listeden hayır'ı seçin.
- İstemleri gönder'i tıklayın ve
speech
alanını aşağıdaki metinle güncelleyin:Good Bye
.
Düzenleyicinizdeki kod aşağıdaki snippet'e benzemelidir:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Geçiş bölümündeki açılır menüden Görüşmeyi sonlandır'ı seçin.
- Kaydet'i tıklayın.
Simülatörde no
amacını test etme
Bu noktada, İşleminiz kullanıcının oyunu oynamak istemediğini anlar ve uygun yanıtı döndürür.
Bu amacı simülatörde test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanına
Talk to Spelling Practice
yazıpEnter
tuşuna basın. - Giriş alanına
No
yazıp Enter tuşuna basın. Alternatif olarak, Öneri yok çipini tıklayın.
YES
sistem niyetini Start
sahnesine ekle
Şimdi, kullanıcı Start
istemine olumlu yanıt verdiği için Start
sahnesine SYSTEM amacını "YES" olarak ekleyeceğiz ("Yazım Alıştırması'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 istiyor musunuz?").
Bu kullanıcı amacını Start
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Başlangıç sahnesini tıklayın.
Start
sahnesinde Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.- Tüm Sistem Amaçları bölümünde, amaç açılır listesinde EVET'i seçin.
- Webhook'unuzu çağırın'ı 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 Sohbeti sonlandır'ı seçin.
- Kaydet'i tıklayın.
Simülatörde YES
amacını test etme
Bu noktada, işleminiz kullanıcının oyunu oynamak istediğini anlar ve uygun yanıtı döndürür.
Bu amacı simülatörde test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- İşleminizi simülatörde test etmek için
Talk to Spelling Practice
yazıp Enter tuşuna basın. - Giriş alanına
Yes
yazıp Enter tuşuna basın. Alternatif olarak,Yes
öneri çipini tıklayın.
İşleminiz, tüm yazım alıştırması kelimelerinin listesini getirir ve bunları oturumda saklar. Ardından, YES
amacı için End conversation
geçişini seçtiğinizden oturum sona erer.
Phonetics
amacı oluşturma
Phonetics
amacını oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaç listesini açmak için gezinme bölümünde Özel Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
phonetics
adını verin veEnter
tuşuna basın. phonetics
amaç sayfasını açmak içinphonetics
amacını tıklayın.- Eğitim ifadeleri ekle bölümünde İfade Girin metin kutusunu 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ı ekle
Artık İşlem, kullanıcının "fonetik" amaçlı bir ifade kullandığını anlayabiliyor. Kullanıcı, Start
istemine ("Yazım Alıştırması'na hoş geldiniz.phonetics
Start
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 istiyor musunuz?").
Bu kullanıcı amacını Start
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Başlangıç sahnesini tıklayın.
- Kullanıcı amacını işleme'nin yanındaki
Start
sahnesinde + (artı işareti) simgesini tıklayın. - Amaç açılır listesinde fonetik'i seçin.
- Geçiş bölümünde açılır menüyü tıklayın ve Sohbeti sonlandır'ı seçin.
- Kaydet'i tıklayın.
Başlangıç sahnesinden Yazım sahnesine geçiş
Bu bölümde, kullanıcıya fonetik alfabeyi kullanarak kelimeyi heceleme istemi gönderen Spelling (Yazım) adlı yeni bir sahne oluşturursunuz.
Bu sahneyi oluşturmak ve sahneye geçiş eklemek için aşağıdaki adımları uygulayın:
- Üst gezinme menüsünde Geliştir'i tıklayın. Ardından, soldaki gezinme panelinde Sahneyi başlat'ı tıklayın.
- Kullanıcı amacını işleme bölümünde
when actions.intent.YES is matched
simgesini tıklayın ve sağdaki geçiş bölümünde açılır menüyü tıklayıp metin alanınaSpelling
yazın. - Ekle'yi tıklayın. Bu işlem,
Spelling
adlı bir sahne oluşturur ve YES niyetiyle eşleşme gerçekleştikten sonra İşlem'eSpelling
sahnesine geçmesini söyler. - Sahne listesini göstermek için soldaki gezinme menüsünde Sahneler'i genişletin.
- Sahneler bölümünde,
Spelling
sahnesini görmek için Yazım'ı tıklayın. Spelling
sahnesinin On enter (Girişte) bölümünde + simgesini tıklayın.- Webhook'unuzu çağırın'ı tıklayın ve etkinlik işleyici metin kutusuna getSpellingWord yazın.
- İstemleri gönder'i seçin.
speech
alanındaki (Enter the response that users will see or hear...
) cümlesini {} ile değiştirin. Gerçek istem, webhook tarafından doldurulur.
Öneri çipleri, kullanıcının tıklayabileceği ve İşleminizin kullanıcı girişi olarak işleyeceği öneriler sunar.
Spelling
sahnesinin istemine öneri çipleri eklemek için aşağıdaki adımları uygulayın:
Spelling
sahnesinde, kod düzenleyicinin altındaki önerileri tıklayın. Bu işlem üç öneri çipi ekler.title
alanındaSuggested Response
değerini'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 snippet'e benzemelidir: - Kaydet'i tıklayın.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
amacı oluşturma
repeat
amacını oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaç listesini açmak için gezinme bölümünde Özel Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
repeat
adını verin veEnter
tuşuna basın. definition
amaç sayfasını açmak içinrepeat
amacını tıklayın.- Eğitim ifadeleri ekle bölümünde İfade Girin metin kutusunu 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ı ekle
Artık işlem, kullanıcının "tekrar et" niyetini ifade ettiğini anlayabiliyor. Kullanıcı, Spelling
istemine ("Kelimeleri fonetik alfabeyi kullanarak heceleyin") yanıt verdiğinden repeat
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı amacını Spelling
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
Spelling
sahnesinde Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.- Amaç açılır listesinde repeat'i (tekrar) seçin.
- Webhook'unuzu çağırın'ı işaretleyin ve kelime tanımını almak için etkinlik işleyici metin kutusuna repeatSpellingWord yazın.
- İstemleri gönder'i işaretleyin.
speech
alanındaki (Enter the response that users will see or hear...
) cümleyi "'" ile değiştirin. Gerçek istem webhook tarafından doldurulur.
"Tekrar eşleştiğinde" bölümüne öneri çipleri ekleme
- Kullanıcı amacını işleme bölümündeki "Tekrar eşleştiğinde" altında, kod düzenleyicinin altındaki öneriler'i tıklayın. Bu işlem üç öneri çipi ekler.
title
alanındaSuggested Response
değerini'Skip'
ile değiştirin.- Aynı biçimlendirmeyi kullanarak
'Quit'
başlıklı bir öneri çipini manuel olarak ekleyin.Kodunuz aşağıdaki snippet'e benzemelidir:
suggestions: - title: 'Skip' - title: 'Quit'
- Kaydet'i tıklayın.
definition
amacı oluşturma
definition
amacını oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaç listesini açmak için gezinme bölümünde Özel Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
definition
adını verin veEnter
tuşuna basın. definition
amaç sayfasını açmak içindefinition
amacını tıklayın.- Eğitim ifadeleri ekle bölümünde İfade Girin metin kutusunu 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ı ekle
Artık İşlem, kullanıcının "tanım" amacını ifade ettiğini anlayabiliyor. Kullanıcı, Spelling
istemine ("Kelimeleri fonetik alfabeyi kullanarak heceleyin") yanıt verdiğinden definition
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı amacını Spelling
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
Spelling
sahnesinde Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.- Amaç açılır listesinde tanım'ı seçin.
- Webhook'unuzu çağırın'ı işaretleyin ve kelime tanımını almak için etkinlik işleyici metin kutusuna definitionOfSpellingWord yazın.
- İstemleri gönder'i işaretleyin.
speech
alanındaki cümleyi (Enter the response that users will see or hear...
) ‘‘` ile değiştirin. Gerçek istem, webhook tarafından doldurulur.
Webhook yanıtına öneri çipleri ekleme
Start
sahnesinde, kod düzenleyicinin altındaki öneriler'i tıklayın. Bu işlem üç öneri çipi ekler.title
alanındaSuggested Response
değerini'Skip'
ile değiştirin.- Aynı biçimlendirmeyi kullanarak
'Quit'
başlıklı bir öneri çipini manuel olarak ekleyin.Kodunuz aşağıdaki snippet'e benzemelidir:
suggestions: - title: 'Skip' - title: 'Quit'
- Kaydet'i tıklayın.
skip
amacı oluşturma
skip
amacını oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaçlar listesini açmak için gezinme bölümünde Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
skip
adını verin veEnter
tuşuna basın. skip
amaç sayfasını açmak içinskip
amacını tıklayın.- Eğitim ifadeleri ekle bölümünde İfade Girin metin kutusunu tıklayın ve aşağıdaki ifadeleri girin:
next word
go next
next
skip
skip word
- Kaydet'i tıklayın.
Spelling
sahnesine Skip
amacı ekle
Artık işlem, kullanıcının "atlama" niyetini ifade ettiğini anlayabiliyor. Kullanıcı, Spelling
istemine ("Kelimeleri fonetik alfabeyi kullanarak heceleyin") yanıt verdiğinden skip
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı amacını Spelling
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
Spelling
sahnesinde Kullanıcı amacını işleme'nin yanındaki + (artı işareti) simgesini tıklayın.- Amaç açılır listesinde atla'yı seçin.
- Sağdaki Geçiş bölümünde, açılır menüyü tıklayın ve
Spelling
simgesini seçin .
- Kaydet'i tıklayın.
quit
amacı oluşturma
Quit
amacını oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Amaçlar listesini açmak için gezinme bölümünde Amaçlar'ı tıklayın.
- Niyet listesinin sonundaki + (artı işareti) simgesini tıklayın. Yeni amaca
Quit
adını verin veEnter
tuşuna basın. Quit
amacını tıklayarak tanım amacının sayfasını açın.- Eğitim ifadeleri ekle bölümünde İfade Girin metin kutusunu tıklayın ve aşağıdaki ifadeleri girin:
I quit
Goodbye
Cancel
Exit
Quit
- Kaydet'i tıklayın.
Spelling
sahnesine Quit
amacı ekle
Artık İşlem, kullanıcının "çıkma" amacını ifade ettiğini anlayabiliyor. Kullanıcı, Spelling
istemine ("Kelimeleri fonetik alfabeyi kullanarak heceleyin") yanıt verdiğinden quit
kullanıcı amacını Spelling
sahnesine ekleyebilirsiniz.
Bu kullanıcı amacını Spelling
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
Spelling
sahnesinde Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.- Amaç açılır listesinde quit (çık) seçeneğini belirleyin.
- Sağdaki Geçiş bölümünde, açılır menüyü tıklayın ve
End conversation
simgesini seçin . - Kaydet'i tıklayın.
phonetic_alphabet
türü oluşturma
Bu bölümde, kullanıcıların kelimeyi hecelemek için seçebileceği fonetik alfabe seçeneklerini belirten phonetic_alphabet
adlı yeni bir tür oluşturursunuz. Kullanıcıların benzer ifadeler kullanması ihtimaline karşı bu seçenekler için birkaç eş anlamlı kelime de 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 aşağıdaki adımları uygulayın:
- Gezinme menüsünde Geliştir'i tıklayın.
- Türler bölümünde + (artı işareti) simgesini tıklayın.
phonetic_alphabet
yazıpEnter
tuşuna basın.- Seçenekleri açmak için
phonetic_alphabet
simgesini tıklayın. - Bu Tür hangi değerleri destekleyecek? bölümünde Kelimeler ve eş anlamlılar seçeneğini belirleyin.
- Giriş ekle bölümüne aşağıdaki girişleri ve karşılık gelen değerleri girin:
a | alfa, apple, amsterdam |
b | bravo, butter, baltimore |
c | charlie, cat, casablanca |
d | delta, dog, denmark |
e | echo, edward, edison |
f | foxtrot, fox, florida (fokstrot, tilki, florida) |
g | golf, george, gallipoli |
sa | hotel, harry, havana |
i | india, ink, italia |
j | juliette, johnny, jerusalem |
k | kilo, king, kilogramme |
l | lima, love, london |
dk | mike, money, madagascar |
n | kasım, new york, nancy |
o | oscar, orange, oslo |
p | papa, paris, peter |
q | quebec, queen |
r | romeo, roma, robert |
sn | sierra, sugar, santiago |
t | tango, tommy, tripoli |
u | uniform, umbrella, uncle (üniforma, şemsiye, amca) |
v | victor, vinegar, Valencia |
w | whiskey, william, washington |
x | x-ray |
y | yankee, yellow, yorker |
z | zulu, zebra, zurich |
Anahtar-değer tablonuz aşağıdaki gibi görünmelidir:
- Kaydet'i tıklayın.
Alan doldurmayı yapılandırma
Ardından, Spelling sahnesinde yuva doldurmayı yapılandırmanız gerekir. Boşluk doldurma mantığını yapılandırmak için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
Spelling
sahnesinde Slot doldurma için + (artı işareti) simgesini tıklayın.- Enter slot name (Yuva adını girin) alanına yuva adı olarak
userresponse
ekleyin. - Select type (Tür seçin) açılır listesinde, yuva türü olarak phonetic_alphabet'i (fonetik alfabe) seçin.
- Bu alan, değer listesini kabul eder seçeneğini işaretleyin.
- Bu yer zorunludur'u işaretleyin.
- Yuva değeri geri yazma işlemini özelleştir seçeneğini belirleyin ve oturum parametresi metin kutusuna userresponse değerini girin.
- Kaydet'i tıklayın.
Spelling
ekranına koşul ekleme
Spelling
sahnesine koşul eklemek için aşağıdaki adımları uygulayın:
- Gezinme bölümünde Yazım sahnesini tıklayın.
- Koşul'un yanındaki
Spelling
sahnesinde + (artı işareti) simgesini tıklayın. - Koşul olarak
scene.slots.status == "FINAL"
değerini girin - Webhook'unuzu çağırın'ı işaretleyin ve kullanıcı yanıtını doğrulamak için etkinlik işleyici metin kutusuna verifySpellingWord yazın.
- İstemleri gönder'i işaretleyin.
speech
alanındaki (Enter the response that users will see or hear...
) cümleyi {} ile değiştirin. Gerçek istem, webhook tarafından doldurulur.
Webhook yanıtına öneri çipleri ekleme
Start
sahnesinde, kod düzenleyicinin altındaki öneriler'i tıklayın. Bu işlem üç öneri çipi ekler.title
alanındaSuggested Response
değerini'Next'
ile değiştirin.- Aynı biçimlendirmeyi kullanarak
'Quit'
başlıklı bir öneri çipini manuel olarak ekleyin.Kodunuz aşağıdaki snippet'e benzemelidir:
suggestions: - title: 'Next' - title: 'Quit'
- Kaydet'i tıklayın.
12. Yazım Alıştırması'nı simülatörde test etme
İşleminizi simülatörde test etmek için aşağıdaki adımları uygulayın:
- Simülasyon aracına gitmek için gezinme çubuğunda Test'i tıklayın.
- İşleminizi simülatörde test etmek için Giriş alanına
Talk to Spelling Practice
yazın. - Enter tuşuna basın. İşleminiz,
Main invocation
istemi ve eklenenStart
sahne istemiyle yanıt vermelidir: "Yazım Alıştırması'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 istiyor musunuz?". - Devam etmek için Evet deyin.
- Simülasyon aracı, hecelemek için kelime sesi çalacak
- Kelimeyi fonetik alfabelerle heceleyebilirsiniz. Örneğin, better (daha iyi) için "bravo echo tango tango echo romeo" deyin veya yazın.
- Simülatör, doğru veya yanlış yanıtı verir.
- Sonraki kelimeye geçmek için sonraki, oyun döngüsünden çıkmak için çık deyin.
13. Tebrikler
Tebrikler! Spelling Practice adlı oyununuzu başarıyla oluşturdunuz.
Cloud Firestore, Cloud Functions ve Google Asistan Action Builder'ı kullanarak oyun oluşturmak için gereken temel adımları öğrendiniz.
Kapsamınız
- Cloud Firestore ile etkileşim kurma
- Kullanıcıdan veri toplamak için yuvaları kullanma
- Kullanıcı girişini işleme ve yanıt döndürme
- Bir sahneye mantık eklemek için koşulları kullanma
- Oyun döngüsü ekleme
Ek öğrenme kaynakları
Google Asistan için İşlemler oluşturma hakkında bilgi edinmek üzere aşağıdaki kaynakları inceleyebilirsiniz:
- Google Asistan için İşlemler geliştirme dokümanları
- Örnek kod ve kitaplıklar için Actions on Google GitHub sayfası
- Google Asistan ile çalışan geliştiriciler için resmi Reddit topluluğu
- En iyi uygulamalar ve etkileşimli işlemlerle ilgili kurallar için Etkileşimli işlem tasarımı kuralları
- Cloud Firestore'a giriş
Projenizi temizleme [önerilir]
Olası ücretlerden kaçınmak için kullanmayı düşünmediğiniz projeleri kaldırmanız önerilir. Bu codelab'de oluşturduğunuz projeleri silmek için aşağıdaki adımları uygulayın:
- Firebase projenizi ve kaynaklarınızı silmek için Projeleri kapatma (silme) bölümünde listelenen adımları tamamlayın.
Dikkat: Google Cloud Console'un Ayarlar sayfasında silinecek doğru projeyi seçtiğinizden emin olun.
- İsteğe bağlı: Projenizi hemen Actions Console'dan kaldırmak için Proje silme bölümünde listelenen adımları uygulayın. Bu adımı tamamlamazsanız projeniz yaklaşık 30 gün sonra otomatik olarak kaldırılır.
En son duyurularımızdan haberdar olmak için Twitter'da @ActionsOnGoogle ve @Firebase'ı takip edin. Geliştirdiklerinizi paylaşmak için #GoogleIO hashtag'ini kullanarak tweet atın.