Delen via


Microsoft.Extensions.AI bibliotheken

.NET-ontwikkelaars moeten in hun apps een groeiende verscheidenheid aan AI-services (kunstmatige intelligentie) integreren en ermee werken. De Microsoft.Extensions.AI bibliotheken bieden een uniforme benadering voor het vertegenwoordigen van generatieve AI-onderdelen en maken naadloze integratie en interoperabiliteit mogelijk met verschillende AI-services. In dit artikel worden de bibliotheken geïntroduceerd en vindt u uitgebreide gebruiksvoorbeelden om u op weg te helpen.

De pakketten

Het 📦 pakket Microsoft.Extensions.AI.Abstractions biedt de kernuitwisselingstypen, waaronder IChatClient en IEmbeddingGenerator<TInput,TEmbedding>. Elke .NET-bibliotheek die een LLM-client biedt, kan de IChatClient interface implementeren om naadloze integratie met de gebruikende code mogelijk te maken.

Het 📦 Microsoft.Extensions.AI-pakket heeft een impliciete afhankelijkheid van het Microsoft.Extensions.AI.Abstractions-pakket. Met dit pakket kunt u eenvoudig onderdelen integreren, zoals automatische functiehulpmiddelaanroepen, telemetrie en caching in uw toepassingen met behulp van vertrouwde patronen voor afhankelijkheidsinjectie en middleware. Het biedt bijvoorbeeld de UseOpenTelemetry(ChatClientBuilder, ILoggerFactory, String, Action<OpenTelemetryChatClient>) extensiemethode, waarmee OpenTelemetry-ondersteuning wordt toegevoegd aan de chatclientpijplijn.

Naar welk pakket moet worden verwezen

Als u toegang wilt hebben tot geavanceerde hulpprogramma's voor het werken met generatieve AI-onderdelen, verwijs dan naar het Microsoft.Extensions.AI-pakket (dat zelf naar Microsoft.Extensions.AI.Abstractions verwijst). De meeste toepassingen en services moeten verwijzen naar het Microsoft.Extensions.AI pakket, samen met een of meer bibliotheken die concrete implementaties van de abstracties bieden.

Bibliotheken die implementaties van de abstracties bieden, verwijzen doorgaans alleen Microsoft.Extensions.AI.Abstractionsnaar .

De pakketten installeren

Zie dotnet-pakket toevoegen of pakketafhankelijkheden beheren in .NET-toepassingen voor meer informatie over het installeren van NuGet-pakketten.

API's en functionaliteit

De IChatClient-interface

De IChatClient-interface definieert een clientabstractie die verantwoordelijk is voor interactie met AI-services die chatmogelijkheden bieden. Het bevat methoden voor het verzenden en ontvangen van berichten met multimodale inhoud (zoals tekst, afbeeldingen en audio), als een volledige set of incrementeel gestreamd.

Zie De IChatClient-interface gebruiken voor meer informatie en gedetailleerde gebruiksvoorbeelden.

De IEmbeddingGenerator-interface

De IEmbeddingGenerator-interface vertegenwoordigt een algemene generator van insluitingen. Voor de algemene typeparameters TInput is het type invoerwaarden dat wordt ingesloten en TEmbedding het type gegenereerde insluiting, dat wordt overgenomen van de Embedding klasse.

Zie De interface IEmbeddingGenerator gebruiken voor meer informatie en gedetailleerde gebruiksvoorbeelden.

De IImageGenerator-interface (experimenteel)

De IImageGenerator interface vertegenwoordigt een generator voor het maken van afbeeldingen op basis van tekstprompts of andere invoer. Met deze interface kunnen toepassingen mogelijkheden voor het genereren van afbeeldingen van verschillende AI-services integreren via een consistente API. De interface ondersteunt tekst-naar-beeldgeneratie (door aan te roepen GenerateAsync(ImageGenerationRequest, ImageGenerationOptions, CancellationToken)) en configuratieopties voor de grootte en indeling van de afbeelding. Net als andere interfaces in de bibliotheek kan het worden samengesteld met middleware voor caching, telemetrie en andere overkoepelende zaken.

Zie Afbeeldingen genereren op basis van tekst met behulp van AI voor meer informatie.

Bouwen met Microsoft.Extensions.AI

U kunt op de volgende manieren beginnen met Microsoft.Extensions.AI bouwen:

  • Bibliotheekontwikkelaars: als u eigenaar bent van bibliotheken die clients bieden voor AI-services, kunt u overwegen de interfaces in uw bibliotheken te implementeren. Hierdoor kunnen gebruikers uw NuGet-pakket eenvoudig integreren via de abstracties. Zie IChatClient-implementatievoorbeelden en IEmbeddingGenerator-implementatievoorbeelden voor voorbeelden.
  • Service-consumenten: Als u bibliotheken ontwikkelt die AI-diensten gebruiken, gebruik de abstracties in plaats van hardcoderen naar een specifieke AI-dienst. Deze benadering biedt uw consumenten de flexibiliteit om hun voorkeursprovider te kiezen.
  • Toepassingsontwikkelaars: gebruik de abstracties om de integratie in uw apps te vereenvoudigen. Dit maakt draagbaarheid mogelijk voor modellen en services, vereenvoudigt testen en mocking, maakt gebruik van middleware die wordt geleverd door het ecosysteem en onderhoudt een consistente API in uw app, zelfs als u verschillende services in verschillende delen van uw toepassing gebruikt.
  • Ecosystem-inzenders: als u geïnteresseerd bent in een bijdrage aan het ecosysteem, kunt u aangepaste middlewareonderdelen schrijven.

Zie de GitHub-opslagplaats dotnet/ai-samples voor meer voorbeelden. Zie eShopSupport voor een end-to-end-voorbeeld.

Zie ook