knihovny Microsoft.Extensions.AI

Vývojáři .NET potřebují integrovat a pracovat s rostoucí škálou služeb umělé inteligence (AI) ve svých aplikacích. Knihovny Microsoft.Extensions.AI poskytují jednotný přístup pro reprezentaci generovaných komponent AI a umožňují bezproblémovou integraci a interoperabilitu s různými službami AI. Tento článek představuje knihovny a poskytuje podrobné příklady použití, které vám pomůžou začít.

Balíčky

Balíček 📦 Microsoft.Extensions.AI.Abstractions poskytuje základní typy výměn, včetně IChatClient a IEmbeddingGenerator<TInput,TEmbedding>. Každá knihovna .NET, která poskytuje klienta LLM, může implementovat IChatClient rozhraní pro snadnější integraci do stávajícího kódu.

Balíček 📦 Microsoft.Extensions.AI má implicitní závislost na balíčku Microsoft.Extensions.AI.Abstractions. Tento balíček umožňuje snadno integrovat komponenty, jako je automatické vyvolání nástroje funkcí, telemetrie a ukládání do mezipaměti do aplikací pomocí známých vzorců injektáže závislostí a middlewaru. Poskytuje například metodu rozšíření UseOpenTelemetry(ChatClientBuilder, ILoggerFactory, String, Action<OpenTelemetryChatClient>), která přidává podporu OpenTelemetry do kanálu chatovacího klienta.

Na který balíček se má odkazovat

Pokud chcete mít přístup k nástrojům vyšší úrovně pro práci s generujícími komponentami AI, použijte místo toho odkaz na Microsoft.Extensions.AI balíček (který sám odkazuje Microsoft.Extensions.AI.Abstractions). Nejužívnější aplikace a služby by měly odkazovat na Microsoft.Extensions.AI balíček společně s jednou nebo více knihovnami, které poskytují konkrétní implementace abstrakcí.

Knihovny, které poskytují implementace abstrakcí obvykle odkazují pouze Microsoft.Extensions.AI.Abstractions.

Instalace balíčků

Informace o tom, jak nainstalovat balíčky NuGet, naleznete v tématu dotnet package add nebo Manage package dependencies in .NET applications.

Rozhraní API a funkce

Rozhraní IChatClient

Rozhraní IChatClient definuje abstrakci klienta zodpovědnou za interakci se službami AI, které poskytují možnosti chatu. Obsahuje metody pro odesílání a přijímání zpráv s vícemodálním obsahem (například textem, obrázky a zvukem), a to buď jako kompletní sada, nebo streamovaná přírůstkově.

Další informace a podrobné příklady použití naleznete v tématu Použití rozhraní IChatClient.

Rozhraní IEmbeddingGenerator

Rozhraní IEmbeddingGenerator představuje obecný generátor vnoření. Pro generické typové parametry je TInput typ vstupních hodnot, který je vkládán, a TEmbedding je typem vygenerovaného vetknutí, který dědí z třídy Embedding.

Další informace a podrobné příklady použití naleznete v tématu Použití rozhraní IEmbeddingGenerator.

Rozhraní IImageGenerator (experimentální)

Rozhraní IImageGenerator představuje generátor pro vytváření obrázků z textových výzev nebo jiného vstupu. Toto rozhraní umožňuje aplikacím integrovat funkce generování imagí z různých služeb umělé inteligence prostřednictvím konzistentního rozhraní API. Rozhraní podporuje generování textu na image (voláním GenerateAsync(ImageGenerationRequest, ImageGenerationOptions, CancellationToken)) a možnosti konfigurace pro velikost a formát obrázku. Stejně jako jiná rozhraní v knihovně lze kombinovat s middlewarem pro ukládání do mezipaměti, telemetrii a další průřezové záležitosti.

Další informace naleznete v tématu Generování obrázků z textu pomocí AI.

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

Můžete začít vytvářet s Microsoft.Extensions.AI následujícími 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říklady najdete v příkladech implementace IChatClient a příklady implementace IEmbeddingGenerator.
  • Příjemci služeb: Pokud vyvíjíte knihovny, které využívají AI služby, použijte abstrakce místo tvrdého zakódování na konkrétní AI službu. Tento přístup uživatelům dává flexibilitu při výběru preferovaného poskytovatele.
  • 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 se zajímáte o přispívání do ekosystému, zvažte psaní vlastních komponent middlewaru.

Další ukázky najdete v úložišti GitHubu dotnet/ai-samples . Kompletní ukázku najdete v tématu eShopSupport.

Viz také