Интеграция NLP-движка (Microsoft Bot Framework) в мобильного чат-бота

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция NLP-движка (Microsoft Bot Framework) в мобильного чат-бота
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция NLP-движка (Microsoft Bot Framework) в мобильного чат-бота

Microsoft Bot Framework v4 + Azure Bot Service — это не просто NLP, это платформа для управления диалогом с поддержкой десятков каналов. Если бот должен работать в Teams, Telegram, веб-чате и мобильном приложении одновременно — это архитектурно правильный выбор. Если нужен только мобильный канал, оверхед фреймворка может быть избыточным.

Где чаще всего возникают проблемы

Direct Line API. Мобильное приложение подключается к Azure Bot Service через Direct Line — это специальный канал для кастомных клиентов. Ошибка, которую совершают часто: используют DirectLineSecret прямо в мобильном приложении. Этого делать нельзя — секрет скомпрометирован при реверс-инжиниринге APK. Правильно: бэкенд генерирует временный token через /v3/directline/tokens/generate и отдаёт его мобильному клиенту. Токен живёт 30 минут, можно обновлять через /v3/directline/tokens/refresh.

// iOS: получение токена с сервера и инициализация сессии Direct Line
func startBotSession() async throws -> String {
    let tokenResponse = try await authService.getDirectLineToken()
    // Сохраняем conversationId для переподключения
    UserDefaults.standard.set(tokenResponse.conversationId, forKey: "botConversationId")
    return tokenResponse.token
}

LUIS vs CLU. Bot Framework традиционно использовался с LUIS (Language Understanding) для распознавания намерений. Microsoft мигрирует LUIS на Conversational Language Understanding (CLU) в составе Azure AI Language. Если начинаете новый проект — берите CLU, LUIS выводится из активной поддержки. Если интегрируете с существующим LUIS-приложением — учтите, что CLU использует другие форматы экспорта и другой SDK (Azure.AI.Language.Conversations).

Управление состоянием (State Management). Bot Framework хранит состояние диалога в BotState (UserState, ConversationState). По умолчанию — в памяти, что означает потерю контекста при перезапуске сервера. В продакшне используем CosmosDbPartitionedStorage или BlobStorage:

var storage = new CosmosDbPartitionedStorage(new CosmosDbPartitionedStorageOptions {
    CosmosDbEndpoint = configuration["CosmosDb:Endpoint"],
    AuthKey = configuration["CosmosDb:AuthKey"],
    DatabaseId = "BotStorage",
    ContainerId = "DialogState"
});

var userState = new UserState(storage);
var conversationState = new ConversationState(storage);

Adaptive Cards в мобильном клиенте

Bot Framework поддерживает Adaptive Cards — JSON-схему для описания UI-карточек. Это удобно для мультиканального бота: одна карточка рендерится в Teams, веб-чате и вашем мобильном приложении. Для iOS и Android есть официальные SDK (AdaptiveCards-iOS, adaptivecards-android), но кастомизация стилей ограничена — дизайн карточки не всегда вписывается в UI приложения.

На практике для мобильного приложения часто проще обрабатывать кастомные activity с типом event и рендерить UI нативно, игнорируя механизм Adaptive Cards.

Direct Line WebSocket vs Polling

Direct Line поддерживает два режима получения сообщений: long polling (/v3/directline/conversations/{id}/activities) и WebSocket (streamUrl из ответа на создание сессии). WebSocket предпочтительнее — снижает задержку и нагрузку на сервер. На Android — OkHttp WebSocket, на iOS — URLSessionWebSocketTask.

Важно: streamUrl живёт около 60 секунд без активности, после чего соединение закрывается. Нужно обрабатывать onClosed и переподключаться с обновлённым токеном.

Процесс работы

Регистрация Azure Bot Service, настройка Direct Line канала.

Разработка бот-логики на C# (.NET) или JavaScript/TypeScript (Bot Framework SDK v4).

Интеграция CLU/LUIS для распознавания намерений.

Мобильный клиент: Direct Line token exchange, WebSocket подключение, UI сообщений.

Тестирование через Bot Framework Emulator перед деплоем на Azure.

Ориентиры по срокам

Интеграция с готовым Azure Bot — 3–5 дней. Разработка с нуля включая CLU-модель, диалоговую логику, Azure-инфраструктуру и мобильный клиент — 2–4 недели.