Becerilere genel bakış

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

Beceri botu kullanarak botu genişletebilirsiniz. Bir beceri diğer çeşitli botlar tarafından kullanılabilir, yeniden kullanımı kolaylaştırabilir ve bu şekilde, kullanıcıya yönelik bir bot oluşturabilir ve kendi veya üçüncü taraf becerilerinizi kullanarak bunu genişletebilirsiniz.

  • Beceri, başka bir bot için bir dizi görev gerçekleştirebilen bir botdur; bot hem beceri hem de kullanıcıya yönelik bir bot olabilir.
  • Beceri tüketicisi , bir veya daha fazla beceri çağırabilen bir botdur. Kullanıcıya yönelik beceri tüketicisi, kök bot olarak da adlandırılır.
  • Beceri bildirimi, becerinin gerçekleştirebileceği eylemleri, giriş ve çıkış parametrelerini ve becerinin uç noktalarını açıklayan bir JSON dosyasıdır.
    • Becerinin kaynak koduna erişimi olmayan geliştiriciler, beceri tüketicilerini tasarlamak için bildirimdeki bilgileri kullanabilir.
    • Beceri bildirimi şeması , beceri bildiriminin şemasını açıklayan bir JSON dosyasıdır.
    • Beceri uygulamayı ve örnek beceri bildirimleri için beceri bildirimi yazmayı öğrenin.

Başka bir deyişle, kullanıcı doğrudan kök botla etkileşim kurar ve kök bot konuşma mantığının bir kısmını bir beceriye devreder.

Beceri özelliği şu şekilde tasarlanmıştır:

  • Beceriler ve tüketiciler Bot Framework protokolunu kullanarak HTTP üzerinden iletişim kurar.
  • Beceri tüketicisi birden çok beceriyi kullanabilir.
  • Beceri tüketicisi, beceriyi uygulamak için kullanılan dilden bağımsız olarak bir beceriyi kullanabilir. Örneğin, bir C# botu JavaScript kullanılarak uygulanan bir beceriyi kullanabilir.
  • Beceri aynı zamanda bir beceri tüketicisi olabilir ve diğer becerileri çağırabilir.
  • Beceriler kullanıcı kimlik doğrulamayı destekler; ancak kullanıcı kimlik doğrulaması beceri için yereldir ve başka bir bota aktarılamaz.
  • Beceriler hem Bot Framework bağdaştırıcısı hem de özel bağdaştırıcılarla çalışabilir.

Bu diyagramda olası permütasyonlardan bazıları gösterilmektedir.

Illustration of permutations between skill consumers and skills.

Kavramsal mimari

Beceri ve beceri tüketicisi ayrı botlardır ve bunları bağımsız olarak yayımlarsınız.

  • Beceri tüketicisi, becerinin ne zaman çağrılması veya iptal edilmesi gibi bir beceriyi yönetmek için ek mantık gerektirir. Normal bot ve bağdaştırıcı nesnelerine ek olarak, tüketici beceriyle ilgili etkinlikleri değiştirmek için kullanılan beceriyle ilgili birkaç nesne içerir. Beceri tüketicisi en az iki HTTP uç noktası uygular:
    • Mesajlaşma uç noktası , kullanıcıdan veya kanaldan etkinlik alır. Bu, tüm botların uyguladığı normal mesajlaşma uç noktasıdır.
    • Bir beceriden etkinlik almak için beceri ana bilgisayar uç noktası . Bu, becerinin yanıt verdiği hizmet URL'si olan geri çağırma URL'si işlevi görür. (Beceri tüketicisinin beceriden HTTP yöntemi isteğini alan kodu bir beceri işleyicisi ile eşleştirmesi gerekir.)
  • Beceri, etkinlik tamamlandığında etkinlik endOfConversation göndermek için ek mantık gerektirir, böylece beceri tüketicisi beceriye etkinlikleri iletmeyi ne zaman durduracağını bilir.

Bu diyagramda kullanıcıdan kök bota bir beceriye ve geri dönüşe kadar olan etkinliklerin akışı özetlenir.

Illustration of how activities flow from the user to the skill and back again.

  1. Kök botunun bağdaştırıcısı, kullanıcıdan etkinlikleri alır ve bunları kök botunun etkinlik işleyicisine iletir. (Kullanıcıdan gelen etkinlikler kök botunun mesajlaşma uç noktasında alınır.)
  2. Kök bot, beceriye etkinlik göndermek için beceri HTTP istemcisi kullanır. İstemci, bir beceri tanımından ve beceri konuşma kimliği fabrikasından tüketici becerisi konuşma bilgilerini alır. Bu, becerinin etkinliği yanıtlamak için kullanacağı hizmet URL'sini içerir.
  3. Becerinin bağdaştırıcısı, beceri tüketicisinden etkinlikler alır ve bunları becerinin etkinlik işleyicisine iletir. (Tüketiciden gelen etkinlikler beceri botunun mesajlaşma uç noktasında alınır.)
  4. Beceri yanıtladığında, kök botunun beceri işleyicisi etkinliği alır. Beceri konuşma kimliği fabrikasından kök kullanıcı konuşma bilgilerini alır. Ardından etkinliği kök botunun bağdaştırıcısına iletir. (Becerideki etkinlikler kök botunun beceri ana bilgisayar uç noktasında alınır.)
  5. Kök botunun bağdaştırıcısı, kullanıcıyla konuşmayı sürdürmek için dahili olarak proaktif bir ileti oluşturur.
  6. Kök bot'un bağdaştırıcısı, beceriden kullanıcıya tüm iletileri gönderir.

Bu nesneler becerileri yönetmeye ve beceri trafiğini yönlendirmeye yardımcı olur:

  • Bot Framework becerisi, bir becerinin yönlendirme bilgilerini açıklar ve beceri tüketicisinin yapılandırma dosyasından okunabilir.
  • Beceri HTTP istemcisi bir beceriye etkinlik gönderir.
  • Beceri işleyicisi bir beceriden etkinlik alır.
  • Beceri konuşma kimliği fabrikası , kullanıcı kökü konuşma başvurusu ile kök beceri konuşma başvurusu arasında çeviriler yapılır.
  • Bot Bağlan veya hizmeti hem kanal hem de bot-bot kimlik doğrulaması sağlar. Kimlik doğrulama yapılandırma nesnesi kullanarak, hangi uygulamaların veya kullanıcıların erişimi olduğunu sınırlamak için bir beceri veya beceri tüketicisine talep doğrulama ekleyebilirsiniz.

Beceri istemcisi ve beceri işleyici nesneleri, kök botunun kullanıcıyla etkileşimde bulunurken kullandığı konuşma ile kök botunun beceriyle etkileşime geçmek için kullandığı konuşma arasında çeviri yapmak için konuşma kimliği fabrikasını kullanır.

Beceri bildirimleri

Beceri bildirimi, becerinin gerçekleştirebileceği eylemleri, giriş ve çıkış parametrelerini, becerinin uç noktalarını ve beceri için dağıtım modellerini açıklayan bir JSON dosyasıdır.

Beceri bildirimi şeması hakkında bilgi için bkz . Beceri bildirimi yazma.

Bot-bot iletişimi

Tasarladığınız botdan bağımsız olarak bu tasarımın belirli yönlerini anlamak önemlidir.

Beceri eylemleri

Bazı beceriler birden çok görev veya eylem gerçekleştirebilir. Örneğin, yapılacaklar becerisi ayrı konuşmalar olarak erişilebilen etkinliklerin oluşturulmasına, güncelleştirilip görüntülenmesine ve silinmesine izin verebilir.

Konuşma başvuruları

Kullanıcı kökü konuşması, kök beceri konuşmasından farklıdır.

Konuşma kimliği fabrikası, beceri tüketicisi ile beceri arasındaki trafiği yönetmeye yardımcı olur. Fabrika, kökün kullanıcıyla olan konuşma kimliği ile beceri ile sahip olduğu konuşmanın kimliği arasında çeviride bulunur. Başka bir deyişle, kök ve beceri arasında kullanılacak bir konuşma kimliği oluşturur ve kök beceri konuşma kimliğinden özgün kullanıcı kökü konuşma kimliğini kurtarır.

Sunucular arası koordinasyon

Kök ve beceri botları HTTP üzerinden iletişim kurar. Bu nedenle, bir beceriden etkinlik alan kök bot örneği, başlatma etkinliğini gönderen örnekle aynı olmayabilir; başka bir deyişle, farklı sunucular bu iki isteği işleyebilir.

  • Bir etkinliği bir beceriye iletmeden önce her zaman beceri tüketicisinde durumu kaydedin. Bu, bir beceriden trafik alan örneğin, beceri çağrılmadan önce önceki örneğin kaldığı yerden devam etmesini sağlar.
  • Beceri işleyicisi bir beceriden etkinlik aldığında, bunu beceri tüketicisi için uygun bir forma çevirir ve tüketicinin bağdaştırıcısına iletir.

Beceri tüketicisi ve beceri durumu

Beceri tüketicisi ve beceri kendi durumunu ayrı ayrı yönetir. Ancak tüketici, beceriyle iletişim kurmak için kullandığı konuşma kimliğini oluşturur. Bunun becerideki konuşma durumu üzerinde etkisi olabilir.

Önemli

Daha önce belirtildiği gibi, beceri tüketicisi bir kullanıcı etkinliğini bir beceriye devrettiğinde, kullanıcının farklı bir örneği beceri yanıtını alabilir. Bir etkinliği bir beceriye iletmeden önce tüketicinin her zaman konuşma durumunu hemen kaydetmesi gerekir.

Bot-bot kimlik doğrulaması

Bot Framework Öykünücüsü'nde bir beceri ve beceri tüketicisini yerel olarak test etmek için bir uygulama kimliğine ve parolaya ihtiyacınız yoktur. Becerinizi Azure'a dağıtmak için yine de bir Azure aboneliği gereklidir.

Hizmet düzeyi kimlik doğrulaması Bot Bağlan veya hizmeti tarafından yönetilir. Çerçeve, her botun kimliğini doğrulamak için taşıyıcı belirteçleri ve bot uygulaması kimliklerini kullanır. (Bot Framework, gelen isteklerde kimlik doğrulama üst bilgisini doğrulamak için bir kimlik doğrulama yapılandırma nesnesi kullanır.)

Önemli

Bunun için dağıtılan tüm botların (beceri tüketicisi ve tükettiği tüm beceriler) geçerli uygulama kimlik bilgilerine sahip olması gerekir.

Talep doğrulama

Kimlik doğrulama yapılandırmasına bir talep doğrulayıcı eklemeniz gerekir. Talepler kimlik doğrulama üst bilgisinde değerlendirilir. İsteği reddetmek için doğrulama kodunuzda bir hata veya özel durum oluşturun.

Dekont

Bot, uygulama kimliği ve parolası varsa talep doğrulama gerçekleştirir; aksi takdirde, talep doğrulama gerçekleştirilmez.

Aksi takdirde kimliği doğrulanmış bir isteği reddetmenin çeşitli nedenleri vardır:

  • Beceri tüketicisinin yalnızca konuşma başlatmış olabileceği becerilerden gelen trafiği kabul etmesi gerektiğinde.
  • Beceri ücretli bir hizmetin parçası olduğunda ve veritabanında olmayan kullanıcıların erişimi olmamalıdır.
  • Beceriye erişimi belirli beceri tüketicileri ile kısıtlamak istediğinizde.

Önemli

Talep doğrulayıcı sağlamazsanız, botunuz ister beceri ister beceri tüketicisi olsun, başka bir bottan etkinlik aldıktan sonra bir hata veya özel durum oluşturur.

Beceri konuşmalarının hatalarını ayıklama

Beceri ve beceri tüketicileri arasındaki trafiğin kimliği doğrulandığından, bu tür botlarda hata ayıklama sırasında ek adımlar vardır.

  • Beceri tüketicisi ve doğrudan veya dolaylı olarak tükettiği tüm beceriler çalışıyor olmalıdır.
  • Botlar yerel olarak çalışıyorsa ve botlardan herhangi birinin uygulama kimliği ve parolası varsa, tüm botların geçerli kimlikleri ve parolaları olmalıdır.
  • Botların tümü dağıtıldıysa ngrok kullanarak herhangi bir kanaldan bir botta hata ayıklamayı öğrenin.
  • Botlardan bazıları yerel olarak çalışıyorsa ve bazıları dağıtıldıysa, beceri veya beceri tüketicisinde hata ayıklamayı öğrenin.

Aksi takdirde, bir beceri tüketicisinde veya beceride, diğer botlarda hata ayıkladığınız gibi hata ayıklayabilirsiniz. Daha fazla bilgi için bkz. Botta hata ayıklama ve Bot Framework Öykünücüsü ile Hata Ayıklama.

Ek bilgiler

Kullanıcının bakış açısından, kök botla etkileşimde bulunur. Beceri açısından bakıldığında, beceri tüketicisi kullanıcıyla iletişim kurdığı kanaldır.