Як я вирішив створити чатбот, який допомагає українцям шукати житло, і що з цього вийшло

Привіт, мене звати Олексій, я працюю в компанії DataArt на позиції Senior Node js developer.

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

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

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

Мій випадок на початку не відрізнявся суперською оригінальністю, проте отримав своє IT-продовження. Хотів же я до війни подорожувати Україною, і ось та сама «можливість» довжиною в багато місяців з’явилась переді мною.

Поділюся тут своєю історією.

Як все починалось (і чому)

Старт моїх переміщень прийшовся на квітень 2022 року. Пам’ятаючи про свою айтішну душу, мені вдалось розробити мінімальний та на той момент (як здавалось) хороший алгоритм перед поїздкою:

  1. розпочав пошуки квартири (основа — OLX) для короткострокової оренди в містах центральної частини України (в західні області вже «рипатись» було запізно, та і внутрішній єврей хотів не витрачати занадто багато грошей);
  2. якщо місто і квартира підходили, то орендував її на тиждень (якраз достатньо часу, щоб пожити у новому сіті, познайомитись з ним і знайти квартиру на довгострокову оренду); якщо місто або квартира не підходили, то повертався до першого пункту плану;
  3. моя географія пошуків постійно зміщувалась на захід, бо «рускій мір» також на той момент швидко просувався нашою рідною землею.

Жаль, що мій алгоритм дій пішов не за планом відразу, тому що майже ніхто не хотів здавати свої апартаменти та «апартамєнти» на місяць, натомість орендодавці гнались за миттєвим прибутком у вигляді дорогої короткострокової оренди.

Але все ж квартиру я собі знайшов, це був гарний варіант з хорошим власником, якого я фактично і не бачив (він обороняв країну), проте чолов’яга навіть в окопі був менеджер від Бога (краще ніж більшість PM-ів, з якими мені доводилося працювати).

Обмовлюсь, що це була трикімнатна на мене одного, 6 спальних місць... Мали те, що мали.

Отож, свій вибір я зупинив на затишній місцині в Черкаській області, як-не-як — батьківщина Кобзаря.

І, здавалось, моя душа спокійна, житло тепле, затишне є. Однак знову прокинулось моє айтішне нутро після ось такого випадку: налаштував сповіщення на OLX, щоб приходили нові варіанти квартир. Так от, такі повідомлення я попри налаштування так і не отримував, але випадково лише через 40 хвилин після публікації класної квартири сам побачив оголошення, кинувся дзвонити, а квартирка вже виявилась зайнята швидшим конкурентом.

Поки я чекав нотифікацію, то люди встигли подзвонити, домовитись про зустріч, зустрілись, глянули квартиру і вже її орендували. А я ж, як Хатіко, чекав сповіщення... Яке не приходило від OLX...

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

Яка у мене виникла ідея

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

По-перше, як шукає інформацію типовий українець? Правильно, він гуглить. Тому ми полізли в Google Trends, щоб перевірити популярність типових пошукових запитів. Ми обрали «оренда житла», «аренда жилья», «оренда квартири», «аренда квартиры» (як говорив президент Зеленський, «многие говорят по-русски, но все думают по-украински и очень проукраински»).

Статистика за вказаними запитами на рис. 1. Видно нетиповий рух кривої запитів наприкінці зими — на початку весни.

Рис. 1. Динаміка популярності типових запитів пошуку житла за період жовтень 2021 — вересень 2022. Джерело: Google Trends

Ок, у нас є перше «Так», ця тема дуже актуальна.

По-друге, де ж нам запропонувати свою технічну новинку, щоб багато людей могли користуватись нею? Очевидно — в інтернеті, в соціальній мережі чи месенджері. Тут нам знадобилась інформація яким месенджером або соціальною мережею частіше всього користуються наші козаки і файні молодиці. Результат не став дивним, Telegram forever (рис. 2) (хай же вибачають люди 40+, які активно юзають «Вайбер»).

Рис. 2. Статистика використання соціальних мереж/месенджерів в Україні на початку війни. Джерело: oporaua

Ок, у нас друге «Так», будемо працювати з «тєлєгою».

По-третє — що можна запилити нове, технічне та ефективне в Telegram? Це бот, телеграм-бот, тут все зрозуміло і без додаткової статистики.

Ок, у нас три «Так», за роботу!

Тож, зрозумівши вектор свого міні волонтерського стартапу, ми окреслили її, єдину та неповторну — мету!

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

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

Як усе влаштовано

За нашим задумом, цей бот — Бот House — знайде тобі житло. На коротку перспективу або на довгий період. При стартовому запуску користувач обирає міста, тип оренди та інші фільтри (за бюджетом, або вказавши ключові слова типу «з дітьми», «з тваринами») і запускає пошук, який під задані характеристики знаходить слушні варіанти.

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

«Опитування» відбувається за допомогою cron’у, який кожні 5 хвилин «стягує» всі повідомлення на той час та звіряє з варіантами, які вже були оброблені. Так відбувається процес перевірки оголошення на унікальність.

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

Важливо, що коли в інтернеті (а збирається інформація з багатьох джерел) з`явиться новий варіант квартири з релевантними параметрами, то користувачу прийде сповіщення і він зможе оперативно відреагувати.

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

Вагомою «фішкою» даного боту є те, що він ніби абсорбує потрібну інформацію з декількох джерел (OLX та безліч груп в Telegram, присвячених оренді). До речі, процес пошуку релевантних варіантів не припиняється. Тобто потенційному шукачу житла більше не треба підписуватись на десятки пабліків, вручну оновлювати сайти чи скролити їх без кінця-краю. Бот все зробить автоматично.

Цей бот, говорячи простою мовою, «халявний», юзайте на здоров`я.

Результати, яких вдалося досягти

  1. Статистика користувачів. За період травень-вересень 2022 року більш як 15 000 панів та панянок використали бот для власних житлових цілей.
  2. Статистика діяльності бота. Число унікальних оголошень, які вже пройшли через базу бота за період травень-вересень 2022 року становить більше, ніж 250 000.
  3. Географія. Бот охопив практично всю Україну — 21 область, де у кожному регіоні виділені окремі міста для пошуку. Бот ще «не працює» з житлом у Донецькій, Луганській, Херсонській, частині Запорізької областей та у АР Крим. Проте як тільки ЗСУ виженуть російську погань з цих земель, то ці регіони також будуть доступні для користувачів у боті. Детальна географія пошуку житла в боті представлена на рис. 3.

Рис. 3. Географія застосування @FindPropertyBot (жовтень 2022 р.). Джерело: авторська розробка

Висновки

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

👍ПодобаєтьсяСподобалось21
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А як обробляєте пости в телеграм-групах, в яких немає однієї структури, тобто кожен описує квартиру, як йому заманеться?

Це, мабуть, самий клопітний момент
Але певні алгоритми публікації вдалося вистежити:
В основному, в телеграм є групи, де кожний користувач може публікувати будь-які повідомлення, та є канали — де публікується декілька форматів повідомлень від адмінів
У нас система збудована так, що до кожної такої групи чи каналу, можна додати особистий набір валідаційних правил, методів фільтрацій, функцій форматингу та інших ізольованих перевірок, для забезпечення найвірогіднішого матчінгу з бажаним шаблоном пропозицій, які вже потім попадають до бота
Всі групи/канали які мониторить бот — аналізуються кожного дня, з деякими з них налагоджена певна співпраця (в основном це канали, де публікують адміни), що, безумовно, полегшує обробку постів
Методи відбору теж завжди вдосконалюються
Для деяких джерел розглядаємо можливість «навчити» розрізняти потрібні повідомлення

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

То проблема була лише в тому, що вам не надходили сповіщення в момент публікації?)))

Я так розумію, що бот парсить сайти оголошень. Скажіть, за яким критерієм він видаляє/помічає неактуальним оголошення?
Іде порівняння спарсених посилань?

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

Підписатись на коментарі