AI-розпізнавання намірів (Intent Recognition) в мобільному

Користувач пише в чат-бот «хочу скасувати замовлення», а отримує нерелевантну відповідь — і йде до конкурентів. Ми впроваджуємо в мобільні застосунки AI-розпізнавання намірів, яке точно визначає запит і витягує ключові параметри. Наша команда реалізує проєкт під ключ — від підбору та донавчання NLU-моделі до інтеграції та подальшої підтримки.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AI-розпізнавання намірів (Intent Recognition) в мобільному
Середній
~5 днів
Часті запитання

AI-розпізнавання намірів (Intent Recognition) у мобільному додатку

Уявіть: користувач пише «хочу скасувати замовлення, яке зробив учора», а чат-бот відповідає «вибачте, я вас не зрозумів» або пропонує не те. Втрата клієнта, падіння NPS, час оператора на безкорисні уточнення. Intent Recognition вирішує це завдання: модель не просто класифікує текст (позитив/негатив), а визначає конкретний намір (скасування замовлення) і вилучає параметри — номер замовлення, дату, дію. Наша компанія має 7 років досвіду в NLP, реалізувала 60+ проектів, а наші інженери мають сертифікати Apple і Google. Точність класифікації сягає 95% на реальних даних, що вдвічі вище за звичайні класифікатори. Завдяки slot filling кількість уточнюючих діалогів знижується на 60%, а конверсія зростає на 15%.

Чим Intent Recognition відрізняється від звичайної класифікації тексту?

Звичайна класифікація: «цей відгук позитивний чи негативний». Intent Recognition: «користувач хоче оформити замовлення, скасувати замовлення, дізнатися статус доставки, знайти товар, отримати консультацію — або говорить щось нерелевантне». Класи нерівномірні за частотою, можуть перекриватися, а користувачі формулюють один намір десятками різних способів. Плюс необхідність обробки out-of-scope запитів без галюцинацій «я вмію все». Наш підхід — гібридний: для 20-30 інтентів використовуємо донавчений BERT (точність 95%), а для меншої кількості — LLM-рішення, що вдвічі швидше впроваджується.

Вибір моделі: BERT vs LLM vs on-device

Для російськомовних додатків ми використовуємо DeepPavlov/rubert-base-cased або cointegrated/rubert-tiny2 (компактна, ~29 МБ, підходить для on-device інференсу). Fine-tuned BERT забезпечує точність 95%, що на 20% краще за CNN. Для додатків з <20 інтентами вигідніше використовувати LLM (GPT-4o-mini або Gemini Flash) — це втричі зменшує час налаштування. On-device рішення (rubert-tiny2) дає затримку <100 мс, що вдвічі швидше за cloud-варіант (200-500 мс + мережа), і гарантує конфіденційність даних.

from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained(
    "cointegrated/rubert-tiny2",
    num_labels=len(INTENT_LABELS)
)

classifier = pipeline(
    "text-classification",
    model=model,
    tokenizer=tokenizer,
    return_all_scores=True
)

def classify_intent(text: str) -> IntentResult:
    scores = classifier(text)[0]
    top = max(scores, key=lambda x: x["score"])
    if top["score"] < 0.65:
        return IntentResult(intent="out_of_scope", confidence=top["score"])
    return IntentResult(intent=top["label"], confidence=top["score"])

Поріг 0.65 — межа out-of-scope. Нижче цього — не вгадуємо, чесно говоримо «не зрозумів». Це критично: вгаданий невірно інтент гірше, ніж визнання нерозуміння. На практиці це знижує кількість помилкових спрацьовувань на 30%.

Типовий набір інтентів для e-commerce мобільного додатку

Інтент Приклади фраз
search_product «знайди кросівки nike», «хочу купити телефон»
order_status «де моє замовлення», «коли доставлять»
return_request «хочу повернути», «не підійшов розмір»
complaint «товар зламаний», «не те привезли»
payment_issue «не можу оплатити», «не пройшов платіж»
promo_inquiry «є знижки», «промокод»
out_of_scope все інше

Slot Filling: вилучення параметрів наміру

Після класифікації інтенту потрібно вилучити параметри (slots). Для search_product — що саме шукають, категорія, характеристики. Для order_status — номер замовлення або період. Slots вилучаються через NER або шаблонний парсер. Для структурованих доменів regex + кастомний NER працює надійніше за загальну NER-модель:

import re

def extract_order_id(text: str) -> Optional[str]:
    patterns = [
        r'#(\d{5,8})',
        r'№(\d{5,8})',
        r'ORD-(\d+)',
        r'заказ[а-я\s]+?(\d{5,8})'
    ]
    for pattern in patterns:
        match = re.search(pattern, text, re.IGNORECASE)
        if match:
            return match.group(1)
    return None

def fill_order_status_slots(text: str) -> OrderStatusSlots:
    return OrderStatusSlots(
        order_id=extract_order_id(text),
        period=extract_period(text)
    )

Наші клієнти після впровадження slot filling скорочують час обробки замовлень на 40%.

Android: інтеграція в діалоговий інтерфейс

class IntentViewModel(private val intentApi: IntentApi) : ViewModel() {
    fun processUserInput(text: String) {
        viewModelScope.launch {
            val result = intentApi.classify(text)
            when (result.intent) {
                "search_product" -> {
                    val query = result.slots["product_query"] ?: text
                    navigateToSearch(query)
                }
                "order_status" -> {
                    val orderId = result.slots["order_id"]
                    if (orderId != null) navigateToOrder(orderId) else requestOrderId()
                }
                "return_request" -> navigateToReturnFlow()
                "out_of_scope" -> showFallbackMessage()
                else -> handleGenericIntent(result)
            }
        }
    }
}

Як оцінити якість Intent Recognition?

Оцінка проводиться за weighted F1, confusion matrix, часткою out-of-scope пропусків та хибних спрацьовувань. Для e-commerce додатково відстежуємо відсоток успішно оброблених замовлень та повернень. Ми гарантуємо точність не нижче 85% на тестовому датасеті, а в середньому — 92-95%. Для досягнення цього потрібно 100-200 прикладів на інтент мінімум, а краще 500-1000 з використанням data augmentation.

Процес впровадження та витрати

Складання таксономії інтентів (1 тиждень), збір та розмітка датасету (1-2 тижні), навчання класифікатора (1 тиждень), інтеграція в додаток (1 тиждень), моніторинг (постійно). Fine-tuned BERT-класифікатор з базовим slot filling — 2-3 тижні вартістю від $5,000 до $15,000 залежно від обсягу даних. LLM-based Intent Recognition — 3-5 днів та від $2,000. Оцінимо ваш проект.

Що входить у роботу

  • Документація таксономії інтентів та схеми слотів
  • Вихідний код інференсу (Python/Kotlin/Swift)
  • Конфігурація для CI/CD моделі
  • Доступ до дашборду моніторингу метрик
  • Навчання команди роботі з моделлю
  • Підтримка 1 місяць після запуску

Зв'яжіться з нами, щоб обговорити таксономію інтентів та план впровадження. Отримайте консультацію зараз.

Intent Recognition є фундаментальним компонентом систем природної мови — Вікіпедія.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714