Integrare un modello linguistico in un'applicazione .NET significava legarsi alla libreria di un singolo fornitore. Microsoft.Extensions.AI introduce astrazioni comuni: si scrive il codice una volta e si cambia fornitore cambiando la configurazione.
IChatClient
IChatClient client = CreaClient(); // OpenAI, Azure, un modello locale...
ChatResponse risposta = await client.GetResponseAsync(
"Riassumi in tre punti i vantaggi di .NET 10 per un'azienda.");
Console.WriteLine(risposta.Text);
Ogni fornitore offre un pacchetto che implementa l'interfaccia; anche i modelli eseguiti in locale, per esempio con Ollama, si usano nello stesso modo. Per le risposte lunghe c'è la versione in streaming, che restituisce il testo man mano che viene generato.
Middleware componibili
Come in ASP.NET Core, le funzionalità trasversali si aggiungono come livelli attorno al client:
IChatClient client = new ChatClientBuilder(clienteBase)
.UseFunctionInvocation() // il modello può chiamare funzioni C#
.UseOpenTelemetry() // tracce e metriche delle chiamate
.Build();
Chiamare funzioni dell'applicazione
Con l'invocazione di funzioni il modello può chiedere di eseguire metodi esposti dall'applicazione, per esempio "cerca l'ordine 4521", e usare il risultato nella risposta. Ogni funzione esposta va trattata come un endpoint pubblico: validazione degli argomenti, permessi e limiti.
Attenzione ai dati
- Non inviare a un servizio esterno dati personali o riservati senza una base giuridica e un contratto adeguato.
- Valuta modelli locali quando i dati non devono uscire dall'azienda.
- Tratta il testo generato come input non fidato: mai eseguirlo come codice o inserirlo in una pagina senza escape.
Commenti (0)
Nessun commento ancora.