Etkinlik işleyicisi kullanan olay temelli konuşmalar

ŞUNLAR IÇIN UYGULANIR: SDK v4

Etkinlik işleyicisi, botunuz için konuşma mantığını düzenlemenin olay temelli bir yoludur. Her farklı etkinlik türü veya alt türü farklı bir konuşma olayını temsil eder. Botun dönüş işleyicisi, aldığı etkinlik türü neyse ona göre tek tek etkinlik işleyicisini çağırır.

Örneğin, bot bir ileti etkinliği alırsa, dönüş işleyicisi gelen etkinliği tespit eder ve ileti etkinliği etkinlik işleyicisine gönderir. Botunuzu oluştururken, mesajları işlemek ve yanıtlamak için bot mantığınız mesaj etkinliği işleyicisinde yer alır. Benzer şekilde, konuşmaya üye eklendiğinde çağrılan eklenen üyeler işleyiciniz içerisine, üyelerin konuşmaya eklenmesini işleme mantığınız gider.

Bot mantığınızı düzenlemenin diğer yolları için, botların nasıl çalıştığına ilişkin bot mantığı bölümüne bakın.

Önemli

Bot Framework SDK'sı ve Bot Framework Öykünücüsü GitHub'da arşivlenmiştir. Proje artık güncelleştirilmedi veya bakım yapılmadı. Bot Framework SDK'sı için destek biletleri artık 31 Aralık 2025 itibarıyla hizmet verilmeyecektir.

Yapay zeka hizmetleri, düzenleme ve bilgi seçiminizle aracılar oluşturmak için Microsoft 365 Aracıları SDK'sını kullanmayı göz önünde bulundurun. Aracılar SDK'sı C#, JavaScript veya Python için dil desteğine sahiptir. SDK hakkında daha fazla bilgiyi aka.ms/agents adresinde bulabilirsiniz. Bot Framework SDK'sı ile oluşturulmuş mevcut bir botunuz varsa botunuzu Aracılar SDK'sına güncelleştirebilirsiniz. Bot Framework SDK'sını Aracılar SDK'sına geçirme kılavuzundaki temel değişiklikleri ve güncelleştirmeleri gözden geçirin.

Microsoft Teams içinde çalışmak üzere tasarlanmış bir işbirliği aracısı oluşturuyorsanız Teams SDK'sını kullanmayı göz önünde bulundurun. Teams ortamında çalışan aracılar için Teams'e özgü API'ler, uyarlamalı kart desteği ve yerleşik yapay zeka düzenlemesi sağlar. Teams SDK'sı (Teams AI Kitaplığı) adresinden daha fazla bilgi edinebilirsiniz.

SaaS tabanlı bir aracı platformu arıyorsanız Microsoft Copilot Studio'yu göz önünde bulundurun.

Bu işleyiciler için mantığınızı uygulamak için botunuzda aşağıdaki örnek etkinlik işleyicisi bölümünde olduğu gibi bu yöntemleri geçersiz kılacaksınız. Bu işleyicilerin her biri için bir temel uygulama yoktur, bu nedenle geçersiz kılmada istediğiniz mantığı ekleyin.

Temel dönüş işleyicisini geçersiz kılmak isteyeceğiniz bazı durumlar vardır, örneğin dönüşün sonunda durum kaydetme. Bunu yaparken, ek kodunuzdan önce await base.OnTurnAsync(turnContext, cancellationToken); temel uygulamasının çalıştırıldığını garanti altına almak için önce OnTurnAsync öğesini çağırdığınızdan emin olun. Bu temel uygulama, diğer şeylerin yanı sıra OnMessageActivityAsync gibi etkinlik işleyicilerinin geri kalanını çağırmaktan da sorumludur.

Etkinlik yönetimi

Bot mantığı, bir veya daha fazla kanaldan gelen etkinlikleri işler ve yanıt olarak giden etkinlikler oluşturur.

Ana bot mantığı bot kodunda tanımlanır. Bir botu etkinlik işleyicisi olarak uygulamak için bot sınıfınızı, ActivityHandler arabirimini uygulayan IBot öğesinden türetin. ActivityHandler, ve OnMessageActivityAsyncgibi OnMembersAddedAsyncfarklı etkinlik türleri için çeşitli işleyicileri tanımlar. ActivityHandler'den türediğimiz için bu yöntemler korunur, ancak geçersiz kılınabilir.

içinde ActivityHandler tanımlanan işleyiciler şunlardır:

Etkinlik İşleyici Açıklama
Herhangi bir alınan etkinlik türü OnTurnAsync Alınan etkinliğin türüne göre diğer handler'lardan birini çağırır.
İleti etkinliği alındı OnMessageActivityAsync Bir message etkinliği işlemek için bunu geçersiz kılın.
Alınan konuşma güncelleştirme etkinliği OnConversationUpdateActivityAsync Bir conversationUpdate etkinliği sırasında, eğer bot dışındaki üyeler konuşmaya katıldıysa veya konuşmayı bıraktıysa, bir işleyiciyi çağırır.
Bot olmayan üyeler konuşmaya katıldı OnMembersAddedAsync Konuşmaya katılan üyeleri işlemek için bunu geçersiz kılın.
Bot olmayan üyeler konuşmadan ayrıldı OnMembersRemovedAsync Konuşmadan ayrılan üyeleri yönetmek için bunu geçersiz kılın.
Olay etkinliği kaydedildi OnEventActivityAsync Bir event etkinlikte, olay türüne özgü bir işleyici çağırır.
Alınan belirteç yanıt etkinliği OnTokenResponseEventAsync Belirteç yanıt olaylarını işlemek için bunu geçersiz kılın.
Belirteç dışı yanıt olay etkinliği alındı OnEventAsync Diğer olay türlerini işlemek için bunu geçersiz kılın.
Alınan ileti tepki etkinliği OnMessageReactionActivityAsync Bir messageReaction etkinlikte, bir iletiye bir veya daha fazla tepki eklendiğinde veya bir iletiden kaldırıldığında işleyiciyi çağırır.
Mesaja eklenen mesaj tepkileri OnReactionsAddedAsync İletiye eklenen tepkileri işlemek için bunu geçersiz kılın.
Mesajdan kaldırılan mesaj tepkileri OnReactionsRemovedAsync Mesajdan kaldırılan tepkileri işlemek için bunu geçersiz kılın.
Yükleme güncellemesi etkinliği alındı OnInstallationUpdateActivityAsync Bir installationUpdate etkinlikte, bot yüklenip yüklenmediğine veya kaldırıldığına bağlı olarak bir işleyici çağırır.
Bot yüklendi OnInstallationUpdateAddAsync Botun bir kuruluş birimine ne zaman yüklendiğine ilişkin mantık eklemek için bunu geçersiz kılın.
Bot kaldırıldı OnInstallationUpdateRemoveAsync Botun bir kuruluş birimi içinde kaldırıldığında mantık eklemek için bunu değiştirin.
Alınan diğer etkinlik türü OnUnrecognizedActivityTypeAsync Bu işlemi şu ana kadar ele alınmamış herhangi bir etkinlik türünü işlemek için geçersiz kılın.

Bu farklı işleyiciler, gelen HTTP isteğine karşılık gelen etkinlik hakkında bilgi sağlayan bir turnContext öğesine sahiptir. Etkinlikler çeşitli türlerde olabilir, bu nedenle her işleyici kendi dönüş bağlam parametresinde kesin olarak türlenmiş bir etkinlik sağlar; çoğu durumda, OnMessageActivityAsync her zaman işlenir ve genellikle en yaygın olanıdır.

Bu çerçevenin önceki 4.x sürümlerinde olduğu gibi genel yöntemini OnTurnAsyncuygulama seçeneği de vardır. Şu anda, bu yöntemin temel uygulaması hata denetimini işler ve sonra gelen etkinliğin türüne bağlı olarak belirli işleyicilerin her birini (bu örnekte tanımladığımız ikisi gibi) çağırır. Çoğu durumda, bu yöntemi kendi haline bırakabilir ve tek tek işleyicileri kullanabilirsiniz, ancak durumunuz için özel bir uygulama OnTurnAsync gerekiyorsa, yine de bir seçenektir.

Önemli

Eğer OnTurnAsync yöntemini geçersiz kılarsanız, tüm diğer base.OnTurnAsync işleyicilerini çağırmak için temel uygulamayı çağırmak veya bu işleyicileri kendiniz çağırmak amacıyla On<activity>Async kullanmanız gerekir. Aksi takdirde, bu işleyiciler çağrılmaz ve bu kod çalıştırılamaz.

Örnek etkinlik işleyicisi

Örneğin, kullanıcıları sohbete karşılamak için eklenen üyeleri işleyebilir, ve bota gönderdikleri iletileri yankılamak için iletiler üzerinde işlem yapabilirsiniz.

public class EchoBot : ActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var replyText = $"Echo: {turnContext.Activity.Text}";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }

    protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
    {
        var welcomeText = "Hello and welcome!";
        foreach (var member in membersAdded)
        {
            if (member.Id != turnContext.Activity.Recipient.Id)
            {
                await turnContext.SendActivityAsync(MessageFactory.Text(welcomeText, welcomeText), cancellationToken);
            }
        }
    }
}

Sonraki adımlar

  • Microsoft Teams kanalı, botunuzun Teams ile düzgün çalışması için desteklemesi gereken Teams'e özgü bazı etkinlikleri tanıtır. Microsoft Teams için bot geliştirmenin temel kavramlarını anlamak için bkz . Microsoft Teams botları nasıl çalışır?
  • Etkinlik işleyicisi, konuşma durumunu sırayla izlemesi gerekmeyen bir bot tasarlamanın iyi bir yoludur. Kullanıcıyla uzun süreli bir konuşmayı yönetmenin yollarını sağlayan dialogs kitaplığı.