Blocchi predefiniti unificati di intelligenza artificiale per .NET tramite Microsoft.Extensions.AI
L'ecosistema .NET fornisce astrazioni per l'integrazione dei servizi di intelligenza artificiale in applicazioni e librerie .NET usando le Microsoft.Extensions.AI librerie e Microsoft.Extensions.AI.Abstractions
. Il team .NET ha anche migliorato le librerie di base Microsoft.Extensions.*
con queste astrazioni per le applicazioni e le librerie di intelligenza artificiale generativi .NET. Le sezioni seguenti illustreranno:
- Concetti di base e funzionalità delle
Microsoft.Extensions.AI
librerie. - Come usare le astrazioni di intelligenza artificiale nelle app e i vantaggi offerti.
- Concetti essenziali relativi al middleware di intelligenza artificiale.
Per altre informazioni, vedere introduzione a Microsoft.Extensions.AI.
Che cos'è la libreria di Microsoft.Extensions.AI?
Microsoft.Extensions.AI è un set di librerie .NET di base create in collaborazione con gli sviluppatori nell'ecosistema .NET, incluso il kernel semantico. Queste librerie forniscono un livello unificato di astrazioni C# per interagire con i servizi di intelligenza artificiale, ad esempio modelli di linguaggio di piccole e grandi dimensioni (SMS e LLMS), incorporamenti e middleware.
Microsoft.Extensions.AI
fornisce astrazioni che possono essere implementate da vari servizi, rispettando tutti gli stessi concetti di base. Questa libreria non è progettata per fornire API personalizzate per i servizi di un provider specifico. L'obiettivo di è quello di Microsoft.Extensions.AI
fungere da livello unificante all'interno dell'ecosistema .NET, consentendo agli sviluppatori di scegliere i propri framework e librerie preferiti garantendo al tempo stesso un'integrazione e una collaborazione senza problemi nell'ecosistema.
Usare astrazioni per i servizi di intelligenza artificiale comuni
Le funzionalità di intelligenza artificiale sono in rapida evoluzione, con modelli emergenti per le funzionalità comuni:
- Le funzionalità di chat per richiedere un'intelligenza artificiale per informazioni o analisi dei dati.
- Generazione di incorporamento per l'integrazione con le funzionalità di ricerca vettoriale.
- Strumento che chiama per l'integrazione con altri servizi, piattaforme o codice.
La Microsoft.Extensions.AI
libreria fornisce astrazioni per questi tipi di attività, in modo che gli sviluppatori possano concentrarsi sulla codifica rispetto alle funzionalità di intelligenza artificiale concettuali anziché a specifiche piattaforme o implementazioni del provider. Le astrazioni unificate sono fondamentali per gli sviluppatori per lavorare in modo efficace tra origini diverse.
Ad esempio, l'interfaccia consente l'utilizzo IChatClient
di modelli linguistici di vari provider, sia che ci si connetta a un servizio OpenAI di Azure o si esegua un'installazione locale di Ollama. Qualsiasi pacchetto .NET che fornisce un client di intelligenza artificiale può implementare l'interfaccia IChatClient
, abilitando l'integrazione senza problemi con l'uso del codice .NET:
IChatClient client =
environment.IsDevelopment ?
new OllamaChatClient(...) :
new AzureAIInferenceChatClient(...);
Indipendentemente dal provider in uso, è quindi possibile inviare richieste nel modo seguente:
var response = await chatClient.CompleteAsync(
"Translate the following text into Pig Latin: I love .NET and AI");
Console.WriteLine(response.Message);
Queste astrazioni consentono il codice C# idiomatico per vari scenari con modifiche minime al codice, indipendentemente dal fatto che si usino servizi diversi per lo sviluppo e la produzione, la gestione di scenari ibridi o l'esplorazione di altri provider di servizi.
Gli autori di librerie che implementano queste astrazioni rendono i loro client interoperabili con l'ecosistema più Microsoft.Extensions.AI
ampio. Le API specifiche del servizio rimangono accessibili, se necessario, consentendo ai consumer di scrivere codice rispetto alle astrazioni standard e passare alle API proprietarie solo quando necessario.
Microsoft.Extensions.AI
fornisce implementazioni per i servizi seguenti tramite pacchetti aggiuntivi:
In futuro, le implementazioni di queste Microsoft.Extensions.AI
astrazioni faranno parte delle rispettive librerie client anziché richiedere l'installazione di pacchetti aggiuntivi.
Implementazioni del middleware per i servizi di intelligenza artificiale
La connessione e l'uso dei servizi di intelligenza artificiale è solo un aspetto della creazione di applicazioni affidabili. Le applicazioni pronte per la produzione richiedono funzionalità aggiuntive, ad esempio telemetria, registrazione e funzionalità di chiamata agli strumenti. Le Microsoft.Extensions.AI
astrazioni consentono di integrare facilmente questi componenti nelle applicazioni usando modelli familiari.
Nell'esempio seguente viene illustrato come registrare un oggetto OpenAI IChatClient
.
IChatClient
consente di collegare le funzionalità in modo coerente tra vari provider.
app.Services.AddChatClient(builder => builder
.UseLogging()
.UseFunctionInvocation()
.UseDistributedCache()
.UseOpenTelemetry()
.Use(new OpenAIClient(...)).AsChatClient(...));
Le funzionalità illustrate in questo frammento di codice sono incluse nella Microsoft.Extensions.AI
libreria, ma sono solo un piccolo subset delle funzionalità che possono essere sovrapposte a questo approccio. Gli sviluppatori .NET sono in grado di esporre molti tipi di middleware per creare potenti funzionalità di intelligenza artificiale.
Compilazione con Microsoft.Extensions.AI
È possibile iniziare a creare con Microsoft.Extensions.AI
nei modi seguenti:
- Sviluppatori di librerie: se si è proprietari di librerie che forniscono client per i servizi di intelligenza artificiale, è consigliabile implementare le interfacce nelle librerie. In questo modo gli utenti possono integrare facilmente il pacchetto NuGet tramite le astrazioni.
- Consumer di servizi: se si sviluppano librerie che usano servizi di intelligenza artificiale, usare le astrazioni anziché hardcoding per un servizio di intelligenza artificiale specifico. Questo approccio offre ai consumatori la flessibilità necessaria per scegliere il proprio servizio preferito.
- Sviluppatori di applicazioni: usare le astrazioni per semplificare l'integrazione nelle app. Ciò consente la portabilità tra modelli e servizi, facilita il test e la simulazione, sfrutta il middleware fornito dall'ecosistema e mantiene un'API coerente in tutta l'app, anche se si usano servizi diversi in parti diverse dell'applicazione.
- Collaboratori dell'ecosistema: se si è interessati a contribuire all'ecosistema, è consigliabile scrivere componenti middleware personalizzati.
Per iniziare, vedere gli esempi nel repository GitHub dotnet/ai-samples .
Per un esempio end-to-end con Microsoft.Extensions.AI
, vedere eShopSupport.