Sider.ai
  • Chat
  • Wisebase
  • Alati
  • Proširenje
  • Klijenti
  • Cijene
Preuzeti sada
Prijaviti se

Učite brže, razmišljajte dublje i rastite pametnije uz Sider.

Proizvodi
Aplikacije
  • Proširenja
  • iOS
  • Android
  • Mac OS
  • Windows
Wisebase
  • Wisebase
  • Deep Research
  • Scholar Research
  • Math Solver
  • Rec NoteNew
  • Audio To Text
  • Gamified Learning
  • Interactive Reading
  • ChatPDF
Alati
  • Kreator web stranicaNew
  • AI SlajdoviNew
  • AI pisac eseja
  • Nano Banana Pro
  • Nano Banana Infographic
  • AI generator slika
  • Italijanski generator mozgalica
  • Uklanjanje pozadine
  • Promjena pozadine
  • Brisanje fotografija
  • Uklanjanje teksta
  • Inpaint
  • Povećanje slike
  • Kreiraj
  • AI prevoditelj
  • Prevoditelj slika
  • PDF prevoditelj
Sider
  • Kontaktirajte nas
  • Centar za pomoć
  • Preuzimanje
  • Cijene
  • Plan obrazovanja
  • Što je novo
  • Blog
  • Zajednica
  • Partneri
  • Partneri
  • Pozovi
©2026 Sva prava pridržana
Uvjeti korištenja
Pravila privatnosti
  • Početna stranica
  • Blog
  • AI Alati
  • Kako koristiti Semantic Kernel: Praktični vodič s uzorcima, upitima i dodacima

Kako koristiti Semantic Kernel: Praktični vodič s uzorcima, upitima i dodacima

Ažurirano 24. ruj. 2025

9 min


Kako koristiti Semantic Kernel: Praktični vodič s uzorcima, upitima i dodacima

Jeste li ikada pokušali povezati LLM sa svojom aplikacijom i završili s krhkom zbrkom upita, pomoćnih funkcija i stanja? Semantic Kernel (SK) postoji upravo zato da to popravi. To je lagani okvir za orkestraciju otvorenog koda tvrtke Microsoft za izgradnju aplikacija s umjetnom inteligencijom koje kombiniraju prirodni jezik, alate i memoriju—bez pretvaranja vašeg koda u špagete od upita.
U ovom vodiču provest ćemo vas kroz praktičan, rješenjima usmjeren obilazak korištenja Semantic Kernela od nule do proizvodnih uzoraka. Naučit ćete kako strukturirati upite, priključiti alate, dodati memoriju, pozivati više modela i implementirati agente koji djeluju dosljedno. Primjere ćemo držati konkretnima i pokazati vam što je važno.

Što je Semantic Kernel—i zašto ga koristiti?

Semantic Kernel je SDK koji vam pomaže:
  • Sastaviti upite i funkcije ("vještine"/dodatke) u cjevovode.
  • Pozivati više modela (OpenAI, Azure OpenAI, lokalni modeli) naizmjenično.
  • Dodati memoriju za kontekst i dugoročno prisjećanje putem ugradnji.
  • Planirati i orkestrirati višestepene zadatke s pouzdanim stanjem.
  • Integrirati alate (API-je, baze podataka, datotečni I/O) sigurno i deterministički.
Zamislite SK kao kontroler koji koordinira LLM-ove, logiku vaše aplikacije i korisničke podatke. Umjesto tvrdog kodiranja dugih upita i ad hoc poziva alata, definirate semantičke funkcije i izvorne funkcije za višekratnu upotrebu s jasnim ulazima/izlazima.
Uobičajeni slučajevi upotrebe:
  • Korisnički servisi s generiranjem obogaćenim dohvaćanjem (RAG)
  • Agenti za tijek rada (sažmi → klasificiraj → poduzmi akciju)
  • Pitanja i odgovori za dokumente s memorijom i citatima
  • Cjevovodi za kreativni sadržaj i generiranje koda

Brzi početak: Vaša prva aplikacija Semantic Kernel

U nastavku je minimalni tijek koji pokazuje kako koristiti Semantic Kernel s modelom za chat i jednostavnim upitom. Za jasnoću ćemo koristiti C#; isto možete učiniti u Pythonu ili Javi.

1) Instalirajte pakete

# .NET
dotnet add package Microsoft.SemanticKernel
# Izborno: konektori i planeri razlikuju se ovisno o verziji

2) Konfigurirajte jezgru i model

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.OpenAI;
var builder = Kernel.CreateBuilder;
// Odaberite svog davatelja usluga: OpenAI ili Azure OpenAI
builder.AddOpenAIChatCompletion(
modelId: "gpt-4o-mini", // ili vaš preferirani model
apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY")
);
var kernel = builder.Build;

3) Definirajte semantičku funkciju (upit)

using Microsoft.SemanticKernel.SemanticFunctions;
var prompt = @"Vi ste sažeti objašnjavač.
Objasnite koncept '{topic}' u 3 točke za početnika.";
var explainFunc = kernel.CreateFunctionFromPrompt(prompt);
var result = await explainFunc.InvokeAsync(kernel, new { ["topic"] = "vektorske ugradnje" });
Console.WriteLine(result);
Ovo je srž: jezgra, model i upit pretvoreni u funkciju za višekratnu upotrebu s ulazima.

Semantičke funkcije vs. Izvorne funkcije

  • Semantičke funkcije: Pokreću ih upiti. Stvarate ih iz predložaka, prosljeđujete varijable i dobivate tekst ili strukturirane izlaze.
  • Izvorne funkcije: Uobičajene funkcije koda koje SK izlaže LLM-u za upotrebu alata.
Primjer izvorne funkcije koja dohvaća vremensku prognozu s vašeg API-ja i izlaže je modelu:
public class WeatherPlugin
{
[KernelFunction, Description("Dohvati vremensku prognozu za grad")]
public async Task<string> GetWeatherAsync(
[Description("Naziv grada")] string city)
{
// Pozovite svoj API za vremensku prognozu ovdje
var temp = 22; // rezervirano mjesto
return $"Vrijeme u {city}: {temp}°C i vedro";
}
}
// Registrirajte dodatak
var weather = new WeatherPlugin;
kernel.Plugins.AddFromObject(weather, pluginName: "weather");
Sada vaši upiti mogu pozvati weather.GetWeatherAsync kao alat, omogućujući modelu da temelji odgovore na stvarnim podacima.

Uzorci upita koji stvarno rade

Kada učite kako koristiti Semantic Kernel, najbrže pobjede dolaze od discipliniranih uzoraka upita:
  • Prvo sustav: Koristite snažnu poruku sustava za zaključavanje tona, persone, sigurnosti i formata izlaza.
  • Utori varijabli: Jasno imenujte rezervirana mjesta (npr., {topic}, {audience}) i potvrdite ulaz.
  • Izlazni ugovori: Zatražite strukturirane formate poput JSON-a; uključite shemu u upit.
  • Malo snimaka: Pružite sažete primjere za stil i format, a ne za preopterećenje sadržajem.
  • Zaštitne ograde: Uključite ograničenja (“Ako nedostaju podaci, prvo postavite pojašnjavajuće pitanje”).
Primjer strukturiranog upita unutar SK:
var prompt = @"
Vi ste mehanizam za klasifikaciju.
Zadatak: Klasificirajte `poruku` u jednu od [Naplata, Tehnička podrška, Prodaja].
Vratite strogi JSON: { \"label\": string, \"confidence\": number }
message: {message}
";
var classify = kernel.CreateFunctionFromPrompt(prompt);
var output = await classify.InvokeAsync(kernel, new { ["message"] = "Ne mogu se prijaviti na svoj račun." });
Console.WriteLine(output); // {"label":"Tehnička podrška","confidence":0.89}

Dodavanje memorije: Ugradnje, RAG i kontekstni prozori

LLM-ovi zaboravljaju. Memorija ih čini korisnima.
  • Kratkoročni kontekst: Automatski putem povijesti razgovora.
  • Dugoročna memorija: Pohranite ugradnje korisničkih bilješki, dokumenata ili događaja i dohvatite relevantne dijelove za kontekst.
  • RAG: Prije pozivanja funkcije generiranja, upitajte svoju vektorsku pohranu i ubrizgajte rezultate u upit.
Primjer: dodajte tekstualnu memoriju s ugradnjama i dohvatite kontekst.
using Microsoft.SemanticKernel.Memory;
var memory = new MemoryBuilder
.WithMemoryStore(new VolatileMemoryStore) // zamijenite za vektorsku bazu podataka (Qdrant, Pinecone, Azure AI Search)
.WithTextEmbeddingGeneration(
new OpenAITextEmbeddingGeneration("text-embedding-3-small", Environment.GetEnvironmentVariable("OPENAI_API_KEY")))
.Build;
await memory.SaveInformationAsync(
collection: "policies", id: "refund-policy",
text: "Kupci mogu zatražiti povrat novca u roku od 30 dana od kupnje uz dokaz o primitku."
);
// Kasnije: dohvatite i ubacite u upit
var results = memory.SearchAsync("refund window", collection: "policies", limit: 3, minRelevanceScore: 0.7);
await foreach (var item in results)
{
Console.WriteLine($"Relevantno: {item.Metadata.Text}");
}
Zatim unesite najbolje podudarnosti u svoju semantičku funkciju kao varijable konteksta. Savjet: držite dijelove malima (200–400 tokena) i deduplicirajte.

Upotreba alata i planiranje: Višestepeni tijekovi rada

Semantic Kernel podržava planere koji mogu razbiti korisnički cilj na korake i odabrati koje funkcije pozvati. Ovo je savršeno kada imate alatni okvir izvornih i semantičkih funkcija.
Uzorak:
  1. Prikupite cilj i ograničenja od korisnika.
  1. Napravite nacrt plana (niz poziva funkcija s argumentima).
  1. Izvršite korak po korak, provjerite izlaze i oporavite se od pogrešaka.
Primjer pseudokoda:
// 1) Definirajte dodatke (semantičke + izvorne) kao i prije
// 2) Koristite planer (API površina može se razlikovati ovisno o verziji)
var goal = "Sažmite priloženu politiku, klasificirajte rizik i pošaljite izvješće e-poštom";
// Pretpostavimo da imamo dodatke: datoteke, sažmi, klasificiraj, e-pošta
// Planer će sastaviti plan: files.Load → summarize.Run → classify.Run → email.Send
// Izvršite plan sekvencijalno, potvrdite JSON izlaze između koraka
Najbolje prakse:
  • Učinite korake idempotentnima i testiranima.
  • Postavite eksplicitne sheme izlaza između koraka.
  • Koristite ponovne pokušaje/povlačenje na umreženim alatima.
  • Zabilježite ulaze/izlaze za vidljivost (ali očistite PII).

Strategija više modela: Odaberite pravi model za posao

Pomoću Semantic Kernela možete usmjeravati zadatke na različite modele:
  • Brzi nacrti → mali, jeftini modeli
  • Koraci s teškim zaključivanjem → veći modeli
  • Ugradnje → specijalizirani model ugradnje
  • Kod → modeli optimizirani za kod
U praksi:
var kernel = Kernel.CreateBuilder
.AddOpenAIChatCompletion("gpt-4o-mini", apiKey)
.Build;
var fastKernel = Kernel.CreateBuilder
.AddOpenAIChatCompletion("gpt-4o-mini", apiKey) // optimizirano za brzinu
.Build;
// Usmjerite jednostavnije upite na fastKernel; složene zadatke na kernel
Ili konfigurirajte više usluga u istoj jezgri i odaberite po funkciji.

Od prototipa do proizvodnje: Zaštitne ograde i testiranje

Dok učite kako koristiti Semantic Kernel u stvarnim aplikacijama, pouzdanost je važna:
  • Izlazi prvo shema: Koristite JSON sheme i TryParse vrata.
  • Determinizam kada je potrebno: Postavite nisku temperaturu i ograničite izlaze.
  • Sigurnosni filtri: Dodajte filtre sadržaja i upite crvenog tima.
  • Predmemoriranje: Predmemorirajte RAG rezultate i stabilne generacije.
  • Vidljivost: Zabilježite predloške upita, varijable, latenciju, upotrebu tokena.
  • Jedinični testovi: Zlatni testni upiti s usporedbama snimaka.
Primjer: potvrdite JSON izlaz.
record Classification(string label, double confidence);
bool TryParseClassification(string text, out Classification cls)
{
try { cls = System.Text.Json.JsonSerializer.Deserialize<Classification>(text)!; return true; }
catch { cls = default!; return false; }
}

Uzorci iz stvarnog svijeta koje možete ponovno upotrijebiti

  • RAG Chatbot: dohvati(kontekst) → odgovori(pitanje, kontekst) s citatima.
  • Tijekovi rada odobravanja: klasificiraj → generiraj nacrt → ljudska revizija → pošalji.
  • Operacije sadržaja: nacrtaj → nacrtaj → provjeri činjenice → prilagodi ton → objavi.
  • Agent s alatima: calendar.lookup, docs.search, email.send; s planiranjem i memorijom.
Savjet: Enkapsulirajte svaki korak kao funkciju (semantičku ili izvornu) i sastavite ih u cjevovode.

Primjer: Pitanja i odgovori za dokumente s citatima

Povežimo jednostavan cjevovod za pitanja i odgovore koji citira izvore pomoću RAG-a.
// 1) Unesite dokumente u memoriju
await memory.SaveInformationAsync("handbook", "vacation-policy",
"Zaposlenici nakupljaju 1,5 dana PTO-a mjesečno i mogu prenijeti 5 dana.");
// 2) Dohvatite kontekst za pitanje
var top = memory.SearchAsync("carry over PTO", "handbook", limit: 3, minRelevanceScore: 0.75);
var contexts = new List<string>;
await foreach (var r in top) contexts.Add(r.Metadata.Text);
// 3) Pitajte s kontekstom i zatražite citate
var qaPrompt = @"
Odgovarate strogo iz zadanog konteksta. Ako nedostaje, recite da ne znate.
Uključite inline citate poput [izvor i] koristeći indeks stavki konteksta počevši od 1.
Kontekst:
1) {{ctx1}}
2) {{ctx2}}
Pitanje: {{q}}
";
var qa = kernel.CreateFunctionFromPrompt(qaPrompt);
var variables = new KernelArguments
{
["ctx1"] = contexts.ElementAtOrDefault(0) ?? "",
["ctx2"] = contexts.ElementAtOrDefault(1) ?? "",
["q"] = "Koliko PTO dana mogu prenijeti?"
};
var answer = await qa.InvokeAsync(kernel, variables);
Console.WriteLine(answer);

Uobičajene zamke (i kako ih izbjeći)

  • Jedan divovski upit: Razbijte u funkcije; proslijedite samo kontekst koji vam je potreban.
  • Nema izlaznih ugovora: Uvijek definirajte sheme za strojno čitljive korake.
  • RAG bez higijene: Dobro podijelite, deduplicirajte i rangirajte prema relevantnosti i nedavnosti.
  • Širenje alata: Držite sučelja dodataka malima i dokumentiranima.
  • Nema čovjeka u petlji: Dodajte odobrenja za radnje visokog rizika.

Kako koristiti Semantic Kernel s frontendima

  • Web aplikacije: Ugostite svoju SK orkestraciju u API sloju; strujite tokene u UI.
  • Chat UI: Održavajte stanje razgovora na strani poslužitelja; obrezujte i sažimajte.
  • Provjera autentičnosti: Pozivi sigurni od lažnog predstavljanja—nikada ne dopustite modelu da kuje tokene. Ograničite pozive alata putem svog backenda.

Kontrolni popis za implementaciju

  • Varijable okruženja za ključeve i krajnje točke
  • Ograničavanje brzine i ponovni pokušaji za pozive modela/alata
  • Kontrola izvora predloška upita
  • Sigurnosne kopije vektorske pohrane i rukovanje PII
  • Nadzorne ploče za vidljivost (latencija, trošak, pogreške)
  • A/B testiranje za upite i usmjeravanje

Rješavanje problema u stilu FAQ

  • “Model halucinira čak i s RAG-om.” Pojačajte upute: "Odgovorite samo iz konteksta" i uključite primjer odbijanja. Povećajte specifičnost dohvaćanja i smanjite temperaturu.
  • “JSON se stalno kvari.” Dodajte mini primjer valjanog JSON-a i zabranite komentare. Post-validirajte i preformulirajte u slučaju neuspjeha.
  • “Latencija je visoka.” Dohvatite manje, relevantnije dijelove; prebacite jednostavne korake na manje modele; paralelizirajte neovisne korake.
  • “Troškovi rastu.” Predmemorirajte, komprimirajte kontekst i usmjerite jednostavne zadatke na jeftinije modele.

Vrijedno je napomenuti: Izgradite brže uz Sider.AI

Ako izrađujete prototipove upita, testirate tijekove alata ili uspoređujete odgovore između modela, pratitelj poput Sider.ai može ubrzati iteraciju. Možete izraditi upite, pokrenuti A/B usporedbe i snimiti isječke za višekratnu upotrebu prije nego što ih premjestite u predloške Semantic Kernela—odlično za izoštravanje uputa i shema izlaza.

Sljedeći koraci: Pretvorite ovo u radnog agenta

  • Počnite s jednim jasnim zadatkom (npr., klasificirajte e-poštu podrške).
  • Definirajte semantičke/izvorne funkcije sa strogim ulazima/izlazima.
  • Dodajte memoriju samo tamo gdje mjerljivo poboljšava odgovore.
  • Instrumentirajte sve; testirajte sa stvarnim uzorcima.
  • Ponavljajte upite pomoću sandboxa, a zatim kodificirajte u SK.
Ključni zaključci:
  • Semantic Kernel vam pomaže sastaviti upite, alate i memoriju u pouzdane tijekove rada.
  • Koristite sheme izlaza, planere i usmjeravanje s više modela za robusnost i kontrolu troškova.
  • RAG plus zaštitne ograde pobjeđuju divovske upite svaki put.
Nakon što ovladate korištenjem Semantic Kernela s ovim uzorcima, isporučit ćete značajke umjetne inteligencije koje nisu samo impresivne demonstracije—već pouzdani sustavi.

FAQ

P1: Za što se koristi Semantic Kernel u aplikacijama umjetne inteligencije? Semantic Kernel je SDK za orkestraciju za izgradnju tijekova rada umjetne inteligencije koji kombiniraju LLM upite, alate (izvorne funkcije) i memoriju. Pomaže vam strukturirati zadatke, dodati RAG i pouzdano pozivati više modela.
P2: Kako koristiti Semantic Kernel za RAG s mojim dokumentima? Unesite svoje dokumente u vektorsku pohranu putem SK-ovih memorijskih API-ja, zatim dohvatite najrelevantnije dijelove po upitu i ubrizgajte ih u svoj upit. To poboljšava točnost i smanjuje halucinacije.
P3: Može li Semantic Kernel pozivati vanjske API-je i usluge? Da. Zamotajte API-je kao izvorne funkcije u dodatku i registrirajte ih u jezgri kako bi ih model mogao koristiti kao alate. Držite sučelja malima i provedite provjeru valjanosti ulaza/izlaza.
P4: Koji modeli rade sa Semantic Kernelom? Semantic Kernel podržava OpenAI, Azure OpenAI i druge konektore. Možete usmjeravati zadatke na različite modele—na primjer, manje modele za nacrte i veće modele za korake koji zahtijevaju intenzivno zaključivanje.
P5: Kako učiniti Semantic Kernel izlaze dosljednima (npr. JSON)? Koristite strukturirane upite koji zahtijevaju strogi JSON i uključuju minimalni primjer ili shemu. Postavite nisku temperaturu, potvrdite izlaze nakon poziva i ponovite ili popravite kada raščlanjivanje ne uspije.

Nedavni članci
Kako savladati ChatPDF: Brže razumijevanje složenih dokumenata

Kako savladati ChatPDF: Brže razumijevanje složenih dokumenata

Najbolja alternativa za X automatski prijevod za brze i točne dokumente

Najbolja alternativa za X automatski prijevod za brze i točne dokumente

Samsung AI prijevod nije dostupan u Iranu? Praktična rješenja

Samsung AI prijevod nije dostupan u Iranu? Praktična rješenja

Alati za prijevod na perzijski: praktični vodič za brži i točniji rad

Alati za prijevod na perzijski: praktični vodič za brži i točniji rad

Najbolja alternativa za Grok za dubinska, citirana istraživanja

Najbolja alternativa za Grok za dubinska, citirana istraživanja

Top 15 značajki generatora slika s umjetnom inteligencijom koje ćete zaista koristiti

Top 15 značajki generatora slika s umjetnom inteligencijom koje ćete zaista koristiti