Боты заботы

Про злых роботов, которые банят за агрессивное вождение, мы уже рассказывали. Пора познакомить вас с добрыми.

Монстр под кроватью

Представьте: вы приехали на Драйве к торговому центру. На фасаде здания прямо перед парковкой висят огромные буквы «РАСПРОДАЖА». И манит кофе из автомата, и где-то подогреваются хот-доги, и будто бы даже пахнет фрикадельками.

Вы выходите из машины, направляетесь ко входу в молл; проверяете список — вам только сковородку, две тарелки и свечку; берёте большую синюю сумку (потому что кого мы обманываем), и спустя 20 минут где-то в лабиринте между постельным бельём и отделом хранения внезапно получаете пуш:

Ёкнуло
Ёкнуло

И только тогда вы понимаете, что не закрыли машину.

Знаете, на берегу нам казалось, что с каршерингом будет всё понятно: забронировали, открыли, осмотрели, перевели в поездку и поехали. Но спустя два года мы видим, что существуют десятки способов забыть о машине, уехать не туда или не уехать никуда вообще. Такие оплошности несут не только финансовые расстройства клиенту, но и повышают риск угона автомобиля.

Пользователь, даже самый взрослый или опытный, требует постоянной заботы и опеки.

С чем боты имеют дело

Пока вы выбирали новые занавески, на сервере Яндекс.Драйва бот выбирал все машины, которые находятся в аренде. Он проверял активность сенсоров зажигания и вдруг заметил, что где-то в городе стоит открытый автомобиль, но никуда не едет. Бот ждал пять, десять минут — вдруг пробка. А спустя двадцать минут не выдержал и проинформировал вас.

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

Вместо оператора тут включается бот. Он начинает проверять статус поездки и видит, что на самом деле она ещё в «приёмке», а цепь зажигания разомкнута, и автомобиль не сможет завестись. Бот сам отвечает человеку в чате, а саппорт даже не увидит такое сообщение.

Или ситуация с аэропортами. Они часто бывают перегружены машинами каршеринга. Поиск парковочного места может привести к опозданию на самолет, и в итоге выйдет в круглую сумму. Поэтому для всех операторов каршеринга вопрос балансировки количества машин в аэропорте очень серьезный. Решение о включении бесплатного тарифа из аэропорта «Домой» также принимают боты. Они следят, чтобы в терминалах не скапливалось много машин и балансируют их количество тем, что начинают менять цены. Поездка в аэропорт становится дороже, а в город — дешевле.

Машины на парковке Шереметьево ждут, чтобы их увезли в город
Машины на парковке Шереметьево ждут, чтобы их увезли в город

Когда количество приехавших в аэропорт машин становится уже опасным, боты включают тариф «Домой». Тогда вы по прилёту можете взять машину совершенно бесплатно и вывезти её в город, раз вам по пути. Дополнительно срабатывают наши системы мониторинга, чтобы команда поддержки вручную отслеживала происходящее и, если понадобится, отправила перегонщиков в терминал для дополнительной разгрузки.

С нетерпением отсчитывает дни до двухлетнего стажа водителя тоже бот. Так что, если при регистрации у вас был всего один год или полтора, это ещё не повод удалять приложение. Как только человек достигнет двухлетнего стажа вождения, бот сам откроет ему доступ и отправит пуш.

Тоже ёкнуло, но по-другому
Тоже ёкнуло, но по-другому

Таких ботов в Драйве много. Потому что таких ситуаций в каршеринге много. К счастью, большинство из них типичны. А значит процесс распознавания неладного и информирования населения можно автоматизировать.

Главное — не проверять не то

Сценарии похожие, и ни один разработчик не захочет посвящать всё своё рабочее время их написанию. По крайней мере, мы не захотели. Вместо этого мы решили создать конструктор из инструментов информирования, который можно отдать команде поддержки, менеджерам или аналитикам. А для этого нужны данные о поведении наших водителей и о том, что происходит с машиной.

Сколько времени человек находится в приёмке, как давно он забронировал машину, с какой скоростью движется последние несколько минут — всё это мы можем узнать.

Но важно не мониторить не те данные. Мы написали базовые фильтры для проверки имеющихся у нас сигналов.

Два источника сигналов

Основной — это, конечно, сам автомобиль. Мы уже рассказывали, что во все наши машины встроена наша же телематика. Это такой блок, который считывает показания сотни датчиков, расположенных почти на каждой детали машины: на коробке передач, руле, педалях, стеклоподъёмниках, двигателе, спидометре.

Наш блок телематики, если развинтить коробку
Наш блок телематики, если развинтить коробку

Данные с этих датчиков мы индексируем в KV-хранилище. Название этого хранилища «key/value» уходит корнями в латынь и в вольном переводе означает «ключевые значения датчиков, которые мы кладём в сервис-хранилище, чтобы потом прочитать их очень быстро».

Эти данные мы аккумулируем и формируем таймлайн. В итоге по ключевым запросам «машина» или «машина и сенсор» мы можем получить последнее известное нам значение или все события за несколько предыдущих часов.

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

Но с ними сложнее. Так как ситуация в городе непрерывно меняется, нам было необходимо, чтобы наши процессы проверки поездок срабатывали максимально быстро, пока они актуальны.

Например, нам нужны данные о пользовательских действиях. Они оседают в серверных логах, а быстро достать оттуда данные не так уж просто. Поэтому логи пользовательских действий мы дополнительно индексируем в быстрые KV-хранилища, где они хранятся те несколько часов.

И тут включаются боты

Они проверяют значения, анализируют их и всё сопоставляют. Затем совершают действие: либо разбираются сами, либо посылают нам сигналы.

Бот может проверять условия вроде «пользователь находится в режиме приёмки уже 20 минут, но за это время не совершил ни одного действия» → «может, ему стало плохо» → отправить пуш-сообщение → ничего не происходит → перевести задача к оператору службы поддержки → оператор звонит пользователю.

В итоге мы приходим к понятной схеме реагирования:

  • Сделать выборку пользователей по простым критериям: в поездке на определенном классе авто или тарифе, на определенной стадии регистрации и т.п.
  • Превратить данные числовые значения, которые можно проверить: время в текущем состоянии, размер долга за поездку и всякое такое.
  • Выполнить действие: написать, позвонить, словом, проинформировать.

Наши инструменты заботы

Конечно, иногда задачи требуют специфичных действий. Но в основном за два года мы выработали такой набор инструментов:

  • отправить пуш
  • написать в чат в приложении
  • отправить скрин
  • отправить письмо
  • подать сигнал колл-центру, чтобы они позвонили
  • отправить на мониторинг дежурной смене поддержки

И в итоге большинство задач наш саппорт решает с помощью ботов. Но чаще сами боты работают без вмешательства команды поддержки.

Так что в следующий раз, когда вы включите ребёнку на смартфоне мультик, а он благодаря развитой мелкой моторике забронирует автомобиль, боты вас предупредят.

1111
3 комментария

С заботой о пассажирах и недоверием к водителям) у заботы две стороны медали)

2
Ответить

А потом у тебя после таких «прелестных и дружелюбных» ботов весь центр уведомлений в пуш-рекламе.

2
Ответить

Настолько технологичны, что год не можете решить вопрос с ДТП.

1
Ответить