Ćwiczenie — używanie wbudowanych wtyczek

Ukończone

W tym ćwiczeniu dodasz istniejącą wtyczkę do projektu Semantic Kernel i dowiesz się, jak używać pierwszej wtyczki do wykonania zadania. Zaczynamy!

przygotowywanie środowiska programistycznego

W tych ćwiczeniach jest dostępny projekt startowy, którego można użyć. Aby skonfigurować projekt startowy, wykonaj następujące kroki:

Ważne

Aby wykonać te kroki, musisz mieć zainstalowany program Visual Studio Code i program .NET Framework 8.0. Może być również konieczne zainstalowanie rozszerzenia Visual Studio Code C# Dev Kit.

  1. Otwórz Visual Studio Code.

  2. W sekcji Uruchamianie programu Visual Studio Code wybierz pozycję Klonuj repozytorium Git.

  3. Na pasku adresu URL wprowadź https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git

  4. W Eksplorator plików utwórz nowy folder w lokalizacji, która jest łatwa do znalezienia i zapamiętania, na przykład folderu na pulpicie.

  5. Kliknij przycisk Wybierz jako miejsce docelowe repozytorium.

    Aby pomyślnie sklonować projekt, musisz zalogować się do usługi GitHub.

  6. Otwórz projekt w programie Visual Studio Code.

  7. W Eksploratorze kliknij prawym przyciskiem myszy folder M02-create-plugins-for-semantic-kernel/M02-Project , a następnie kliknij polecenie Otwórz w zintegrowanym terminalu.

  8. Rozwiń folder M02-create-plugins-for-semantic-kernel/M02-Project.

    Powinien zostać wyświetlony plik "Program.cs".

  9. Otwórz plik Program.cs i zaktualizuj następujące zmienne przy użyciu nazwy wdrożenia usług Azure OpenAI Services, klucza interfejsu API, punktu końcowego.

    string yourDeploymentName = "";
    string yourEndpoint = "";
    string yourKey = "";
    

Teraz możesz rozpocząć ćwiczenie. Powodzenia!

Pobieranie intencji użytkownika

  1. W zintegrowanym terminalu dodaj semantyczne wtyczki jądra. Pakiet podstawowy do projektu, uruchamiając następujące polecenie: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha

    Uwaga

    Obecnie pakiet jest wersją wstępną. Możesz sprawdzić najnowszą wersję https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha

  2. Dodaj następujący kod do pliku Program.cs:

    builder.Plugins.AddFromType<ConversationSummaryPlugin>();
    var kernel = builder.Build();
    
    string input = @"I'm a vegan in search of new recipes. I love spicy food! 
    Can you give me a list of breakfast recipes that are vegan friendly?";
    
    var result = await kernel.InvokeAsync(
        "ConversationSummaryPlugin", 
        "GetConversationActionItems", 
        new() {{ "input", input }});
    
    Console.WriteLine(result);
    

    W tym kodzie zaimportujesz plik ConversationSummaryPlugin z Core.Plugins pakietu. Utworzysz nowego konstruktora jądra i dodasz wtyczkę do konstruktora. Funkcja ConversationSummaryPlugin obsługuje kilka akcji: GetConversationActionItems, SummarizeConversationi GetConversationTopics.

    Utworzysz ciąg z przykładową konwersacją, a następnie wywołaj wtyczkę przy użyciu nazwy funkcji i przekażesz ciąg konwersacji. Wtyczka zwraca podsumowanie konwersacji.

    Uwaga

    Ponieważ wtyczka jest nadal dostępna w wersji zapoznawczej, może być konieczne dodanie ostrzeżenia przy użyciu polecenia #pragma warning disable SKEXP0050 w górnej części pliku.

  3. Uruchom kod, wprowadzając dotnet run polecenie w terminalu.

    Powinna zostać wyświetlona odpowiedź podobna do następujących danych wyjściowych:

    {
        "actionItems": [
            {
                "owner": "",
                "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes",
                "dueDate": "",
                "status": "Open",
                "notes": ""
            }
        ]
    }
    

    Zwróć uwagę, że wtyczka mogła zidentyfikować uproszczoną intencję z ciągu wejściowego.

Ten przykład to dopiero początek tego, co można zrobić za pomocą zestawu SDK jądra semantycznego. W następnej lekcji dowiesz się więcej sposobów dostosowywania wtyczek i uruchamiania funkcji.

Ważne

Pamiętaj, aby nie usunąć żadnego z napisanych przez Ciebie kodu, potrzebnego do następnych ćwiczeń.