Paweł Łukasiewicz: programista blogger
Paweł Łukasiewicz
2025-05-18
Paweł Łukasiewicz
2025-05-18
Udostępnij Udostępnij Kontakt
🧠 Wprowadzenie do Semantic Kernel – pierwsze kroki z AI w .NET

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.


❓ Czym właściwie jest Semantic Kernel?

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.


🧱 Z czego składa się Semantic Kernel?

Na start warto zrozumieć kluczowe komponenty, które stanowią o sile SK:

🔌 Pluginy (Functions)

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(...)).

🧠 Kernel

Główna instancja, która koordynuje wszystko. Dodajesz do niej pluginy, silniki AI, pamięć itd. To z niej wywołujesz funkcje, plany i zapytania.

🗂️ Context

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.

📝 Memory

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...).

📅 Planner

To komponent odpowiedzialny za planowanie złożonych operacji — AI na podstawie celu dobiera odpowiednią sekwencję funkcji (pluginów), które wykona.


⚙️ Minimalna konfiguracja – czyli jak zacząć

Przejdźmy do kodu. Załóżmy, że chcesz wystartować w .NET z GPT-4 od OpenAI i prostym pluginem.

1. Instalacja paczek NuGet

Dodaj do projektu:

dotnet add package Microsoft.SemanticKernel --version x.y.z 

Aktualną wersję znajdziesz tu.


2. Tworzenie kernela

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.


3. Tworzenie prostej funkcji (pluginu)

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.


🧪 A może testowo w konsoli?

SK ma też gotowe sample konsolowe na GitHubie. Jeśli chcesz szybko sprawdzić działanie — zajrzyj tu.


🔮 Co dalej?

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.


📎 Podsumowanie

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.