Sahneler

Sahneler, amaçlarla bir araya geldiğinde konuşma modelinizin diğer önemli yapı taşıdır. Sahneler, görüşmenizin ayrı ayrı durumlarını temsil eder. Ana amaçları, görüşmenizi mantıksal parçalar halinde düzenlemek, görevleri yürütmek ve kullanıcılara istemler döndürmektir.

Sahnelerin bazı özellikleri şunlardır:

  • Döngü yürütme: Sahneler, tanımladığınız geçiş kriterlerini karşılayana kadar bir döngü içinde yürütülür. Bu sayede, tek bir sahnede kontrol mantığı akışlarını çok daha verimli şekilde oluşturabilirsiniz.
  • İletişim kutusu ayırma: Amaçlarla birlikte sahneler, iletişim kutularını mantıksal parçalar halinde gruplandırmanızı sağlayarak kullanıcı isteği ve İşlem yanıt çiftleri oluşturmanın kolay yollarını sunar.
  • Amaç eşleşmesi kapsamı: Aynı anda yalnızca bir sahne etkin olabileceğinden, amaç eşleştirmeyi istediğiniz sahnelere dahil edebilir ve bunların yalnızca bu sahneler etkin olduğunda eşleşmesini sağlayabilirsiniz.
  • Slot doldurma: Birden fazla amaç oluşturmak zorunda kalmadan, birden fazla kullanıcı girişi toplamak için bir sahne içindeki slot doldurma özelliğini kullanabilirsiniz
  • Sahne içi koşullar: Webhook tetiklemeden basit ve koşullu mantık yürütmek için slotları, oturumu, kullanıcı ve ev depolama alanını kontrol edebilirsiniz.

Sahneleri sohbet modelinizin parçası olarak özel sahne olarak tanımlayabilirsiniz. Asistan'ın konuşma mantığı, görüşmeniz için standart işlevler sağlayan sistem sahnelerini de içerir.

Özel sahneler

Özel sahne, İşleminizin sohbet modelinin bir parçasını oluşturan konuşma mantığının bir yapı taşıdır. Özel sahnelerin nasıl ve ne zaman başladığını tanımlayan aşamalar vardır. Bunlar Etkinleştirme, gerçekleştirdiği konuşma işlemi (Yürütme yaşam döngüsü) ve sahnenin nasıl sona erdiği (Geçiş olarak adlandırılır):

  • Etkinleştirme: Bir sahnenin yürütülebilmesi için önce genel amaç eşleştirme veya sahne geçişi aracılığıyla etkinleştirmeniz gerekir.
  • Yürütme: Bir sahne aktif olduğunda slot doldurma, koşullu kontrol, istem oluşturma ve webhook etkinliklerini tetikleme gibi çeşitli görevleri gerçekleştirmenizi sağlayan iyi tanımlanmış bir yaşam döngüsünde yürütülür.
  • Geçiş - Bir sahne, bir amacı eşleştirme veya slot doldurmayı tamamlama gibi sizin tanımladığınız kriterlerle eşleştiğinde daha da fazla mantık yürütmek için başka bir sahneye geçebilirsiniz. Alternatif olarak, Görüşmeyi sonlandır sistem sahnesine de geçebilirsiniz. Bu sahne, kullanıcıyla görüşmeyi sonlandırır.
Şekil 1. Ortak bir sahne geçişi. Genel niyet, çağrı sırasında bir sahneyi etkinleştirir, sahne kullanıcı girişini tüketir ve bir niyetle eşleşir. Bu durumda başka bir sahneye geçiş yapıp onu etkinleştirir.

Yapılanlar

Bir sahnenin yürütülebilmesi için etkin olması gerekir. Aynı anda yalnızca bir sahne etkin olabilir. Sahneleri aşağıdaki şekillerde etkinleştirebilirsiniz:

  • Çağrı: Kullanıcı girişi genel bir amacın dil modeliyle eşleştiğinde çağrıyı işlemek için bir sahneyi etkinleştirebilirsiniz.
  • Statik sahne geçişi: Bir sahne geçiş ölçütlerini karşıladığında başka bir sahneye geçiş tanımlayabilirsiniz.
  • Dinamik sahne geçişi: Webhook işleyicide programatik olarak başka bir sahneye geçiş yapabilirsiniz.

Yürütme yaşam döngüsü

Bir sahne aktif olduğunda, belirlediğiniz geçiş kriterlerini karşılayana kadar döngüye giren iyi tanımlanmış bir yaşam döngüsü içinde yürütülür. Bir sahnenin yürütme yaşam döngüsü, aşağıdaki sırada çalışan isteğe bağlı aşamalara ayrılır:

  1. Girişte: Bu aşama, bir sahne etkinleştirildiğinde yalnızca bir kez çalıştırılır. Bir webhook'u tetikleyebilir veya kullanıcıdan sahneniz için tek seferlik bir kurulum yapmasını isteyebilirsiniz.

  2. Koşullar: Koşullar; yaşam döngüsü aşamalarını ilerletmeden, bir webhook'u tetiklemeden veya istem göndermeden önce belirli ölçütleri değerlendirmenize olanak tanır. Bu aşama, yürütme döngüsünden çıkmak için geçiş ölçütleri tanımlayabilir.

  3. Slot doldurma: Bir sahne, gerekli tüm yuvaları (türlenmiş veriler) toplayana kadar kullanıcılara otomatik olarak istem uygulayabilir. Bir sahne, yürütme döngüsü boyunca her seferinde tek bir slot ister. Herhangi bir slot eksikse sahnenin yaşam döngüsü sonunda slot doldurma aşamasına geri döner ve bir sonraki gerekli alan için bilgi ister. Bu aşama, yürütme döngüsünden çıkmak için geçiş kriterlerini tanımlayabilir.

  4. İstemler: Asistan, kullanıcıya istem sırasını gönderir ve sırayı temizler. İstem sırası, bu aşamanın sırayı son temizlemesinden bu yana toplanan istemlerden oluşan birleştirilmiş bir derlemedir.

  5. Giriş: Asistan, kullanıcı girişlerini kullanarak sahnenize geri gönderir. Böylece intent eşleştirme (genel niyetler veya bir sahne içindeki kullanıcı amaçları), slot doldurmaya devam etme (tamamlanmamışsa) veya eşleşme yok ya da giriş hatası yok durumlarını ele alma gibi işlemler de yapabilirsiniz. Bu aşama, yürütme döngüsünden çıkmak için geçiş kriterlerini tanımlayabilir. Geçiş yapılmıyorsa yürütme döngüsü koşullar aşamasına geri döner.

Şekil 2. Sahne yürütme yaşam döngüsü

Aşağıdaki bölümlerde her bir yaşam döngüsü aşaması daha ayrıntılı olarak açıklanmaktadır.

Girişte

Giriş, sahnenin yürütme döngüsünde yürütülmeyen tek aşamadır. Sahnenizi bir seferliğine aşağıdaki sırayla başlatır:

  • Asistan çalışma zamanı, önceden eşlenen bir amaçtaki slotları doldurabiliyorsa sahneyi alan doldurma aşamasına hazırlamak için bunu şimdi yapar. Örneğin, bazı kullanıcı girişleri bir amaçla eşleşip bir alan sağlayabilir. Bu intent eşleşmesi bir sahneyi etkinleştirir ve slot adları eşleşirse sahnedeki bir alanı doldurabilir.
  • Webhook etkinleştirildiğinde, eşzamanlı olarak bir etkinlik tetiklenir ve web hizmetinizin yanıt döndürmesini bekler.
  • Çalışma zamanı bir webhook yanıtı aldığında istemlerdeki parametre referanslarını çözümler ve kullanıcı yüzeyine göre bir istem adayı seçer. Ardından adayın daha sonra kullanıcıya göndermesi için bir varyant seçer.
  • Webhook yanıtı bir istem içeriyorsa bunu istem sırasına ekler. Statik istem de varsa webhook istemi ilk olarak istem sırasına, ardından statik istemle birleştirilir.
  • Webhook yanıtı bir geçiş içeriyorsa bunu şimdi yapar. Aksi halde, sahne slot doldurma aşamasına devam eder.

Koşullar

Koşullar; oturum, kullanıcı veya alan verilerini kontrol ederek koşulun doğru olup olmadığını kontrol etmenize olanak tanır. Örneğin, tüm alanların dolu olup olmadığını kontrol edebilir ve bunu, slotları işlemek üzere başka bir sahneye geçiş için bir ölçüt olarak ayarlayabilirsiniz.

  • Assistant çalışma zamanı, her koşulu belirtildikleri sırayla değerlendirir. true sonucunu değerlendiren ilk koşul, ilişkili işleyiciyi yürütür ve koşul değerlendirmesini durdurur.
  • Slot doldurma işlemi yaparsanız koşul listesine else if scene.slots.status = "FINAL" koşulu otomatik olarak eklenir. Bu isteğe bağlı koşul, slot doldurmanın tamamlanmasını kontrol eder ve bir webhook'u tetikleyebilir veya istem sırasına istem ekleyebilir.

Durum değerlendirmesinden sonra sahnede bir geçiş tanımlanmamışsa sahne doldurmaya devam eder.

Slot doldurma

Bu aşama tek, doldurulmamış ve gerekli bir alan için slot istemi ekler. Sahnede herhangi bir alan tanımlamazsanız bu aşamada hiçbir şey olmaz.

  • Asistan çalışma zamanı, ilk doldurulmamış yuvayı seçer ve ilgili istemi istem sırasına ekler. Sahnenin yürütme döngüleri nedeniyle, yürütme döngüsü bu aşamaya geri döndüğünde daha sonra doldurulmamış ek slotlar işlenir.
  • Mevcut etkin slot, sahnenin giriş aşamasında tanımlananları geçersiz kılan hata işleme istemleri içerebilir.
  • Kullanıcı bir alanı doldurduğunda webhook'u tetikleyerek web hizmetinde doğrulayabilirsiniz.

İstemler

Asistan çalışma zamanı, kullanıcıya istem sırasını yayınlar, sırayı temizler ve kullanıcı girişini tüketir.

Giriş

Asistan çalışma zamanı, girişi bir niyet veya slot ile eşleştirmeye çalışır:

  • Kullanıcı amacı eşleşmesi durumunda sahne, ilişkili amaç işleyicisini (kullanıcı veya sistem amacı) yürütür. Bir sahnenin amaç işleyicisi, tüm genel amaçlardan önceliklidir. Bir geçiş tanımlamadıysanız sahne yürütmesi koşullar aşamasını geri döndürür.
  • Slot eşleşmesi durumunda sahne, slot doldurma aşamasına geri döner.
  • Sistem amacı eşleşmesi durumunda (ör. giriş yok veya eşleşme yok) istem sırasına istem ekleyebilir, webhook'u tetikleyebilir veya geçiş yapabilirsiniz. Birden fazla "eşleşme yok istemi" tanımlaması durumunda, Asistan çalışma zamanı şu sırayla en alakalı olanı seçer: slot doldurma, sahne, ardından genel eşleşme yok istemi. Ardışık eşleşme yok, ilgili bir etkinlik oluşturur:

    • no_match_1
    • no_match_2
    • no_match_final

    Eşleşmeyen her seviye (alan doldurma, sahne ve global), webhook etkinliklerini tetikleyebilir. Varsayılan olarak, üçüncü ve son "hayır" eşleşmeleri görüşmeyi sonlandırır.

Geçiş

Geçişler aşağıdaki aşamalarda gerçekleşebilir:

  • Koşullar: Tanımladığınız koşullara göre başka bir sahneye geçiş yapabilirsiniz. Kontrol edilmesi gereken yaygın bir koşul da alanın doldurulmasının tamamlanmasıdır.
  • Giriş (kullanıcı amacı eşleştirme): Bir amaç eşleşirse başka bir sahneye geçişi tetikleyebilir.
  • Giriş (sistem amacı eşleştirme): Herhangi bir sistem amacı eşleştirme etkinliği sırasında webhook'ları tetikleyebilirsiniz. Eşleşme yok ve giriş etkinliği olmadığında, sahne varsayılan olarak üç gerçekleşmeden sonra Görüşmeyi bitir sahnesine geçer.

Sistem sahneleri

Sistem sahneleri, Asistan'ın sağladığı yerleşik konuşma mantığını kullanmanıza olanak tanır. Bu mantık, kullanıcı deneyiminize standart konuşma akışları eklemenize olanak tanır. Örneğin, hesap bağlama sistemi sahnesi, Asistan'ın hesap bağlama akışını gerçekleştirmek için gerekeni anlık olarak devralmasını sağlar. Böylece kullanıcının hesaplarını gerçekten bağlamak için ihtiyacınız olan bilgiler döndürülür. Sistem sahneleri standart sahne yaşam döngüsüne uymaz.

Aşağıdaki listede, desteklenen sistem sahneleri ve bunların nasıl kullanılacağı açıklanmaktadır:

  • Görüşmeyi sonlandır: Mikrofonu kapatır ve kullanıcıyla olan görüşmeyi sonlandırır. Bu sahne yürütüldükten sonra Asistan, kullanıcı deneyiminin kontrolünü tekrar ele alır.
  • Hesap bağlama: Kullanıcıyı hesap bağlama akışı boyunca yönlendirir ve işlemlerinize, kullanıcının arka uç sunucularınızdaki hesabını kullanıcının Google hesabına bağlamak için gerekli bilgileri sağlar. Bu sahnenin nasıl kullanılacağı hakkında daha fazla bilgi için hesap bağlama belgelerine bakın.
  • Günlük güncellemeler - İşlemlerinizi bir kullanıcının günlük güncellemelerine eklemek için kullanıcıyı bir onay akışı boyunca yönlendirir. Bu sahnenin nasıl kullanılacağıyla ilgili daha fazla bilgi için günlük güncellemeler belgelerine bakın.
  • Bildirimler - Kullanıcıyı, İşlemlerinizden bildirim alması için bir onay akışı boyunca yönlendirir. Bu sahnenin nasıl kullanılacağı hakkında daha fazla bilgi için push bildirimleri belgelerine bakın.