Sohbet modelleri oluşturma

Görüşme modeli, kullanıcıların İşlemlerinize neler söyleyebileceğini ve İşlemlerinizin kullanıcılara nasıl tepki verdiğini tanımlar. İleti dizisi modelinizin ana yapı taşları niyetler, türler, sahneler ve istemlerdir. İşlemlerinizden biri çağrıldıktan sonra, Google Asistan kullanıcıyı söz konusu İşleme yönlendirir ve İşlem, görüşme modelinize bağlı olarak kullanıcıyla bir görüşme başlatır. Bu görüşme şunlardan oluşur:

  • Geçerli kullanıcı istekleri: Kullanıcıların İşlemlerinize neler söyleyebileceğini tanımlamak için Assistant NLU'yu genişleten bir niyet koleksiyonu oluşturursunuz. Böylece Asistan NLU'yu kullanarak İşlemler'inize özel istekleri anlayabilir. Her amaç, kullanıcıların bu amaca ulaşmak için neler söyleyebileceğini açıklayan eğitim ifadelerini tanımlar. Asistan NLU, bu eğitim ifadelerini benzer ifadeleri içerecek şekilde genişletir ve bu ifadelerin toplanması, amacın dil modelinde sonuç verir.

  • İşlem mantığı ve yanıtlar: Sahneler amaçları işler, gerekli mantığı gerçekleştirir ve kullanıcıya dönmek için istemler oluşturur.

Şekil 1. Sohbet modeli, kullanıcı deneyiminizi tanımlayan amaçlar, türler, sahneler ve istemlerden oluşur. Çağrıya uygun olan amaçlar görüşmelerinizde eşleşme için de geçerlidir.

Geçerli kullanıcı isteklerini tanımlama

Kullanıcıların İşlemlerinize neler söyleyebileceğini tanımlamak için amaçlar ve türlerin bir kombinasyonunu kullanırsınız. Kullanıcı amaçları ve türleri, Assistant NLU'yu kendi dil modellerinizle zenginleştirmenizi sağlar. Sistemin amaçları ve türleri, yerleşik dil modellerinden ve etkinlik algılamadan (kullanıcıların İşleminizden çıkmak istemesi veya Asistan'ın hiçbir giriş olmadığını algılaması gibi) yararlanmanıza olanak tanır.

Kullanıcı amaçları oluşturma

Kullanıcı amaçları, kullanıcıların İşlemlerinize neler söyleyebileceğini tanımlayan kendi eğitim ifadelerinizi tanımlamanıza olanak tanır. Assistant NLU, kullanıcılarınızın söylediklerini anlamak üzere kendini eğitmek için bu ifadeleri kullanır. Kullanıcılar bir kullanıcının amacının dil modeliyle eşleşen bir şey söylediğinde Asistan amacı eşleştirir ve İşleminizi bildirir. Böylece mantığınızı gerçekleştirebilir ve kullanıcılara yanıt verebilirsiniz.

Şekil 1. Kullanıcı amacı örneği

Kullanıcı niyeti oluşturmak için:

  1. Geliştirme sekmesinde, Kullanıcı amaçları > ⊕ (Yeni amaç) seçeneğini tıklayın, bir ad belirtin ve amacı oluşturmak için Enter tuşuna basın.
  2. Soldaki menüde yeni oluşturulan amacı tıklayın. Amaç düzenleyici görüntülenir.
  3. Amaca eğitim ifadeleri ekleyin. Assistant NLU'yu eğitmek için mümkün olduğunca çok eğitim ifadesi eklemelisiniz.
  4. İsteğe bağlı: Assistant NLU'ya, belirtilen türle eşleşen kullanıcı girişinden yazılan parametreleri ayrıştırması ve ayıklaması talimatını vermek için eğitim ifadelerine ek açıklama ekleyin:
    1. Yeni parametre ekle alanına parametre için bir ad girin.
    2. Açılır menüden bir sistem türü seçin veya özel tür oluşturun.
    3. Parametrenin bir liste olup olmadığını belirtin. Böylece parametre aynı türde birden fazla değer toplayabilir.
    4. Eğitim ifadeleri ekle bölümünde, türü uygulamak istediğiniz metni vurgulayın. Bu işlem, Assistant NLU'ya vurgulanan metni parametre olarak değerlendirmesini bildirir. Kullanıcılar türle eşleşen bir şey söylerse NLU, bu değeri parametre olarak çıkarır.

Sistem amaçları oluşturma

Sistem amaçları, kullanıcıların İşleminizden çıkmak istemesi veya kullanıcı girişinin zaman aşımına uğraması gibi yaygın etkinlikler için önceden tanımlanmış dil modellerine sahip amaçlardan yararlanmanızı sağlar. Sistem amaçları oluşturmak için:

  1. Geliştirme sekmesinde Sistem amaçları'nı tıklayın. NO_MATCH, NO_INPUT ve CANCEL gibi bir dizi sistem amacı mevcuttur.
  2. Her sistem amacı, her bir sistem amacı türü için özelleştirebileceğiniz kendi işleyicilerini içerir. Örneğin, sistem amaçları webhook etkinliklerini tetiklemenizi ve etkinlik gerçekleştiğinde statik istemler göndermenizi sağlar.

Özel türler oluşturma

Özel türler, NLU'yu tek bir anahtarla eşlenmesi gereken bir değer kümesini anlaması için eğitmek üzere kendi tür belirtiminizi oluşturmanıza olanak tanır.

Şekil 2. Özel tür örneği

Özel tür oluşturmak için:

  1. Geliştirme sekmesinde Türler > ⊕ (Yeni tür) seçeneğini tıklayın.
  2. Bu tür destekle ne tür değerler desteklenir? bölümünde tür değerlerinin nasıl sağlanacağını seçin:

    • Kelimeler ve eş anlamlılar, birden fazla değeri tek bir anahtarla eşleştirmenize olanak tanır. Bu anahtara giriş denir. Türünüz bir veya daha fazla giriş içerebilir. Bu seçeneği belirlerseniz aşağıdaki NLU ayarlarını da etkinleştirebilirsiniz:
      • Bulanık eşleştirmeyi etkinleştir: Bu seçenek, kelimeler farklı sırada söylense bile birden fazla kelime içeren girişlerin eşleştirilmesine olanak tanır.
      • Bilinmeyen değerleri kabul et: Olası tüm değerleri belirtemediğinizde etraftaki girişe ve niyet eğitimi verilerine (ör. market listesine eklenebilecek öğeler) bağlı olarak bilinmeyen kelimeleri veya ifadeleri kabul eder.
    • Normal ifadeler, türün Google'ın RE2 standardına göre normal ifade kalıplarıyla eşleşmesine olanak tanır.
    • Serbest biçimli metin, türün kullanıcının söylediği her şeyle eşleşmesini sağlar.
  3. Giriş ekle bölümünde tür değerlerini belirtin. Serbest biçimli metin'i seçerseniz türünüz herhangi bir metinle eşleşir. Bu nedenle herhangi bir giriş sağlamanız gerekmez.

İşlem mantığı ve yanıtlar oluşturun

Assistant NLU, kullanıcı isteklerini niyetlerle eşleştirir. Böylece İşleminiz bunları sahnelerde işleyebilir. Sahneler, bir konuşma sırasında etkinlikleri işlemenize olanak tanıyan güçlü mantık yürütücüleridir.

Şekil 3. Özel sahne örneği

Sahne oluşturma

Aşağıdaki bölümlerde sahnelerin nasıl oluşturulacağı ve her bir sahnenin yaşam döngüsü aşaması için işlevselliğin nasıl tanımlanacağı açıklanmaktadır.

Sahne oluşturmak için:

  1. Geliştir sekmesinde, Sahneler > ⊕ (Yeni sahne) seçeneğini tıklayın, bir ad belirtin ve sahne oluşturmak için Enter tuşuna basın.
  2. Soldaki menüde yeni oluşturulan sahneyi tıklayın. Sahne düzenleyici görünür.

Tek seferlik kurulumu tanımlayın

Bir sahne ilk kez etkin hale geldiğinde, Girişte aşamasında tek seferlik görevleri gerçekleştirebilirsiniz. Giriş aşaması yalnızca bir kez yürütülür ve sahnenin yürütme döngüsünün içinde çalışmayan tek aşamadır.

  1. Bir sahnede, işlevlerini belirtmek için Enter aşamasını tıklayın. Bu aşamada aşağıdaki işlevleri belirtebilirsiniz:

    • Webhook'unuzu çağırın: Webhook tetikler. Webhook'lar hakkında daha fazla bilgi için webhooks dokümanlarına bakın.
    • İstem gönder - Konuşmaya nasıl devam edeceğini bilmesi için kullanıcıya statik istemler belirtin. İstemleri belirtme hakkında daha fazla bilgi için istemler belgelerine bakın.
    4. Şekil. Sahneye giriş aşamasındaki sahne örneği

Koşulları kontrol edin

Koşullar, sahne yürütme akışını kontrol etmek için slot doldurma, oturum depolama, kullanıcı depolama alanı ve ev depolama alanı parametrelerini kontrol etmenize olanak tanır.

  1. Bir sahnede Koşul aşaması için + simgesini tıklayın. Koşul düzenleyici sağ tarafta görünür. Bu aşamada aşağıdaki işlevleri belirtebilirsiniz:

    • Koşul: Temel mantığı temel alacak gerçek koşullu ifadeyi belirtin. Söz dizimi bilgileri için conditions dokümanlarına bakın.
    • Webhook'unuzu çağırın: Webhook tetikler. Webhook'lar hakkında daha fazla bilgi için webhooks dokümanlarına bakın.
    • İstemleri gönder: Kullanıcıya gönderilecek statik istemleri belirler. Böylece, kullanıcı görüşmeye nasıl devam edeceğini bilir. İstemleri belirtme hakkında daha fazla bilgi için istemler belgelerine bakın.
    • Geçiş: Koşullu ifade doğru olduğunda geçiş yapılacak sahneyi belirtir.
Şekil 5. Bir sahnenin koşullar aşaması örneği

Slot doldurmayı tanımlayın

Slotlar, kullanıcı girişinden yazılan parametreleri ayıklamanıza olanak tanır.

Sahne düzenleyicide Slot doldurma aşaması için + simgesini tıklayın. Alanın düzenleyicisi sağ tarafta görünür. Bir alanın aşağıdaki özelliklerini belirtebilirsiniz:

  • Slot adı: Alanın adını belirtir. Alan değeri eşlemeden yararlanmak istiyorsanız karşılık gelen intent parametresiyle aynı adı kullanın.
  • Slot türü: Sistem türü veya özel tür ile alanın türünü belirtir.
  • Bu alan gereklidir: Bu alanı gerekli olarak işaretler. Etkinleştirilirse bu alan doldurulana kadar alan doldurma işlemi tamamlanmaz.
  • Bu alana varsayılan değer ata: Alan için belirtilen oturum parametresinden okunan varsayılan bir değer belirtir.
  • Özel alan değeri yazma: Alan doldurma işlemi tamamlandıktan sonra alanın değerini korumak için bir oturum parametresi belirtir.
  • Slot doğrulama: Bir alan doldurulduğunda webhook'u tetikleyin. Bu ayar tüm slotlar için geçerlidir.
  • Webhook'unuzu çağırın (Alan gerekli olduğunda etkinleştirilir): Webhook tetikler. Webhook'lar hakkında daha fazla bilgi için webhooks belgelerine bakın.
  • İstemleri gönder (Yuva gerekli olduğunda etkinleştirilir): Kullanıcıya gönderilecek statik istemleri belirler. Böylece kullanıcı, görüşmeye nasıl devam edeceğini bilir. İstemleri belirtme hakkında daha fazla bilgi için istemler belgelerine bakın.

Belirli slot türleri için (işlemler veya kullanıcı etkileşimiyle ilgili olanlar gibi) alanı yapılandırabileceğiniz ek bir bölüm gösterilir. Slot yapılandırmaları, sağladığınız özelliklere bağlı olarak kullanıcılar için konuşma deneyimini değiştirebilir.

Bir slot yapılandırmak için, bir JSON nesnesinde özellikleri karşılamanızda (oturum parametresi olarak belirtilir) veya satır içi JSON düzenleyicisinde sağlayın. Her alan türü için kullanılabilir özellikleri Actions Builder JSON referansında bulabilirsiniz. Örneğin actions.type.DeliveryAddressValue slot türü, DeliveryAddressValue slotunun referans içeriğine karşılık gelir.

Şekil 6. Bir sahnenin slot doldurma ayarlarına örnek

Slot değeri eşleme

Çoğu durumda, önceki intent eşleşmesine karşılık gelen bir sahnenin slot değerlerini kısmen veya tamamen dolduran parametreler bulunabilir. Bu durumlarda, alan adı intent parametresi adıyla eşleşirse amaç parametreleriyle doldurulan tüm alanlar, sahnenin slot doldurmasıyla eşlenir.

Örneğin, bir kullanıcı "Büyük bir vanilyalı kahve sipariş etmek istiyorum" diyerek bir içecek sipariş etme niyetiyle eşleşirse boyut, aroma ve içecek türü için mevcut slotlar, ilgili sahne aynı yuvaları tanımlıyorsa ilgili sahnede doldurulmuş olarak kabul edilir.

İşlem girişi

Bu aşamada Assistant NLU'nun kullanıcı girişini niyetlerle eşleştirmesini sağlayabilirsiniz. İstenen amaçları sahneye ekleyerek belirli bir sahneye yönelik intent eşleştirme kapsamını ayarlayabilirsiniz. Bu, belirli sahneler etkin olduğunda Asistan'a belirli niyetlerle eşleşmesini söyleyerek sohbet akışını kontrol etmenizi sağlar.

  1. Bir sahnede Kullanıcı amacını işleme veya Sistem amacını işleme aşaması için + simgesini tıklayın. Amaç işleyici düzenleyicisi sağda görüntülenir. Niyet işleyicinin aşağıdaki işlevlerini belirtebilirsiniz:

    • Intent - Bu sahnede eşleştirmek istediğiniz amacı belirtir.
    • Webhook'unuzu çağırın: Webhook tetikler. Webhook isteklerini nasıl işleyebileceğiniz hakkında daha fazla bilgi için webhooks belgelerini inceleyin.
    • İstem gönderme: Nasıl yanıt vereceğini bilebilmesi için kullanıcıya statik istemler belirtin. İstemleri belirtme hakkında daha fazla bilgi için istemler belgelerine bakın.
    • Geçiş (varsa) - Belirtilen amaç eşleştiğinde geçiş yapılacak sahneyi belirtir.
Şekil 7. Bir düzenin kullanıcı amacı işleyici örneği
Şekil 8. Bir düzenin sistem amaç işleyicisi örneği