AI Разработка AI-ботов с .NET и Microsoft-экосистемой: от поддержки клиентов до агентного ИИ

AI

Редактор
Регистрация
23 Август 2023
Сообщения
3 012
Баллы
51
Offline

Как выбрать правильный набор инструментов Microsoft для создания умных ботов и какие задачи можно решить на практике
Вступление


Привет, Хабр! Меня зовут Азизхон Ишанхонов, и сегодня хочу поделиться опытом создания AI-ботов с помощью .NET и Microsoft-экосистемы. Расскажу не просто о списке технологий, а о том, какие реальные задачи мы решали и как выбрать правильный набор инструментов для ваших целей.

Немного о себе


Специализируюсь на .NET, Azure и облачных решениях. За последние 5 лет работал как с крупными enterprise-клиентами, так и с внутренними стартап-подобными проектами, где участвовал в разработке и внедрении AI-решений. Активно контрибючу в Microsoft Development Community и увлекаюсь инженерией во всем её многообразии.

Три основных направления AI-ботов


В своей практике я вижу три основных направления применения AI-ботов:

1. AI-чат-бот для поддержки клиентов


Классический пример: ответы на часто задаваемые вопросы, отслеживание заказов, приём заявок.

Преимущества:


  • Доступность 24/7


  • Разгрузка операторов


  • Мгновенная обработка типовых запросов

Недостатки:


  • Нужно хорошо продумать сценарии


  • Клиент быстро запросит «живого» сотрудника, если бот не справляется
2. Автоматизация внутренних задач


Примеры использования:


  • HR-бот: автоматически назначает собеседования, напоминает про дедлайны, отправляет документы на подписание


  • DevOps-бот: запускает пайплайны, проверяет состояние сервисов, присылает уведомления о сбоях
3. Голосовой ассистент


Это уже не просто чат в Teams — это бот, который:


  • Звонит кандидату и проводит первичное интервью


  • Принимает входящие звонки и классифицирует их


  • Ведет голосовое взаимодействие с пользователями
Microsoft-экосистема для разработки ботов


Чтобы реализовать все перечисленные сценарии, в Microsoft-экосистеме есть четыре ключевых инструмента:


  1. Microsoft Bot Framework — основа для разработки бота


  2. Azure Communication Service — добавляет голос, видео и чат


  3. Microsoft Graph API — даёт доступ ко всем данным Microsoft 365


  4. Azure OpenAI или другие AI-провайдеры — для понимания, генерации и анализа

Давайте разберем каждый компонент подробнее.

Microsoft Bot Framework — движок для ботов который обеспечивает:


  • Поддержка множества каналов: Teams, веб-сайт, Telegram и другие


  • Описание сложных сценариев через Adaptive Dialogs


  • Легкая интеграция с внешними API

    710321db27f5a84962873079e4f2d12a.png

    Microsoft Bot Framework Architecture

Аутентификация через Identity Provider

Одна из ключевых особенностей Bot Framework — встроенная поддержка аутентификации:

93764c2db2ef456b1e2457c4b49ee554.jpg

Bot Framework Authentication Flow

Зачем это важно:


  • Реализация единого входа (SSO)


  • Упрощение взаимодействия между облачными ресурсами и пользователями


  • Повышение безопасности и снижение нагрузки на администрирование

Поддерживаемые провайдеры:


  • Microsoft Entra ID (Azure Active Directory) — стандартный поставщик с поддержкой OAuth 2.0


  • Настраиваемые OAuth 2.0 провайдеры (GitHub, Uber, корпоративные системы) через Proxy/OAuth 2.0 Proxy Service

Как работает интеграция:


  1. Регистрируете бота в Azure и настраиваете identity provider


  2. В коде используете OAuth-карточки (OAuthCard) или встроенные SDK механизмы


  3. После авторизации бот получает токен для обращения к защищённым ресурсам
Microsoft Graph API — единый вход к данным Microsoft 365


Graph API — это «единый вход» ко всем данным Microsoft 365. С его помощью бот может:

02363999b17bee84537a57fba8b22ba7.png

Microsoft Graph

  • Проверять электронную почту


  • Находить документы в OneDrive и SharePoint


  • Читать список задач


  • Работать с Teams: создавать чаты, отправлять сообщения


  • Управлять календарем и встречами
Change Notifications — реактивность в реальном времени


Одна из мощных возможностей Graph API — Change Notifications.

f5193ce79695d2366f0aaff3a6c36d46.png

Microsoft Graph API Change Notifications

Пример использования: Подписываемся на изменения в определённой папке OneDrive. Когда туда загружается новый документ, Graph API присылает событие, и бот реагирует — например, отправляет уведомление в Teams с ссылкой на файл.

Модель оплаты:


  • Подписка на уведомления


  • Оплата за использованные ресурсы
Пользовательский опыт: бот как человек


Опыт показывает, что пользователям больше всего нравится, когда бот ведет себя как человек, а не как отдельное приложение. Поэтому у такого решения больше аудитории, а Graph API позволяет более гибко работать с ресурсами аккаунта

Azure Communication Service — голос и видео


Когда нужен не только чат, но и звонки, видеосвязь или SMS — подключается Azure Communication Service.

4aaabab48e32ab034156abdf97c91668.png

Azure Communication Service

Практический пример:
В одном из проектов мы создали бота, который проводил интервью для джуниоров, интернов или тестирования английского языка. После автоматического собеседования эксперт валидировал результаты.

Сравнение ключевых фреймворков


Характеристика​

Microsoft Graph API​

Microsoft Bot Framework​

Azure Communication Service​


Основные сценарии



Чатботы, автоматизация задач​



Чатботы, автоматизация задач, голосовые ассистенты (ограниченно)​



Голосовые ассистенты​



Модель работы



Webhook-уведомления для событий + REST API для получения данных​



Bot Connector + SDK, управление диалогами/состоянием, адаптеры​



API для создания голосовых/видео/чат-сессий в приложениях​



Ценообразование



Включено в Microsoft 365 (действуют лимиты API)​



Бесплатно, но может потребоваться Azure-хостинг или Cognitive Services​



Оплата за минуты вызовов / трафик чата​



Поддержка AI



Нет (только доставка данных)​



Да (через Azure AI, LUIS, OpenAI и др.)​



Нет, только транспорт​



Сложность реализации



Нужно настроить webhooks, подписки и аутентификацию​



Требуется логика бота и интеграции​



Требует знаний WebRTC и API​



Хостинг



Любой (облако или on-premises)​



Предпочтительно Azure (но возможны другие варианты)​



Azure​

Microsoft 365 Developer Program


Для разработки и тестирования Microsoft предоставляет отличные возможности:


  • Бесплатный EntraID тенант для тестирования решений и PoC


  • Бесплатные лимиты для Graph API (в большинстве случаев достаточны для PoC)


  • Гибкое ценообразование: $0.75 за 1000 сообщений при превышении лимитов


  • Обращение к некоторым ресурсам полностью бесплатно
RAG (Retrieval-Augmented Generation) — ИИ с доступом к вашим данным


RAG — это подход, когда AI не только «придумывает ответ», но и ищет его в ваших данных.

7e3553e2903004134c669a1a239b7906.png

Teams AI RAG Bot

Когда подходит такой тип бота:


  • У вас много внутренней документации


  • Сложно находить нужную информацию


  • Хотите заменить FAQ интеллектуальным ботом

Наш опыт:
Использовали Azure Search, но пробовали и другие поисковые движки, вплоть до разработки собственного PoC. Ключевой момент — качественная индексация данных.

Секрет успеха: Комбинированный гибридный поиск (векторный + семантический) дал значительно лучшие результаты по сравнению с использованием каждого подхода по отдельности.

Агентный AI — следующий уровень


Агентный AI — это боты, которые действуют проактивно:

82772cf10802c38e5844c5a513857802.png

Agent AI

  • Напоминают о встречах


  • Предупреждают о сбоях в сервисах


  • Отправляют отчёты без запроса


  • Принимают решения на основе контекста
Model Context Protocol (MCP) — новый стандарт для агентов


Model Context Protocol — это открытый протокол от Anthropic, который революционизирует способ взаимодействия AI-агентов с внешними системами.

Что такое MCP:


  • Универсальный протокол для подключения AI к любым источникам данных


  • Стандартизированный способ создания "серверов контекста"


  • Безопасное взаимодействие между AI-моделями и внешними системами

Преимущества MCP в корпоративных ботах:


  1. Модульность: Каждый MCP-сервер отвечает за конкретный тип данных (CRM, базы данных, файловые системы)


  2. Безопасность: Контролируемый доступ к корпоративным данным через стандартизированные интерфейсы


  3. Переиспользование: Один MCP-сервер может работать с разными AI-моделями


  4. Простота интеграции: Унифицированный API для подключения любых систем

Архитектура MCP-бота:

AI-Бот ←→ MCP Client ←→ MCP Server (Microsoft 365) ←→ Graph API
←→ MCP Server (CRM) ←→ Salesforce
←→ MCP Server (Database) ←→ SQL Server


Практический пример с Microsoft-экосистемой:

Создаём MCP-сервер для Microsoft 365, который предоставляет AI-агенту возможности:


  • Поиск документов в SharePoint через Graph API


  • Создание встреч в календаре


  • Отправка сообщений в Teams


  • Анализ электронной почты

// Пример MCP-сервера для Graph API
public class GraphApiMcpServer : IMcpServer
{
public async Task<McpResponse> HandleRequest(McpRequest request)
{
switch (request.Method)
{
case "graph/search":
return await SearchDocuments(request.Params);
case "graph/calendar/create":
return await CreateMeeting(request.Params);
case "graph/teams/message":
return await SendTeamsMessage(request.Params);
}
}
}


Интеграция с Graph API:
Когда мы объединяем Graph API Search и агентную логику через MCP, получается бот, который может:


  • Находить документы


  • Создавать задачи


  • Бронировать ресурсы


  • Работать в автоматическом режиме

Пример сценария: Поиск по почте с автоматическим созданием задач на основе найденной информации.

6834577748ee39c7b079d227f04888fc.png

Agentic AI Bot via Graph API Search
API для бизнес-пользователей


На основе Bot Framework и Graph API можно создать API, позволяющий заинтересованным лицам самостоятельно писать логику для ботов, не вдаваясь в дебри разработки.

Преимущества подхода:


  • Клиенты ваших ботов меньше будут беспокоить разработчиков


  • Компания экономит бюджет — не нужно деплоить каждого бота отдельно


  • Больше людей = больше идей и знаний (одна команда не может знать всё)
Заключение


Microsoft-экосистема предоставляет мощный набор инструментов для создания AI-ботов любой сложности — от простых FAQ-ботов до сложных агентных систем с голосовым взаимодействием.

Ключевые takeaway:


  1. Начинайте с определения типа бота и его задач


  2. Используйте Microsoft 365 Developer Program для бесплатного тестирования


  3. Комбинируйте разные подходы (RAG + агентный AI) для лучших результатов


  4. Продумайте UX — бот должен вести себя как человек


  5. Рассмотрите создание API для бизнес-пользователей
Полезные ссылки


Что вы думаете о перспективах AI-ботов в enterprise? Поделитесь своим опытом в комментариях!
 
Сверху Снизу