Etkinlik işleyicilerini ve iletişim kutularını uygulama

Tamamlandı

Etkinliği işleme mantığı birden çok şekilde uygulanabilir. Bot Framework SDK'sı, aşağıdakileri kullanarak konuşmaları yöneten botlar oluşturmanıza yardımcı olabilecek sınıflar sağlar:

  • Etkinlik işleyicileri: Farklı türlerdeki etkinlikleri işlemek için geçersiz kılabileceğiniz olay yöntemleri.
  • İletişim kutuları: Durum bilgisi olan, çok aşamalı konuşmaları işlemek için daha karmaşık desenler.

Etkinlik işleyicileri

Kısa, durum bilgisi olmayan etkileşimleri olan basit botlar için Etkinlik İşleyicileri'ni kullanarak olayların konuşmaya katılan kullanıcılar veya alınan ileti gibi etkinlikler tarafından tetiklendiği olay odaklı bir konuşma modeli uygulayabilirsiniz. Bir kanalda etkinlik gerçekleştiğinde, Bot Framework Hizmeti bot bağdaştırıcısının İşlem Etkinliği işlevini çağırarak etkinlik ayrıntılarını geçirir. Bağdaştırıcı etkinlik için bir dönüş bağlamı oluşturur ve bu bağlamı bot'un olaya özgü etkinlik işleyicisini çağıran dönüş işleyicisine geçirir.

A bot uses activity handlers to handle turns in a conversation

ActivityHandler temel sınıfı, aşağıdakiler gibi birçok ortak etkinlik türü için olay yöntemleri içerir:

  • İleti alındı
  • Üyeler konuşmaya katıldı
  • Üyeler konuşmadan ayrıldı
  • Alınan ileti tepkisi
  • Bot yüklendi
  • Diğerleri...

Özel mantık uygulamak istediğiniz tüm etkinlik işleyicilerini geçersiz kılabilirsiniz.

Bağlamı döndür

Etkinlik, kullanıcı ve bot arasındaki tek bir çift yönlü değişimi temsil eden bir dönüş bağlamında gerçekleşir. Etkinlik işleyicisi yöntemleri, ilgili bilgilere erişmek için kullanabileceğiniz dönüş bağlamı için bir parametre içerir. Örneğin, alınan bir ileti etkinliğinin etkinlik işleyicisi ileti metnini içerir.

Ek Bilgi

Etkinlik işleyicileri hakkında daha fazla bilgi için Bot Framework SDK belgelerine bakın.

İletişim Kutuları

Çok dönüşlü bir konuşmayı etkinleştirmek için dönüşler arasında durum depolamanız gereken daha karmaşık konuşma akışları için iletişim kutuları uygulayabilirsiniz. Bot Framework SDK'sı iletişim kutusu kitaplığı, botunuz için gerekli konuşma akışını uygulamak üzere birleştirebileceğiniz birden çok iletişim kutusu sınıfı sağlar.

Bot konuşması oluşturmak için iletişim kutularını kullanmaya yönelik iki yaygın desen vardır:

Bileşen iletişim kutuları

Bileşen iletişim kutusu, iletişim kutusu kümesinde tanımlanan diğer iletişim kutularını içerebilen bir iletişim kutusudur. Genellikle, bileşen iletişim kutusundaki ilk iletişim kutusu, konuşmaya yol gösterecek sıralı bir dizi adımı tanımlayan bir şelale iletişim kutusudur. Konuşma akışının kullanıcıdan gelen giriş verilerini sırayla toplamasından oluşması için her adımın bir istem iletişim kutusu olması yaygın bir durumdur. Çıkışı bir sonraki adıma geçirmeden önce her adımın tamamlanması gerekir

Örneğin, pizza sipariş botu, kullanıcının pizza boyutu seçmesi, ardından topping'ler ve son olarak ödeme istemesi istendiği şelale iletişim kutusu olarak tanımlanabilir.

A component dialog contains a waterfall dialog for ordering a pizza

Uyarlanabilir iletişim kutuları

Uyarlamalı iletişim kutusu, akışın daha esnek olduğu, konuşmanın herhangi bir noktasında kesintilere, iptallere ve bağlam geçişlerine olanak tanıyan başka bir kapsayıcı iletişim kutusu türüdür. Bu konuşma stilinde, bot bir eylem akışı (dallar ve döngüler içerebilir) ve eylemler veya bir tanıyıcı tarafından başlatılabilir tetikleyiciler içeren bir kök iletişim kutusu başlatır. Tanıyıcı doğal dil girişini analiz eder (genellikle Language Understanding hizmetini kullanarak) ve amaçları algılar ve bu amaçlar konuşmanın akışını değiştiren tetikleyicilerle eşlenebilir; genellikle kendi eylemlerini, tetikleyicilerini ve tanıyıcılarını içeren yeni alt iletişim kutuları başlatarak.

Örneğin, pizza sipariş botu yalnızca kullanıcıyı karşılayan bir kök iletişim kutusuyla başlayabilir. Kullanıcı pizza sipariş etmek istediğini belirten bir ileti girdiğinde, tanıyıcı bu amacı algılar ve pizza siparişi hakkında bilgi toplamak için gereken eylemlerin akışını içeren başka bir iletişim kutusu başlatmak için bir tetikleyici kullanır. Pizza siparişi iletişim kutusu sırasında herhangi bir noktada, kullanıcı başka bir şey yapmak istediğini belirten bir ileti girebilir (örneğin, siparişi iptal et) ve pizza sipariş etme iletişim kutusunun (veya üst iletişim kutusunun) tanıyıcısı konuşma akışında uygun bir değişikliği tetikleme amacıyla kullanılabilir.

An adaptive dialog for ordering a pizza

Dekont

İletişim kutularını kullanmak, yalnızca etkinlik işleyicilerini temel alan bir botla mümkün olandan daha fazla esneklik sunar, ancak programlaması daha karmaşık olabilir. Kodda iletişim kutuları uygulamak için Bot Framework SDK'sını kullanabilirsiniz ancak görsel tasarım arabiriminden yararlanarak karmaşık iletişim kutularıyla botlar oluşturmak için Bot Framework Oluşturucu'yu kullanmayı düşünebilirsiniz.