1. Genel bakış
Google Asistan geliştirici platformu; akıllı hoparlörler, telefonlar, arabalar, TV'ler, kulaklıklar gibi 1 milyardan fazla cihazda sanal kişisel asistan olan Google Asistan'ın işlevlerini genişletebileceğiniz yazılımlar oluşturmanıza olanak tanır. Kullanıcılar, market alışverişi veya yolculuk rezervasyonu gibi işlemler için Asistan'la etkileşimde bulunur. Geliştirici olarak, kullanıcılar ile kendi üçüncü taraf karşılama hizmetiniz arasında keyifli ve etkili konuşma deneyimleri oluşturmak ve bunları yönetmek için Asistan geliştirici platformunu kullanabilirsiniz.
Bu codelab'de, Google Asistan ile geliştirme için orta düzey kavramları ele alınmaktadır ve 1. Seviye codelab'de oluşturulan İşlem temel alınarak geliştirilmiştir. Bu başlamadan önce 1. Seviye codelab'i tamamlamanız kesinlikle önerilir.
Bu codelab'de oluşturduğunuz Action; kullanıcılara, seçtikleri yardıma dayalı olarak mitolojik bir toprak olan Gryffinberg'de yaşadıkları macerada yaşadıklarını gösterir.
Derlemeniz istenen nedir?
Bu codelab'de, aşağıdaki işlevlere sahip gelişmiş bir Sohbet İşlemi oluşturabilirsiniz:
- Kullanıcıdan veri toplar ve değere bağlı olarak, konuşma istemlerini değiştirir
- Görüşmenin devamı için takip sorularıyla yanıt verir
- Kullanıcının, servet aldıktan sonra İşlem ile tekrar etkileşimde bulunabilmesi için bir oyun döngüsü oluşturur
Oluşturmaya başlamadan önce Google Asistan özellikli cihazınızda canlı Action ile etkileşime geçmek için "Ok Google, Kader ve Fortune&#; deyin. Geri gelen kullanıcılar için bu İşlem üzerinden gerçekleştirilen varsayılan yol aşağıdaki gibi görünür:
Neler öğreneceksiniz?
- Kullanıcıdan veri toplamak için slotları kullanma
- Bir sahneye mantık eklemek için koşulları kullanma
- Oyun döngüsü ekleme
- Destekleyici yol ekleme
Gerekenler
Bu codelab'in ön koşulları şunlardır:
- Google Chrome gibi bir web tarayıcısı
- Tamamlanan codelab Seviye 1 İşlemler projesi ( Actions Builder Seviye 1'i kullanarak Google Asistan için İşlemler Derleme)
Bu codelab'in karşılama kodunu anlamak için gerekli olmasa da JavaScript'i (ES6) kullanmayı bilmeniz önemle tavsiye edilir.
2. Sohbet arayüzü oluşturmaya devam edin
İlk codelab'de tek bir sahneyi (Start
) kullanarak basit bir Sohbet İşlemi oluşturdunuz.
Bu codelab'de, Action'larınızın görüşme süresini uzatıyorsunuz. Aşağıdaki bölümlerde, İşleminizi aşağıdakileri gerçekleştirecek şekilde yapılandırıyorsunuz:
- Kullanıcı falını dinlemek istediğinde yeni bir
Fortune
sahnesine geçiş yapın - Kullanıcıya yolculuğu için hangi yardımı seçmek istediğini sorun.
- Kullanıcının tercihine göre özelleştirilmiş bir fallık sunar
Fortune
sahnesi oluştur
Bu bölümde Fortune
sahnesini oluşturacaksınız ve kullanıcının görüşme sırasında buna nasıl geçiş yapacağını tanımlayacaksınız.
Fortune
adlı yeni sahne oluşturmak için şu adımları uygulayın:
- Codelab'deki 1. düzey İşlemler projenizi açın.
- Gezinme çubuğunda Geliştir'i tıklayın.
- Sahneler'in altında Başlat sahnesini tıklayın.
- Seçenekleri açmak için evetnedenini (evet olduğunda kutusu) tıklayın.
- İstemi kaldırmak için İstemleri gönder'i temizleyin.
- 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şlem,
Fortune
adlı yeni bir sahne oluşturur. Ayrıca kullanıcının falını dinlemek istediğindeStart
sahnesindenFortune
sahnesine bir geçiş de eklenir.
Fortune
sahnesi için konuşma mantığı tanımlayın
Bu codelab'de, Fortune
ortamınızı kullanıcıya şu soruyu sorabilirsiniz: "Görevinizde, ejderhada, çevirmende veya pusulada" size yardımcı olmak için ne seçersiniz? Devam etmeden önce kullanıcıdan gerekli bilgileri toplamak için slot doldurma adlı bir özelliği kullanabilirsiniz.
Aksiyon; ejderha, çevirmen ve pusula olmak üzere üç konuda serüven sağlar. İşleminizi bir kullanıcının girişinde bu üç seçeneği tanımlayacak şekilde yapılandırmak için yeni bir tür oluşturmanız gerekir.
Sahnedeki slot doldurma aşamasındaki türleri kullanarak kullanıcıdan istediğiniz bilgileri tanımlayabilirsiniz. NLU motoru, kullanıcı girişinde slot eşleşmesi algıladığında bunu bir sahnede yazılan bir parametre olarak ayıklar. Böylece bu sahnede bir mantık gerçekleştirebilirsiniz.
available_options
türü oluştur
Bu bölümde, kullanıcıların bu isteğe yanıt olarak belirleyebileceği üç seçeneği (ejderha, çevirmen ve pusula) belirten available_options
adında yeni bir tür oluşturacaksınız. Bir kullanıcının benzer bir şey söylemesi durumunda bu seçenekler için birkaç eş anlamlı da tanımlarsınız. Sonraki bir bölümde, kullanıcının seçimini almak istediğinizi belirtmek için bir alana available_options
türünü eklersiniz.
available_options
türünü oluşturmak için aşağıdaki adımları izleyin:
- 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, anahtar/değer çifti olarak yapılandırılır. Burada anahtar türün adıdır ve değerler de o anahtarın eş anlamlılarıdır. Anahtarı tanımladığınızda, anahtar otomatik olarak bir değer olarak eklenir.
Kullanıcının belirleyebileceğ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 birdragon
anahtarı oluşturur. - Değer ekle alanına
hydra
yazın ve değer (eş anlamlı) olarak eklemek içinEnter
tuşuna basın. Ardından,lizard
değeri için bu adımı tekrarlayın. - Anahtarların geri kalanını ve karşılık gelen değerleri ekleyin:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
veguide
- Kaydet'i tıklayın.
İşleminiz artık available_options
öğesinin ejderha, çevirmen ve pusula olduğunu anlıyor ve aynı zamanda birkaç eş anlamlıyı da tanıyabilir.
Slot doldurmayı yapılandır
Ardından, Fortune
sahnesinde slot doldurmayı yapılandırmanız gerekir. Alan doldurma mantığını yapılandırmak için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda, Sahneler altında Fal'ı tıklayın.
Fortune
sahnesinde Alan doldurma için + (artı işareti) simgesini tıklayın.- Alan adını girin alanına alan adı olarak
chosenOptions
ekleyin. - Tür seçin açılır listesinde, alan türü olarak
available_options
öğesini seçin. - Bu alan gereklidir onay kutusunu seçin.
- İstem gönder'i seçin ve aşağıdaki mesaj ve öneri çiplerini 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.
Artık alana available_options
türünü eklediniz. Bu durumda, devam etmeden önce kullanıcıdan almanız gereken bilgileri (yardım seçimi) alırsınız. Ayrıca alan içinde bir istem yapılandırdınız. Bu istem, kullanıcı sahnenin alan doldurma aşamasına geldiğinde istem sırasına eklenir.
chosenOptions
alanını adlandırdığınızda Alan değerini geri yazmayı özelleştir alanının aynı adla ($session.params.chosenOptions
) güncellendiğini unutmayın. Bu parametreye, Actions Builder'da bu adla ve istemci kitaplığındaki karşılama karşılamanızda erişebilirsiniz.
scene.slots.status == "FINAL"
koşulunu yapılandır
Bir alan eklediğinizde, durumscene.slots.status == "FINAL"
otomatik olarak koşul listesine eklenir.
scene.slots.status == "FINAL"
koşulu, alan doldurma işleminin tamamlanıp tamamlanmadığını kontrol eder. Tüm alanlar doldurulduğunda koşul, bir webhook'u tetikleyebilir, yeni bir sahneye geçiş yapabilir veya istem sırasına bilgi ekleyebilir.
Bu bölümde, scene.slots.status == "FINAL"
alanını yapılandırdıktan sonra istem sırasına bir istem ekleyecek şekilde yapılandırırsı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. - İstemleri 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ülasyon aracında test edin
Bu noktada, kullanıcının alanı doldurmak için hangi seçenekleri kullanması gerektiğini tanımlamış olursunuz. Bu bilgileri kullanıcıdan aldıktan sonra, İşleminiz, 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 et'i tıklayın.
- Giriş alanına
Talk to my test app
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.)
- Tıklayın, yazın veya
dragon
deyin. "Ejderhayı seçtiniz."
Sonraki bölümde, kullanıcının seçebileceği her yardım için istemleri özelleştirebilirsiniz.
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
servetini özelleştirin
Koşulu güncellemek ve kullanıcı "dragon" seçeneğini seçtiğinde istemi özelleştirmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Gezinme çubuğunda Fal sahnesini tıklayın.
- Seçenekler penceresini açmak için
scene.slots.status == "FINAL"
simgesini tıklayın. - Koşul beyanını şu şekilde güncelle:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- İstemleri gönder'i seçin.
- İstemi, kod düzenleyicide aşağıdaki servetle güncelleyin:
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.
Şimdi, bir kullanıcı "dragon" veya benzer bir şey söylediğinde Action'ın bu seçime dayalı bir şans getirdiğini gösteriyor Ardından, kalan iki seçimi ekleyin.
translator
servetini özelleştirin
Koşul eklemek ve bir kullanıcı "çeviri"yi seçtiğinde istemi özelleştirmek için şu adımları uygulayın:
- Koşul'un yanındaki + (artı) işaretini tıklayın.
- else if alanına
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
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
servetini özelleştirin
Koşul eklemek ve kullanıcı "pusula"yı seçtiğinde istemi özelleştirmek için şu adımları uygulayın:
- Koşul'un yanındaki + (artı işareti) simgesini tıklayın.
- Başka bir metin kutusuna
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
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ülasyon aracında test edin
Bu noktada İşleminiz, kullanıcı için seçtiği seçeneğe göre özelleştirilmiş bir menfaat sağlamalıdır.
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test et'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. - Tıklayın, yazın veya
Translator
deyin.
"&tercüman" seçeneği için uygun falcıyı almalısınız.
3. Oyun döngüsü ekle
Bu bölümde, İşleminizi kullanıcının başka bir seçenek belirleyebilmesi ve bir seçim yaptıktan sonra farklı bir şans duyacağı şekilde yapılandırmanız gerekir. Bu değişiklik, oyunun sonundaki "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ştur
Bu bölümde yeni bir Again
sahnesi oluşturuyor ve kullanıcıya farklı bir seçenek belirlemek isteyip istemediğini soran bir istem ekliyorsunuz.
Again
sahnesini oluşturmak için şu adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Sahneler altında + (artı işareti) seçeneğini tıklayın.
Again
yazıpEnter
tuşuna basın.- Gezinme çubuğundaki
Again
sahnesini tıklayın. - Enter in'in yanındaki + (artı) işaretini tıklayın.
- İstemleri gönder'i seçin ve aşağıdaki istemi ve öneri çiplerini 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
- Again
sahnesine geçiş ekleyin
Kullanıcı talihini aldıktan sonra görüşmenin yeni Again
sahnesine geçmesi gerekir.
Fortune
sahneden Again
sahneye geçiş eklemek için şu adımları uygulayın:
- Fal 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. - Ekranı kaydırın ve Geçiş'in altında
Again
simgesini seçin. - Kaydet'i tıklayın.
- İkinci koşulu tıklayarak seçenekler penceresini açın.
- Ekranı kaydırın ve Geçiş'in altında
Again
simgesini seçin. - Kaydet'i tıklayın.
- Seçenekler penceresini açmak için üçüncü koşulu tıklayın.
- Ekranı kaydırın ve Geçiş'in altında
Again
simgesini seçin. - Kaydet'i tıklayın.
İşleminizi simülasyon aracında test edin
Bu aşamada İşleminiz, kullanıcıya kaderini aldıktan sonra şu istemi sağlamalıdır: Farklı bir seçenek belirleyip gelecekteki bir diğer planı keşfetmek ister misiniz?
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test et'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. - Tıklayın, yazın veya
dragon
deyin.
Ejderha seçeneği ve Again
isteminin falını alırsınız.
Niyet ekleyin ve Again
sahnesine geçin
Bu bölümde yes
ve no
intent'lerini Again
sahnesine eklersiniz. Böylece İşleminiz, kullanıcının yeni bir seçenek belirlemek isteyip istemediğini anlayabilir. Ayrıca, yes
ve no
amaçları için uygun geçişleri de eklersiniz. yes
amacı Fortune
sahnesine taşınırken no
niyeti End conversation
sistem sahnesine taşınır.
Again
sahnesine intent ve geçiş eklemek için şu adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
Again
sahnesini tıklayın.- Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
- Amaç açılır menüsünden evet'i seçin.
- Geçiş açılır menüsünden
Fortune
öğesini seçin. - Kaydet'i tıklayın.
- Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
- Amaç açılır menüsünden hayır'ı seçin.
- Geçiş açılır menüsünden Görüşmeyi sonlandır'ı seçin.
- İstemleri 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ülasyon aracında test edin
İşleminiz, kullanıcının yeni bir seçenek belirlemek mi yoksa görüşmeyi sonlandırmak mı istediğini anlamalıdır.
yes
amacını test etmek için şu adımları uygulayın:
- Gezinme çubuğunda Test et'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örevinizde, ejderhanızda, çevirmeninizde veya pusulada size yardımcı olmak için ne seçersiniz?
no
amacını test etmek için şu 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 almalısınız: &; Görevinizde iyi şanslar. Elveda."
4. Destekleyici bir yol ekleme
Çoğu kullanıcının Action'ınızı izlediği ana yolu oluşturdunuz. Ancak kullanıcı, Fortune
seçeneğinden istemlere yanıt verebilir ve "görevinizde, ejderhada, çevirmende veya pusulada size sunulan seçeneklerden biri olmayan bir seçenekle size yardımcı olabilir.
Bu bölümde, İşleminizi, kullanıcının "sihir", "at" veya "telefon" yerine ne zaman seçtiğini anlayacak ve bu seçeneklerden birini tercih ettiğinde kullanıcıdan üç orijinal seçenek arasından birini seçmesini isteyecek şekilde yapılandıracaksınız. Bu mantığı yapılandırmak için bu diğer seçenekleri içeren yeni bir type
ve kullanıcı bu seçeneklerden birini söylediğinde eşleşen yeni bir amaç (other_option
) oluşturmanız gerekir. Ayrıca, amaç parametrelerini tanımlayıp çıkarmak için other_option
amacı içindeki eğitim ifadelerine ek açıklama eklemeniz gerekir.
Asistan'ın doğal dil işleme (NLU) motoru, kullanıcı girişinde parametre eşleşmesi algıladığında değeri yazılı bir parametre olarak ayıklar. Böylece bir sahnede mantık uygulayabilirsiniz. Bu codelab'de, İşleminizi kullanıcının seçtiği yardımı çıkaracak ve bir istemde bu seçeneğe başvuracak şekilde yapılandıracaksınız.
unavailable_options
türü oluştur
Artık çeşitli farklı seçenekler içeren bir unavailable_options
türü oluşturabilirsiniz. Böylece İşleminiz, bu verileri kullanıcının girişinde belirleyebilir.
unavailable_options
türünü oluşturmak için aşağıdaki adımları izleyin:
- Gezinme çubuğunda Geliştir'i tıklayın.
- Türler'in altında + (artı işareti)'ni 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ünde aşağıdaki girişleri ve ilgili değerleri girin:
|
|
|
|
|
|
|
|
Anahtar/değer tablonuz aşağıdaki gibi görünmelidir:
- Kaydet'i tıklayın.
other_option
amacı oluştur
Daha sonra, other_option
adında bir amaç oluşturur ve unavailable_options
türündeki seçenekleri içeren eğitim ifadeleri eklersiniz. Bu amaç, kullanıcı unavailable_options
türünde bir seçenek 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 Niyetler altındaki + (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 ekleyip
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
- Amaç parametreleri ekleme bölümünde, parametre adını
chosenUnavailableOption
olarak güncelleyin. - Kaydet'i tıklayın.
Eğitim ifadeleri girilirken Action Builder, unavailable_options
türündeki spells
, phone
, magic
, cash
ve horse
ifadelerini tanır ve bu kelimeleri otomatik olarak vurgular (ek açıklamalarda yer alır). Actions Builder, aşağıdaki resimde gösterildiği gibi, Niyet parametreleri ekle bölümüne otomatik olarak bir intent parametresi ekler.
Amaç parametresi, seçeneğin adını çıkarıp bir istemde bu seçeneği kullanabilmenizi sağlar.
Fortune
sahnesine other_option
niyeti ekle
Artık, orijinal seçeneklerden biri olmayan bir seçeneği işleyebilecek bir intent'e (other_option
) sahipsiniz. Bu bölümde other_option
intent'i Fortune
sahnesine eklersiniz. İstemi, kullanıcının girişine göre özelleştirmek için intent parametresini kullanırsınız.
other_option
amacını Fortune
sahnesine eklemek için şu adımları uygulayın:
- Fal sahnesini tıklayın.
- Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
- Amaç açılır menüsünden
other_option
seçeneğini belirleyin. - İstemleri 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 intent parametresi nesnesini, $intent.params.chosenUnavailableOption.original
ifadesi de bu nesne değerini belirtir. original property
, kullanıcının belirttiği ham girişi belirtir.
- Kaydet'i tıklayın.
Kullanıcı, Fortune
sahnesi sırasında unavailable_options
türünde listelenen bir seçenek söylediğinde other_option
amacı eşleştirilir ve istem sırasına bir istem ekler. Geçiş belirtilmediğinden, sahne yürütme döngüsü koşullar aşamasını yeniden değerlendirerek devam eder. Ardından chosenOptions
alanı, istemini sıra sırasına ekler ve istem sırası kullanıcıya gönderilir.
İşleminizi simülasyon aracında test edin
Şimdi, kullanıcı unavailable_options
türünde listelenen seçeneklerden birini belirlediğinde İşleminiz uygun bir şekilde yanıt vermeli ve kullanıcının hangi yardımı seçtiğini belirtmelidir. Bunun ardından İşleminiz, kullanıcıdan 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 et'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ının önündeki makale "sihir"i seçtiğinde istemin doğru görünmediğini fark edebilirsiniz. Bu sorunu aşağıdaki bölümlerde ele alıyorsunuz.
unavailable_options
işleyici ekle
Makaleyi, unavailable_options
türündeki uygun tercihlerden önce yerleştirmek için kullanıcı mantığının öncesindeki hangi seçeneğin"önce"etkinliği gerektireceğini kontrol etmek üzere istek karşılama mantığınızda bir etkinlik işleyici yapılandırabilirsiniz. Öncelikle, konsoldaki işleyiciyi çağıracak şekilde İşleminizi yapılandırmanız gerekir.
unavailable_options
işleyicisini eklemek için şu adımları uygulayın:
- Gezinme çubuğunda Geliştir'i tıklayın.
Fortune
sahnesini tıklayın.- Kullanıcı amacı işleme bölümünde, pencereyi açmak için other_option eşleştiğinde'yi tıklayın.
- İstemleri gönder onay kutusunun işaretini kaldırın.
- Webhook'unuzu çağırın onay kutusunu seçin.
- Etkinlik işleyicinin metin kutusuna
unavailable_options
yazın.
- Kaydet'i tıklayın.
Sipariş karşılamayı güncelleme ve dağıtma
İşleminizi unavailable_options
etkinlik işleyicisini çağıracak şekilde yapılandırdığınıza göre, karşılamanızdaki işleyiciyi güncelleyebilir ve dağıtabilirsiniz.
İstek karşılamanızı güncellemek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Webhook'u tıklayın.
greeting
işleyicisinin altına aşağıdaki kodu 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);
});
- Aşağıdaki kodu
const app = conversation();
altına ekleyin:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- İstek Karşılamayı Kaydet'i tıklayın.
- İstek Karşılamayı Dağıt'ı tıklayın. Dağıtım tamamlandığında düzenleyicinizin üzerindeki bir iletide Cloud Functions işlevinizin güncel olduğu belirtilir.
Kodu anlama
unavailable_options
işleyici aşağıdakileri yapar:
option
nesnesiniconv
nesnesinden alır veoption
özelliğine, kullanıcıdan gelen ham giriş olanoriginal
özelliğini atarresolved
özelliğineoptionKey
atar. Bu özellik,unavailable_options
türünün anahtarıdıroptionKey
adlı kullanıcının"gerekiyorsa"gereken- Mesajı
conv.add(message)
üzerinden ekler
İşleminizi simülasyon aracında test edin
Action'ınız artık unavailable_options
türünden önce yapılan kullanıcı seçiminin öncesinde bir "&" makalesi gerektirip gerektirmediğine göre ayarlama yapmalıdır.
İşleminizi test etmek için aşağıdaki adımları uygulayın:
- Gezinme çubuğunda Test et'i tıklayın.
- Giriş alanına
Talk to my test app
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.
İşleminizin, at seçimini seçmeden önce eklerken "sihir" seçiminin nasıl yapılacağını öğrenin.
Projenizi temizleyin [önerilir]
Olası ücretler tahakkuk etmesini önlemek için kullanmak istemediğiniz projeleri kaldırmanız önerilir. Bu codelab'de oluşturduğunuz projeleri silmek için aşağıdaki adımları uygulayın:
- Cloud Projesi'ni ve kaynakları silmek için Projeleri kapatma (silme) bölümünde listelenen adımları tamamlayın.
- İsteğe bağlı: Projenizi İşlemler konsolundan hemen kaldırmak için Projeyi silme başlıklı makaleye göz atın. Bu adımı tamamlamazsanız projeniz yaklaşık 30 gün sonra otomatik olarak kaldırılır.
5. Tebrikler!
Artık Actions for Google Asistan'ı geliştirmek için gerekli olan orta düzey becerilere değindiniz.
Ele aldığınız konular
- Node.js istek karşılama kitaplığını kullanarak Sohbet İşlemleri geliştirme
- Kullanıcıdan veri toplamak için slotları kullanma
- Sahneye mantık katmak için koşullar nasıl kullanılır?
- Oyun döngüsü ekleme
- Destekleyici yol ekleme
Daha fazla bilgi
Actions for Google Asistan'ı oluşturma hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları inceleyin:
- Actions for Google Asistan'ı geliştirmek için belgeler
- Ö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
- Konuşma İşlemleriyle ilgili en iyi uygulamalar ve yönergeler için ileti dizisi tasarımı yönergeleri
En son duyurularımızı takip etmek için Twitter'da @ActionsOnGoogle'ı takip edin ve oluşturduğunuz videoları paylaşmak için #AoGDevs tweet'ine katılın.
Geri bildirim anketi
Ayrılmadan önce lütfen deneyiminizle ilgili kısa bir anket doldurun.