Jeśli śledzisz mój blog, wiesz, że AI przestało być ciekawostką – staje się narzędziem codziennej pracy. Po integracjach z ChatGPT i testach ChatGPT.NET przyszedł czas na coś większego. Czas na Semantic Kernel.
Ten wpis to start nowej serii, w której pokażę, jak zbudować realną aplikację AI opartą na LLM, z pełną kontrolą nad kodem, integracją z naszym systemem i elastycznością, jakiej nie da się osiągnąć samym API OpenAI.
Semantic Kernel to open-source’owe SDK od Microsoftu, stworzone po to, by łatwo integrować modele językowe (np. GPT-4) z klasycznym kodem. Nie chodzi tu tylko o generowanie tekstu. Chodzi o to, by AI mogło:
korzystać z naszych danych,
wywoływać funkcje (pluginy),
podejmować decyzje (planowanie),
zapamiętywać informacje (pamięć),
reagować kontekstowo na sytuację.
To jak... framework dla AI w naszej aplikacji.
Na start warto zrozumieć kluczowe komponenty, które stanowią o sile SK:
To funkcje, które możemy wywoływać z poziomu AI — piszemy je w C#, Pythonie lub definiujemy jako prompt. Przykład: SendEmail
, GetWeather
, SummarizeText
.
Pluginy mogą być:
semantyczne – napisane jako prompt + parametry (np. "Streść poniższy tekst…"),
natychmiastowe – klasyczne metody C#, które AI może uruchomić (np. IEmailService.Send(...)
).
Główna instancja, która koordynuje wszystko. Dodajesz do niej pluginy, silniki AI, pamięć itd. To z niej wywołujesz funkcje, plany i zapytania.
To zbiór danych, z którymi AI pracuje w danym momencie. W kontekście mogą być zmienne, dane wejściowe, historia rozmowy – wszystko, co wpływa na decyzje AI.
SK może zapamiętywać informacje — np. historię użytkownika, poprzednie odpowiedzi, dane ze spotkań. Obsługuje różne źródła (in-memory, Azure Cognitive Search, Qdrant, Pinecone...).
To komponent odpowiedzialny za planowanie złożonych operacji — AI na podstawie celu dobiera odpowiednią sekwencję funkcji (pluginów), które wykona.
Przejdźmy do kodu. Załóżmy, że chcesz wystartować w .NET z GPT-4 od OpenAI i prostym pluginem.
Dodaj do projektu:
dotnet add package Microsoft.SemanticKernel --version x.y.z
Aktualną wersję znajdziesz tu.
var builder = Kernel.CreateBuilder(); builder.AddOpenAIChatCompletion("gpt-4", "YOUR_OPENAI_KEY"); var kernel = builder.Build();
W przypadku Azure OpenAI konfiguracja jest równie prosta – inny provider i klucze.
var prompt = "Podaj streszczenie tekstu: {{$input}}"; var summarize = kernel.CreateFunctionFromPrompt(prompt, functionName: "Summarize"); var result = await kernel.InvokeAsync(summarize, new() { ["input"] = "Semantic Kernel to SDK, które pozwala..." }); Console.WriteLine(result);
To wszystko — właśnie stworzyłeś i uruchomiłeś swoją pierwszą funkcję AI sterowaną promptem.
SK ma też gotowe sample konsolowe na GitHubie. Jeśli chcesz szybko sprawdzić działanie — zajrzyj tu.
W kolejnych wpisach pokażę, jak:
tworzyć własne pluginy jako klasy C#,
łączyć kilka funkcji w "plany",
zarządzać pamięcią i kontekstem,
zintegrować Semantic Kernel z Outlookiem i Teamsami.
To będzie AI… ale w pełni w Twoich rękach.
Semantic Kernel to most między klasycznym kodem a światem LLM.
Daje swobodę, bezpieczeństwo, rozszerzalność i świetnie wpisuje się w ekosystem .NET.
Jeśli podoba Ci się to podejście — zapraszam do dalszych wpisów.