UXRoomka PayGame

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

С чего всё началось

С обычной редакции, конечно. В качестве главного редактора меня пригласили на проект PayGame — маркетплейс для покупки и продажи внутриигровых ценностей. Поскольку опыт в играх у меня был колоссальный, а проекту нужен был редактор, который не только умеет отвечать за буквы, но и на мид выйдет раз на раз, а ещё отличит L2 от WoW по музыке — я оказался идеальным кандидатом.

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

Прошли годы, редакция стала больше, а я продолжал искать тот самый идеальный стиль для игровых новостей, заодно поглядывая в сторону ИИ. Примерно год назад эпично выстрелила Google AI студия, где можно было по одному промпту собрать себе мини-приложение под конкретные кейсы и эксплуатировать ИИ. Так я и сделал, ведь примерно в это время стал ИИ-редактором в Альфа-Банке, а PayGame уже был родным проектом. Я настроил промпты, входы и выходы, получил 2 окна с небольшими пресетами по объему и возможность копировать все одной кнопкой. Выглядело это примерно так:

Суть AI Studio в том, что любым мини-приложением можно поделиться с другим человеком или сделать открытый доступ, чтобы любой желающий мог сгенерить себе картинки, написать тексты или сделать то, ради чего такое приложение создавалось. Я ещё потом смог сделать транскрибатор из mp3 с майнд-картой и тезисами, но это уже другая история. 

Этим райтером из студии мы всей редакцией пользовались почти год, и уже с первых месяцев удалось увеличить количество выпускаемого контента в 3 раза. Скорость при этом тоже выросла — х3 новостей мы иногда делали быстрее, чем х1 до появления инструмента. Также с его помощью мы пробились в RSS-ленту Дзена, ведь ИИ внутри мини-приложения учитывал все правила платформы. 

Почти за год мы выпустили около 2000 новостей по играм

Весь контент для новостей мы тогда делали с помощью Gemini 2.5 Flash и Pro. А что было с качеством текстов, спросите вы? А я скажу, что на создание идеального промпта (потом я понял, что он далеко не идеальный) у меня ушло 4 недели попыток, тестов, генераций и переписываний с нуля. В конце я получил то, к чему стремился, и каждый новый текст, который мы генерили в ИИ, был не просто обучен на наших прошлых текстах, написанных авторами. Он был чем-то особенным. И создавался за пару кликов.

Внутри всё выглядело вот так:

Но показывать всё я вам, конечно же, не стану.

И целого промпта мало

Да, AI Studio стала классным временным решением. Но я подчеркну — временным. Иногда заканчивались лимиты, иногда сбоили наши сервисы, которые открывали доступ к студии, а иногда нейросеть ужасно сильно тупила и выдавала дичь. Когда вышла Gemini 3.1 Pro — мы сразу же перешли на нее, но лимитов хватало на несколько новостей в день. Для большой медиа-редакции этого мало. Очень мало.

Как-то обходить систему? Нет, это не мой вариант. Я понял, что надо покупать API-ключ и давать редакторам безлимитный доступ к инструменту. Но к этому моменту мне уже не нравилась AI Studio, особенно из-за региональных ограничений, и я отправился к великому ChatGPT за советом. Делать новое приложение — себе дороже. А использовать наработки из старого, чтобы выйти на новый уровень — это уже совсем другой разговор.

ChatGPT, я пришёл договориться.

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

Начали выбирать, где и как лучше создать такой инструмент:

Дальше я выбрал формат, закинул ему данные по API нашей админки, промпт, который использовал в AI Studio, и в целом ответил на все вопросы, которые он мне задал. Через несколько минут у меня на руках уже был полноценный архив версии 0.1, который ChatGPT собрал под ключ. Все, что мне оставалось, это распаковать архив, поставить Python, написать парочку команд в CMD и протестировать инструмент.

Казалось бы — радость, вайб-кодинг рулит и все такое, но ничего не заработало. Проблема была в том, что код от ChatGPT не смог пробиться в админку сайта из-за туннелирования подключения только для сотрудников. Мельком я сходил к разработчикам, узнал, что можно сделать, и благополучно переписал свой промпт, чтобы ChatGPT пересобрал код и позволил мне в приложении вставить данные, необходимые для авторизации. Там же я перенастроил туннелирование и… вуаля, пинг до админки начал доходить, а значит инструмент почти готов.

Все это вкратце, конечно, ведь еще часов 5 я исправлял ошибки установки и кидал ему скрины с мольбой о помощи

Потом я понял, что заголовки новостей в выдаче парсинга — это не очень удобно для восприятия. Да и в целом не хватало немного кнопок и инфы. Поэтому я снова пришёл договориться и получил новый архив:

Запускалось это добро через двойной клик по run_windows.bat через CMD. Консолька выдавала мне IP, и пока CMD открыта, мой инструмент работал на локальном сервере в браузере. Хотя выглядел не очень привлекательно и был крайне неудобным:

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

Первый вопрос, который я задал нейронке — есть ли бесплатные API-ключи. По факту они есть, но там такие модели, что лучше писать руками. И я пошел к директору просить деньги на ключ, чтобы реализовать свою инициативу. И да, мне их выделили. Я пошел на один из популярных агрегаторов ключей для AI, купил там Claude Sonnet 4.6, потому что он дешевый и вполне себе адекватно генерит на русском языке, и приспособил его в свой инструмент. Пришло время парсить и генерировать. Кстати о парсинге — его я настроил максимально просто через RSS-ленты всех нужных мне игровых сайтов — он отдавал мне заголовок, ссылку, время публикации и описание. Если полного текста в ленте не было, инструмент пытался открыть сам материал, а для капризных источников вообще приходилось добавлять отдельные обходные сценарии. Парсер был таков:

В нем можно открыть оригинальную новость, загрузить текст в инструмент, если хочется проверить генерацию без отправки в админку, либо сразу загрузить в админку и проставить все параметры. По кнопке Fast-Track меня перекидывало в самый низ, где из оригинала доставалась картинка, а рядышком лежали переписанные тексты. Всё, что мне оставалось, — перейти в админку и проверить, появилась ли там новость. Да, она появилась, это победа. И даже нужные теги проставились автоматически — прощай, рутина. Но не все так просто.

В тот же день ко мне вернулся директор и сказал что-то вроде «а ты смотришь, чтобы это был не слоп?». Я ответил, что да, конечно, тексты максимально качественные, ну и мы их редачим. Мне кинули линк на великое изобретение Сбера, которое определяет, написан текст человеком или ИИ (по факту там сильный рандом и инструмент реагирует даже на кавычки «» вместо «», но у директора были сильные аргументы). Потом я прочитал новости и понял, что ИИ-штампы в них все же есть. Пошел обновлять промпт, но Сберовский инструмент беспощадно говорил, что тексты инструмента — это ИИ. Расширять промпт еще больше я не хотел, он и так был огромен, а значит нужно было импровизировать.

ChatGPT, я пришел договориться.

Так мы с ним прикрутили к основному системному промпту мой новый файл golden_examples.md, куда я сложил тексты, которые инструмент определял как человеческие. Системный промпт теперь перед каждой генерацией заходит в golden_examples.md, смотрит лучшие тексты и по их стилистике генерит новости.

Но я же опытный редактор, я всегда могу заподозрить что-то неладное. И я заметил, что уникальность сильно пострадала. То ли модельке стало плохо, то ли мои правила замылились, но 40% уникальности для новостей — это смертный приговор. Повезло, что я заметил это в момент тестирования, а не после публикации в блоге.

ChatGPT, я пришел договориться.

Очевидно, с первого раза ситуация почти не изменилась, поэтому мы еще несколько часов обсуждали, что такое уникальность и как ее добиться. Потому что редактор чувствует такие моменты, а ИИ — ничего не чувствует. Бездушная железяка. Ладно, шутки-шутками, но в итоге мы докрутили промпт с учетом моих комментариев и примеров рерайта так, чтобы теперь все тексты получались с уникальностью 100%. А ещё проходили через AI-детектор. И автоматически создавались в админке как черновики.

Итак, к чему мы пришли и что теперь делает редактор:

  1. Открывает инструмент
  2. Запускает парсер
  3. Выбирает новость
  4. Заходит в админку
  5. Проверяет
  6. Публикует

А как было до этого? Ну, если вкратце, то вот так:

  1. Открыть несколько сайтов
  2. Найти новость
  3. Понять, подходит ли она для PayGame
  4. Скопировать текст
  5. Открыть ИИ
  6. Вставить промпт или выбрать готовый сценарий
  7. Получить рерайт
  8. Скопировать заголовок
  9. Скопировать подзаголовок
  10. Скопировать текст
  11. Открыть админку
  12. Вставить все по полям
  13. Поставить теги
  14. Найти картинку
  15. Загрузить картинку
  16. Обрезать/сжать
  17. Проверить
  18. Опубликовать

И это после появления первого инструмента в AI Studio. Что было до него — сами понимаете. Грубо говоря, удалось избавиться от 12 лишних шагов, которые делали из редактора машину для копипаста, а не автора. Да, действия были простыми, но ужасно надоедливыми. Теперь их нет, а весь фокус идет на проверку качества текста.

Так и что, всех уволим теперь?

Неа, ведь теперь редакторы намного быстрее пишут новости и у них появилось намного больше времени для:

  1. Авторских статей
  2. Гайдов
  3. Текстов в соцсети
  4. Помощи саппорту
  5. Написания текстов для роликов

Зачем тратить на рерайт и копипаст по полчаса, если за это время можно опубликовать минимум 5 новостей, сходить подышать воздухом, вернуться и собрать гайд по любимой игре?

Ну-ка, а дизайн?

Дизайн я все же пересобрал, хотя бы базово и для удобства, и сейчас инструмент выглядит так:

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

Генерация длится примерно 5–10 секунд, а к спаршенным новостям всегда можно вернуться и провести через Fast-Track еще один инфоповод. Как только нейронка перестает мучить текст, он автоматически улетает в админку, создавая черновик, и редактор может провалиться туда по кнопке «Открыть черновик».

Для любой новости нужна картинка — у нас на сайте они обрезаются и сжимаются автоматически, а Fast-Track дает мне кнопку «Открыть поиск картинок», по которой можно попасть в Яндекс Картинки с предустановленными фильтрами по качеству и размеру.

Перетаскиваю подходящую картинку, проверяю текст (я же редактор всё же), ставлю тогл «Опубликовано» и новость улетает на сайт и в RSS. Весь путь — от поиска инфоповода до публикации — чуть меньше минуты. Хотя раньше рерайт одной новости вручную занимал от 5 до 15 минут.

С какими проблемами я сталкивался

  • 403 на сайтах
  • неполными RSS
  • истекающими токенами
  • региональными ограничениями
  • повторением исходника
  • ложными срабатываниями AI-детектора
  • необходимостью ручного фактчека

Заглянем под капот

Первая версия была собрана на Python и Streamlit. Если совсем по-человечески, Streamlit берет Python-код и превращает его в локальное веб-приложение. Я запускал BAT-файл, открывалась консоль, внутри поднимался небольшой сервер, а сам интерфейс появлялся в браузере по адресу localhost. Пока консоль работает — жив и инструмент. Закрыл её — добро пожаловать обратно в каменный век и ручной копипаст.

Для прототипа Streamlit оказался идеальным. На нем можно быстро проверить парсер, подключение к ИИ, кнопки и отправку данных в админку. Но когда логика заработала, начали мешать ограничения интерфейса: верстка прыгала, элементы дублировались, а любую красивую карточку приходилось собирать с бубном.

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

Дальше цепочка выглядит так: приложение собирает новости из RSS и других источников, приводит их к единому формату и сортирует по времени. После нажатия Fast-Track исходник, комментарий редактора, системный промпт и примеры из golden_examples.md отправляются в Claude через API. Модель возвращает строгий JSON с заголовком, подзаголовком, текстом, игрой, жанром и тегами.

Затем приложение авторизуется в API PayGame, при необходимости обновляет временный токен и создает в админке готовый черновик. Автоматической публикации я специально не делал: редактор всё равно должен проверить факты, выбрать картинку и решить, достоин ли материал кнопки «Опубликовано».

И какое у этого будущее?

Теперь инструмент можно развивать в любую сторону. Я планирую сделать так, чтобы весь функционал переехал напрямую в админку сайта, чтобы редакторам не приходилось заходить на отдельный ресурс или ставить софт себе на ПК через Python. Просто представьте работу: заходите в админку, собираете новости, нажимаете пару кнопок и ведете полноценный блог. Звучит утопично, и если бы мне сказали о таком хотя бы в 2021 году — я бы улыбнулся и пошёл по своим делам. Сейчас это ближе к реальности, чем когда-либо.

Почему именно новости? Тут всё ещё проще: новости очень неблагодарны, в медиа огромная конкуренция за любые инфоповоды и важно не утопать в рерайте часами, а максимально быстро выпустить качественный контент. Если вы опоздали с инфоповодом на 30–60 минут — ваш ресурс уже может индексироваться хуже, а игроки, довольно критичное комьюнити, с легкостью напишут вам комментарии о высоком пинге. Вы ведь опоздали, и вам нет прощенья.

И да, если вам интересно, одна такая новость стоит около 3 ₽