Smart Reply для iOS та Android: від ML Kit до кастомних LLM

Підказки відповідей у застосунку часто дратують користувачів і залишаються непоміченими. Ми розробляємо та доопрацьовуємо Smart Reply під ключ: від готових рішень до власних моделей. Налаштовуємо систему так, щоб частка прийнятих підказок зростала, а навантаження на підтримку знижувалося.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Smart Reply для iOS та Android: від ML Kit до кастомних LLM
Середній
~1-2 тижні
Часті запитання

Smart Reply у застосунку: чому відповіді нерелевантні

Нерелевантні підказки майже ніколи не є проблемою самої моделі. У дев'яти випадках із десяти Smart Reply ламається на вході: у контекст іде останнє повідомлення без історії діалогу, мова визначається за першим токеном, тон не передається взагалі.

Модель чесно генерує відповідь на те, що їй дали, — і виходить ввічлива безглуздість, яку користувач стирає й друкує сам.

Друге джерело — затримка генерації. Підказка живе рівно стільки, скільки користувач тримає палець над клавіатурою: якщо відповідь приходить пізніше, ніж людина почала друкувати, вона вже не потрібна.

Гонка за якістю через велику модель на сервері майже завжди програється за часом відгуку, тому робоча схема — швидкий локальний кандидат на пристрої плюс серверне уточнення, яке підміняє підказку, якщо встигло.

Третій шар — контекст діалогу й тон. Листування в підтримці, особистий чат і робоча група вимагають різної лексики за одного й того самого сенсу.

Якщо в підказки не передається роль співрозмовника, історія останніх реплік і мова листування, релевантність відповідей падає на очах: користувач бачить формальні фрази там, де чекає коротке «ок, беру».

Ціна для продукту вимірна: частка прийнятих підказок падає зі звичних значень до одиниць відсотків, а роздратування від нерелевантних варіантів переноситься на весь застосунок. Тому розбираємо крок за кроком, де саме губиться контекст і як повернути підказкам сенс.

Що дає доопрацьована система підказок

Доопрацьована система підказок вимірюється не «розумністю» моделі, а тим, як часто користувач її приймає.

Частка прийнятих підказок — базова метрика: на стандартному автодоповненні вона тримається в межах 8-12%, а після налаштування ранжування під конкретний сценарій листування зростає в 2-3 рази.

Зростання йде не за рахунок більшої моделі, а за рахунок контексту: підказка враховує, кому відповідає користувач, що було в попередніх повідомленнях і в якому тоні він писав раніше.

Швидкість відповіді — друга метрика, і тут важлива не лише затримка самої підказки, а й час від відкриття чату до надісланого повідомлення.

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

Ми тримаємо генерацію на пристрої для типових випадків і йдемо на сервер лише тоді, коли запит потребує важкої моделі — так підказка не залежить від якості зв'язку.

Зниження ручного введення напряму пов'язане з якістю автодоповнення: якщо підказки релевантні, користувач набирає вручну менше половини символів у коротких відповідях.

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

Стійкість до збоїв — обов'язкова умова, інакше виграш обнуляється. Якщо модель недоступна, застосунок віддає заготовлені варіанти і не блокує введення; помилки підказок не впливають на надсилання повідомлень.

Ми окремо перевіряємо поведінку при втраті мережі, при порожньому контексті та при зміні мови в листуванні — система деградує передбачувано, а не ламає основний сценарій.

Ці чотири метрики ми знімаємо до і після доопрацювання: за ними видно, що саме змінилося в продукті, а не лише у звіті.

Підходи до генерації: порівняння варіантів

Вибір між локальною моделлю, серверною генерацією та гібридною схемою — це не про «модність», а про три обмеження: приватність даних, затримку відповіді та вартість інференсу на масштабі.

Локальна модель рахує прямо на пристрої й не надсилає текст нікуди — але впирається в пам'ять і нагрів телефона. Серверна дає якість великої моделі, але додає мережеве коло та витрати на кожен запит. Гібрид знімає частину компромісів, але потребує логіки маршрутизації.

Варіант Коли підходить Обмеження
Локальна модель Чутливі дані (листування, медицина), офлайн-сценарії, прості підказки на 3-7 слів Слабша на довгому контексті, помітна витрата батареї, обмеження за розміром моделі на пристрої
Серверна модель Складні відповіді, довгий контекст, єдина якість на всіх пристроях Залежність від мережі, затримка, витрати на інференс зростають лінійно з кількістю користувачів
Гібридна схема Масовий продукт з різними сценаріями: коротке — на пристрої, складне — у хмарі Складніше тестувати, потрібна логіка перемикання та деградації при втраті мережі

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

Ключове — заздалегідь визначити правило маршрутизації та поведінку за відсутності мережі, інакше користувач отримає порожній екран замість підказки.

Розбираємо, як це закривається під ваш сценарій.

Етапи впровадження Smart Reply у продукт

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

  1. Аудит логіки та даних. Розбираємо, як зараз влаштовані введення тексту, надсилання повідомлення та зберігання історії: де формуються підказки, чи є доступ до контексту діалогу, як обробляються вкладення та багатомовні повідомлення. На виході — карта вузьких місць і розуміння, яких даних бракує для якісних підказок.

  2. Схема обробки та приватність. Проєктуємо потік: що обчислюється на пристрої, що йде на сервер, як знеособлюється вміст і розділяються особисті та групові чати. Окремо фіксуємо поведінку за слабкої мережі та офлайн-режиму — підказка не повинна блокувати введення.

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

  4. Перевірка якості. Збираємо набір тестових діалогів і метрики: частка прийнятих підказок, час до надсилання, відмови та правки. Проганяємо сценарії різними мовами та на різних пристроях, порівнюємо поведінку до і після.

  5. Передача системи. Віддаємо налаштовану конфігурацію, схему обробки, правила фільтрації та інструкції з оновлення моделі. Команда замовника отримує зрозумілий регламент: як змінювати параметри, як читати метрики і коли перенавчати.

Такий маршрут знімає головний ризик — підказки, які дратують користувачів замість того, щоб прискорювати спілкування. Опишіть задачу — повернемося з оцінкою та планом для вашого продукту.

Що залишається у команди замовника

Робота з моделлю Smart Reply не закінчується релізом: замовник отримує не «чорну скриньку», а комплект, за яким його інженери зможуть розвивати й супроводжувати функцію самостійно. Нижче — що саме передаємо.

  • Конфігурації інференсу: параметри генерації, пороги впевненості, правила фільтрації підказок і довідники тональності — з коментарями, що і за яких умов змінюється.
  • Схеми потоків даних: від введення користувача через препроцесинг і модель до ранжування варіантів і логування — із зазначенням, де зберігаються тексти і як довго.
  • Політики доступу: розмежування ролей для вивантаження даних, знеособлення перед навчанням, журналювання звернень до моделі та правила реагування на інциденти.
  • Документація щодо інтеграції: контракти клієнтських бібліотек, обробка офлайн-режиму, поведінка при недоступності сервісу та деградація до локальної моделі.
  • Регламенти оновлення: як викочується нова версія моделі, як перевіряється якість підказок на еталонній вибірці та як відкотитися на попередню без втрати історії.
  • Метрики якості: набір перевірок на точність і релевантність підказок, частка прийнятих варіантів і правила, за якими фіксується погіршення.
  • Інструкції для підтримки: типові збої, діагностика за логами та порядок ескалації до нашої команди.

Кожен артефакт супроводжується коротким розбором — чому обрано саме таке рішення і що станеться, якщо його змінити.

Так у команди замовника залишається не набір файлів, а робоча картина системи: зрозуміло, де правити конфігурацію, де оновлювати політику доступу і який крок регламенту запускає перенавчання. Опишіть задачу — повернемося з оцінкою та планом передачі.

Кейс: як зросла частка прийнятих підказок

Що було до

Застосунок — месенджер із текстовими чатами та вкладеннями. Підказки відповідей жили на трьох захардкоджених фразах на кшталт «Ок, зрозумів» і «Дякую!», однакових для всіх діалогів.

Частка прийнятих підказок трималася близько 4%: користувачі або не помічали рядок, або закривали його, бо пропозиція не збігалася з контекстом листування.

Кожне відхилення — це повернення до ручного введення, а на довгих діалогах — ще й втрата темпу: людина вже сформулювала думку, а її доводиться набирати з нуля.

Що змінили

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

Підказки почали з'являтися в момент, коли користувач відкриває клавіатуру, а не після натискання на поле введення. Додали збір зворотного зв'язку: прийняв, відхилив, відредагував — і перенавчання раз на два тижні на цих сигналах.

Що стало

Частка прийнятих підказок зросла з 4% до 23% — майже в шість разів. Середній час відповіді в діалозі скоротився на третину, а частка повідомлень, надісланих без правок після підказки, сягнула 61%.

Навантаження на ручне введення впало найпомітніше в сценаріях із короткими діловими репліками: там підказка закриває відповідь повністю.

Працювали на актуальній гілці ML Kit для розбору тексту на пристрої та на серверній генерації для складних випадків — це дало баланс між швидкістю відгуку та якістю формулювань.

Чим відрізняється обробка на пристрої від серверної?

Обробка на пристрої тримає модель та інференс усередині клієнта: текст повідомлення не залишає телефон, відповідь генерується локально. Серверна обробка надсилає контекст на бекенд, де працює більша модель.

Звідси розходяться всі чотири компроміси — приватність, затримка, вартість обчислень і якість генерації.

Приватність вирішується архітектурно, а не обіцянками. За локального інференсу листування фізично не залишає пристрій — це знімає цілий клас ризиків під час роботи з чутливими даними та спрощує проходження перевірок магазинів застосунків.

На сервері того самого результату досягають лише явними заходами: шифруванням каналу, відмовою від зберігання вихідного тексту, ізоляцією тенантів. Кожен із цих заходів потрібно проєктувати й підтверджувати.

Затримка за локальної генерації не залежить від мережі: відповідь з'являється за десятки мілісекунд і працює в метро, літаку, роумінгу.

Серверна обробка додає мережеве коло та чергу на бекенді — на стабільному каналі це непомітно, на слабкому зв'язок рветься, і підказка приходить із запізненням. Для сценарію, де користувач друкує й чекає варіант відповіді прямо зараз, це вирішальна різниця.

Вартість обчислень влаштована дзеркально. Локальний інференс не тарифікується за запит, але витрачає батарею та пам'ять пристрою — модель доводиться квантувати й обмежувати за розміром.

Сервер платить за кожен виклик, зате не пов'язаний ресурсами телефона й легко масштабується під пікове навантаження.

Якість генерації — ціна компромісу. Компактна модель на пристрої дає короткі доречні підказки, але програє на довгому контексті, рідкісних мовах і тонкій стилістиці. Серверна модель точніша й краще тримає тон листування, однак вимагає передати дані назовні.

На практиці беруть гібрид: чорновий варіант рахується локально для миттєвого відгуку, а сервер підключається там, де потрібна точність і користувач дав згоду.

Часті технічні сумніви

Питання щодо Smart Reply майже завжди впираються в чотири речі: мови, офлайн-режим, оновлення моделей і контроль якості відповідей. Нижче — як це влаштовано на практиці.

Як застосунок підтримує кілька мов, зокрема українську?

Базовий сценарій — локальна модель на пристрої: вона дає чернетки відповідей десятками мов без звернення до сервера. Якщо потрібні формулювання під конкретний ринок і галузеву лексику, додаємо тонке донастроювання на корпусі листувань замовника — окремо для кожної мови.

Змішані діалоги (українська + англійська в одному треді) обробляємо через визначення мови на рівні повідомлення, а не всього чату: інакше підказки з'їжджають не тією мовою.

Що відбувається, коли в користувача немає мережі?

Локальний інференс працює без мережі — підказки з'являються в момент набору тексту.

Серверні сценарії (важка модель, свіжі дані) в офлайні вимикаються, а інтерфейс не показує порожній блок: застосунок віддає заготовки з локального кешу або приховує підказки до відновлення зв'язку. Так користувач не бачить «завислих» елементів.

Як оновлюються моделі без релізу застосунку?

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

Оновлення проходить поетапно: спочатку на невеликій частці користувачів, потім на всіх — якщо метрики не проснули.

Хто відповідає за якість і безпеку підказок?

Якість контролюємо метриками: частка прийнятих підказок, час до першого варіанта, частка відхилених вручну. Відповіді фільтруємо на токсичність і витоки персональних даних — модель не повинна пропонувати формулювання, які користувач не готовий надіслати. На кожному релізі проганяємо набір тестових діалогів, щоб зловити регресії до викочування.

Якщо щодо вашого продукту залишилися сумніви — опишіть сценарій, повернемося з оцінкою та планом.

Обговоримо ваше завдання і повернемося з планом

Щоб повернутися з оцінкою та планом робіт, а не із загальними словами, нам потрібно зрозуміти ваш сценарій Smart Reply повністю: де підказки з'являються, якою мовою і в якому обсязі. Опишіть завдання — ми поставимо уточнювальні запитання і надішлемо план наступних кроків.

Що уточнимо на першій розмові:

  • Де саме потрібні підказки: відповіді в месенджері, коментарі, підтримка, відгуки — від цього залежить логіка генерації.
  • Мови та тональність: одна мова чи кілька, чи потрібне врахування стилю переписки конкретного користувача.
  • Де обчислюємо: на пристрої, на сервері чи гібридно — впливає на приватність, швидкість і вартість експлуатації.
  • Дані для навчання та налаштування: чи є історія переписок, словники, обмеження щодо чутливих тем.
  • Обмеження: вимоги до конфіденційності, офлайн-режим, інтеграція з наявним бекендом і системами облікових записів.
  • Метрики успіху: частка прийнятих підказок, швидкість відповіді, охоплення користувачів.

На виході ви отримаєте план робіт з етапами, оцінку термінів і складу команди, схему архітектури під ваш сценарій та перелік ризиків із варіантами їх закриття. Якщо у вас уже є прототип або напрацювання — подивимося, що можна перевикористати, а що переписати.

Опишіть завдання у вільній формі: що за продукт, яка аудиторія, який результат потрібен. Повернемося з оцінкою та планом.

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

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

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