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ş yapmak veya araç çağırmak 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, Google Asistan ile geliştirme için orta düzeydeki kavramları kapsar ve 1. Düzey codelab'inde oluşturulan Action'ı temel alır. Bu codelab'e başlamadan önce 1. Seviye codelab'ini tamamlamanız önemle tavsiye edilir.
Bu codelab'de oluşturacağınız işlem, kullanıcılara seçtikleri yardıma göre Gryffinberg adlı efsanevi bir ülkede yaptıkları görevle ilgili kehanetlerini söyler.
Ne oluşturacaksınız?
Bu codelab'de, aşağıdaki işlevlere sahip gelişmiş bir Sohbet İşlemi oluşturacaksınız:
- Kullanıcıdan veri toplar ve değere bağlı olarak sohbet istemlerini değiştirir.
- Sohbeti ilerletmek için ek sorularla yanıt verir.
- Kullanıcının fal aldıktan sonra işlemle tekrar etkileşimde bulunabilmesi için oyun döngüsü oluşturur.
Geliştirmeye başlamadan önce Google Asistan özellikli cihazınızda canlı Action ile etkileşim kurmak için "Ok Google, Fate and Fortune ile konuş" diyebilirsiniz. Geri gelen bir kullanıcının bu işlemdeki varsayılan yolu aşağıdaki etkileşim gibi görünür:
Neler öğreneceksiniz?
- Kullanıcıdan veri toplamak için yuvaları kullanma
- Sahneye mantık eklemek için koşulları kullanma
- Oyun döngüsü ekleme
- Destekleyici yol ekleme
İhtiyacınız olanlar
Bu codelab'in ön koşulları şunlardır:
- Google Chrome gibi bir web tarayıcısı
- Tamamlanmış bir 1. Düzey İşlemler codelab projesi ( Actions Builder 1. Düzey'i kullanarak Google Asistan için İşlemler oluşturma)
Bu codelab'deki karşılama kodunu anlamak için JavaScript (ES6) hakkında bilgi sahibi olmanız şiddetle tavsiye edilir ancak zorunlu değildir.
2. Konuşma arayüzü oluşturmaya devam etme
İlk codelab'de, tek bir sahneye sahip basit bir Sohbet İşlemi oluşturmuştunuz: Start
.
Bu codelab'de, İşleminizin görüşmesini genişletiyorsunuz. Aşağıdaki bölümlerde, işleminizi aşağıdaki gibi davranacak şekilde yapılandıracaksınız:
- Kullanıcı geleceği hakkında bilgi almak istediğinde yeni bir
Fortune
sahneye geçiş yapma - Kullanıcıya yolculuğu için hangi yardımı seçmek istediğini sorun.
- Kullanıcının seçimine göre özelleştirilmiş bir fal sunma
Fortune
sahnesi oluşturma
Bu bölümde Fortune
sahnesini oluşturur ve kullanıcının konuşma sırasında bu sahneye nasıl geçiş yapacağını tanımlarsınız.
Fortune
adlı yeni bir sahne oluşturmak için aşağıdaki adımları uygulayın:
- 1. seviye Actions projenizi açın.
- Gezinme çubuğunda Geliştir'i tıklayın.
- Sahneler bölümünde Başlangıç sahnesini tıklayın.
- Seçenekleri açmak için evet amacını (Evet eşleştiğinde kutusu) tıklayın.
- İstemi kaldırmak için İstemleri gönder'in işaretini kaldırın.
- Geçiş bölümünde açılır menüyü tıklayın, metin kutusunu tıklayın ve
Fortune
yazın. - Ekle'yi tıklayın. Bu işlemle
Fortune
adlı yeni bir sahne oluşturulur. Ayrıca, kullanıcı geleceğini öğrenmek istediğindeStart
sahnesindenFortune
sahnesine geçiş ekler.
Fortune
sahnesi için sohbet mantığını tanımlayın
Bu codelab'de, Fortune
sahnenizi kullanıcıya "Görevinde sana yardımcı olması için neyi seçersin: ejderha, çevirmen veya pusula?" diye soracak şekilde yapılandıracaksınız. Devam etmeden önce kullanıcıdan gerekli bilgileri toplamak için yuva doldurma adlı bir özellikten yararlanabilirsiniz.
İşleminiz üç yardımcının (ejderha, çevirmen ve pusula) falını veriyor. İşleminizi, kullanıcının girişindeki bu üç seçeneği tanımlayacak şekilde yapılandırmak için yeni bir tür oluşturmanız gerekir.
Kullanıcıdan istediğiniz bilgileri tanımlamak için bir sahnenin boşluk doldurma aşamasındaki türleri kullanabilirsiniz. NLU motoru, kullanıcı girişinde bir yuva eşleşmesi algıladığında yuvayı türü belirtilmiş bir parametre olarak ayıklar. Böylece, bir sahnede bu parametreyle mantıksal işlemler gerçekleştirebilirsiniz.
available_options
türü oluşturma
Bu bölümde, kullanıcıların isteme yanıt olarak seçebileceği üç seçeneği (ejderha, çevirmen ve pusula) belirten available_options
adlı yeni bir tür oluşturacaksınız. Ayrıca, kullanıcıların benzer bir şey söylemesi ihtimaline karşı bu seçenekler için birkaç eş anlamlı kelime tanımlarsınız. Daha sonraki bir bölümde, kullanıcının seçimini almak istediğinizi belirtmek için bir yuvaya available_options
türünü eklersiniz.
available_options
türünü oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Türler'i tıklayın.
- + (artı işareti) simgesini tıklayın,
available_options
yazın veEnter
tuşuna basın. - Seçenekleri açmak için
available_options
simgesini tıklayın.
Türler, bilgi anahtar/değer çiftleri olarak yapılandırılır. Burada anahtar, türün adıdır ve değerler bu anahtarın eş anlamlılarıdır. Anahtarı tanımladığınızda otomatik olarak değer olarak eklenir.
Kullanıcının seçebileceği üç seçeneği eklemek için aşağıdaki adımları uygulayın:
- Giriş ekle bölümüne gidin.
- Yeni giriş alanına
dragon
yazıpEnter
tuşuna basın. Bu işlem,dragon
anahtarı oluşturur. - Değer ekle alanına
hydra
yazıpEnter
tuşuna basarak bunu değer (eş anlamlı) olarak ekleyin. Ardından, bu adımılizard
değeri için tekrarlayın. - Geri kalan anahtarları ve ilgili değerleri ekleyin:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
,guide
- Kaydet'i tıklayın.
İşleminiz artık available_options
sembollerinin ejderha, çevirmen ve pusula olduğunu anlıyor ve bunlara karşılık gelen birkaç eş anlamlı kelimeyi de tanıyabiliyor.
Slot doldurmayı yapılandırma
Ardından, Fortune
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 çubuğundaki Sahneler bölümünde Fortune'u tıklayın.
Fortune
sahnesinde, Slot doldurma için + (artı işareti) simgesini tıklayın.- Enter slot name (Yuva adını girin) alanına yuva adı olarak
chosenOptions
ekleyin. - Select type (Tür seçin) açılır listesinde, yuva türü olarak
available_options
simgesini seçin. - Bu yer gereklidir onay kutusunu işaretleyin.
- İstem gönder'i seçin ve aşağıdaki mesajı ve öneri çipini ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
What do you choose to help you on your quest, a dragon, a
translator, or a compass?
suggestions:
- title: 'Dragon'
- title: 'Translator'
- title: 'Compass'
- Kaydet'i tıklayın.
Yuvaya available_options
türünü eklediniz. Bu tür, işleme devam etmeden önce kullanıcılardan toplamanız gereken bilgileri (yardım seçimi) İşleminize bildirir. Ayrıca, kullanıcı sahnenin yuva doldurma aşamasına ulaştığında istem kuyruğuna eklenen bir istem de yapılandırdınız.
Alanı chosenOptions
olarak adlandırdığınızda Alan değeri geri yazma işlemini özelleştir alanının aynı adla ($session.params.chosenOptions
) güncellendiğini unutmayın. Bu parametreye Actions Builder'da ve istemci kitaplığı aracılığıyla karşılama işleminizde bu adla erişebilirsiniz.
scene.slots.status == "FINAL"
koşulunu yapılandırma
Bir yuva eklediğinizde koşul scene.slots.status == "FINAL"
otomatik olarak koşul listesine eklenir.
scene.slots.status == "FINAL"
koşulu, yuva doldurma işleminin tamamlanıp tamamlanmadığını kontrol eder. Tüm yuvalar dolduğunda koşul, bir webhook'u tetikleyebilir, yeni bir sahneye geçiş yapabilir veya istem kuyruğuna istemler ekleyebilir.
Bu bölümde, scene.slots.status == "FINAL"
öğesini, yuvalar dolduğunda istem kuyruğuna istem ekleyecek şekilde yapılandıracaksınız.
Bu istemi FINAL
koşuluna eklemek için aşağıdaki adımları uygulayın:
- Seçenekler penceresini açmak için
scene.slots.status == "FINAL"
simgesini tıklayın. - İstem gönder'i seçin ve aşağıdaki istemi ekleyin:
candidates:
- first_simple:
variants:
- speech: You picked $session.params.chosenOptions.
- Kaydet'i tıklayın.
İşleminizi simülatörde test etme
Bu noktada, kullanıcının boşluğu doldurmak için hangi seçenekleri belirlemesi gerektiğini tanımlamış olursunuz. Kullanıcıdan bu bilgiyi aldıktan sonra İşleminiz, kullanıcının seçtiği belirli seçeneğe referans veren bir istem sağlamalıdır.
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanında
Talk to my test app
simgesini tıklayın veya yazın veEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. (Alternatif olarak, Evet öneri çipini tıklayabilirsiniz.)
dragon
simgesini tıklayın, yazın veya söyleyin. "Ejderhayı seçtiniz." istemini alırsınız.
Sonraki bölümde, kullanıcının seçebileceği her yardım için istemleri özelleştirirsiniz.
Koşulları kullanarak istemleri özelleştirme
Bu bölümde, kullanıcının seçebileceği her seçenek için koşullar ekler ve her koşul için özel bir istem eklersiniz.
dragon
falını özelleştirme
Koşulu güncellemek ve kullanıcı "ejderha"yı seçtiğinde gösterilecek istemi özelleştirmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Gezinme çubuğunda Fortune sahnesini tıklayın.
- Seçenekler penceresini açmak için
scene.slots.status == "FINAL"
simgesini tıklayın. - Durum ifadesini şu şekilde güncelleyin:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- İstemleri gönder'i seçin.
- İstemdeki aşağıdaki falı kod düzenleyiciye girin:
candidates:
- first_simple:
variants:
- speech: >-
The people of Gryffinberg will be awestruck by the beauty and power
of the ancient dragon. Much to your dismay, the townspeople fall
into dispute over who will receive the honor of riding the dragon
first. You return home from your quest without everlasting glory or
a dragon.
- Kaydet'i tıklayın.
Artık kullanıcılar "ejderha" dediğinde veya buna benzer bir ifade kullandığında İşleminiz, bu seçime göre bir fal sunuyor. Ardından, kalan iki seçimi eklersiniz.
translator
falını özelleştirme
Koşulu eklemek ve kullanıcı "çevirmen"i seçtiğinde gösterilecek istemi özelleştirmek için aşağıdaki adımları uygulayın:
- Koşul'un yanındaki + (artı işareti) simgesini tıklayın.
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
değerini else if alanına ekleyin.- İstemleri gönder'i seçin.
- Kod düzenleyicinize aşağıdaki istemi ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
With the help of the translator, the rival factions in Gryffinberg
are finally able to communicate with each other and resolve their
disputes. You will complete your quest to restore peace in the town.
The translator will be used on many subsequent journeys across the
earth. After its work is done, it retires honorably to a premier
location in the Gryffinberg History Museum.
- Kaydet'i tıklayın.
compass
falını özelleştirme
Koşulu eklemek ve kullanıcı "pusula"yı seçtiğinde istemi özelleştirmek için aşağıdaki adımları uygulayın:
- Koşul'un yanındaki + (artı işareti) simgesini tıklayın.
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
öğesini else if metin kutusuna ekleyin.- İstemleri gönder'i seçin.
- Kod düzenleyiciye aşağıdaki istemi ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
The compass will help you find the mystical and ancient Library of
Gryffinberg. Among its infinite stacks of dusty books, you find one
entitled "Wisdom of the Ages". By the time you've read the
50,000-page tome, the townspeople have forgotten their problems. You
will write a second edition of "Wisdom of the Ages", but have
limited commercial success.
- Kaydet'i tıklayın.
İşleminizi simülatörde test etme
Bu noktada, kullanıcının seçtiği seçeneğe göre İşleminiz özelleştirilmiş bir fal sunmalıdır.
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanına
Talk to my test app
yazıpEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın. Translator
simgesini tıklayın, yazın veya söyleyin.
"Çevirmen" seçeneği için uygun yanıtı alırsınız.
3. Oyun döngüsü ekleme
Bu bölümde, kullanıcının başka bir seçenek belirleyebilmesi ve seçim yaptıktan sonra farklı bir fal duyabilmesi için İşleminizi yapılandıracaksınız. Bu değişiklik, oyunun sonunda gösterilen "Tekrar oynamak ister misiniz?" mesajına benzer. Bu döngüyü oluşturmak için daha önce oluşturulan yes
ve no
amaçlarını yeniden kullanabilir ve bunları Again
adlı yeni bir sahneye ekleyebilirsiniz.
Again
sahnesi oluşturma
Bu bölümde yeni bir Again
sahne oluşturup kullanıcıya farklı bir seçenek belirlemek isteyip istemediğini soran bir istem ekleyeceksiniz.
Again
sahnesini oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Sahneler bölümünde + (artı işareti) simgesini tıklayın.
Again
yazıpEnter
tuşuna basın.- Gezinme çubuğunda
Again
sahnesini tıklayın. - On enter'ın (Girişte) yanındaki + (artı işareti) simgesini tıklayın.
- İstem gönder'i seçin ve aşağıdaki istemi ve öneri çipini ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
That is what I see for you. Would you like to choose a different option and
explore another future?
suggestions:
- title: 'Yes'
- title: 'No'
- Kaydet'i tıklayın.
Fortune
sahnesinden Again
sahnesine geçiş ekleme
Kullanıcı falını aldıktan sonra sohbetin yeni Again
sahnesine geçmesi gerekir.
Fortune
sahnesinden Again
sahnesine geçiş eklemek için aşağıdaki adımları uygulayın:
- Fortune sahnesini tıklayın.
- Seçenekler penceresini açmak için ilk koşulu (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
) tıklayın. - Kaydırıp Geçiş bölümünde
Again
simgesini seçin. - Kaydet'i tıklayın.
- Seçenekler penceresini açmak için ikinci koşulu tıklayın.
- Kaydırıp Geçiş bölümünde
Again
simgesini seçin. - Kaydet'i tıklayın.
- Seçenekler penceresini açmak için üçüncü koşulu tıklayın.
- Kaydırıp Geçiş bölümünde
Again
simgesini seçin. - Kaydet'i tıklayın.
İşleminizi simülatörde test etme
Bu noktada, kullanıcının falı gösterildikten sonra İşleminiz aşağıdaki istemi sağlamalıdır: "Sizin için gördüklerim bunlar. Farklı bir seçenek belirleyip başka bir geleceği keşfetmek ister misiniz?"
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanına
Talk to my test app
yazıpEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın. dragon
simgesini tıklayın, yazın veya söyleyin.
Ejderha seçeneği ve Again
istemi için fal alırsınız.
Amacın eklenmesi ve Again
sahnesine geçiş
Bu bölümde, yes
ve no
amaçlarını Again
sahnesine ekleyerek İşleminizin, kullanıcının yeni bir seçenek belirlemek isteyip istemediğini anlamasını sağlarsınız. Ayrıca, yes
ve no
amaçları için uygun geçişleri de eklersiniz. yes
amacı Fortune
sahnesine, no
amacı ise End conversation
sistem sahnesine geçiş yapıyor.
Again
sahnesine amaç ve geçiş eklemek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
Again
sahnesini tıklayın.- Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.
- Amaç açılır menüsünden evet'i seçin.
- Geçiş açılır menüsünden
Fortune
simgesini seçin. - Kaydet'i tıklayın.
- Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.
- Amaç açılır menüsünden hayır'ı seçin.
- Geçiş açılır menüsünden Sohbeti sonlandır'ı seçin.
- İstem gönder'i seçin ve kod düzenleyiciye aşağıdaki istemi ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- Kaydet'i tıklayın.
İşleminizi simülatörde test etme
İşleminiz artık kullanıcının yeni bir seçenek belirlemek mi yoksa görüşmeyi sonlandırmak mı istediğini anlayabilir.
yes
amacını test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanına
Talk to my test app
yazıpEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın. - Seçeneklerden birini tıklayın, yazın veya söyleyin.
- Giriş alanına
Yes
yazıpEnter
tuşuna basın.
"Görevinde sana yardımcı olması için neyi seçersin: ejderha, çevirmen veya pusula?" istemini alırsınız.
no
amacını test etmek için aşağıdaki adımları uygulayın:
- Seçeneklerden birini tıklayın, yazın veya söyleyin.
- Giriş alanına
No
yazıpEnter
tuşuna basın.
End conversation
istemini almanız gerekir: "Seçiminizden memnun olmanız beni mutlu etti. Bu macerada başarılar dileriz. Hoşça kalın."
4. Destekleyici bir yol ekleme
Artık çoğu kullanıcının İşleminizde izlediği ana yolu oluşturdunuz. Ancak kullanıcı, Fortune
sahnesindeki "Görevinde sana yardımcı olması için neyi seçersin: ejderha, çevirmen veya pusula?" istemine, sağlanan seçeneklerden biri olmayan bir yanıt verebilir.
Bu bölümde, bir kullanıcı "sihir", "para", "at" veya "telefon"u seçtiğinde bunu anlayacak ve bu seçeneklerden birini seçtiğinde kullanıcıya ilk üç seçenekten birini seçmesini isteyecek şekilde İşleminizi yapılandırın. Bu mantığı yapılandırmak için bu diğer seçenekleri ve kullanıcının bu seçeneklerden birini söylediğinde eşleşen yeni bir amaç (other_option
) içeren yeni bir type
oluşturmanız gerekir. Ayrıca, other_option
amacındaki eğitim ifadelerini notlandırarak amaç parametrelerini belirleyip çıkarmanız gerekir.
Asistan'ın doğal dil işleme (NLU) motoru, kullanıcı girişinde bir parametre eşleşmesi algıladığında değeri yazılı bir parametre olarak çıkarır. Böylece, bir sahnede bu parametreyle mantıksal işlemler yapabilirsiniz. Bu codelab'de, kullanıcının seçtiği yardımı ayıklamak ve istemde bu seçime başvurmak için işleminizi yapılandıracaksınız.
unavailable_options
türü oluşturma
Artık, İşleminizin kullanıcının girişindeki verileri tanımlayabilmesi için çeşitli farklı seçenekler içeren bir unavailable_options
türü oluşturabilirsiniz.
unavailable_options
türünü oluşturmak için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Türler bölümünde + (artı işareti) simgesini tıklayın.
unavailable_options
yazıpEnter
tuşuna basın.- Seçenekleri açmak için
unavailable_options
simgesini tıklayın. - Giriş ekle bölümüne aşağıdaki girişleri ve karşılık gelen değerleri girin:
|
|
|
|
|
|
|
|
Anahtar-değer tablonuz aşağıdaki gibi görünmelidir:
- Kaydet'i tıklayın.
other_option
amacı oluşturma
Ardından, other_option
adlı bir amaç oluşturur ve unavailable_options
türündeki seçenekleri içeren eğitim cümleleri eklersiniz. Bu amaç, kullanıcı unavailable_options
türünde yer alan bir seçeneği belirlediğinde eşleştirilir.
other_option
amacını oluşturmak ve yapılandırmak için aşağıdaki adımları uygulayın:
- Özel Amaçlar bölümünde + (artı işareti) simgesini tıklayın.
other_option
yazıpEnter
tuşuna basın.- Pencereyi açmak için
other_option
simgesini tıklayın. - Aşağıdaki eğitim ifadelerini ekleyin ve her birinden sonra
Enter
tuşuna basın:
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- Amaca yönelik parametreler ekle bölümünde, parametre adını
chosenUnavailableOption
olarak güncelleyin. - Kaydet'i tıklayın.
Eğitim cümlelerini girerken Actions Builder, unavailable_options
türündeki spells
, phone
, magic
, cash
ve horse
kelimelerini tanır ve bu kelimeleri otomatik olarak vurgular (açıklama ekler). İşlem Oluşturucu, aşağıdaki resimde gösterildiği gibi Add intent parameters (Amaç parametreleri ekle) bölümüne otomatik olarak bir amaç parametresi ekler.
Amaç parametresi, seçeneğin adını çıkarmanıza ve bu seçeneği istemde kullanmanıza olanak tanır.
other_option
amacını Fortune
sahnesine ekle
Artık kullanıcının orijinal seçeneklerden biri olmayan bir seçeneği belirtmesini işleyebilen bir niyetiniz (other_option
) var. Bu bölümde, other_option
amacını Fortune
sahnesine ekleyeceksiniz. İstemi kullanıcının girişine göre özelleştirmek için amaç parametresini kullanırsınız.
other_option
amacını Fortune
sahnesine eklemek için aşağıdaki adımları uygulayın:
- Fortune sahnesini tıklayın.
- Kullanıcı amacını işleme'nin yanındaki + (artı işareti) seçeneğini tıklayın.
- Amacın açılır menüsünden
other_option
simgesini seçin. - İstem gönder'i seçin ve aşağıdaki istemi ekleyin:
candidates:
- first_simple:
variants:
- speech: >-
I have seen the future and a $intent.params.chosenUnavailableOption.original
will not aid you on your journey.
$intent.params.chosenUnavailableOption
ifadesi amaç parametresi nesnesini, $intent.params.chosenUnavailableOption.original
ise bu nesnenin değerini ifade eder. original property
, kullanıcının belirttiği ham girişi ifade eder.
- Kaydet'i tıklayın.
Kullanıcı, Fortune
sahnesi sırasında unavailable_options
türünde listelenen bir seçeneği söylediğinde other_option
amacı eşleştirilir ve istem kuyruğuna bir istem eklenir. Geçiş belirtilmediğinden sahne yürütme döngüsü, koşullar aşamasını yeniden değerlendirerek devam eder. chosenOptions
yuvası daha sonra istemini istem sırasına ekler ve istem sırası kullanıcıya iletilir.
İşleminizi simülatörde test etme
İşleminiz artık bir kullanıcı unavailable_options
türünde listelenen seçeneklerden birini belirlediğinde uygun şekilde yanıt vermeli ve kullanıcının hangi yardımı seçtiğini belirtmelidir. Ardından, İşleminiz kullanıcıya orijinal seçeneklerden birini (ejderha, çevirmen veya pusula) seçmesini istemelidir.
İşleminizi 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 my test app
yazıpEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın. - Giriş alanına
magic
yazıpEnter
tuşuna basın.
Kullanıcı "magic"i seçtiğinde, önüne "a" makalesi yerleştirildiği için istemin doğru gelmediğini fark edebilirsiniz. Bu sorunu aşağıdaki bölümlerde ele alacağız.
unavailable_options
işleyici ekleme
unavailable_options
türündeki uygun seçeneklerin önüne "a" makalesini yerleştirmek için, kullanıcının seçtiği seçeneğin önüne "a" makalesinin gerekip gerekmediğini kontrol etmek üzere karşılama mantığınızda bir etkinlik işleyici yapılandırabilirsiniz. Öncelikle, konsolda işleyiciyi çağırmak için işleminizi yapılandırmanız gerekir.
unavailable_options
işleyiciyi eklemek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
Fortune
sahnesini tıklayın.- Pencereyi açmak için Kullanıcı amacını işleme bölümünde When other_option is matched'ı (Diğer seçenek eşleştirildiğinde) tıklayın.
- İstem gönder onay kutusunun işaretini kaldırın.
- Webhook'unuzu çağırın onay kutusunu seçin.
- Etkinlik işleyici için metin kutusuna
unavailable_options
girin.
- Kaydet'i tıklayın.
Güncelleme ve karşılama dağıtımı
İşleminizi unavailable_options
etkinlik işleyicisini çağıracak şekilde yapılandırdığınıza göre, işleyiciyi karşılama bölümünüzde güncelleyip dağıtabilirsiniz.
Yerine getirme işleminizi güncellemek için şu adımları uygulayın:
- Gezinme çubuğunda Webhook'u tıklayın.
- Aşağıdaki kodu
greeting
işleyicisinin altına ekleyin:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
const app = conversation();
bölümüne aşağıdaki kodu ekleyin:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Save Fulfillment'ı (Yerine Getirme İşlemini Kaydet) tıklayın.
- Deploy Fulfillment'ı (Karşılama Dağıtımı) tıklayın. Dağıtım tamamlandığında düzenleyicinizin üst kısmında Cloud Functions dağıtımınız güncel. mesajı gösterilir.
Kodu anlama
unavailable_options
işleyici şunları yapar:
option
nesnesindenconv
verilerini alır veoption
değerini, kullanıcıdan alınan ham giriş olanoriginal
özelliğine atar.optionKey
değerini,unavailable_options
türünün anahtarı olanresolved
özelliğine atar.optionKey
öğesinin "a" gerektiren seçeneklerden biri olup olmadığını kontrol eder. Öyleyse mesaja "a" ekleyerek mesajı oluşturur.- Mesajı
conv.add(message)
üzerinden ekler.
İşleminizi simülatörde test etme
İşleminiz artık unavailable_options
türündeki kullanıcının seçimine göre istemi, önüne "a" makalesi eklenmesi gerekip gerekmediğine bağlı olarak ayarlamalıdır.
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test'i tıklayın.
- Giriş alanında
Talk to my test app
simgesini tıklayın veya yazın veEnter
tuşuna basın. - Giriş alanına
Yes
yazıpEnter
tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın. - Giriş alanına
magic
yazıpEnter
tuşuna basın. - Giriş alanına
horse
yazıpEnter
tuşuna basın.
İşleminiz, istemi oluştururken "at" seçeneğinin önüne "bir" kelimesini eklemeli, "sihir" seçeneği için ise "bir" kelimesini eklememelidir.
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:
- Cloud projesini ve kaynaklarını silmek için Projeleri kapatma (silme) bölümünde listelenen adımları tamamlayın.
- İsteğe bağlı: Projenizi Actions Console'dan hemen kaldırmak için Proje silme başlıklı makaleyi inceleyin. Bu adımı tamamlamazsanız projeniz yaklaşık 30 gün sonra otomatik olarak kaldırılır.
5. Tebrikler!
Artık Google Asistan için İşlemler oluşturmak üzere gereken orta seviye becerileri öğrendiniz.
İşlediğiniz konular
- Node.js istek karşılama kitaplığını kullanarak etkileşimli işlemler geliştirme
- Kullanıcıdan veri toplamak için yuvaları kullanma
- Koşulları kullanarak sahneye mantık ekleme
- Oyun döngüsü ekleme
- Destekleyici yol ekleme
Daha fazla bilgi
Google Asistan için işlem oluşturma hakkında daha fazla bilgi edinmek üzere aşağıdaki kaynakları inceleyin:
- 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 İşlem Tasarımı Kuralları
En son duyurularımızı takip etmek için Twitter'da @ActionsOnGoogle'ı takip edin ve geliştirdiklerinizi paylaşmak için #AoGDevs etiketini kullanarak tweet atın.
Geri bildirim anketi
Ayrılmadan önce lütfen deneyiminizle ilgili kısa bir anket doldurun.