Actions Builder'ı kullanarak Google Asistan için işlemler oluşturma (2. Seviye)

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:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

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:

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:

  1. Codelab'deki 1. düzey İşlemler projenizi açın.
  2. Gezinme çubuğunda Geliştir'i tıklayın.
  3. Sahneler'in altında Başlat sahnesini tıklayın.
  4. Seçenekleri açmak için evetnedenini (evet olduğunda kutusu) tıklayın.
  5. İstemi kaldırmak için İstemleri gönder'i temizleyin.
  6. Geçiş bölümünde, açılır menüyü tıklayın, metin kutusunu tıklayın ve Fortune yazın.
  7. 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ğinde Start sahnesinden Fortune sahnesine bir geçiş de eklenir.

56682a0c7459b98c.png

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:

  1. Gezinme çubuğunda Türler'i tıklayın.
  2. + (artı işareti) simgesini tıklayın, available_options yazın ve Enter tuşuna basın.
  3. 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:

  1. Giriş ekle bölümüne gidin.
  2. Yeni giriş alanına dragon yazıp Enter tuşuna basın. Bu işlem bir dragon anahtarı oluşturur.
  3. Değer ekle alanına hydra yazın ve değer (eş anlamlı) olarak eklemek için Enter tuşuna basın. Ardından, lizard değeri için bu adımı tekrarlayın.
  4. Anahtarların geri kalanını ve karşılık gelen değerleri ekleyin:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction ve guide

8333b1b67445f21.png

  1. 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:

  1. Gezinme çubuğunda, Sahneler altında Fal'ı tıklayın.
  2. Fortune sahnesinde Alan doldurma için + (artı işareti) simgesini tıklayın.
  3. Alan adını girin alanına alan adı olarak chosenOptions ekleyin.
  4. Tür seçin açılır listesinde, alan türü olarak available_options öğesini seçin.
  5. Bu alan gereklidir onay kutusunu seçin.

a461b906476e244.png

  1. İ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'
  1. 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:

  1. Seçenekler penceresini açmak için scene.slots.status == "FINAL" simgesini tıklayın.
  2. İstemleri gönder'i seçin ve aşağıdaki istemi ekleyin:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. 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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app tıklayın veya yazın ve Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. (Alternatif olarak Evet öneri çipini tıklayabilirsiniz.)

a899d45c542668f6.png

  1. 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:

  1. Gezinme çubuğunda Geliştir'i tıklayın.
  2. Gezinme çubuğunda Fal sahnesini tıklayın.
  3. Seçenekler penceresini açmak için scene.slots.status == "FINAL" simgesini tıklayın.
  4. Koşul beyanını şu şekilde güncelle: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. İstemleri gönder'i seçin.
  6. İ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.
  1. Kaydet'i tıklayın.

d31767232reklam908bd.png

Ş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:

  1. Koşul'un yanındaki + (artı) işaretini tıklayın.
  2. else if alanına scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" ekleyin.
  3. İstemleri gönder'i seçin.
  4. 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.
  1. Kaydet'i tıklayın.

c1af65e70dbf3dfe.png

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:

  1. Koşul'un yanındaki + (artı işareti) simgesini tıklayın.
  2. Başka bir metin kutusuna scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" ekleyin.
  3. İstemleri gönder'i seçin.
  4. 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.
  1. 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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app yazıp Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın.
  4. Tıklayın, yazın veya Translator deyin.

29e17f950bd0dd71.png

"&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:

  1. Gezinme çubuğunda Geliştir'i tıklayın.
  2. Sahneler altında + (artı işareti) seçeneğini tıklayın.
  3. Again yazıp Enter tuşuna basın.
  4. Gezinme çubuğundaki Again sahnesini tıklayın.
  5. Enter in'in yanındaki + (artı) işaretini tıklayın.
  6. İ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'
  1. 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:

  1. Fal sahnesini tıklayın.
  2. Seçenekler penceresini açmak için ilk koşulu (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") tıklayın.
  3. Ekranı kaydırın ve Geçiş'in altında Again simgesini seçin.
  4. Kaydet'i tıklayın.
  5. İkinci koşulu tıklayarak seçenekler penceresini açın.
  6. Ekranı kaydırın ve Geçiş'in altında Again simgesini seçin.
  7. Kaydet'i tıklayın.
  8. Seçenekler penceresini açmak için üçüncü koşulu tıklayın.
  9. Ekranı kaydırın ve Geçiş'in altında Again simgesini seçin.
  10. 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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app yazıp Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın.
  4. Tıklayın, yazın veya dragon deyin.

b299e9fed9aedb69.png

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:

  1. Gezinme çubuğunda Geliştir'i tıklayın.
  2. Again sahnesini tıklayın.
  3. Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
  4. Amaç açılır menüsünden evet'i seçin.
  5. Geçiş açılır menüsünden Fortune öğesini seçin.
  6. Kaydet'i tıklayın.

c2efba35ea881b0d.png

  1. Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
  2. Amaç açılır menüsünden hayır'ı seçin.
  3. Geçiş açılır menüsünden Görüşmeyi sonlandır'ı seçin.
  4. İ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.
  1. 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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app yazıp Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın.
  4. Seçeneklerden birini tıklayın, yazın veya söyleyin.
  5. Giriş alanına Yes yazıp Enter tuşuna basın.

5d0690332efe2e29.png

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:

  1. Seçeneklerden birini tıklayın, yazın veya söyleyin.
  2. Giriş alanına No yazıp Enter tuşuna basın.

End conversation istemini almalısınız: &; Görevinizde iyi şanslar. Elveda.&quot

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:

  1. Gezinme çubuğunda Geliştir'i tıklayın.
  2. Türler'in altında + (artı işareti)'ni tıklayın.
  3. unavailable_options yazıp Enter tuşuna basın.
  4. Seçenekleri açmak için unavailable_options simgesini tıklayın.
  5. Giriş ekle bölümünde aşağıdaki girişleri ve ilgili değerleri girin:

horse

horse, stallion ve steed

magic

magic, enchanted ve spells

money

money, cash ve gold

phone

phone, cell ve apps

Anahtar/değer tablonuz aşağıdaki gibi görünmelidir:

c9e119e0f5fb2a47.png

  1. 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:

  1. Özel Niyetler altındaki + (artı işareti) simgesini tıklayın.
  2. other_option yazıp Enter tuşuna basın.
  3. Pencereyi açmak için other_option simgesini tıklayın.
  4. 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
  1. Amaç parametreleri ekleme bölümünde, parametre adını chosenUnavailableOption olarak güncelleyin.
  2. 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.

df61d4489f0910.png

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:

  1. Fal sahnesini tıklayın.
  2. Kullanıcı amacı işleme'nin yanındaki + (artı) işaretini tıklayın.
  3. Amaç açılır menüsünden other_option seçeneğini belirleyin.
  4. İ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.

  1. Kaydet'i tıklayın.

4bab1efbe21056aa.png

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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app yazıp Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın.
  4. Giriş alanına magic yazıp Enter tuşuna basın.

3a42c33eca435f32.png

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:

  1. Gezinme çubuğunda Geliştir'i tıklayın.
  2. Fortune sahnesini tıklayın.
  3. Kullanıcı amacı işleme bölümünde, pencereyi açmak için other_option eşleştiğinde'yi tıklayın.
  4. İstemleri gönder onay kutusunun işaretini kaldırın.
  5. Webhook'unuzu çağırın onay kutusunu seçin.
  6. Etkinlik işleyicinin metin kutusuna unavailable_options yazın.

52a0fba115f1b377.png

  1. 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:

  1. Gezinme çubuğunda Webhook'u tıklayın.
  2. 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);
});
  1. Aşağıdaki kodu const app = conversation(); altına ekleyin:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. İstek Karşılamayı Kaydet'i tıklayın.
  2. İ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 nesnesini conv nesnesinden alır ve option özelliğine, kullanıcıdan gelen ham giriş olan original özelliğini atar
  • resolved özelliğine optionKey atar. Bu özellik, unavailable_options türünün anahtarıdır
  • optionKey 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:

  1. Gezinme çubuğunda Test et'i tıklayın.
  2. Giriş alanına Talk to my test app tıklayın veya yazın ve Enter tuşuna basın.
  3. Giriş alanına Yes yazıp Enter tuşuna basın. Alternatif olarak, Evet öneri çipini tıklayın.
  4. Giriş alanına magic yazıp Enter tuşuna basın.
  5. Giriş alanına horse yazıp Enter tuşuna basın.

54ee24c5c3c56e.png

İş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:

  1. Cloud Projesi'ni ve kaynakları silmek için Projeleri kapatma (silme) bölümünde listelenen adımları tamamlayın.
  1. İ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:

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.