Udostępnij przez


Konwersacje sterowane zdarzeniami przy użyciu programu obsługi działań

DOTYCZY: SDK w wersji 4

Handler aktywności to oparty na zdarzeniach sposób organizowania logiki konwersacyjnej dla Twojego bota. Każdy inny typ lub podtyp działania reprezentuje inny typ zdarzenia konwersacyjnego. W tle program obsługi turn handlera bota wywołuje indywidualny program obsługi działań dla każdego typu otrzymanej aktywności.

Jeśli na przykład bot otrzyma aktywność komunikatu, mechanizm obsługi przeanalizuje tę przychodzącą aktywność i przekaże ją do modulu obsługi aktywności komunikatu. Podczas tworzenia bota logika bota do obsługi komunikatów i odpowiadania na nie znajdzie się w procedurze zdarzenia wiadomości. Podobnie, logika obsługi członków dodawanych do konwersacji znajdzie się w procedurze obsługi dodawania członków, która jest wywoływana za każdym razem, gdy członek zostanie dodany do konwersacji.

Aby zapoznać się z innymi sposobami organizowania logiki bota, zobacz sekcję logiki bota w sposobie działania botów.

Uwaga

Aby tworzyć agentów z wybranymi usługami sztucznej inteligencji, orkiestracją i wiedzą, rozważ użycie zestawu SDK agentów platformy Microsoft 365. Zestaw SDK agentów obsługuje języki C#, JavaScript lub Python. Więcej informacji na temat zestawu SDK agentów można uzyskać na stronie aka.ms/agents. Jeśli szukasz platformy agenta opartej na modelu SaaS, rozważ microsoft Copilot Studio. Jeśli masz istniejącego bota utworzonego przy użyciu zestawu Bot Framework SDK, możesz zaktualizować bota do zestawu SDK agentów. Wskazówki dotyczące migracji z Bot Framework SDK do Agents SDK znajdziesz pod Bot Framework SDK to Agents SDK migration guidance, które omawiają podstawowe zmiany i aktualizacje. Zgłoszenia do pomocy technicznej dla zestawu Bot Framework SDK nie będą już obsługiwane od 31 grudnia 2025 r.

Aby zaimplementować logikę dla tych procedur obsługi, zastąpisz te metody w swoim bocie, na przykład w poniższej sekcji przykładowego obsługiwacza działań. Dla każdego z tych programów obsługi nie ma implementacji podstawowej, więc wystarczy dodać logikę, która ma zostać zastąpiona.

Istnieją pewne sytuacje, w których należy zastąpić podstawową obsługę tury, na przykład zapisanie stanu na końcu tury. W tym celu należy najpierw wywołać metodę await base.OnTurnAsync(turnContext, cancellationToken); , aby upewnić się, że podstawowa implementacja OnTurnAsync programu jest uruchamiana przed dodatkowym kodem. Ta podstawowa implementacja jest między innymi odpowiedzialna za wywoływanie pozostałych modułów obsługujących działania, takich jak OnMessageActivityAsync.

Obsługa działań

Logika bota przetwarza przychodzące działania z co najmniej jednego kanału i generuje działania wychodzące w odpowiedzi.

Główna logika bota jest definiowana w kodzie bota. Aby zaimplementować bota jako program obsługi działań, opracuj klasę bota na bazie ActivityHandler, która implementuje interfejs IBot. ActivityHandler definiuje różne procedury obsługi dla różnych typów działań, takich jak OnMessageActivityAsync, i OnMembersAddedAsync. Te metody są chronione, ale można je zastąpić, ponieważ dziedziczymy z ActivityHandler klasy.

Obsługiwacze zdefiniowane w ActivityHandler to:

Zdarzenie Sterownik opis
Odebrano każdy typ aktywności OnTurnAsync Wywołuje jedną z innych procedur obsługi na podstawie typu odebranego działania.
Aktywność wiadomości odebrana OnMessageActivityAsync Zastąpij message to, aby obsłużyć działanie.
Odebrano aktualizację dotycząca konwersacji OnConversationUpdateActivityAsync W przypadku, gdy do rozmowy dołączą lub opuszczą ją członkowie inni niż bot, wywoływana jest procedura obsługi conversationUpdate.
Członkowie niebędący botami dołączyli do konwersacji OnMembersAddedAsync Zastąp to, aby obsługiwać członków dołączania do konwersacji.
Członkowie niebędący botami opuszczają konwersację OnMembersRemovedAsync Zastąpij tę opcję, aby obsługiwać członków opuszczających konwersację.
Odebrano aktywność zdarzenia OnEventActivityAsync W przypadku event aktywności wywołuje obsługę specyficzną dla typu zdarzenia.
Odebrano aktywność zdarzenia odpowiedzi na token OnTokenResponseEventAsync Nadpisz to w celu obsługi zdarzeń odpowiedzi na token.
Odebrano działanie zdarzenia dotyczące odpowiedzi spoza tokenu OnEventAsync Zastąp to w celu obsługi innych typów zdarzeń.
Odebrano aktywność reakcji na wiadomość OnMessageReactionActivityAsync Podczas zdarzenia messageReaction wywołuje procedurę obsługi, jeśli co najmniej jedna reakcja została dodana lub usunięta z wiadomości.
Reakcje wiadomości dodane do wiadomości OnReactionsAddedAsync Zastąpij to, aby obsługiwać reakcje dodane do komunikatu.
Reakcje na wiadomość usunięte z wiadomości OnReactionsRemovedAsync Zastąpij to w celu obsługi reakcji usuniętych z komunikatu.
Odebrano zaktualizowane informacje o instalacji OnInstallationUpdateActivityAsync W ramach installationUpdate aktywności wywołuje obsługiwacza na podstawie tego, czy bot został zainstalowany, czy odinstalowany.
Zainstalowany bot OnInstallationUpdateAddAsync Zastąpij tę opcję, aby dodać logikę, gdy bot jest zainstalowany w jednostce organizacyjnej.
Odinstalowany bot OnInstallationUpdateRemoveAsync Zastąpij tę opcję, aby dodać logikę w przypadku odinstalowania bota w jednostce organizacyjnej.
Otrzymano inny typ aktywności OnUnrecognizedActivityTypeAsync Zastąp to, aby obsłużyć dowolny typ działania w inny sposób nieobsługiwany.

Te różne programy obsługi mają element turnContext , który zawiera informacje o działaniu przychodzącym, który odpowiada przychodzącemu żądaniu HTTP. Działania mogą mieć różne typy, więc każdy obsługujący zapewnia silnie typizowane działanie w swoim parametrze kontekstu; w większości przypadków OnMessageActivityAsync zawsze będzie obsługiwane i jest na ogół najbardziej powszechne.

Podobnie jak w poprzednich wersjach 4.x tego frameworka, istnieje również opcja implementacji publicznej metody OnTurnAsync. Obecnie podstawowa implementacja tej metody obsługuje sprawdzanie błędów, a następnie wywołuje każde z określonych procedur obsługi (takich jak te, które definiujemy w tym przykładzie) w zależności od typu działania przychodzącego. W większości przypadków można pozostawić tę metodę samodzielnie i użyć poszczególnych procedur obsługi, ale jeśli sytuacja wymaga niestandardowej implementacji OnTurnAsync, nadal jest to opcja.

Ważne

Jeśli zastąpisz metodę OnTurnAsync, musisz wywołać base.OnTurnAsync, aby uzyskać podstawową implementację i wywołać wszystkie inne "obsługiwacze" On<activity>Async albo samodzielnie je wywołać. Inaczej te procedury nie zostaną wywołane i ten kod nie zostanie uruchomiony.

Przykładowy moduł obsługi działań

Możesz na przykład obsługiwać członków dodanych aby powitać użytkowników w konwersacji i obsługiwać wiadomości aby odbijać wiadomości, które wysyłają do bota.

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);
            }
        }
    }
}

Następne kroki

  • Kanał usługi Microsoft Teams wprowadza niektóre działania specyficzne dla usługi Teams, które bot będzie musiał obsługiwać, aby działał prawidłowo z usługą Teams. Aby zrozumieć kluczowe pojęcia związane z opracowywaniem botów dla usługi Microsoft Teams, zobacz Jak działają boty usługi Microsoft Teams
  • Procedura obsługi aktywności to dobry sposób projektowania bota, który nie musi śledzić stanu konwersacji między kolejnymi wymianami. Biblioteka okien dialogowych udostępnia sposoby zarządzania długotrwałą konwersacją z użytkownikiem.