Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.