Sdílet prostřednictvím


Jednotné stavební bloky AI pro .NET pomocí Microsoft.Extensions.AI

Ekosystém .NET poskytuje abstrakce pro integraci služeb AI do aplikací a knihoven .NET pomocí Microsoft.Extensions.AI a Microsoft.Extensions.AI.Abstractions knihoven. Tým .NET také vylepšil základní Microsoft.Extensions.* knihovny těmito abstrakcemi pro aplikace a knihovny .NET Generative AI. V dalších částech se dozvíte:

  • Základní koncepty a možnosti Microsoft.Extensions.AI knihoven
  • Jak pracovat s abstrakcí umělé inteligence v aplikacích a výhodami, které nabízejí.
  • Základní koncepty middlewaru AI

Další informace naleznete v tématu Úvod do Microsoft.Extensions.AI.

Co je knihovna Microsoft.Extensions.AI?

Microsoft.Extensions.AI je sada základních knihoven .NET vytvořených ve spolupráci s vývojáři v ekosystému .NET, včetně sémantického jádra. Tyto knihovny poskytují jednotnou vrstvu abstrakcí jazyka C# pro interakci se službami AI, jako jsou malé a velké jazykové modely (SLM a LLM), vkládání a middleware.

diagram architektury knihoven rozšíření AI.

Microsoft.Extensions.AI poskytuje abstrakce, které mohou být implementovány různými službami, všechny dodržování stejných základních konceptů. Tato knihovna není určená k poskytování rozhraní API přizpůsobených službám konkrétního poskytovatele. Cílem Microsoft.Extensions.AI je jednat jako jednotná vrstva ekosystému .NET, která vývojářům umožňuje zvolit si upřednostňované architektury a knihovny a zároveň zajistit bezproblémovou integraci a spolupráci napříč ekosystémem.

Práce s abstrakcemi pro běžné služby AI

Možnosti umělé inteligence se rychle vyvíjejí a objevují se vzory pro běžné funkce:

  • Funkce chatu s výzvou k konverzaci umělé inteligence k informacím nebo analýze dat
  • Vkládání generování pro integraci s možnostmi vektorového vyhledávání
  • Volání nástrojů pro integraci s jinými službami, platformami nebo kódy

Knihovna Microsoft.Extensions.AI poskytuje abstrakce pro tyto typy úloh, takže se vývojáři mohou soustředit na kódování oproti koncepčním funkcím AI, a ne na konkrétní platformy nebo implementace poskytovatelů. Jednotné abstrakce jsou zásadní pro efektivní práci vývojářů v různých zdrojích.

Rozhraní například IChatClient umožňuje používat jazykové modely od různých poskytovatelů, ať se připojujete ke službě Azure OpenAI nebo spouštíte místní instalaci Ollama. Jakýkoli balíček .NET, který poskytuje klienta AI, může implementovat IChatClient rozhraní, což umožňuje bezproblémovou integraci s využitím kódu .NET:

IChatClient client =
    environment.IsDevelopment ?  
    new OllamaChatClient(...) : 
    new AzureAIInferenceChatClient(...); 

Pak bez ohledu na poskytovatele, který používáte, můžete posílat žádosti následujícím způsobem:

var response = await chatClient.CompleteAsync( 
      "Translate the following text into Pig Latin: I love .NET and AI"); 

Console.WriteLine(response.Message);  

Tyto abstrakce umožňují kód idiotického jazyka C# pro různé scénáře s minimálními změnami kódu, ať už používáte různé služby pro vývoj a produkci, řešíte hybridní scénáře nebo prozkoumáte jiné poskytovatele služeb.

Autoři knihoven, kteří tyto abstrakce implementují, zpřístupňují svým klientům interoperabilitu s širším Microsoft.Extensions.AI ekosystémem. Rozhraní API specifická pro službu zůstávají v případě potřeby přístupná, což uživatelům umožňuje kódovat proti standardním abstrakcím a předávat do vlastních rozhraní API pouze v případě potřeby.

Microsoft.Extensions.AI poskytuje implementace pro následující služby prostřednictvím dalších balíčků:

V budoucnu budou implementace těchto Microsoft.Extensions.AI abstrakcí součástí příslušných klientských knihoven a nebudou vyžadovat instalaci dalších balíčků.

Implementace middlewaru pro služby AI

Připojení ke službám AI a jejich používání je jen jedním z aspektů vytváření robustních aplikací. Aplikace připravené pro produkční prostředí vyžadují další funkce, jako jsou funkce telemetrie, protokolování a volání nástrojů. Abstrakce Microsoft.Extensions.AI umožňují snadno integrovat tyto komponenty do vašich aplikací pomocí známých vzorů.

Následující ukázka ukazuje, jak zaregistrovat OpenAI IChatClient. IChatClient umožňuje připojit schopnosti konzistentním způsobem napříč různými poskytovateli.

app.Services.AddChatClient(builder => builder 
    .UseLogging()
    .UseFunctionInvocation() 
    .UseDistributedCache()    
    .UseOpenTelemetry()  
    .Use(new OpenAIClient(...)).AsChatClient(...)); 

Funkce demonstrované v tomto fragmentu Microsoft.Extensions.AI kódu jsou součástí knihovny, ale představují pouze malou podmnožinu funkcí, které lze v tomto přístupu vrstvit. Vývojáři .NET můžou vystavit mnoho typů middlewaru, aby vytvořili výkonné funkce AI.

Sestavení s využitím Microsoft.Extensions.AI

Vytváření můžete začít následujícími Microsoft.Extensions.AI způsoby:

  • Vývojáři knihoven: Pokud vlastníte knihovny, které poskytují klientům služby AI, zvažte implementaci rozhraní ve vašich knihovnách. To umožňuje uživatelům snadno integrovat balíček NuGet prostřednictvím abstrakcí.
  • Příjemci služeb: Pokud vyvíjíte knihovny, které využívají služby AI, použijte abstrakce místo pevně zakódování na konkrétní službu AI. Tento přístup uživatelům dává flexibilitu při výběru preferované služby.
  • Vývojáři aplikací: Pomocí abstrakcí zjednodušte integraci do vašich aplikací. To umožňuje přenositelnost mezi modely a službami, usnadňuje testování a napodobování, využívá middleware poskytovaný ekosystémem a udržuje konzistentní rozhraní API v celé aplikaci, i když používáte různé služby v různých částech aplikace.
  • Přispěvatelé ekosystému: Pokud chcete přispívat do ekosystému, zvažte psaní vlastních komponent middlewaru. Začněte tím, že si prohlédnete ukázky v úložišti dotnet/ai-samples na GitHubu.

Kompletní ukázku pomocí Microsoft.Extensions.AIfunkce eShopSupport.

Další kroky