Partilhar via


Bibliotecas de Microsoft.Extensions.AI

Os desenvolvedores .NET precisam integrar e interagir com uma variedade crescente de serviços de inteligência artificial (IA) em seus aplicativos. As Microsoft.Extensions.AI bibliotecas fornecem uma abordagem unificada para representar componentes generativos de IA e permitem integração e interoperabilidade perfeitas com vários serviços de IA. Este artigo apresenta as bibliotecas e fornece exemplos de uso detalhados para ajudá-lo a começar.

Os pacotes

O 📦 pacote Microsoft.Extensions.AI.Abstractions fornece os principais tipos de câmbio, incluindo IChatClient e IEmbeddingGenerator<TInput,TEmbedding>. Qualquer biblioteca .NET que forneça um cliente LLM pode implementar a interface IChatClient para permitir uma integração perfeita com o código que a consome.

O 📦 pacote Microsoft.Extensions.AI tem uma dependência implícita do Microsoft.Extensions.AI.Abstractions pacote. Este pacote permite que você integre facilmente componentes como invocação automática de ferramentas de função, telemetria e cache em seus aplicativos usando padrões familiares de injeção de dependência e middleware. Por exemplo, fornece o método de extensão UseOpenTelemetry(ChatClientBuilder, ILoggerFactory, String, Action<OpenTelemetryChatClient>), que adiciona suporte a OpenTelemetry ao pipeline do cliente de chat.

A que pacote referenciar

Para ter acesso a utilitários de nível superior para trabalhar com componentes de IA generativa, consulte o Microsoft.Extensions.AI pacote em vez disso (que por sua vez referencia Microsoft.Extensions.AI.Abstractions). A maioria dos aplicativos e serviços consumidores deve fazer referência ao pacote Microsoft.Extensions.AI junto com uma ou mais bibliotecas que fornecem implementações concretas das abstrações.

As bibliotecas que fornecem implementações das abstrações normalmente fazem referência apenas a Microsoft.Extensions.AI.Abstractions.

Instalar os pacotes

Para obter informações sobre como instalar pacotes NuGet, consulte dotnet package add ou Gerir dependências de pacotes em aplicações .NET.

APIs e funcionalidades

O interface IChatClient

A interface IChatClient define uma abstração de cliente responsável por interagir com serviços de IA que fornecem recursos de bate-papo. Inclui métodos para enviar e receber mensagens com conteúdo multimodal (como texto, imagens e áudio), como um conjunto completo ou transmitido incrementalmente.

Para mais informações e exemplos de utilização detalhados, veja Usar a interface IChatClient.

O interface IEmbeddingGenerator

A interface IEmbeddingGenerator representa um gerador genérico de incorporações. Para os parâmetros de tipo genéricos, TInput é o tipo de valores de entrada que estão sendo incorporados e TEmbedding é o tipo de incorporação gerada, que herda da Embedding classe.

Para mais informações e exemplos de utilização detalhados, veja Usar a interface IEmbeddingGenerator.

A Interface IImageGenerator (experimental)

A IImageGenerator interface representa um gerador para criar imagens a partir de prompts de texto ou outros inputs. Esta interface permite que as aplicações integrem capacidades de geração de imagens de vários serviços de IA através de uma API consistente. A interface suporta geração de texto para imagem (chamando GenerateAsync(ImageGenerationRequest, ImageGenerationOptions, CancellationToken)) e opções de configuração para tamanho e formato da imagem. Tal como outras interfaces da biblioteca, pode ser composto com middleware para cache, telemetria e outras questões transversais.

Para mais informações, consulte Gerar imagens a partir de texto usando IA.

Construa com Microsoft.Extensions.AI

Você pode começar a construir com Microsoft.Extensions.AI das seguintes maneiras:

  • Desenvolvedores de bibliotecas: se você possui bibliotecas que fornecem clientes para serviços de IA, considere implementar as interfaces em suas bibliotecas. Isso permite que os usuários integrem facilmente seu pacote NuGet por meio das abstrações. Para exemplos, veja exemplos de implementação do IChatClient e exemplos de implementação do IEmbeddingGenerator.
  • Consumidores de serviços: se você estiver desenvolvendo bibliotecas que consomem serviços de IA, use as abstrações em vez de codificar para um serviço de IA específico. Esta abordagem dá aos seus consumidores a flexibilidade de escolher o seu fornecedor preferido.
  • Desenvolvedores de aplicativos: use as abstrações para simplificar a integração em seus aplicativos. Isso permite a portabilidade entre modelos e serviços, facilita testes e simulações, aproveita o middleware fornecido pelo ecossistema e mantém uma API consistente em todo o aplicativo, mesmo se você usar serviços diferentes em diferentes partes do aplicativo.
  • Contribuidores do ecossistema: se você estiver interessado em contribuir para o ecossistema, considere escrever componentes de middleware personalizados.

Para obter mais exemplos, consulte o repositório GitHub dotnet/ai-samples . Para obter um exemplo completo, consulte eShopSupport.

Ver também