Udostępnij za pośrednictwem


Dodawanie działań śledzenia do bota

DOTYCZY: ZESTAW SDK w wersji 4

Działanie śledzenia to działanie , które bot może wysłać do emulatora bota. Możesz używać działań śledzenia do interaktywnego debugowania bota, ponieważ umożliwiają wyświetlanie informacji o botze podczas jego uruchamiania lokalnie.

Działania śledzenia są wysyłane tylko do emulatora, a nie do żadnego innego klienta lub kanału. Emulator wyświetla je w dzienniku, ale nie w głównym panelu czatu.

  • Działania śledzenia wysyłane za pośrednictwem kontekstu kolei są wysyłane za pośrednictwem programów obsługi działań wysyłania zarejestrowanych w kontekście włączania.
  • Działania śledzenia wysyłane za pośrednictwem kontekstu kolei są skojarzone z działaniem przychodzącym, stosując odwołanie do konwersacji, jeśli istnieje. W przypadku proaktywnej wiadomości odpowiedź na identyfikator będzie nowym identyfikatorem GUID.
  • Niezależnie od sposobu wysyłania działania śledzenia nigdy nie ustawia flagi odpowiedzi .

Uwaga

Zestawy SDK języka JavaScript, C# i Python platformy Bot Framework będą nadal obsługiwane, jednak zestaw SDK języka Java jest wycofywany z ostatecznym długoterminowym wsparciem kończącym się w listopadzie 2023 r.

Istniejące boty utworzone za pomocą zestawu JAVA SDK będą nadal działać.

W przypadku tworzenia nowego bota rozważ użycie agentów usługi Power Virtual Agents i przeczytaj o wyborze odpowiedniego rozwiązania czatbota.

Aby uzyskać więcej informacji, zobacz Przyszłość tworzenia botów.

Aby użyć działania śledzenia

Aby zobaczyć działanie śledzenia w emulatorze, potrzebny jest scenariusz, w którym bot wyśle działanie śledzenia, takie jak zgłoszenie wyjątku i wysłanie działania śledzenia z programu obsługi błędów włączania karty.

Aby wysłać działanie śledzenia z bota:

  1. Utwórz nowe działanie.
    • Ustaw wymaganą właściwość typu na "trace".
    • Opcjonalnie ustaw jego nazwę, etykietę, wartość i właściwości typu wartości odpowiednio dla śledzenia.
  2. Użyj metody działania wysyłania obiektu kontekstu turn, aby wysłać działanie śledzenia.
    • Ta metoda dodaje wartości dla pozostałych wymaganych właściwości działania na podstawie działania przychodzącego. Te właściwości obejmują identyfikator kanału, adres URL usługi, właściwości z i adresata.

Aby wyświetlić działanie śledzenia w emulatorze:

  1. Uruchom bota lokalnie na maszynie.
  2. Przetestuj go przy użyciu emulatora.
    • Wchodzenie w interakcję z botem i używanie kroków w scenariuszu w celu wygenerowania działania śledzenia.
    • Gdy bot emituje działanie śledzenia, działanie śledzenia jest wyświetlane w dzienniku emulatora.

Oto działanie śledzenia, które można zobaczyć, jeśli uruchomiono bota Core bez uprzedniego skonfigurowania baza wiedzy QnAMaker, na którym opiera się bot.

Zrzut ekranu przedstawiający dane wyjściowe działania śledzenia w emulatorze.

Dodawanie działania śledzenia do programu obsługi błędów karty

Program obsługi błędów włączania karty przechwytuje wszelkie nieuchwycone wyjątki zgłaszane przez bota podczas obrotu. Procedura obsługi błędów jest dobrym miejscem dla działania śledzenia, ponieważ można wysłać użytkownikowi przyjazny dla użytkownika komunikat i wysłać informacje debugowania dotyczące wyjątku do emulatora.

Ten przykładowy kod pochodzi z przykładu Core Bot . Zobacz kompletny przykład w języku C#, JavaScript, Python lub Java.

Procedura obsługi OnTurnError adaptera tworzy działanie śledzenia w celu uwzględnienia informacji o wyjątku i wysyła je do emulatora.

AdapterWithErrorHandler.cs

    {
        // Log any leaked exception from the application.
        // NOTE: In production environment, you should consider logging this to
        // Azure Application Insights. Visit https://aka.ms/bottelemetry to see how
        // to add telemetry capture to your bot.
        logger.LogError(exception, $"[OnTurnError] unhandled error : {exception.Message}");

        // Send a message to the user
        var errorMessageText = "The bot encountered an error or bug.";
        var errorMessage = MessageFactory.Text(errorMessageText, errorMessageText, InputHints.IgnoringInput);
        await turnContext.SendActivityAsync(errorMessage);

        errorMessageText = "To continue to run this bot, please fix the bot source code.";
        errorMessage = MessageFactory.Text(errorMessageText, errorMessageText, InputHints.ExpectingInput);
        await turnContext.SendActivityAsync(errorMessage);

        if (conversationState != null)
        {
            try
            {
                // Delete the conversationState for the current conversation to prevent the
                // bot from getting stuck in a error-loop caused by being in a bad state.
                // ConversationState should be thought of as similar to "cookie-state" in a Web pages.
                await conversationState.DeleteAsync(turnContext);
            }
            catch (Exception e)
            {
                logger.LogError(e, $"Exception caught on attempting to Delete ConversationState : {e.Message}");
            }
        }

        // Send a trace activity, which will be displayed in the Bot Framework Emulator
        await turnContext.TraceActivityAsync("OnTurnError Trace", exception.Message, "https://www.botframework.com/schemas/error", "TurnError");
    };
}

Następne kroki

  • Jak debugować bota za pomocą oprogramowania pośredniczącego inspekcji opisuje sposób dodawania oprogramowania pośredniczącego emitującego działania śledzenia.
  • Do debugowania wdrożonego bota można użyć Szczegółowe informacje aplikacji. Aby uzyskać więcej informacji, zobacz Dodawanie telemetrii do bota.
  • Aby uzyskać szczegółowe informacje o każdym typie działania, zobacz Schemat działania platformy Bot Framework.