Інтеграція Microsoft Bot Framework у мобільний додаток

Підключення NLP до мобільного чат-бота: практика Microsoft Bot Framework Припустимо, у вас є мобільний додаток, який має спілкуватися з користувачами природною мовою — розуміти команди, відповідати в різних каналах. Якщо ви вирішите писати NLP з нуля, це займе півроку і бюджет, порівнянний із ком

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Microsoft Bot Framework у мобільний додаток
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Підключення NLP до мобільного чат-бота: практика Microsoft Bot Framework

Припустимо, у вас є мобільний додаток, який має спілкуватися з користувачами природною мовою — розуміти команди, відповідати в різних каналах. Якщо ви вирішите писати NLP з нуля, це займе півроку і бюджет, порівнянний із командою з трьох розробників. Microsoft Bot Framework v4 і Azure Bot Service дають готову інфраструктуру: діалоговий рушій, інтеграцію з десятками каналів (Teams, Telegram, веб) і вбудований NLP-компонент CLU. Однак інтеграція в мобільний додаток вимагає розуміння архітектурних нюансів. Розберемо ключові точки: Direct Line, токени, стан діалогу та відмова від Adaptive Cards. Це економить до 40% бюджету порівняно з кастомною розробкою.

Як безпечно підключити мобільний додаток до Azure Bot Service?

Direct Line — єдиний канал для кастомних мобільних клієнтів (див. Direct Line Protocol). Помилка, яку ми бачили в десятках проєктів: розробники зашивають DirectLineSecret у код додатку. Після реверс-інжинірингу APK або IPA секрет потрапляє у відкритий доступ. Це дозволяє зловмисникам надсилати запити від імені бота. Рішення — токенізація: сервер генерує тимчасовий token через /v3/directline/tokens/generate і передає його клієнту. Токен живе 30 хвилин, його можна оновити через /v3/directline/tokens/refresh. Приклад на Swift:

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

У документації Microsoft підтверджується: The Direct Line token is valid for 30 minutes. You can obtain a new token from the /v3/directline/tokens/refresh endpoint.

Архітектурна схема інтеграціїДля розгортання використовуйте Azure Web App з інтеграцією Direct Line, CLU та CosmosDB. Типова архітектура: мобільний додаток → Direct Line → Bot Framework SDK → CLU для NLP → CosmosDB для збереження стану.

LUIS чи CLU: що обрати для нового проєкту?

Bot Framework традиційно використовував LUIS для розпізнавання намірів. Але Microsoft мігрувала на CLU (Conversational Language Understanding) у складі Azure AI Language. CLU працює вдвічі швидше за LUIS, підтримує 50+ мов і краще розпізнає складні діалоги з контекстом. Якщо ви починаєте новий проєкт — обирайте CLU. Для існуючих проєктів на LUIS готуйте міграцію: формати експорту та SDK відрізняються (Azure.AI.Language.Conversations замість Microsoft.Azure.CognitiveServices.Language.LUIS). Ми допомогли клієнтам мігрувати п'ять проєктів за останні роки.

Характеристика LUIS CLU
Швидкість розпізнавання 200–400 мс 80–200 мс (до 2× швидше)
Підтримувані мови ~10 50+
Інтеграція з Bot Framework Пряма через Recognizer Через CustomQuestionAnsweringRecognizer
Навчання моделі Потрібен експорт з LUIS Вбудований імпорт з .LU файлів

Економія при переході на CLU становить 30–40% вартості транзакцій і 40% часу розробки. Отримайте консультацію нашого інженера, щоб оцінити вигоду для вашого проєкту.

Зберігання стану діалогу в продакшні

За замовчуванням Bot Framework зберігає UserState і ConversationState у пам'яті. Після перезапуску сервера контекст втрачається. Для продакшну використовуємо CosmosDbPartitionedStorage або BlobStorage. Приклад налаштування на C#:

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); 

Це гарантує збереження контексту навіть при масштабуванні до 1000+ одночасних діалогів. Якщо у вас виникли питання щодо налаштування CosmosDB, зв'яжіться з нами — ми допоможемо.

Вибір протоколу: WebSocket чи Polling

Direct Line підтримує два режими отримання повідомлень: long polling (REST) і WebSocket. Порівняємо їх за ключовими метриками.

Характеристика Long Polling (REST) WebSocket (streamUrl)
Затримка доставки 500 мс – 2 с 50–150 мс
Навантаження на сервер Високе (часті запити) Низьке (одне з'єднання)
Споживання батареї на мобільному Вище (часті wake-up) Нижче (постійний TCP)
Складність реалізації Проста (HTTP) Середня (керування з'єднанням)

WebSocket кращий для активного чату. На Android використовуємо OkHttp WebSocket, на iOS — URLSessionWebSocketTask. Важливий нюанс: streamUrl живе близько 60 секунд без активності, після чого з'єднання закривається. Потрібно обробляти onClosed і перепідключатися з оновленим токеном.

Обмеження Adaptive Cards для мобільного UI

Adaptive Cards — це JSON-схема для UI-карток, яку Bot Framework використовує для мультиканального рендерингу. Для iOS і Android є офіційні SDK (AdaptiveCards-iOS, adaptivecards-android), але кастомізація стилів обмежена: не можна перевизначити шрифти, відступи та анімації. У 80% наших проєктів ми відмовляємося від Adaptive Cards на користь кастомних event-активностей, які рендерять UI нативно. Це дає повний контроль над дизайном і поведінкою — наприклад, можна вбудувати інтерактивні форми або графіку.

Що входить у роботу при замовленні інтеграції під ключ

  • Архітектурна документація (схема Direct Line, діаграма діалогів)
  • Репозиторій з кодом бота та SDK для iOS/Android
  • Доступ до Azure ресурсів (Bot Service, CLU, CosmosDB)
  • Інструкція з деплою через CI/CD та моніторингу (Application Insights)
  • Навчання команди (2 години онлайн з розбором типових помилок)
  • Гарантія сумісності з iOS 15+ та Android 12+

Ми працюємо з Bot Framework v4 з його першого релізу. Оцінимо ваш проєкт за 1 день — просто напишіть у чат на сайті.

Процес роботи

  1. Аналітика: аудит поточних чат-сценаріїв, збір вимог.
  2. Проєктування: вибір стеку (CLU/LUIS), проєктування діалогів, архітектура Direct Line.
  3. Розробка: реалізація бота на C# (.NET) або TypeScript, створення мобільного клієнта з підтримкою WebSocket.
  4. Тестування: Bot Framework Emulator для юніт-тестів, навантажувальне тестування на 500+ RPS.
  5. Деплой: Azure Web App з автоскейлінгом, налаштування моніторингу та алертів.

Орієнтири за термінами

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

Замовте консультацію — ми покажемо, як заощадити до 40% бюджету на розробці чат-бота.