Як додати пошук у застосунок, створений ШІ (щоб люди справді могли щось знайти)
Щоб додати пошук до застосунку, створеного ШІ, почніть з поля фільтра, яке звужує список під час введення тексту, вкажіть, які поля шукати, додайте фільтри за категоріями для перегляду, а пошук на основі ШІ залиште для помилок у написанні чи запитів за змістом.
Настає момент, коли будь-який пристойний застосунок, створений ШІ, переповнюється. Застосунок для рецептів, який був чудовим із дванадцятьма рецептами, перетворюється на морочливу справу з трьомастами. Трекер клієнтів, охайний із вісьмома клієнтами, стає нескінченним прогортанням із двомастами. Нічого не зламалося. Застосунком стали користуватися — а це й є вся суть — але тепер те, заради чого туди приходять люди, знайти одну конкретну річ, займає забагато часу.
Це і є сигнал, що настав час додати пошук у ваш застосунок — поле, де введення кількох літер звужує довгий список до однієї потрібної позиції. Не тому, що пошук вражає, а тому, що прогортання — це не пошук. Розберімо, як зробити це без надмірного ускладнення, бо навороченіша версія зазвичай не найкращий перший крок.
Коли настав час додати пошук у ваш застосунок?
Ви це відчуєте, бо прогортання списку почне займати більше часу, ніж мало б, — ваш список виріс з акуратної жменьки елементів до сотень, і щоб знайти щось конкретне, доводиться прогортати все інше. Нічого не зламалося — просто застосунком стали користуватися, а це й є вся суть.
Ось як ця проблема виглядає насправді. Грумер для собак створила застосунок для обліку клієнтів — ім’я, кличка собаки, порода, нотатки про те, які собаки не люблять фен. Перші кілька місяців це був охайний список, який можна було охопити поглядом. Коли клієнтів стало двісті, їй доводилося відкривати застосунок прямо при клієнтці, що стояла поруч, і прогортати сотню імен, щоб знайти «маму Белли».
Застосунок робив саме те, про що вона просила. Просто список перестав бути зручним способом знайти в ньому щось одне. Саме це виправляє пошук: перетворює «прогортай, поки не побачиш» на «введи кілька літер — і воно тут».
Якщо ваш застосунок показує список чого завгодно — замовлень, рецептів, клієнтів, товарів, нотаток — і цей список постійно росте, ви теж із цим зіткнетеся. Добра новина в тому, що перша, найпростіша версія пошуку вирішує цю проблему майже для всіх.
Як додати пошук у застосунок, створений ШІ?
Почніть із поля фільтра — текстового поля над списком, яке під час введення тексту приховує все, що не відповідає запиту, — а не з найрозумнішого можливого «пошуку на ШІ». Це весь перший крок, і для більшості застосунків це єдиний потрібний крок.
Коли ви просите ШІ-білдер зробити пошук, виникає спокуса одразу замовити найрозумнішу версію: щоб розумів, що ви мали на увазі, враховував синоніми, ранжував за релевантністю. Опирайтеся цій спокусі. Розумна версія працює повільніше, коштує дорожче в експлуатації, і її складніше зробити правильно, — а вам вона майже напевно поки що не потрібна.
Введіть «белла» — і список звузиться до всіх Белл. Оце і все. Це миттєво, це практично безкоштовно в роботі, і саме це люди мають на увазі, коли кажуть «я хочу мати можливість шукати».
Попросіть у білдера саме це: «Додай поле пошуку над цим списком, яке фільтрує елементи за тим, що я вводжу». Ви здивуєтеся, як часто це і є весь проєкт.
На які поля насправді має дивитися пошук?
Лише на ті два-три поля, які справді ідентифікують те, що ви шукаєте, — а не на всі поля кожного елемента. Сказати про це білдеру — та сама інструкція, яка робить пошук зручним замість дратівливого, і більшість людей її пропускають.
За замовчуванням білдер може шукати геть по всьому — по кожному полю кожного елемента. Звучить ретельно, а на практиці зазвичай гірше. Уявіть, що ви шукаєте в тому списку клієнтів і отримуєте збіги лише тому, що слово «маленький» трапилося в нотатках про розмір собаки. Тепер вам доводиться перебирати результати, які формально збігаються, але не є тим, що ви мали на увазі.
Тож чітко вкажіть, які поля важливі. Для грумера це ім’я клієнтки та кличка собаки — не нотатки, не порода, не історія візитів. Для застосунку з рецептами це назва рецепта і, можливо, основний інгредієнт, а не весь текст інструкції. Скажіть білдеру: «Пошук має дивитися лише на поля назви та імені». Пошук за правильними двома полями завжди переможе пошук за всіма дванадцятьма.
Що будувати першим — пошук чи фільтри?
Часто саме фільтри — бо багато з того, що люди називають «пошуком», насправді є «покажи мені підмножину», а поле пошуку для цього не найкращий інструмент. Ось що часто дивує нетехнічних творців.
Перепродавачка з трьомастами товарів на складі зазвичай не хоче нічого вводити — вона хоче натиснути «Продано», «В наявності» або «Виставлено цього тижня». Це і є фільтр: кілька кнопок або випадний список, що звужує список за категорією, яку ви вже відстежуєте. Фільтри часто простіше побудувати, ніж пошук, і вони корисніші в щоденному використанні, бо люди набагато частіше переглядають за статусом, ніж шукають щось конкретне за назвою.
Хороше правило: додавайте поле пошуку для випадку «я приблизно знаю, як це називається», і фільтри для випадку «покажи мені такий тип». Наша грумерка зрештою захотіла і те, і те — поле пошуку, щоб швидко перейти до клієнтки за іменем, коли та стоїть перед нею, і фільтр «прострочено для грумінгу», щоб одним поглядом бачити, кому написати в спокійний день. Ті самі дані, два цілком різні способи до них дістатися.
Якщо можете побудувати спершу лише щось одне, поспостерігайте, як люди насправді користуються застосунком. Якщо вони постійно питають «де всі X», їм потрібен фільтр, а не поле пошуку.
Що має з’являтися, коли пошук нічого не знаходить?
Просте, конкретне повідомлення — щось на кшталт «Немає клієнтів за запитом “zelda” — перевірте написання або очистіть пошук» — а не порожній екран, який сприймається як «застосунок зламався». Він не зламався — просто немає збігів, і більшість людей забувають продумати цей момент.
За замовчуванням часто виходить порожній екран. Тож скажіть білдеру, що саме має писати порожній стан. Це одне речення — і є різницею між користувачем, який думає, що ваш застосунок зламався, і користувачем, який думає, що просто не так щось ввів.
Заразом переконайтеся, що є очевидний спосіб очистити пошук і повернути весь список. Маленький значок «х» у полі або посилання «очистити». Люди застрягають у пошуку, з якого не можуть вибратися, частіше, ніж здається.
Коли вам потрібен пошук на основі ШІ замість поля фільтра?
Дві конкретні ознаки, а не відчуття: помилки в написанні та зміст. Якщо люди шукають «stephanie» і не знаходять «Stefanie», вам потрібен поблажливий пошук, що враховує близькі збіги, — попросіть білдера про «пошук, який усе одно знаходить результати, коли написання трохи відрізняється». А якщо вам справді потрібно «знайди нотатки про проблеми з оплатою», а не «знайди слово оплата», це вже той розумний, ШІ-пошук — і додаткова вартість і складність виправдані, коли він вирішує проблему, з якою просте поле впоратися не може.
Просто не починайте з цього. Почніть із поля, що фільтрує, додайте поблажливий пошук, коли даються взнаки помилки в написанні, і сягайте по розумну версію лише тоді, коли «збіг слів» перестає бути достатнім. Більшості застосунків ніколи не доводиться йти далі першого кроку.
Тож перш ніж щось будувати, поспостерігайте тиждень за тим, як ви самі користуєтеся своїм застосунком. Те, що ви постійно прогортаєте, щоб знайти, — клієнта, замовлення, рецепт, — саме для цього і потрібне поле пошуку. Побудуйте його спершу для цієї однієї речі — і ви вирішите проблему майже для кожного, хто ним користується.