Blog Dla Programistów C#/.NET

sobota, 29 listopada 2025

W świecie .NET coraz więcej mówi się o Semantic Kernel – bibliotekę, która ma pomóc programistom w łatwej integracji sztucznej inteligencji z aplikacjami. Dynamiczny rozwój modeli językowych (LLM) pokroju GPT sprawił, że dodanie AI do projektu może znacząco wzbogacić funkcjonalność aplikacji. Tylko jak to zrobić bez zagłębiania się w niskopoziomowe szczegóły API modeli? Tu z pomocą przychodzi Semantic Kernel, czyli zestaw narzędzi od Microsoft, który upraszcza tworzenie tzw. agentów AI w aplikacjach .NET. W tym artykule wyjaśnię, czym jest Semantic Kernel, pokażę jego główne możliwości (na prostym przykładzie kodu) oraz podpowiem, jak zacząć z niego korzystać jako początkujący programista C#.

Semantic Kernel w C# - Co To Takiego i Jak Ułatwia Pracę z AI?

Czym jest Semantic Kernel?


Semantic Kernel (w skrócie SK) to open-source’owy SDK od Microsoftu do budowania systemów "agentów AI" w aplikacjach. Mówiąc prościej, jest to warstwa pośrednicząca (orkiestracyjna) pomiędzy Twoim kodem a modelem AI, ułatwiająca komunikację i wykonywanie zadań. Dzięki SK Twój program może wykorzystywać możliwości modelu AI (np. GPT-4) bez potrzeby pisania od zera całej logiki obsługi promptów, połączeń HTTP czy formatowania odpowiedzi. Microsoft zaprojektował tę bibliotekę z myślą o szybkim dostarczaniu rozwiązań opartych o AI – od prototypów po zastosowania produkcyjne w przedsiębiorstwach.

Najważniejsze możliwości Semantic Kernel to m.in.:
    
Umiejętności (Skills/Plugins) – modularne funkcje, które mogą być semantyczne (oparte o prompt) lub natywne (zwykły kod C#). SK pozwala zdefiniować własne "umiejętności" – np. zestaw funkcji do podsumowywania tekstu czy wyciągania informacji. Część z nich może być zaimplementowana jako prompt (polecenie dla modelu AI), a część jako normalna metoda C#. Dzięki temu logika aplikacji pozostaje w kodzie, ale prompty stają się pełnoprawnymi elementami rozwiązania. To rozdzielenie ułatwia zarządzanie i ponowne wykorzystanie tych funkcji.
    
Pamięć kontekstowa – mechanizmy przechowywania i przywoływania informacji, które pozwalają modelowi AI "pamiętać" wcześniejsze konwersacje czy dane. SK zapewnia wzorce zarówno na krótkoterminowy kontekst (ostatnie wiadomości), jak i długoterminową pamięć potrzebną np. do odpowiadania na podstawie dokumentów. Oznacza to, że budując chatbota czy asystenta, możemy łatwo zachować ciągłość rozmowy – model będzie świadomy tego, co już zostało powiedziane.
    
Planery (Planners) – wbudowany moduł do automatycznego planowania sekwencji czynności przez AI. Innymi słowy, gdy użytkownik zada złożone zadanie, planer może rozbić je na mniejsze kroki i dobrać, które funkcje/umiejętności wywołać po kolei. To bardzo przydatne, gdy nasz agent AI dysponuje zestawem różnych narzędzi – model potrafi sam zdecydować jakich "umiejętności" użyć i w jakiej kolejności, aby osiągnąć cel użytkownika. Dzięki temu można tworzyć bardziej autonomicznych agentów, które rozwiązują wieloetapowe zadania bez pisania sztywnej logiki warunkowej.
    
Łatwa integracja modeli AI – Semantic Kernel od początku wspiera różnych dostawców modeli. Możemy podłączyć zarówno OpenAI (np. ChatGPT poprzez ich API), jak i Azure OpenAI, a także lokalne modele open-source. Co więcej, zmiana modelu (np. przejście z GPT-3.5 na GPT-4) nie wymaga przebudowy całej aplikacji – wystarczy podmienić ustawienia połączenia. SK abstrahuje szczegóły wywołań API, więc jako programista skupiasz się na zadaniu, jakie ma wykonać AI, zamiast na niskopoziomowej komunikacji z modelem.

W praktyce Semantic Kernel dostarcza więc gotowy "most" między światem Twojej aplikacji a światem sztucznej inteligencji. Zamiast samodzielnie pisać kod do obsługi zapytań i odpoweidzi AI, korzystasz z wysokopoziomowych funkcji SK, takich jak wywołanie gotowego pluginu do tłumaczenia tekstu czy streszczania dokumentu. Biblioteka zarządza kontekstem, wywołuje odpowiednie funkcje i łączy wyniki z odpowiedziami modelu.


Przykład użycia Semantic Kernel


Aby lepiej zrozumieć, jak to działa, spójrzmy na prosty przykład. Załóżmy, że chcemy wygenerować treść przyjaznego e-maila do klienta na podstawie kilku informacji. Zamiast pisać cały tekst ręcznie, możemy użyć Semantic Kernel, by zrobił to za nas przy pomocy modelu językowego:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Orchestration;

var kernel = Kernel.Builder.Build(); /* Tworzymy instancję "jądra" SK (domyślnie gotową do użycia z podanym modelem AI) */

/* Definiujemy szablon prompta (instrukcję dla AI) z miejscami na zmienne: */
string promptTemplate = @"
Napisz uprzejmy email do klienta dotyczący jego ostatniego zamówienia.
Uwzględnij następujące informacje:
- Imię klienta: {{$name}}
- Numer zamówienia: {{$orderId}}
";

/* Tworzymy funkcję semantyczną na podstawie prompta */
var emailFunction = kernel.CreateSemanticFunction(promptTemplate);

/* Ustawiamy konkretną wartość zmiennych dla prompta */
var context = new ContextVariables();
context.Set("name", "Jan Kowalski");
context.Set("orderId", "ZX-12345");

/* Uruchamiamy funkcję semantyczną przy użyciu modelu AI */
var result = await kernel.RunAsync(emailFunction, context);

/* Wyświetlamy wygenerowaną treść e-maila */
Console.WriteLine(result);

Powyższy kod demonstruje kilka rzeczy. Po pierwsze, tworzymy instancję Kernel, czyli rdzenia Semantic Kernel – to on będzie odpowiedzialny za orkiestrację naszych wywołań. Następnie definiujemy prompt (w języku naturalnym) z dwoma dynamicznymi parametrami: imieniem klienta i numerem zamówienia. Za pomocą metody CreateSemanticFunction rejestrujemy ten prompt jako funkcję semantyczną o określonej logice (napisanie e-maila). Ustawiamy wartości dla zmiennych (name i orderId) w kontekście, po czym wywołujemy kernel.RunAsync, przekazując naszą funkcję oraz kontekst.

Efekt? Kernel wysyła zapytanie do modelu AI z naszym szablonem i danymi, a model odsyła wygenerowany tekst e-maila. Wyświetlenie result na konsoli może dać na przykład taki rezultat:

Szanowny Panie Janie,
Dziękujemy za Pańskie zamówienie o numerze ZX-12345. Chcielibyśmy poinformować, że... (dalej model wygeneruje resztę uprzejmej wiadomości)


Zwróć uwagę, ile pracy oszczędziliśmy – nie musieliśmy sami pisać treści maila, ani nawet wywoływać bezpośrednio API OpenAI. Semantic Kernel zajął się wszystkim pod spodem: przekazał nasz prompt do modelu, wstawił zmienne we właściwe miejsca, odebrał odpowiedź i udostępnił ją nam jako zwykły string. Taki schemat działania można wykorzystać do dziesiątek różnych zadań: od generowania podsumowań raportów, poprzez tłumaczenia, aż po budowanie całych konwersacyjnych chatbotów obsługujących użytkownika.

Oczywiście, aby kod zadziałał, wcześniej należy skonfigurować dostęp do modelu AI – np. ustawić klucz API i identyfikator modelu z OpenAI lub Azure AI. Semantic Kernel udostępnia proste metody do dodania odpowiedniego connectora (np. kernel.Config.AddOpenAIService(...)), dzięki czemu łączenie z usługą AI staje się jednorazową czynnością konfiguracyjną. Po dodaniu klucza możemy wielokrotnie wywoływać funkcje semantyczne tak jak powyżej.


Podsumowanie


Semantic Kernel to dla programistów .NET świetny sposób na rozpoczęcie przygody z AI. Pozwala w prosty i uporządkowany sposób "nauczyć" aplikację nowych zdolności – czy to generowania tekstu, czy wykonywania bardziej złożonych zadań – wykorzystując potęgę modeli pokroju GPT. Dzięki podejściu opartego o umiejętności i prompty możemy dodawać inteligentne funkcje do aplikacji bez przeprojektowywania całego systemu. SK dba o zaplecze (wywołania API modeli, zarządzanie kontekstem, planowanie kroków), a my możemy skupić się na logice biznesowej.

Jeżeli zainteresowało Cię budowanie takich inteligentnych rozwiązań i chcesz nauczyć się więcej w praktyce, rozważ dołączenie do mojego kompletnego szkolenia online Szkoła AI w C#/.NET. W ramach tego szkolenia krok po kroku pokazuję, jak od podstaw tworzyć własnych agentów AI w ekosystemie .NET – nawet jeśli dopiero zaczynasz i nie znasz się na uczeniu maszynowym. To dobry sposób, aby szybko zdobyć praktyczne umiejętności i zacząć tworzyć aplikacje wykorzystujące AI.

Na koniec warto pamiętać, że Semantic Kernel to projekt open-source – społeczność stale go rozwija, a Ty możesz śledzić nowości na oficjalnym repozytorium GitHub. Być może kolejne wersje przyniosą jeszcze więcej usprawnień ułatwiających integrację AI z Twoimi projektami. Nie pozostaje nic innego, jak przetestować SK samemu i przekonać się, jak może pomóc w tworzeniu nowoczesnych, inteligentnych aplikacji.

Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
CTO & Founder - FindSolution.pl
Programista C#/.NET. Specjalizuje się w Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET Web API, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2025 modestprogrammer.pl | Sztuczna Inteligencja | Regulamin | Polityka prywatności. Design by Kazimierz Szpin. Wszelkie prawa zastrzeżone.