loading experience

IA e agenti

Semantic Kernel: integrare l'IA nelle applicazioni .NET con i plugin

Kernel, plugin e chiamata automatica delle funzioni: come un modello linguistico usa il codice della tua applicazione.

Semantic Kernel: integrare l'IA nelle applicazioni .NET con i plugin

Semantic Kernel è l'SDK open source di Microsoft per integrare i modelli linguistici nelle applicazioni. Il suo concetto centrale è il kernel: un contenitore che unisce il servizio di IA, i plugin con le funzioni dell'applicazione e la configurazione.

Il modello decide cosa serve, il codice dell'applicazione fornisce i dati.
Il modello decide cosa serve, il codice dell'applicazione fornisce i dati.

Creare il kernel

var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion(
    modelId: "gpt-4o-mini",
    apiKey: configurazione["OpenAI:ApiKey"]!);
builder.Plugins.AddFromType<MagazzinoPlugin>();

Kernel kernel = builder.Build();

Un plugin

Un plugin è una classe con metodi decorati da [KernelFunction]. Le descrizioni sono fondamentali: è leggendole che il modello decide quando chiamare una funzione.

public class MagazzinoPlugin(IMagazzino magazzino)
{
    [KernelFunction, Description("Restituisce la quantità disponibile di un articolo dato il codice")]
    public Task<int> Giacenza([Description("Codice articolo, es. ABC-123")] string codice) =>
        magazzino.QuantitaAsync(codice);
}

Chiamata automatica delle funzioni

var impostazioni = new OpenAIPromptExecutionSettings
{
    FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
};

var risposta = await kernel.InvokePromptAsync(
    "Abbiamo abbastanza pezzi dell'articolo ABC-123 per un ordine da 40?",
    new KernelArguments(impostazioni));

Console.WriteLine(risposta);

Il modello capisce che gli serve la giacenza, chiama Giacenza("ABC-123"), riceve il numero e formula la risposta. Il codice dell'applicazione resta quello che decide e controlla i dati.

Buone pratiche

  • Esponi poche funzioni, con nomi e descrizioni chiari: troppe funzioni confondono il modello.
  • Valida sempre gli argomenti e applica i permessi dell'utente dentro le funzioni.
  • Per le operazioni che modificano dati, chiedi conferma all'utente prima di eseguirle.
  • Registra tracce e costi delle chiamate: Semantic Kernel si integra con OpenTelemetry.

Semantic Kernel convive con le astrazioni di Microsoft.Extensions.AI e la sua evoluzione verso gli agenti continua nel Microsoft Agent Framework.

Commenti (0)

Nessun commento ancora.

Lascia un commento