czyli jak połączyć pluginy, scoring, podsumowania i szablony promptów w jedną sensowną aplikację
Przez ostatnie wpisy rozbieraliśmy Semantic Kernel na czynniki pierwsze.
Było o pluginach, planowaniu, pamięci, promptach i wtyczkach.
Ale dziś… czas to wszystko złożyć w całość.
Stworzymy aplikację, która:
🔍 zada pytanie w Google (lub Bing API)
📑 zbierze wyniki i oceni ich trafność
✂️ stworzy krótkie podsumowania
🧾 wygeneruje przejrzysty raport przy pomocy HandlebarsPrompt
Semantic Kernel (C#) – wiadomo 😎
Plugin web search – do wyszukiwania informacji
Prompt functions – do scoringu i oceny trafności
Native functions – do ekstrakcji i czyszczenia treści
Memory (opcjonalnie) – do tymczasowego przechowania wyników
Handlebars Prompt Template – do wygenerowania ostatecznego raportu
Tworzymy prosty plugin WebSearchPlugin
, który korzysta z API np. SerpAPI lub Bing Search API.
Zwracamy 5–10 wyników zawierających:
URL
Title
Snippet / krótki opis
public class WebSearchPlugin { [SKFunction] public async Task<string> SearchAsync(string query) { // Call to external search API return searchResultsJson; } }
Tworzymy prompt function, która oceni trafność każdego wyniku względem pytania użytkownika.
Przykładowy prompt:
Given the search result: "{{snippet}}", and the question: "{{question}}", rate the usefulness of the result from 1 to 10 and explain why.
Output:
{ "score": 8, "justification": "This snippet directly mentions the core topic and gives practical data." }
Tworzymy osobną prompt function, która przetworzy każdy wynik i zredukuje go do 1–2 zdań:
Summarize the key idea from the following content snippet in 1–2 sentences: "{{snippet}}"
To daje nam szybką esencję treści.
Kiedy mamy:
pytanie
najlepiej ocenione wyniki
krótkie podsumowania
…możemy złożyć końcowy raport.
I tu wjeżdża HandlebarsPromptTemplate
.
# Research Report for: {{question}} We found {{results.length}} relevant results. Below is a structured summary. {{#each results}} ## {{@index+1}}. {{title}} **Score**: {{score}} **Summary**: {{summary}} **URL**: {{url}} {{/each}} This report was auto-generated by your Semantic Kernel Research Assistant.
Wynik? Zgrabny, czytelny raport gotowy do wrzucenia do maila, dokumentu czy chata zespołowego.
🔹 Realne wykorzystanie Semantic Kernel
🔹 Praktyczny przykład “chaining functions”
🔹 Wykorzystanie promptów i natywnych funkcji
🔹 Integracja z zewnętrznymi API
🔹 Output, który daje wartość końcowemu użytkownikowi
✉️ Wysyłanie raportu mailem (plugin Outlook)
💬 Prezentacja w Teamsach (plugin Teams)
🧠 Zapisywanie wyników do pamięci (Qdrant / SKMemory)
📊 Analiza statystyczna wyników (plugin matematyczny)
To była nasza AI Research App – kompletna aplikacja oparta o Semantic Kernel.
W kolejnym (ostatnim) wpisie domkniemy całość i opowiemy o tym, co dalej, jak rozwijać własne agenty i gdzie ta technologia może Cię zaprowadzić 🚀