Казус от практиката

Как добавихме ИИ асистент към SaaS платформа — без да я счупим

Малък SaaS екип имаше натрупани заявки към поддръжката и функция, която потребителите му не можеха да открият. Това е честната история как вградихме ИИ асистент в продукта им — какво проработи, какво изхвърлихме и числото, което най-накрая се помръдна.

Have a nice dayHave a nice day11 мин. четене
Как добавихме ИИ асистент към SaaS платформа — без да я счупим

Всеки SaaS екип, с който говорим, рано или късно изрича на глас едно и също изречение: "Трябва да сложим тук ИИ асистент." Понякога това е натиск от борда, понякога стартиране на конкурент, понякога е искрено. Интересната част никога не е идеята — почти всеки я има. Интересната част е пропастта между това изречение и функция, на която реалните потребители наистина разчитат. Това е историята на един екип, който я преодоля, и на непретенциозните решения, които го доведоха дотам.

Кратка бележка преди да започнем: анонимизирахме клиента и закръглихме числата. Става дума за малка, печеливша B2B SaaS компания — под двайсет души — която продава инструмент за работни процеси на оперативни екипи. Променихме достатъчно детайли, за да не ги разпознаете, но формата на проекта е точно такава, каквато се случи. Числата са илюстративни, не одитирани; предпочитаме да ви покажем модела, отколкото да разкрасяваме графика.

Описваме го, защото проектът е почти идеален пример за това как всъщност се случват тези неща. Не мина така, както обещаваше началната презентация. Мина по-добре — но само защото бяхме готови да изтрием първата версия.

Ситуацията: два проблема в един костюм

Когато основателят се свърза с нас за първи път, заявката беше проста: "Искаме ИИ чатбот в приложението." Оттам започват повечето проекти и точно там повечето от тях тихо тръгват накриво. "ИИ чатбот" не е цел, а форма. Затова първата ни задача беше да разберем какъв проблем трябва да реши този чатбот — и дали изобщо е един проблем.

Не беше. Под тази една заявка се криеха два напълно различни проблема. Първият беше натоварването на поддръжката: двучленен екип по грижа за клиенти се давеше в повтарящи се заявки — "как да експортирам това", "къде е настройката за онова", "защо не се стартира отчетът ми". Около 60% от входящите заявки бяха въпроси, вече отговорени някъде в документацията им за помощ. Вторият проблем беше по-тих и по-скъп: активацията. Продуктът им имаше наистина мощна функция, скрита на три клика дълбочина, която почти никой не откриваше сам. Потребителите, които я намираха, оставаха с години. Тези, които не я намираха, си отиваха през първите два месеца.

Един костюм, два проблема. И те дърпаха в различни посоки. Ботът за поддръжка иска да отклонява въпроси и да се маха от пътя. Асистентът за активация иска да започва разговори и да побутва хората към неща, за които не са питали. Ако бяхме изградили "ИИ чатбот" без да ги разделим, щяхме да изградим нещо, което върши и двете задачи зле.

“"ИИ чатбот" е форма, а не цел. Първата седмица от проекта прекарахме в откриване кой проблем всъщност ни плащат да решим.”
— нашият ръководител на проекта, от бележките за старта
Скица на бяла дъска, която разделя една размита кутия 'ИИ чатбот' на два ясно обозначени пътя — 'отклоняване на поддръжка' отляво и 'активация на функция' отдясно — с лепящи листчета и стрелки с маркер, в малък стартъп офис
Първият резултат не беше код. Беше осъзнаването, че една заявка крие два различни проблема.

Стесняване на обхвата до нещо, което можем да завършим

Изправени пред два проблема, изкушението е да изградите грандиозен асистент, който се справя и с двете от първия ден. Разубедихме екипа. Не защото визията беше грешна, а защото шестмесечен "асистент за всичко" е точно онзи тип проект, който закъснява, пропада и прави всички нервни около ИИ за следващите две години.

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

Асистентът за активация не изчезна — паркирахме го, на хартия, с ясна бележка: втора фаза, щом слоят за извличане се докаже. Това единствено решение вероятно спаси проекта. Даде на екипа финална линия, която наистина можеше да достигне за седмици вместо за тримесечия.

Първият прототип, който изградихме — и изтрихме

Ето частта, която повечето казуси пропускат. Първият ни работещ прототип беше, меко казано, лош. Направихме очевидното: свързахме помощните статии на продукта с голям езиков модел, добавихме поле за чат и оставихме потребителите да задават въпроси. В демонстрацията изглеждаше вълшебно. При реален тест се разпадна по много специфичен, много поучителен начин.

Моделът беше самоуверено грешен. Попитан за настройка, преименувана шест месеца по-рано, весело измисляше стария път в менюто. Попитан за функция от по-висок план, обясняваше как да се използва — на клиент, който нямаше достъп до нея. Всеки отговор звучеше авторитетно, което правеше грешните по-лоши от липсата на отговор. Бот за поддръжка, който любезно лъже, не намалява заявките; създава по-ядосани.

Можехме да го закърпим с промени в подканите. Вместо това направихме нещо, което изглеждаше като крачка назад, но се оказа цялата същина: изхвърлихме първия прототип и го изградихме отново около строго правило — асистентът може да отговаря само от източници, които може да цитира, а иначе трябва да каже "не знам".

Илюстрация на интерфейс на разделен екран: отляво отговор в чат, маркиран с червена икона за предупреждение, който дава самоуверен, но измислен отговор, отдясно същият въпрос с отговор със зелена отметка, кратък цитиран отговор и бутон 'не съм сигурен — свържете се с поддръжка'
Първата версия звучеше страхотно и лъжеше. Втората отговаряше по-малко, цитираше източниците си и ѝ се доверяваха повече.

Какво всъщност изградихме

Версията, която пуснахме, беше умишлено скромна в това, което опитваше, и строга в това, как се държеше. Под капака беше асистент, обоснован върху извличане: когато потребител попиташе нещо, системата първо търсеше в грижливо поддържана, актуална база знания, после искаше от модела да отговори само от намереното, с връзка обратно към източника. Няма източник, няма самоуверен отговор — само чисто предаване на човек.

Три проектни решения свършиха по-голямата част от тежката работа и нито едно от тях не е вълнуващо. Точно в това е същината — скучните решения обикновено са тези, които решават дали на една ИИ функция ще се доверяват, или тя ще бъде тихо изключена.

Обоснованост вместо изобретателност

Всеки отговор беше обвързан с реален, актуален документ. Прекарахме повече време в почистване и структуриране на базата знания, отколкото в настройка на модела. Непретенциозна и далеч най-въздействащата работа в проекта. Посредствен модел върху отлично, добре поддържано съдържание побеждава блестящ модел върху остарял хаос.

Изящно предаване

Когато асистентът не беше уверен, не гадаеше. Казваше го и предлагаше път към човек с едно кликване — носейки контекста на разговора със себе си, така че потребителят никога да не се налага да повтаря. Противно на очакванията, това накара хората да се доверяват повече на бота: асистент, който признава границите си, изглежда честен, и разчитаха на него за лесните 60% именно защото се отдръпваше при трудните 40%.

Наясно кой пита

Тъй като живееше вътре в продукта, асистентът знаеше плана на потребителя, ролята му и къде се намира в приложението. Затова никога не обясняваше функция, до която потребителят нямаше достъп, и можеше да каже "бутонът, който търсите, е на екрана, на който вече сте." Тази осведоменост за продукта е истинското предимство на асистента в приложението пред общ чатбот, залепен върху маркетингов сайт.

  1. 1
    Почистихме и структурирахме базата знания
    Прегледахме всеки помощен документ, премахнахме остарелите, а останалите маркирахме по план и функция. Това беше първата седмица и тя беше най-важната.
  2. 2
    Изградихме слоя за извличане
    Първо търсене, после отговор. Моделът винаги виждаше само проверено, актуално съдържание — с указание да отказва всичко, което не може да обоснове с източник.
  3. 3
    Свързахме контекста на продукта
    Свързахме асистента с плана, ролята и текущия екран на потребителя, така че отговорите бяха съобразени и никога не сочеха към функции, които не можеше да използва.
  4. 4
    Проектирахме честния резервен път
    Изградихме пътя 'не съм сигурен — ето човек' като първокласна функция, с пълния контекст на разговора, предаден на екипа по поддръжка.
  5. 5
    Пуснахме за 10% от потребителите зад флаг
    Тихо въведохме функцията за част от акаунтите, две седмици наблюдавахме реални разговори, поправихме каквото се чупеше и после разширихме внедряването.

Резултатите — и този, който ни изненада

След като асистентът беше на живо за всички около три месеца, картината беше ясна. Ще ви дадем закръглени, илюстративни цифри — посоката е по-важна от десетичните.

ПоказателПредиСледПромяна
Повтарящи се заявки към поддръжка~100/седмица~45/седмицаОколо половината, отклонени
Медиана на първи отговор~5 часаПочти мигновено за чести въпросиОт часове в секунди
Фокус на екипа по поддръжкаПредимно повтарящи се въпросиПредимно сложни, ценни случаиПо-добро използване на двама души
Дял 'не мога да отговоря' на асистента—~20% (предадени на хора)Честно, не скрито
Приблизително къде се установиха нещата след три месеца в сравнение с изходното състояние преди старта. Числата са закръглени и илюстративни.

Числото на поддръжката беше това, което обещахме, и то се сбъдна: малко над половината от повтарящите се заявки просто спряха да пристигат, а двучленният екип си върна седмицата за случаите, които наистина се нуждаеха от човек. Добър резултат, точно според обхвата.

Но резултатът, който наистина изненада основателя, беше този, за който изобщо не бяхме оптимизирали. Тъй като асистентът цял ден отговаряше на въпроси "как да направя X", той естествено постоянно насочваше потребителите към онази скрита, задържаща функция — тази, свързана с задържането. Още не бяхме изградили асистента за активация. Ботът за поддръжка тихо вършеше част от неговата работа като страничен ефект, само защото беше полезен и наясно с продукта. Новите потребители намираха функцията седмици по-рано отпреди.

“Пуснахме инструмент за поддръжка. Оказа се инструмент за въвеждане, облечен в дрехите на инструмент за поддръжка — което е точно причината втората фаза да получи зелена светлина.”
— от тримесечния преглед
Чиста редакционна линейна графика на екрана на лаптоп, показваща седмичните заявки към поддръжка, спадащи с около половина за три месеца, с втора бледа възходяща линия с надпис 'откриване на функция', изкачваща се на фона, гледано през рамото на облекчен основател
Показателят, който обещахме, се помести по план. Бледата втора линия — откриването на функцията — е тази, която никой не очакваше.

Какво бихме казали на следващия екип

Ако сте SaaS екип, който се взира в същото изречение "трябва да добавим ИИ асистент", няколко неща от този проект се обобщават добре и извън него.

  • Разделете проблемите, преди да строите. "ИИ чатбот" почти винаги крие две или три различни задачи, които искат различен дизайн.
  • Започнете със сценария, при който грешният отговор струва най-малко. Отклоняването на поддръжка е почти идеален първи ход; резервният вариант е статуквото.
  • Заделете по-голямата част от усилията за съдържанието, не за модела. Обосноваването върху чисти, актуални данни е това, което прави асистента достоен за доверие.
  • Направете 'не знам' функция, а не провал. Честното предаване изгражда доверието, което кара потребителите да разчитат на частите, които ботът върши добре.
  • Първо пуснете зад флаг за малка част. Реалните разговори ще ви научат на неща, които никоя демонстрация няма да ви покаже.

Мислите за ИИ функция в продукта си?

Най-трудната част рядко е моделът — тя е да очертаете нещото така, че да бъде пуснато и да спечели доверие. Помагаме на SaaS и софтуерни екипи да разберат какво наистина си струва да се строи, а после го строим. Първият разговор ви струва само време.

Вижте как изграждаме ИИ функции

Чести въпроси

Колко продължи този проект?
От старта до пълното внедряване минаха около три месеца, включително прототипа, който изхвърлихме, и поетапното пускане зад флаг. Фокусирана първа ИИ функция като тази обикновено е въпрос на седмици до няколко месеца, а не година — стига да задържите обхвата тесен. Това, което взривява сроковете, е опитът да се изгради 'асистентът за всичко' още от първия ден.
Нужно ли ни е огромно количество данни, за да добавим ИИ асистент?
Не. За асистент по поддръжка 'данните' са предимно помощното съдържание и минали заявки, които вече имате. Работата не е да събирате повече — а да почистите и структурирате наличното, така че асистентът да може да обоснове отговорите си в нещо точно и актуално. Повечето екипи се изненадват колко използваем материал вече имат.
Няма ли ИИ асистентът да дава грешни отговори на клиентите?
Ще дава, освен ако не проектирате защита срещу това. Най-важното решение в този проект беше да забраним на асистента да отговаря на каквото и да е, което не може да обвърже с реален източник, и да му дадем чист начин да каже 'не съм сигурен, ето човек.' Изграден така, той надеждно отговаря на лесното мнозинство и се отдръпва при останалото — което е точно това, което печели доверието на потребителите.
Да го изградим сами или да привлечем помощ?
И двете могат да проработят, но начинът на провал е един и същ: подценяване колко много резултатът зависи от непретенциозната основна работа — почистване на съдържание, извличане, предпазни механизми, честен резервен път — а не от самия модел. Ако екипът ви има време да го направи внимателно, чудесно. Ако не, точно това е частта, където опитен партньор ви спестява един-два изтрити прототипа.
Коя е разумна първа ИИ функция за SaaS продукт?
Изберете тази, при която грешният отговор ви струва най-малко и показателят е очевиден. Отклоняването на поддръжка отговаря и на двете: резервният вариант е просто това, което потребителите правеха преди, а обемът на заявките можете да измервате пряко. Щом това се докаже и спечели доверие, си спечелвате правото да се захванете със сценарии с по-висок залог като въвеждане, активация или насочване в продукта.
Have a nice day
Have a nice day
Редакция

Have a nice day е софтуерно студио, което помага на малките и средните предприятия да се дигитализират — автоматизация, изкуствен интелект и софтуер по поръчка, който работи в ежедневната дейност, а не само на слайдове.

Подходящи услуги