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

Пожалуй, каждому, кто хоть раз открывал ленту новостей, знакомо ощущение: бесконечный поток инфошума, кликбейт, противоречивые заголовки и телеграм-каналы с «инсайдами».
Часто, чтобы узнать реальное положение дел и факты, нужно прилично так порыться в целой куче, скажем так, контента.
Вообще, читать новости — не обязательно и даже вредно, но бывает, что мониторинг инфополя — неотъемлемая часть работы, например, как у меня. Было бы здорово не тратить много времени на проверку всякой ерунды.
Примерно так родилась идея Фактометра — инструмента для ИИ-анализа новостей, статей и всяких аналитических материалов.
Для начала — в виде телеграм-бота, который:
получает ссылку на новость
проверяет источники
выделяет ключевые идеи
их тоже проверяет
анализирует текст: тон, нарратив, манипуляции, искажения
И выдаёт отчёт: что правда, а что требует дополнительной проверки; на какие формулировки стоит обратить внимание; где искать факты и правду, если они так сильно нужны.
Разумеется, с пруфами и ссылками на первоисточники.
Повторюсь: лично мне подобная штука точно бы не помешала и сэкономила бы много времени.
А если найдутся люди, которые будуь готовы за это платить — вообще класс.
Идеальный расклад. Надо делать.
Одна маленькая проблема:
Я не программист
У меня техническое образование, но в IT я «вкатился» только в 2018. Мне было 32.
«Отучился на курсах» (ещё больше учился самостоятельно), начал продуктовым аналитиком, потом стал начальником аналитики, перешёл в продакт-менеджеры.
Сейчас работаю операционным директором в финтех-компании, которая уже инвестировала в Anthropic, SpaceX, Neuralink, Stripe и другие, менее известные, компании.
Отвечаю за операционную деятельность, комплаенс и бэк-офис.
Еще веду тг-канал Чужие грабли — это такой развлекательный центр по ремонту розовых очков для тех, кто устал от мотивационной пены и всякого успешного успеха.
Короче, у меня есть менеджерский опыт работы над IT-продуктами, но если говорить о технических навыках, мой максимум — SQL и кривой код на питоне в jupyter.
Да и давно это было, вот история моих коммитов на Github с 2018:

Опять прям учиться и, тем более, нанимать команду для пет-проекта мне совсем не хотелось.
И я решил попробовать этот ваш вайб-кодинг с ChatGPT в качестве инструктора-напарника.
Истории из интернета об ИИ-фейлах даже опытных инженеров, конечно, не добавляли оптимизма, но я считаю, что лучше сделать и пожалеть, чем не сделать и тоже пожалеть.
Особенно, когда речь идёт о созидании. Ну, не получится, и что? В самом худшем сценарии я всё равно отлично развлекусь и получу опыт.
Исходные данные такие: энтузиазм и подписка ChatGPT Plus.
Ещё есть опыт в анализе данных: базовые знания о машинном обучении и принципах работы нейронных сетей. Но они не особо помогают, просто я понимаю, что от нейросети не стоит ждать чудес.
Первый промпт
В субботу, 8 ноября, я создал проект в ChatGPT и написал первый промпт, вывалив на чудо техники все свои фантазии.
В ответ получил зубодробительную простыню текста с кучей непонятных терминов из мира разработки и IT-инфраструктуры.
Из понятного — только буквы.
Пришлось признаться бездушной машине, что в технике я вообще не рублю:

Думаю, хорошо видно, что я реально ничего не понимал :)
Тем не менее, после уточняющих вопросов и детализации промптов, ChatGPT выдал более-менее адекватную логическую структуру:

От схемы я перешёл к поиску решений для её реализации и замучил ChatGPT вопросами про no-code.
Специально указывал в промптах, что не буду писать код и даже ставить IDE (софт для разработки) на комп.
Вообще не проблема: ChatGPT предлагал много вариантов.

Только потом я понял, что фокус на «чистом» вайб-кодинге и no-code был ошибкой.
Для этого потребовалось изучить сервисы со скриншота вверху, параллельно задалбывая ChatGPT уточняющими вопросами:
что за продукт?
что он делает?
роль в проекте (подробно)
преимущества и недостатки
альтернативы (их тоже изучал)
На изучение нюансов и жалкие попытки скрестить собаку с экскаватором ушло больше недели и простыни переписок с ChatGPT.
В процессе он галлюцинировал, противоречил сам себе, выдавал абсолютно левую инфу — приходилось удалять старые ветки (чтобы «сбросить память» в рамках проекта) и писать промпты по новой, с учётом прежних ошибок.
Иногда это помогало, но не всегда: ChatGPT периодически сходил с ума и отвечал вообще не туда.
Впрочем, он и сейчас так делает.
Чем больше я гулял по зоопарку no-code, тем сильнее понимал, что эти балалайки мне не подходят. Ну, или я им не подхожу, что более вероятно.
Почти традиционный подход
В итоге я плюнул на эти упражнения, установил VS Code, сдул пыль с гитхаба и попросил ChatGPT написать, как должен выглядеть проект, если делать «по-нормальному».
И ChatGPT написал.
Забегая вперёд: на данный момент это чуть ли не единственный ответ, который подошёл почти без косяков.
«Почти», потому что для хостинга предлагался Hetzner, который не работает с РФ паспортами и платежными средствами, а оформляться как-то по-кривому я не захотел.
Вместо Hetzner выбрал Digital Ocean (DO), и пока не жалею. Скорее всего, у DO есть свои нюансы, о которых я просто еще не знаю. Ну, не может быть одновременно дёшево и волшебно :)
Текущая логика работы проекта и набор сервисов такие:

В общем, у меня сложилось мнение (возможно, ошибочное), что при помощи no-code можно решить много разных задач, но для нормального стабильного сервиса (даже самого простого) все-таки нужна — сюрприз! — правильная архитектура и нормальные стабильные решения.
От подготовки — к действиям
Конечно, я поднатаскался «по верхушкам», но реальных навыков поднятия инфраструктуры и написания рабочего кода у меня так и не появилось.
Что же делать?
План прежний: спросить у ChatGPT.
К этому моменту я уже окончательно спустился на землю и отбросил влажные фантазии о запуске с пол-пинка, поэтому решил начать с малого: подробно описал интерфейс телеграм-бота и попросил ChatGPT написать код, чтобы Фактометр, наконец-то, начал переезд из моей головы в реальный мир.
Никакого функционала: просто живой бот с менюшкой без полезных действий.
ChatGPT не подвёл и выдал план-капкан:
инструкцию по созданию бота в телеге через BotFather
инструкцию по поднятию сервера на DO App Platform
схему БД и инструкцию по её созданию в Supabase
самое главное: написал кучу классного кода на Python
Причём, всё очень подробно и убедительно: какую кнопку жать, какие буквы писать, а почему, а зачем.
В конце мой электрический наставник-напарник добавил:
Просто нажми Deploy и твой сервис взлетит! ?
Офигенно! Как раз то, что мне нужно!
Я с энтузиазмом взялся за дело:
завёл бота в телеге
настроил DO App Platform (хостинг, докер)
поднял БД в Supabase, завёл таблички
наклепал в VS Code файлов
скопировал туда код из ChatGPT
создал приватный репозиторий на гитхабе
запушил туда всё добро из проекта в VS Code
добавил переменные окружения (.env)
В общем, сделал всё в точности, как советовал ChatGPT.
Тыкнул Create App, чтобы DO поднял нужный сервер, подцепился к репозиторию, собрал и задеплоил эту шарманку.
Процесс пошёл: в логе активности DO стали появляться сообщения о том, как всё бодро собирается, настраивается и движется к успеху.
Верил ли я, что всё получится?
Не особо :)
Собственно, минут через 10 состоялась встреча с реальностью:

Думаю, примерно так и заканчивается карьера 99% вайб-кодеров.
Мне это тоже не понравилось, но я не сдался и продолжил общение с ChatGPT, отправляя в чат скриншоты и сообщения об ошибках из логов.
Примерно через полчаса переговоров, изменения настроек и мелких правок, и при очередном деплое в админке DO появился долгожданный статус:

То есть, приложение-таки собралось и завелось.
Посмотрел логи — 200 ОК — то есть, реально всё норм.
Открыл бота в телеге, нажал START и увидел наше с ChatGPT творение:

Можете сами убедиться
Фактометр ожил! Бот доступен по прямой ссылке @FaktometrBot и через поиск в телеге.
Кстати, там вас ждёт сюрприз — элитная гифка о завышенных ожиданиях.
Не удивляйтесь, если бот будет тупить, потому что он крутится на самом дешёвом серваке DO.
Напишите в комментариях, долго ли пришлось ждать стартового сообщения. Если совсем беда, перенесу на более мощную машину.
Конечно, если вайб-кодинг победит, мне не надоест и запуск случится.
Промежуточные результаты и выводы
Бот ожил — это факт
«Чистый» вайб-кодинг у меня не получился
Инфраструктура поднята по инструкциям ChatGPT
Весь код написан ChatGPT
ChatGPT отвечает на любой вопрос, но не факт, что по делу и с первого раза
ChatGPT обрабатывает ошибки и предлагает решения
Критически важны хорошие промпты
Могу сказать, что взаимодействие с ChatGPT подчиняется принципу Shit In — Shit Out (SISO):
Если на вход подавать фигню, на выходе почти гарантированно будет фигня. Правда, если на вход подавать НЕ фигню, на выходе всё равно может быть фигня — это ИИ, детка.
Что дальше
Реалити-шоу Фактометр продолжается.
Дальше попытаюсь подружить бота с OpenAI.
Как уже опытный вайб-кодер, примерно понимаю, какие задачи предстоит решить:
получить API-ключ OpenAI
что-нибудь настроить
заставить ChatGPT написать код
заставить ChatGPT написать рабочий код :)
Критерий успеха: пишу запрос в бота, жду его обработки ИИ-моделью OpenAI, получаю в бота ответ.
Получится или нет, расскажу во второй части.
Апдейт: писал этот текст в субботу, после чего получилось довольно быстро продвинуться. Часть 2 точно будет.
Продолжение следует ;-)