Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Экосистема .NET предоставляет абстракции для интеграции служб ИИ в приложения и библиотеки .NET с помощью Microsoft.Extensions.AI библиотек. Команда .NET также улучшила основные Microsoft.Extensions
библиотеки, добавив к ним эти абстракции, для использования в генеративных приложениях и библиотеках .NET с искусственным интеллектом. В следующих разделах вы узнаете:
- Основные понятия и возможности
Microsoft.Extensions.AI
библиотек. - Как работать с абстракциями ИИ в приложениях и преимуществами, которые они предлагают.
- Основные понятия ПО промежуточного слоя искусственного интеллекта.
Дополнительные сведения см. в разделе Введение в Microsoft.Extensions.AI.
Что такое библиотеки Microsoft.Extensions.AI?
Библиотеки Microsoft.Extensions.AI
предоставляют основные типы обмена и абстракции для взаимодействия со службами ИИ, такими как небольшие и крупные языковые модели (SLM и LLM). Они также предоставляют возможность регистрировать службы, такие как ведение журнала и кэширование в контейнере внедрения зависимостей (DI).
Пространства Microsoft.Extensions.AI
имен предоставляют абстракции, которые могут быть реализованы различными службами, придерживающимися одних и тех же основных концепций. Эта библиотека не предназначена для предоставления API, адаптированных к службам любого конкретного поставщика. Цель Microsoft.Extensions.AI
состоит в том, чтобы выступать в качестве объединяющего слоя в экосистеме .NET, что позволяет разработчикам выбирать предпочитаемые платформы и библиотеки, обеспечивая непрерывную интеграцию и совместную работу в экосистеме.
Работа с абстракциями для общих служб ИИ
Возможности искусственного интеллекта быстро развиваются с новыми шаблонами для общих функциональных возможностей:
- Функции чата для интерактивного общения с ИИ, предоставляющие информацию или анализ данных.
- Генерация встраиваний для интеграции с функциями векторного поиска.
- Вызов инструмента с целью интеграции с другими сервисами, платформами или кодом.
Пакет Microsoft.Extensions.AI.Abstractions
предоставляет абстракции для этих типов задач, поэтому разработчики могут сосредоточиться на программировании на основе концептуальных возможностей искусственного интеллекта, а не конкретных платформ или реализаций поставщика. Унифицированные абстракции важны для эффективной работы разработчиков в разных источниках.
Например, IChatClient интерфейс позволяет использовать языковые модели от различных поставщиков, таких как служба Azure OpenAI или локальная установка Ollama. Любой пакет .NET, предоставляющий клиент ИИ, может реализовать IChatClient
интерфейс для обеспечения простой интеграции с использованием кода .NET:
IChatClient client =
environment.IsDevelopment ?
new OllamaChatClient(...) :
new AzureAIInferenceChatClient(...);
Затем, независимо от используемого поставщика, вы можете отправлять запросы, вызывая GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken).
var response = await chatClient.GetResponseAsync(
"Translate the following text into Pig Latin: I love .NET and AI");
Console.WriteLine(response.Message);
Эти абстракции позволяют использовать идиоматический код C# для различных сценариев с минимальными изменениями кода. Они упрощают использование различных служб для разработки и производства, решения гибридных сценариев или изучения других поставщиков услуг.
Авторы библиотеки, реализующие эти абстракции, позволяют клиентам взаимодействовать с более широкой Microsoft.Extensions.AI
экосистемой. При необходимости API для определённых сервисов остаются доступными, позволяя потребителям кодировать стандартные абстракции и переходить на собственные API только в случае необходимости.
Microsoft.Extensions.AI
предоставляет реализации для следующих служб с помощью дополнительных пакетов:
В будущем реализации этих Microsoft.Extensions.AI
абстракций будут частью соответствующих клиентских библиотек, а не требуют установки дополнительных пакетов.
Реализации ПО промежуточного слоя для служб ИИ
Подключение к службам ИИ и их использование — это лишь один из аспектов создания надежных приложений. Для приложений, готовых к работе, требуются дополнительные функции, такие как телеметрия, ведение журнала, кэширование и возможности вызова инструментов. Пакеты Microsoft.Extensions.AI
предоставляют API, которые позволяют легко интегрировать эти компоненты в приложения с помощью знакомых шаблонов внедрения зависимостей и промежуточного программного обеспечения.
В следующем примере показано, как зарегистрировать OpenAI IChatClient
. Вы можете подключить возможности единым образом для различных поставщиков, вызывая такие методы, как UseFunctionInvocation(ChatClientBuilder, ILoggerFactory, Action<FunctionInvokingChatClient>) на ChatClientBuilder.
app.Services.AddChatClient(builder => builder
.UseLogging()
.UseFunctionInvocation()
.UseDistributedCache()
.UseOpenTelemetry()
.Use(new OpenAIClient(...)).AsChatClient(...));
Возможности, показанные в этом фрагменте кода, включены в Microsoft.Extensions.AI
библиотеку, но они представляют собой лишь небольшое подмножество возможностей, которые можно сгруппировать с помощью этого подхода. Разработчики .NET могут предоставлять множество типов ПО промежуточного слоя для создания мощных функций ИИ.
Создание с использованием Microsoft.Extensions.AI
Вы можете начать сборку следующими способами с Microsoft.Extensions.AI
:
- Разработчики библиотек: если вы владеете библиотеками, предоставляющими клиенты для служб ИИ, рассмотрите возможность реализации интерфейсов в библиотеках. Это позволяет пользователям легко интегрировать пакет NuGet с помощью абстракций.
- Потребители служб: если вы разрабатываете библиотеки, использующие службы искусственного интеллекта, используйте абстракции вместо жесткой кодировки для конкретной службы ИИ. Такой подход дает потребителям гибкость выбора предпочитаемой службы.
- Разработчики приложений: используйте абстракции, чтобы упростить интеграцию с приложениями. Это обеспечивает переносимость между моделями и службами, упрощает тестирование и мокирование, использует промежуточное ПО, предоставляемое экосистемой, и поддерживает единый API во всем вашем приложении, даже если вы используете различные службы в разных частях приложения.
- Участники экосистемы: если вы заинтересованы во вкладе в экосистему, рассмотрите возможность создания пользовательских промежуточных компонентов.
Чтобы начать, ознакомьтесь с примерами в репозитории GitHub dotnet/ai-samples.
Полный пример использования Microsoft.Extensions.AI
см. в разделе eShopSupport.