Принимаю условия соглашения и даю своё согласие на обработку персональных данных и cookies.

Как устроен бот, который сообщает о вспышках коронавируса в вашем районе. Интервью с разработчиком

Как устроен бот, который сообщает о вспышках коронавируса в вашем районе. Интервью с разработчиком
Фото: 66.RU
16 июля в Свердловской области зарегистрировали 349 случаев коронавируса. Не очень пугающая цифра. Но что, если десять из них живут в вашем подъезде? Как узнать, что COVID-19 — рядом? Александр Берсенёв написал Telegram-бот, который ответит на эти вопросы. 66.RU поговорил с разработчиком.

Бот @ekb_covid_bot в Telegram появился в июне — Александр создал его для себя и поделился ссылкой с друзьями, к 16 июля им воспользовались 16,2 тыс. человек. Они интересовались информацией по 86,7 тыс. адресов: горожанам было интересно, выявлены ли вблизи этих точек больные коронавирусом. 66.RU публикует интервью с создателем бота, сотрудником Института математики и механики им. Н. Н. Красовского УрО РАН Александром Берсенёвым.

Как устроен бот, который сообщает о вспышках коронавируса в вашем районе. Интервью с разработчиком
Фото: предоставлено 66.RU Александром Берсенёвым

Для тех, кому некогда читать:

  • Бот @ekb_covid_bot — единственный в своем роде, потому что ни одно управление Роспотребнадзора в стране не публикует данные заболевших по адресам.
  • Он работает, переводя адрес в координаты, а затем сверяет с координатами Роспотребнадзора и выдает ближайшие к введенному адресу.
  • Данные о геолокации в момент запроса бот не собирает, а введенные адреса нельзя использовать.
  • Официальная статистика может быть в пять раз меньше реальных цифр, но это неточно.
  • Бот закончит работать, когда Роспотребнадзор перестанет публиковать данные.

— Как и когда появился бот?

— Бот появился, когда я искал информацию о количестве людей с коронавирусом около меня и наткнулся на сайт Роспотребнадзора, где заболевших отмечали на карте. Такую информацию дает только Роспотребнадзор нашей области, у других областей нет таких карт.

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

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

Как устроен бот, который сообщает о вспышках коронавируса в вашем районе. Интервью с разработчиком
Фото: 66.RU

Внешний вид карты на сайте Роспотребнадзора

Первую версию бота я написал за два дня. Я очень люблю диалоговые интерфейсы: по сравнению с сайтами их быстрее программировать и удобнее использовать. До этого писал разных ботов, например, бота, который угощает людей кофе в автомате в УрФУ. Если ему написать сообщение, он оплатит чашку с моей карточки, остается только подойти к автомату и нажать кнопку с вариантом кофе. Однажды за месяц у меня ушло на это несколько десятков тысяч рублей, поэтому пришлось ввести ограничения.

Совсем недавно я написал бота, который выдает студентам индивидуальные задания для экзамена, следит за временем их решения и принимает ответы. Сейчас в УрФУ из-за коронавируса экзамены приходится проводить дистанционно.

Коронавирусный бот удивительно быстро разошелся среди людей. Изначально я закинул его в несколько чатиков с друзьями, человек на 400, друзья мне написали: «А можно его дальше советовать?» В первый день им воспользовались 750 человек, во второй — еще 1000.

— Объясните, пожалуйста, как это происходит технически? Вот я отправляю боту адрес, и что дальше? Как он может считать зараженных на расстоянии от меня?

— Технически это происходит так: пользователь присылает адрес, который преобразуется в координаты точки (например, Челюскинцев, 7 становится 56.846366, 60.586506, — прим. ред.). В данных от Роспотребнадзора есть координаты других точек, где выявляли людей с коронавирусом. Они автоматически сортируются по возрастанию расстояния до адреса, о котором спрашивает пользователь, и бот показывает ему десять ближайших к нему точек. Информация о непосредственном местоположении пользователя боту не передается.

Роспотребнадзор, в свою очередь, ежедневно сообщает информацию в виде: «1 человек в месте X, 1 человек в месте X, 1 человек в месте X». Бот делает из этого «3 человека в месте X». Еще для каждого места, где появился инфицированный, считается, насколько давно его внесли в статистику.

Факт-чек

— Вы принимаете информацию о новых заболевших от пользователей?

— От пользователей информацию я не принимаю. Точнее, можно написать в бота информацию и я прочитаю, но бот выдает только официальные данные. Прямо сейчас на карте отмечен 14 001 случай, Роспотребнадзор говорит, что всего их 16 984. Разницу можно объяснить тем, что карту сделали не сразу и первые заболевшие на нее не попали.

После дискуссий о точности данных Роспотребназдора я попросил пользователей бота принять участие в анонимном опросе. Всего в опросе участвовали 2 тыс. пользователей. Он показал, что на одного человека, который заболел и попал в статистику, приходится 1.3 человека, которые говорят, что заболели, и не попали. Еще 1.9 человека не смогли сдать тест, столько же решили его не сдавать и 0.7 прямо сейчас болеют.

Опрос я провел 5 июля, и по его результатам на тот момент данные от Роспотребнадзора по числу заболевших можно было умножать примерно на 5-6. Это если не учитывать тех, кто переболел без симптомов и сам не заметил. С тех пор ситуация могла измениться, и планирую 5 августа повторить опрос.

Как устроен бот, который сообщает о вспышках коронавируса в вашем районе. Интервью с разработчиком
Фото: 66.RU

— У вас ведь сейчас куча адресов с привязкой к телеграм-аккаунтам. Что вы будете с ними делать?

— Ничего не планирую делать, потому что это довольно бесполезная информация, если честно. Вот если б с квартирами, то да.

Динамика запросов в боте менялась. Сначала ссылку на него распространяли в чатах. Всплески интереса произошли, когда ссылку опубликовали Ura.Ru и Евгений Ройзман. Точки на видео — адреса, о которых хотели узнать информацию пользователи.

— Требует ли бот вашего внимания? Сколько усилий вы на него тратите ежедневно?

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

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

COVID в городе

— Бот выдает результаты только по Екатеринбургу?

— Его можно спросить про любой город области, но это недокументированная особенность. Например, если написать боту «Тагил Ленина 51», то он выведет данные по адресу Ленина, дом № 51 в Нижнем Тагиле. Другое дело, что Роспотребнадзор у себя на сайте пишет, что для маленьких населенных пунктов результаты могут быть неточными.

— Какие самые коронавирусные адреса в Екатеринбурге?

— Самый коронавирусный дом сейчас находится по адресу улица Вильгельма де Геннина, 43. Там на прошлой неделе выявили +63 заболевших в радиусе 500 метров, а за все время — 162 заболевших. На Краснолесья, 119 +58 случаев за неделю в радусе 500 метров, и на Агрономической, 31 +56 случаев за неделю.

— Роспотребнадзор может перекрыть канал поступления вам информации?

— Да. Если Роспотребнадзор перестанет публиковать сведения на сайте, информация в боте перестанет обновляться.