Google Maps удалил полезную функцию — пользователь вернул её с помощью Claude
Google Maps когда-то умел подсказывать, понравится ли ресторан именно вам, а не тысячам незнакомых людей из отзывов. Потом персональный рейтинг исчез — без внятных объяснений и подходящей замены. Продакт-менеджер Алексей Кравец не стал ждать, пока Google передумает, и за один вечер собрал похожий инструмент с помощью Claude Code.
ИИ написал скрипты, обработал десятки тысяч отзывов и нашёл почти четыре тысячи подходящих заведений. Всё шло на удивление гладко, пока не пришёл счёт за сбор данных: вместо ожидаемых 30-40 центов пришлось заплатить почти 49 долларов. Claude неправильно прочитал тариф, и полезный эксперимент неожиданно превратился в наглядный урок о том, почему даже самый способный ИИ нельзя оставлять без проверки.
Google Maps уже пытался угадать, где вам понравится
Функцию Your Match Google представила в 2018 году. При открытии ресторана, кафе или бара пользователь видел не только среднюю оценку, но и персональный показатель совпадения. Одно и то же заведение могло получить 92% для одного человека и гораздо меньше для другого.
Google объясняла, что показатель рассчитывался с помощью машинного обучения. Система учитывала ранее посещённые заведения, выставленные оценки, сохранённые списки, сведения о самом месте и предпочтения пользователя в еде. Процент должен был постепенно меняться вместе со вкусами человека.
Для работы Your Match требовалась история местоположений. В настройках Google Maps также можно было отметить любимые и нежелательные типы кухни, чтобы рекомендации становились точнее. Летом 2018 года функция стала доступна пользователям Android в разных странах.
В августе 2023 года пользователи начали замечать, что персональный процент исчез. Вместе с ним пропала возможность сортировать рестораны по совпадению со вкусами владельца аккаунта. Подробного публичного объяснения причин Google не опубликовала.
Почему пяти звёзд недостаточно
Средняя оценка отвечает на довольно простой вопрос: насколько это место понравилось людям, которые решили оставить отзыв. Она не знает, что именно каждый посетитель считает хорошим рестораном. Для одного важны большие порции, для другого — редкое меню, а третьему нужны тишина, удобный стол и свободная розетка.
Сами пользователи тоже ставят оценки по-разному. Кто-то раздаёт пять звёзд почти всем заведениям, где не произошло ничего ужасного. Другой считает четыре звезды отличным результатом, а высшую оценку оставляет только в исключительных случаях.
Популярность дополнительно искажает картину. Ресторан в туристическом центре может набрать несколько тысяч положительных отзывов просто благодаря огромному потоку гостей. Небольшое кафе для местных иногда оказывается ближе к вашим вкусам, хотя у него меньше оценок и не такой заметный профиль.
Алексей Кравец пользовался Your Match именно как личным фильтром. По его наблюдениям, высокий процент совпадения действительно помогал находить подходящие кафе и рестораны. Когда функция не вернулась, он решил проверить, можно ли собрать нечто похожее самостоятельно.
Вместо алгоритма Google — люди с похожими вкусами
Повторить оригинальный Your Match один в один невозможно. У стороннего проекта нет доступа к истории перемещений пользователя, его поисковым запросам, сохранённым спискам и внутренним данным Google. Поэтому Кравец выбрал более простой и понятный подход.
Сначала пользователь указывает несколько заведений, которые ему действительно нравятся. Эти места становятся отправными точками для поиска. В тестовом запуске автор выбрал всего два кафе в испанской Астурии — одно в Хихоне, другое в Овьедо.
Затем система находит людей, поставивших выбранным кафе четыре или пять звёзд. После этого она изучает доступную публичную историю их отзывов и смотрит, какие ещё места эти пользователи оценили высоко. Результаты ограничиваются нужным городом или регионом.
Логика здесь почти бытовая. Если несколько людей любят те же кафе, что и вы, то другие понравившиеся им заведения тоже могут оказаться удачным выбором. Это не точная копия системы Google, но задача у неё похожая — найти не самый популярный ресторан, а место, которое подходит конкретному человеку.
Claude не выбирал рестораны сам
Claude Code в этом проекте работал не ресторанным критиком, а программистом. Модель не читала отзывы, не рассуждала о вкусе кофе и не решала, где лучше провести вечер. Она помогала исследовать источники данных, писать Python-скрипты, разбирать ошибки и связывать этапы обработки в один рабочий процесс.
Сначала агент попытался получать отзывы напрямую из интерфейса Google Maps. Казалось, что достаточно открыть публичный профиль пользователя, прокрутить страницу и собрать опубликованные им оценки. На практике всё оказалось заметно сложнее.
Обычная автоматическая прокрутка не загружала весь список. Интерфейс использовал виртуализацию: на странице одновременно находилось только несколько видимых карточек, а остальные подменялись по мере движения вниз. Внутренние запросы Google Maps также требовали сессионные данные, идентификаторы и токены.
После нескольких неудачных попыток проект перешёл на сторонние платные сервисы. DataForSEO использовался для получения отзывов выбранных кафе, а инструмент на платформе Apify — для загрузки публичной истории найденных пользователей. Остальную работу выполняли обычные скрипты на Python.
Из двух кафе получились почти четыре тысячи вариантов
Два исходных кафе получили высокие оценки от 730 пользователей. После обработки доступных профилей система собрала около 32,6 тысячи отзывов. Внутри выбранного региона нашлось 3867 заведений, которые могли попасть в рекомендации.
На этом этапе возникла новая проблема. Если просто посчитать количество положительных отзывов, верхние строчки займут самые известные рестораны. Они соберут больше голосов не обязательно из-за точного совпадения вкусов, а потому, что туда приходит больше людей.
Поэтому автор добавил систему весов. Пользователь, которому понравились оба исходных кафе, влияет на результат сильнее человека, совпавшего только по одному месту. Одновременно снижается влияние слишком активных рецензентов, которые оставили сотни оценок и щедро раздают пять звёзд.
Пять звёзд получают полный вес, а четыре — уменьшенный. После подсчёта лидер списка получает 100 баллов, остальные места располагаются относительно него. Это не вероятность и не обещание, что ресторан точно понравится, а внутренний показатель одного конкретного запуска.
Почему меньше голосов иногда лучше
Работа весов хорошо заметна на реальном результате. Кафе Pionero поддержали 26 пользователей, а Whatever Coffee & Bocados — только 23. При простом подсчёте Pionero должно было занять первое место.
Но система поставила выше Whatever. Его рекомендовали более избирательные пользователи, которые сильнее совпадали с автором по исходным кафе. Получилось, что качество совпадения оказалось важнее простого количества голосов.
В этом и заключается основная идея проекта. Человек, поставивший пять звёзд тысяче разных мест, даёт довольно слабый сигнал. А пользователь, который редко хвалит заведения, но высоко оценил сразу несколько ваших любимых кафе, выглядит куда более полезным советчиком.
Формула при этом остаётся экспериментальной. Она помогает убрать часть шума, но не превращает небольшой проект в систему уровня Google, Netflix или Spotify. Для серьёзной проверки потребовалось бы сравнивать рекомендации с реальными посещениями и оценками владельца.
Claude ошибся в цене в 150 раз
Главная неприятность случилась не при расчёте рейтинга. Код работал, отзывы загружались, а система постепенно собирала список заведений. Проблема обнаружилась уже в счёте за использование Apify.
Автор ожидал, что получение примерно 32,5 тысячи отзывов обойдётся в 30-40 центов. Claude Code нашёл в тарифах строку с ценой стандартной записи и использовал её для предварительного расчёта. На первый взгляд всё выглядело вполне правдоподобно.
Но выбранный инструмент Apify считал стоимость по другому событию. Каждый собранный отзыв стоил 0,0015 доллара, то есть примерно в 150 раз дороже использованной Claude цифры. В результате за выгрузку списали 48,67 доллара, тогда как DataForSEO обошёлся примерно в шесть центов.
Ошибку заметила уже другая модель во время проверки проекта. Это важная деталь: Claude не предупредил, что сомневается в трактовке тарифа, а просто использовал найденное число. Код продолжил работать, и расходы росли вместе с количеством загруженных отзывов.
Ошибка сделала проект безопаснее
После неудачного запуска автор добавил предварительную оценку стоимости. Теперь скрипт заранее показывает предполагаемые расходы и сравнивает их с установленным лимитом. По умолчанию сбор не начинается, если расчётная сумма превышает пять долларов.
В проекте также появился параметр --max-cost. Пользователь может изменить допустимый бюджет, но сделать это нужно явно. Случайно запустить дорогую выгрузку теперь гораздо сложнее.
Получается довольно типичная ситуация для разработки. Ошибка стоила денег, зато вскрыла слабое место архитектуры. Без неё система могла бы и дальше запускать платные операции без нормального контроля расходов.
Этот эпизод хорошо показывает реальную пользу и слабость ИИ-агентов. Claude быстро перебирал варианты, писал код и справлялся с рутинной работой, но не проверил критически важную деталь. Человеку всё равно пришлось разбираться, почему итоговый счёт настолько отличается от прогноза.
Почему рекомендациям пока нельзя полностью доверять
У системы не было доступа ко всем нужным отзывам. Из 730 найденных пользователей 66 закрыли историю своих оценок. Скрипт видел, что они поставили высокий балл исходному кафе, но не мог узнать, какие другие места им понравились.
Ещё 23 активных рецензента упёрлись в ограничение Apify. Сервис возвращал не больше 200 последних отзывов одного профиля. Из-за этого часть старых оценок, в том числе потенциально полезных местных заведений, не попала в расчёт.
Есть и более глубокое искажение. Проект анализирует только тех посетителей, которые вообще оставляют отзывы в Google Maps. Хорошее кафе с молчаливой постоянной аудиторией может проиграть заведению, куда регулярно ходят активные рецензенты.
Популярные рестораны тоже сохраняют преимущество. Даже после взвешивания они чаще встречаются в профилях пользователей просто из-за большого числа посетителей. Чтобы точнее отделять популярность от совпадения вкусов, понадобилась бы более сложная статистика.
100 баллов не означают стопроцентное совпадение
Название Taste Match напоминает оригинальную функцию Google, но итоговые показатели работают иначе. Когда лидер получает 100 баллов, система не обещает, что пользователь останется полностью доволен. Число показывает только положение заведения относительно других кандидатов в этом запуске.
Рейтинг нельзя напрямую сравнивать между разными городами или наборами исходных кафе. Если изменить отправные точки, группу рецензентов или регион, шкала будет рассчитана заново. Даже одинаковые 80 баллов в двух запусках могут означать совершенно разную силу рекомендации.
Поэтому список лучше воспринимать как способ найти несколько неочевидных мест. Он может поднять небольшое кафе, которое любят люди с похожими вкусами. Но окончательное решение всё равно придётся принимать по меню, ценам, расположению и свежим отзывам.
Сам автор не называет проект полноценной заменой Your Match. Это скорее личный фильтр, который помогает сузить выбор. Для вечернего эксперимента результат получился впечатляющим, но до коммерческой рекомендательной системы ему далеко.
Публичные отзывы нельзя бездумно собирать
Отдельный вопрос связан с правилами Google и конфиденциальностью пользователей. Публичный профиль можно открыть в браузере, но это не означает, что его содержимое разрешено массово скачивать и превращать в собственную базу. Условия Google Maps ограничивают автоматический сбор данных и создание сервисов, копирующих функции платформы.
В итоговом рейтинге имена рецензентов не показываются. Пользователь видит названия заведений, рассчитанные баллы и количество людей, которые их поддержали. Но промежуточные файлы содержат больше информации.
Там могут оставаться идентификаторы профилей, имена, тексты отзывов, даты и координаты мест. Автор рекомендует не публиковать эти файлы и удалять их после окончания анализа. Для полноценного публичного сервиса потребовалась бы отдельная юридическая и техническая проработка.
Поэтому Taste Match лучше рассматривать как личный эксперимент. Код опубликован открыто и распространяется по лицензии MIT, но это не отменяет правил источников данных. Сам факт доступности информации в интернете ещё не делает её свободной для любого использования.
Программа для одного человека тоже имеет смысл
Раньше создание подобного инструмента потребовало бы уверенного знания Python, работы с внешними сервисами и нескольких дней экспериментов. Нужно было самостоятельно изучать страницы, писать скрипты, разбираться с форматами ответов и исправлять ошибки. Большинство пользователей отказалось бы от идеи ещё на первом этапе.
ИИ-агент заметно снизил порог входа. Человек описал нужную функцию, а Claude помог собрать работающий прототип за один вечер. Проект не стал идеальным, но решил конкретную проблему своего владельца.
Большие компании не могут бесконечно поддерживать каждую старую функцию. Если инструментом пользуется небольшая часть аудитории, его могут убрать из-за стоимости, изменения стратегии или желания упростить продукт. Для одного человека эта функция при этом может оставаться очень полезной.
Персональной программе не нужны миллионы пользователей. Она может работать в одном городе, использоваться несколько раз в год и решать задачу единственного владельца. При помощи ИИ создавать такие маленькие инструменты становится заметно проще.
Код пишет ИИ, но отвечает человек
История Taste Match не доказывает, что теперь любой пользователь сможет без проблем восстановить удалённую функцию крупного сервиса. Проект зависел от платных источников данных, потерял часть отзывов и получил спорную с точки зрения правил Google схему сбора информации. Его рекомендации ещё нужно проверять на практике.
Но эксперимент показывает другое. Расстояние между идеей и работающей программой действительно сократилось. Один человек за вечер собрал инструмент, который нашёл почти четыре тысячи заведений и отсортировал их по совпадению с его вкусами.
Claude Code сильно ускорил эту работу, но не снял с автора ответственность. Модель написала скрипты, а человек выбирал подход, проверял результаты, оплачивал сервисы и разбирался с ошибкой в тарифе. Когда агент ошибся, счёт пришёл не искусственному интеллекту.
Пожалуй, именно так сейчас и выглядит программирование с ИИ. Кода приходится писать меньше, зато внимательнее нужно следить за тем, что агент делает, какие данные использует и сколько всё это будет стоить. Иначе полезная функция за 40 центов легко превращается в эксперимент за 49 долларов.
Метаописание: Google Maps убрал персональный рейтинг ресторанов Your Match. Пользователь восстановил похожую функцию с помощью Claude Code за вечер, но ошибка ИИ увеличила расходы почти до 49 долларов.
Источник: playground.com





0 комментариев
Добавить комментарий