Сделал бота, который помнит, где дома что лежит

«Дорогая, где удлинитель?» Теперь этот вопрос можно задать боту

Почти идеально. Знать бы что там находится. И где мой удлинитель
Почти идеально. Знать бы что там находится. И где мой удлинитель

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

У семьи две проблемы. Хранителя постоянно дёргают. И однажды он уезжает в отпуск, после чего семья неделю живёт без паспортов, батареек и терпения.

Как всё началось

В моём случае Хранителем приходилось быть мне самому. А это непросто, когда вещей в доме больше, чем помещается в одной голове.

Дом у нас большой и к тому же ещё строится. Розетки, выключатели, кабели, крепёж — всё это где-то лежит «в запасе». Где именно, знает только дом. В какой-то момент я поймал себя на том, что проще съездить в магазин и купить ещё розеток, чем найти свои. Хотя точно знаю: они где-то были.

Я искал программы для учёта вещей, пробовал даже настоящую складскую систему. Для склада это отлично, для повседневной жизни нет: никто не станет заполнять карточку товара, убирая отвёртку в ящик. Хотелось другого — просто спросить кого-нибудь: «Где у меня шнек от насоса» И получить ответ.

Последней каплей стал чердак. К нам приезжала дочь с внуком, и к их визиту мы накупили кучу вещей. Гости уехали, я понёс всё на чердак и понял: через полгода я не вспомню, что там вообще лежит. Значит, перед следующим приездом придётся либо лезть на чердак на разведку, либо снова покупать «на всякий случай», вдруг не найду.

Так появился бот

Знакомьтесь: WIW

WIW — бот в Telegram и Max, который помнит, где в доме что лежит. Никаких таблиц, форм и «выберите категорию из списка». Вы просто пишете или наговариваете, как сказали бы человеку:

«Положил паспорта в синюю папку, в верхний ящик комода в спальне»

Бот кивает (мысленно) и записывает. Через полгода, накануне вылета, вы спрашиваете:

«Где паспорта?»
› спальня › комод › верхний ящик › синяя папка

И всё. Без археологических раскопок.

Как в это играть

Проще всего объяснить бота как игру с уровнями.

Уровень 1. Записать

Одна фраза, сколько угодно вещей, любая глубина вложенности:

«На кухне в ящике под духовкой три красные круглые формы для выпечки, стерилизатор, видеоняня»

Да, видеоняня в ящике под духовкой. Бот не осуждает, бот записывает. Шкафы, полки и коробки он заводит сам, по ходу рассказа. И понимает, что «шкаф над микроволновкой» и «шкаф над холодильником» — это два разных шкафа, а не один очень длинный.

Он запоминает и подробности: цвет, размер, количество, назначение, вольты. «Два блока питания, 12 вольт, 60 ватт» так и будут лежать, с вольтами и ваттами. Пригодится тому, кто когда-то подключал светодиодную ленту не тем блоком.

Уровень 2. Спросить

  • «Сколько у нас батареек?»
  • «Есть ли дома крахмал?»
  • «Где горнолыжные очки?»
  • «Где раньше лежал перфоратор?»

Последний вопрос особенно хорош для семейных расследований в духе «я его не трогал, он сам ушёл».

Важное правило: бот не фантазирует. Если крахмал никто не записывал, бот так и скажет, а не отправит вас на третью полку искать то, чего там никогда не было. Под ответом кнопки «нашёл» и «там нет». Нажали, и бот запомнил, что запись свежая или устарела.

Уровень 3. Жизнь не стоит на месте

Вещи переезжают, заканчиваются и уходят к соседям:

  • «Рома переложил всё с полки под раковиной в корзину для белья»
  • «Потратила один набор приправ для глинтвейна»
  • «Старый пылесос отдали соседям»

Можно сказать «мультиварка — это та же скороварка», и бот найдёт её по обоим названиям. Можно указывать место по соседям: «паяльник положил туда же, где канифоль». Бот знает, где канифоль, значит, теперь знает и где паяльник.

Финальный босс: режим обхода

Говорите «начал обход» и идёте по дому с телефоном, как экскурсовод по собственной квартире:

«Я в кладовке. Слева стеллаж, на верхней полке коробка с ёлочными игрушками, под ней пылесос…»

Одно голосовое может длиться до 10 минут. Бот сам нарежет его на фразы, покажет прогресс, а в конце выдаст итог: что записал и что осталось непонятным. Говорят, за один обход кладовки можно найти три потерянные вещи ещё до того, как бот что-то запишет. Побочный эффект, но приятный.

Он переспрашивает, а не делает вид, что понял

Это моя любимая черта. Допустим, вы говорите: «Перфоратор в гараже на стеллаже». А стеллаж у бота записан в кладовке. Вместо того чтобы молча что-нибудь напутать, он спросит:

«Стеллаж у меня есть, но в кладовке. Это он или другой?» [перенести] [это другой]

Если вопросов накопилось много, а вы посреди обхода, бот не вываливает их все разом. Они ждут в разделе /вопросы, разберёте потом, за чаем.

Всей семьёй

Отправляете домочадцам ссылку-приглашение, и записи становятся общими. Один записал, все нашли. Можно завести несколько домов, например квартиру, дачу и гараж, и переключаться между ними. Дача отдельно, потому что на даче, как известно, свой мир и свои законы.

Есть и мелочи: список мест кнопками (открыл ящик и видишь всё его содержимое списком), фото с подписью, команда /отмена, если записали что-то неверно.

Чего бот не умеет

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

Одна техническая минутка (можно пропустить)

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

Мне нужна ваша кладовка

Бот работает, но живая жизнь ценнее любых тестов. Ищу людей с настоящими кладовками, чердаками и ящиками «всякое». Особенно ценны дома, где есть ящик со шнурами от неизвестных устройств: там бот проходит настоящую проверку.

Квест для тестировщика

Попробуйте получить ачивки:

  • Новосёл — записать первую вещь
  • Сыщик — найти что-то, о чём забыли, что записывали
  • Экскурсовод — пройти режим обхода хотя бы по одной комнате
  • Общий котёл — пригласить домочадца и найти вещь, которую записал он
  • Охотник за багами — запутать бота так, чтобы он ответил глупость (и написать мне через /отзыв, это главная ачивка)

Пишите в /отзыв всё подряд: что раздражает, что неожиданно понравилось, где бот поступил странно. Каждая жалоба превращается в исправление.

Бот бесплатный. Но мест в тесте немного: читать отзывы и чинить ошибки я успеваю только в «свободное от работы время». Когда места закончатся, приём остановлю. Активным тестировщикам — моя благодарность и доступ ко всему, что появится дальше.

Немного про данные

Бот в тестовом режиме. Фразы обрабатываются внешними ИИ-сервисами и сохраняются в журнале, чтобы я мог разбирать ошибки. Поэтому не пишите туда ничего чувствительного: «ключ от сейфа под третьей половицей» лучше оставить при себе. Всё, что вы сохранили, можно в любой момент выгрузить одним файлом (/экспорт) или стереть целиком (/удалить_меня).

Попробовать:

Max:

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

33