Ćwiczenie — używanie wbudowanych wtyczek
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.
Otwórz Visual Studio Code.
W sekcji Uruchamianie programu Visual Studio Code wybierz pozycję Klonuj repozytorium Git.
Na pasku adresu URL wprowadź
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
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.
Kliknij przycisk Wybierz jako miejsce docelowe repozytorium.
Aby pomyślnie sklonować projekt, musisz zalogować się do usługi GitHub.
Otwórz projekt w programie Visual Studio Code.
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.
Rozwiń folder M02-create-plugins-for-semantic-kernel/M02-Project.
Powinien zostać wyświetlony plik "Program.cs".
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
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
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
zCore.Plugins
pakietu. Utworzysz nowego konstruktora jądra i dodasz wtyczkę do konstruktora. FunkcjaConversationSummaryPlugin
obsługuje kilka akcji:GetConversationActionItems
,SummarizeConversation
iGetConversationTopics
.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.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ń.