Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Разработчикам .NET необходимо интегрировать и взаимодействовать с растущими различными службами искусственного интеллекта (ИИ) в своих приложениях. Библиотеки Microsoft.Extensions.AI обеспечивают единый подход для представления компонентов генерированного искусственного интеллекта и обеспечения простой интеграции и взаимодействия с различными службами ИИ. В этой статье представлены библиотеки и приведены подробные примеры использования, которые помогут вам приступить к работе.
Пакеты
Пакет 📦 Microsoft.Extensions.AI.Abstractions предоставляет основные типы обмена, включая IChatClient и IEmbeddingGenerator<TInput,TEmbedding>. Любая библиотека .NET, предоставляющая клиент LLM, может реализовать IChatClient интерфейс, чтобы обеспечить простую интеграцию с потребляющим кодом.
Пакет 📦 Microsoft.Extensions.AI имеет неявную зависимость от пакета Microsoft.Extensions.AI.Abstractions. Этот пакет позволяет легко интегрировать такие компоненты, как вызов инструментов автоматизации функций, телеметрия и кэширование в приложения с помощью знакомых шаблонов внедрения зависимостей и промежуточного слоя. Например, он предоставляет метод расширения UseOpenTelemetry(ChatClientBuilder, ILoggerFactory, String, Action<OpenTelemetryChatClient>), который добавляет поддержку OpenTelemetry в клиентский конвейер чата.
На какой пакет следует ссылаться
Чтобы получить доступ к более высокоуровневым утилитам для работы с генеративными ИИ компонентами, вместо этого ссылаться на пакет Microsoft.Extensions.AI (который сам ссылается на Microsoft.Extensions.AI.Abstractions). Большинство используемых приложений и служб должны ссылаться на Microsoft.Extensions.AI пакет вместе с одной или несколькими библиотеками, предоставляющими конкретные реализации абстракций.
Библиотеки, которые предоставляют реализации абстракций, обычно ссылаются только на Microsoft.Extensions.AI.Abstractions.
Установка пакетов
Сведения об установке пакетов NuGet см. в разделе "Добавление пакетов dotnet " или "Управление зависимостями пакетов" в приложениях .NET.
API и функциональные возможности
Интерфейс IChatClient
Интерфейс IChatClient определяет абстракцию клиента, отвечающую за взаимодействие со службами ИИ, предоставляющими возможности чата. Он включает методы отправки и получения сообщений с мультимодальным содержимым (например, текстом, изображениями и звуком), либо как полный набор, либо передача потоком.
Дополнительные сведения и подробные примеры использования см. в разделе "Использование интерфейса IChatClient".
Интерфейс IEmbeddingGenerator
Интерфейс IEmbeddingGenerator представляет универсальный генератор эмбеддингов. Для параметров универсального типа TInput — это тип встраиваемых входных значений, а TEmbedding — это тип создаваемого встраивания, который наследует от класса Embedding.
Дополнительные сведения и подробные примеры использования см. в разделе "Использование интерфейса IEmbeddingGenerator".
Интерфейс IImageGenerator (экспериментальный)
Интерфейс IImageGenerator представляет генератор для создания изображений из текстовых запросов или других входных данных. Этот интерфейс позволяет приложениям интегрировать возможности создания изображений из различных служб ИИ с помощью согласованного API. Интерфейс поддерживает создание текстовых изображений (вызывая GenerateAsync(ImageGenerationRequest, ImageGenerationOptions, CancellationToken)) и параметры конфигурации для размера изображения и формата. Как и другие интерфейсы в библиотеке, его можно создавать посредством промежуточного слоя для кэширования, телеметрии и других сквозных задач.
Дополнительные сведения см. в статье "Создание изображений из текста с помощью ИИ".
Создание с использованием Microsoft.Extensions.AI
Вы можете начать сборку следующими способами с Microsoft.Extensions.AI:
- Разработчики библиотек: если вы владеете библиотеками, предоставляющими клиенты для служб ИИ, рассмотрите возможность реализации интерфейсов в библиотеках. Это позволяет пользователям легко интегрировать пакет NuGet с помощью абстракций. Примеры реализации IChatClient см. в примерах реализации IChatClient и примерах реализации IEmbeddingGenerator.
- Потребители служб: если вы разрабатываете библиотеки, использующие службы искусственного интеллекта, используйте абстракции вместо жесткой кодировки для конкретной службы ИИ. Такой подход дает потребителям гибкость выбора предпочитаемого поставщика.
- Разработчики приложений: используйте абстракции, чтобы упростить интеграцию с приложениями. Это обеспечивает переносимость между моделями и службами, упрощает тестирование и мокирование, использует промежуточное ПО, предоставляемое экосистемой, и поддерживает единый API во всем вашем приложении, даже если вы используете различные службы в разных частях приложения.
- Участники экосистемы: если вы заинтересованы во вкладе в экосистему, рассмотрите возможность создания пользовательских промежуточных компонентов.
Дополнительные примеры см. в репозитории GitHub dotnet/ai-samples . Полный пример см. в разделе eShopSupport.