Серия «История одного вайбкодера»

4

Подбор товаров для тендера с помощью искусственного интеллекта

Серия История одного вайбкодера

Любой тендерный специалист знает, что процесс обработки технических заданий (ТЗ) из тендерной документации  требует значительных затрат  времени. Специалисту необходимо изучить длинный перечень требований, выделить ключевые технические характеристики и найти соответствующие позиции среди тысяч строк в своем каталоге  или в десятках каталогах различных поставщиков. А что если вы новый человек в специфике? А что если много данных и к тому же они специфичны?

Для решения этой задачи я разработал специализированный инструмент Rybakov Studio AI, которая в данный момент не представлен в публичном доступе и не имеет прямых аналогов на массовом рынке. Система использует локальные базы данных пользователя, алгоритмы обработки естественного языка и большие языковые модели (LLM) для автоматизации процесса сопоставления.

Центральным элементом системы является модуль интеллектуального поиска. Далее постараюсь объяснить что и как работает.

1.  Откуда брать данные?

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

Загрузка готовых таблиц (Excel, CSV, 1С)

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

Автоматический сбор с сайтов (Встроенный парсер)

Если у производителя нет прайс-листа в Excel, а товары представлены только в каталоге на сайте? Для этого предусмотрен дополнительный инструмент парсинга. Как работает данный механизм:

  • Умный отбор: Вы даете ссылку на сайт, а Искусственный Интеллект сам находит карточки товаров, игнорируя лишнюю информацию (новости, контакты, условия доставки).

  • Обход ограничений: Система имитирует действия реального пользователя (через виртуальный браузер), что позволяет собирать данные даже с защищенных сайтов.

  • Настройка без программиста: ИИ самостоятельно понимает структуру страницы: где находится цена, где описание, а где технические характеристики.

Итог: Вся собранная с сайта информация превращается в стандартную таблицу Excel, которую система сразу начинает использовать для поиска и подбора оборудования под ваши задачи.

Интерфейс парсера

Интерфейс парсера

2. Модуль поиска (Инструмент «Подбор по ТЗ»): режимы работы

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

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

Одиночный поиск (Точечный подбор)
Этот режим идеально подходит для сложных, нестандартных или единичных запросов. Часто в тендерной документации описание всего одного товара занимает целый абзац: в нем перемешаны габариты, материалы, ссылки на ГОСТы и различные допуски.

Как строится работа в этом режиме:
Специалисту больше не нужно вручную вычленять главные слова из этого текста, чтобы вбить их в обычный поиск. Он просто копирует весь объемный абзац из ТЗ (технического задания) и вставляет его в поисковое окно программы целиком.

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

Интерфейс инструмента одиночного подбора

Интерфейс инструмента одиночного подбора

Подбор списком (Batch-режим)
Это основной, самый востребованный сценарий работы для специалистов по тендерам и закупкам. Режим разработан специально для ситуаций, когда спецификация состоит из десятков или сотен строк.

Главная проблема при работе с большими ТЗ — это необходимость брать каждую строчку, копировать ее, переходить в Excel-прайсы, искать совпадения, анализировать их и заносить результат обратно в свою смету. Эта монотонная механическая работа отнимает рабочие дни и сильно подвержена ошибкам из-за человеческого фактора (усталости, потери концентрации).

Режим «Подбор списком» забирает эту рутину на себя:

  1. Массовая загрузка: Вы просто загружаете в программу готовый файл с техническим заданием (в формате .xlsx или .csv).

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

  3. Автономная работа: После нажатия кнопки «Запустить» система начинает последовательно применять алгоритмы искусственного интеллекта к каждой строке из вашего файла. Процесс идет полностью в фоновом режиме, без какого-либо участия человека.

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

Пример результатов подбора

Пример результатов подбора

3.  Как работает поиск «под капотом»

Высокая точность подбора достигается за счет многоступенчатого конвейера обработки данных (Pipeline), который комбинирует математические алгоритмы и искусственный интеллект.

  1. AI-Диспетчер (Выбор категории): Модель анализирует запрос и сопоставляет его с существующими категориями в базе. Если ищется «микроскоп», диспетчер отсекает прайс-листы с мебелью и оставляет файлы с лабораторным оборудованием.

  2. AI-Помощник (Извлечение смыслов): Запрос из ТЗ редко совпадает с названием товара напрямую. ИИ разбивает длинный текст на «смысловые группы» (например, группа 1: «ноутбук, лэптоп», группа 2: «15 дюймов», группа 3: «intel core»).

  3. Математический скоринг: Программа сканирует лемматизированную базу данных. Товар получает баллы в зависимости от того, где найдено совпадение. Точное совпадение по артикулу дает максимальный балл. Совпадение смысловой группы в начале заголовка оценивается выше, чем совпадение в конце технического описания.

  4. AI-Ранжировщик: Математика отбирает топ-20 кандидатов. Затем языковая модель анализирует этот короткий список на логику. Например, ИИ обучен применять правило «Анти-комплект»: если в ТЗ требуется одна позиция (стол), а математика нашла товар «Комплект мебели: стол и 4 стула», ИИ принудительно опустит этот результат вниз списка.

  5. AI-Эксперт (Формирование отчета): Для финальных результатов (например, топ-3 позиции) ИИ пишет аналитическое заключение. Он сравнивает текст исходного ТЗ с описанием найденного товара и формирует вердикт.

4.  Какой результат получает пользователь: форматы отчетов и их применение

Когда система завершает обработку списка запросов, она не выдает просто набор «сырых» ссылок. Главная цель инструмента — предоставить специалисту готовую аналитику, на основе которой можно сразу принимать решения о ценообразовании и участии в тендере.

Для удобства работы результаты формируются в двух взаимодополняющих форматах: для быстрой визуальной проверки и для дальнейших финансовых расчетов.

  1. Интерактивный (визуальный) отчет в интерфейсе программы
    Этот формат предназначен для комфортного просмотра и оценки предложенных вариантов прямо в окне приложения.
    Вместо сплошного текста пользователь видит структурированную ленту. Каждая строчка из исходного технического задания превращается в отдельный раскрывающийся блок (папку).

Внутри такого блока система показывает от одного до нескольких наиболее подходящих товаров. Как выглядит карточка подобранного товара:

  • Фотография: Если в загруженных прайс-листах или на спарсенном сайте была ссылка на изображение, программа автоматически подтянет и покажет фото товара. Это позволяет визуально убедиться в правильности выбора.

  • Базовые данные: Сразу отображаются цена, артикул и название файла-источника (чтобы специалист сразу понимал, какому поставщику принадлежит этот товар).

  • Аналитический вердикт (AI-Эксперт): Это ключевая функция системы. Программа не просто ставит два товара рядом, она пишет краткое объяснение. Например: « Подходит: характеристики процессора и диагональ экрана полностью совпадают с запросом» или « Оговорка: запрошен стол из дерева, а найденный вариант выполнен из ЛДСП». Благодаря этому специалисту не нужно открывать карточку товара и вчитываться в мелкий шрифт технических характеристик — нейросеть уже провела сравнение.

  1. Сводный отчет (экспорт в Excel)
    Визуальный интерфейс удобен для проверки, но основным рабочим документом тендерного специалиста или снабженца является смета. Поэтому итоговым продуктом работы программы выступает автоматически сгенерированный файл Excel.

Это готовая сводная таблица, в которой собрана вся необходимая информация для просчета экономики проекта. В файле содержатся следующие колонки:

  • Номер по порядку и исходный текст запроса.

  • Наименование подобранного товара и его артикул.

  • Актуальная цена из базы.

  • Название прайс-листа (поставщика).

  • Ссылка на сайт (если есть).

Умная цветовая индикация (Светофор):
Самая важная колонка в этом Excel-файле — «Вердикт AI». Чтобы максимально сэкономить время человека, система автоматически раскрашивает ячейки с результатами:

  • Зеленая заливка (Точное совпадение): ИИ уверен, что найденный товар полностью отвечает требованиям ТЗ. Специалист может практически не тратить время на проверку этих строк и сразу брать предложенные цены в расчет рентабельности.

  • Желтая заливка (Совпадение с оговорками): Система нашла аналог, но он имеет незначительные технические расхождения. Внимание специалиста должно быть сфокусировано именно на этих строках: человеку нужно прочитать вердикт и решить, допустимо ли предложить такой аналог заказчику.

  • Красная заливка (Не подходит / Не найдено): Программа честно сигнализирует, что в загруженных базах поставщиков нет подходящего товара (например, ищут трактор, а в базе только запчасти).

Такой подход позволяет специалисту не проверять сотни строк вручную, а работать по принципу исключений, фокусируя свое внимание только на проблемных (желтых и красных) позициях таблицы.

5. Решаемые задачи и сценарии применения

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

  1. Первичный просчет тендера: Специалисту необходимо понять общую маржинальность ТЗ. Загрузка спецификации в систему позволяет за час получить ориентировочные цены и артикулы от своих поставщиков на спецификацию из 50-70 пунктов.

  2. Импортозамещение и подбор аналогов: Когда в ТЗ указан конкретный бренд или товар, ушедший с рынка, система, опираясь на технические характеристики, находит аналогичные товары из доступных баз данных. Вердикт AI-Эксперта сразу указывает, в чем найденный аналог совпадает, а в чем уступает оригиналу.

  3. Мониторинг ассортимента конкурентов: Загрузив прайс-лист с описанием товара конкурента в качестве базы, пользователь может прогнать через систему свои топовые товары и получить сводную таблицу аналогов конкурента с сопоставлением характеристик.

Заключение: объективные преимущества использования

Человек, интегрирующий данный инструмент в свои рабочие процессы, получает измеримые результаты. Главное преимущество — колоссальная экономия времени на рутинной механической работе. Задачи, требовавшие использования поиска «Ctrl+F» по десяткам вкладок Excel в течение нескольких рабочих дней, делегируются вычислительным мощностям.

Оригинал статьи

Показать полностью 9

Бесплатная генерация карточек товаров с помощью ИИ (Nano Banana PRO)

Серия История одного вайбкодера

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

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

Проблема стандартного подхода в том, что создание качественной карточки — это долго и дорого. Чтобы просто проверить, «залетит» ли товар, нужно писать ТЗ дизайнеру, ждать несколько дней и платить за варианты, которые могут не сработать.

Этот инструмент решает задачу быстрого запуска. Он не заменяет профессиональную студийную съемку или сложный брендинг, но позволяет за 2–3 минуты получить продающую картинку и SEO-описание. Вы получаете результат здесь и сейчас.

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

Сразу несколько примеров. Скажу так, примеры были созданы вообще без усилий, я не прорабатывал промпты, не использовал визуальный промптинг, так что если приложить чуть больше усилий и "набить руку", результат может быть гораздо лучше.

Что умеет инструмент

Приложение написано на Python и работает через API Google Vertex AI. Для генерации текста используется модель Gemini 2.5 Flash, а для изображений — мощная Gemini 3 Pro она же Nano Banana PRO.

Основные отличия от обычных нейросетей:

  1. Сохранение товара: Нейросеть берет ваше фото товара и помещает его в нужное окружение, стараясь максимально сохранить исходный вид продукта.

  2. Парсинг: Программа умеет сама забирать данные (фото и описание) по ссылке с сайта-донора.

  3. Visual Prompting (Визуальные подсказки): Вы можете рисовать прямо на фото товара, указывая нейросети, где дорисовать фон, а где оставить предмет нетронутым.

  4. Комплексность: Генерирует сразу и изображение (карточку), и продающий текст.

Кому это нужно?

Инструмент полезен всем, кто работает с E-commerce.

  • Селлеры на WB/Ozon: Быстрое создание карточек для новых артикулов. Можно сделать 10 вариантов фона за 20 минут и выбрать лучший CTR.

  • Менеджеры маркетплейсов: Создание Rich-контента и постов для соцсетей без навыков Photoshop.

  • Дропшипперы: Тестирование ниши. Вы можете взять фото товара у поставщика, прогнать через программу и получить уникальный контент для старта продаж.

  • Контент-мейкеры: Генерация идей для визуализации.

Как это работает?

Интерфейс разделен на две основные вкладки: работа по ссылке и ручной режим.

Шаг 1. Получение данных (Парсинг или Загрузка)

Вариант А: По ссылке. Вы вставляете ссылку на товар (например, с сайта поставщика). Программа сама скачивает фото и копирует описание. Если сайт защищен от ботов, можно включить режим «Использовать браузер» (Selenium), который имитирует действия реального пользователя.

Вариант Б: Ручной ввод. Вы сами загружаете фото товара с компьютера и пишете краткие вводные данные.

Шаг 2. Настройка и Редактирование

После загрузки фото у вас есть два мощных инструмента:

  1. Редактор (Visual Prompting): Если включить тумблер «✏️ Редактировать фото», можно выделить маркером области на изображении (к примеру выделить зону на изображении синим прямоугольником и сказать, что с ним сделать). Это дает сигнал нейросети, как взаимодействовать с объектом. (Пример: добавь на место красного прямоугольника наш логотип)

  2. Референс стиля: Вы можете загрузить чужую карточку или картинку с Pinterest, стиль которой вам нравится. Нейросеть постарается перенести этот стиль (цвета, освещение, композицию) на ваш товар.

Шаг 3. Генерация

Вы задаете текстовые инструкции:

  • Для текста: Например, «Сделай описание для Ozon, выдели преимущества списком».

  • Для изображения: Например, «Поставь флакон на деревянный стол, на фоне лес, солнечное освещение» или «Сделай профессиональное фото с инфографикой»

Выбираете формат (1:1, 3:4, 9:16) и нажимаете кнопку запуска.

На выходе вы получаете готовое изображение и текст. Их можно скачать одним архивом (ZIP).

Установка и настройка

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

  1. Авторизация: выполняет вход в аккаунт Google через стандартный протокол OAuth 2.0.

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

  3. Создание проекта: регистрирует новый проект с уникальным идентификатором и привязывает его к платежному аккаунту.

  4. Активация API: включает сервисы Vertex AI, IAM и Billing Budgets, которые по умолчанию деактивированы.

  5. Безопасность: создает сервисный аккаунт с ограниченными правами доступа и генерирует JSON-ключ для локальной работы.

  6. Конфигурация: автоматически записывает ID созданного проекта в исходный код основного приложения.

Сама программа запускается локально на Windows, но вычисления происходят в облаке Google. Настройка требует выполнения определенных условий.

Требования:

  1. Компьютер на Windows.

  2. Аккаунт Google Cloud.

  3. Зарубежная банковская карта.

⚠️ Важный нюанс про оплату
Google предоставляет щедрые бесплатные лимиты для Vertex AI (300$ на 3 месяца). Но для доступа к API необходимо привязать карту к биллинговому аккаунту (Billing Account) для подтверждения, что вы не робот.
Карты российских банков не работают.
Если у вас нет иностранной карты, используйте сервисы выпуска виртуальных карт (в инструкции архива будет сервис, которым пользуюсь я, но сейчас их достаточно много. используйте на свой выбор). Виртуальная предоплаченная карта подходит для верификации в Google Cloud.

Порядок действий:

  1. Скачайте архив с программой.

  2. Запустите установочный скрипт (файл инструкции в архиве).

  3. Авторизуйтесь в Google-аккаунте через открывшийся браузер.

  4. Если карта не привязана, система попросит это сделать.

  5. После успешной настройки программа создаст необходимые ключи доступа.

Итог

Скачав этот инструмент, вы получаете:

  • Скорость: Карточка готова за пару минут.

  • Уникальность: Контент, которого нет у конкурентов (в отличие от стоковых фото).

  • Экономия: Не нужно платить дизайнеру за каждый черновик.

Это рабочий инструмент для тех, кому важен быстрый результат. Сам инструмент можно скачать в моем блоге здесь.

Показать полностью 8
4

Бесплатный AI-инструмент для концепт-дизайна интерьеров с помощью ИИ (Nano Banana Pro)

Серия История одного вайбкодера

Всем привет!

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

Эта статья не будет про технику (хотя немного технических аспектов поведаю). Просто небольшой обзор небольшого инструмента, который я хочу отдать в массы.
Изначально я разработал этот инструмент (а точнее примитивный агент)  для своего знакомого дизайнера интерьеров. Ему требовалось решение, которое позволило бы согласовать с заказчиком общий визуальный стиль («вайб») и планировку еще до начала сложной технической работы. Инструмент нужен был максимально простой и с конкретным функционалом.

Проблема стандартного процесса в том, что между мудбордом (набором картинок) и первой 3D-визуализацией проходит слишком много времени. Клиент может отвергнуть вариант, на проработку которого ушло несколько дней.

Этот инструмент решает задачу быстрого концепт-дизайна. Он не заменяет профессиональный софт (3D Max, Archicad, Revit) и не делает рабочие чертежи. Его цель — за 5 минут показать заказчику фотореалистичный эскиз: как его комната будет выглядеть в выбранном стиле и с конкретной мебелью, сохраняя при этом геометрию стен.

Знаю, что людям нравится визуал и сразу начнем с него.

Заполнение пустой комнаты:

Пустая комната

Пустая комната

Пустая комната

Вариант 1

Вариант 1

Вариант 1

Вариант 2

Вариант 2

Вариант 2

Вариант 3

Вариант 3

Вариант 3

Вариант 4

Вариант 4

Вариант 4

Вариант 5

Вариант 5

Вариант 5

Изменение дизайна комнаты с имеющимся ремонтом:

Топовый ремонт

Топовый ремонт

Топовый ремонт

Вариант 1

Вариант 1

Вариант 1

Вариант 2

Вариант 2

Вариант 2

Я решил выложить этот инструмент бесплатно. Ниже — разбор возможностей и гайд по установке. Сразу будет небольшая оговорка:

  1. У вас должен быть Google Аккаунт (Gmail).

  2. Google попросит привязать банковскую карту для подтверждения личности (это стандартная процедура облачных сервисов).

  3. Карта должна быть зарубежная (сейчас в этом проблем нет, на пикабу можно найти обзоры сервисов по выпуску виртуальных карт)

Примечание: Google предоставляет бесплатный лимит на 300$, которого обычно достаточно для личного использования. Деньги не списываются без вашего ведома.

Что умеет инструмент

Приложение написано на Python и работает через API Google Vertex AI (используются модели gemini-2.5-flash для скорости и gemini-3-pro для максимального качества).

Основные отличия от простой генерации картинок (например, в Midjourney):

  1. Геометрия: Стены, окна, потолки и дверные проемы остаются на своих местах.

  2. Реальные товары: Можно «скармливать» нейросети прямые ссылки на мебель из магазинов.

  3. Visual Prompting: Можно схематично нарисовать прямо на фото, где должен стоять шкаф или диван и указать это при формировании промпта

Кому это нужно?!

Инструмент полезен не только профи, но и тем, кто просто делает ремонт. Вот основные сценарии:

  1. Дизайнеры интерьеров: Быстрое создание эскизных предложений. Вы можете сгенерировать 3–4 варианта стиля (лофт, сканди, неоклассика) для одной комнаты за 15 минут, утвердить направление с клиентом и только потом передавать ТЗ визуализатору. Экономия времени и денег на переделках.

  2. Риелторы и хоумстейджеры: Виртуальная меблировка (Virtual Staging). Пустые квартиры («бетонные коробки») продаются хуже. С помощью программы можно показать потенциальному покупателю, как уютно может выглядеть жилье после ремонта.

  3. Ремонт своими силами: Возможность «примерить» материалы. Прежде чем покупать дорогой ламинат или диван, загрузите фото своей комнаты и посмотрите, как это будет выглядеть в реальности, а не в каталоге магазина.

  4. Продавцы мебели и декора: Помощь клиенту в выборе. Если покупатель сомневается, подойдет ли кресло, можно прямо при нем загрузить фото его комнаты и интегрировать туда товар.

Как это работает?

Интерфейс разбит на три логических шага: Основа, Референсы и Инструкция(промпт).

Шаг 1. Загрузка основы (Фото комнаты)

Загрузите фото помещения в текущем состоянии.

Режим редактора: Включите тумблер « Редактировать фото», чтобы рисовать поверх изображения.

Зачем это нужно: Нейросети сложно объяснить словами «поставь кресло в правый угол». Проще нарисовать куб в нужном месте маркером. Это работает как жесткая визуальная инструкция для ИИ.

Шаг 2. Работа с референсами

На этом этапе формируется наполнение интерьера.

Способ А: Файлы. Вкладка « Файлы». Загружайте картинки с реальных магазинов или допустим с пинтереста. Можете использовать понравившийся вам ремонт целиком с сайтов ремонта и дизайна, можете брать конкретные товары, а можете вообще ничего не «скармливать», а все указать в промпте.

Способ Б: Ссылки на фото товаров. Вкладка « Ссылки». Это самая полезная функция для комплектации.

  1. Вставьте список ссылок на фото товаров (Hoff, Leroy Merlin, OBI и др.).

  2. Нажмите кнопку «найти и добавить».
    Программа спарсит нужные вам изображения и вставит их в референсные фото.

Шаг 3. Формирование инструкции (Промпт)

Нейросеть видит геометрию и мебель. Теперь ей нужно дать текстовое задание. Не пишите абстрактно («сделай красиво»), хотя, делайте как вам угодно. Но лучше пишите как ТЗ:

  1. Стиль: (Лофт, Джапанди и прочее по вашему желанию).

  2. Цвета: (Светлые стены, темный пол).

  3. Привязка: «Используй диван и люстру из референсов».

  4. Детали: «Добавь зелень», «Вечернее освещение».

Но можно указать конкретные условия. Пример: «Добавь предметы интерьера из референсов. больше ничего не добавляй. добавь широкие потолочные плинтуса. геометрию и ракурс не меняй.»

После нажатия кнопки «Визуализировать» вы получите результат и слайдер для сравнения «До/После».

Скрипт установки и настройки
Немного техники о скрипте установки

Инструмент работает локально на вашем ПК, но использует облачные мощности Google Cloud (Vertex AI). Сама настройка достаточно сложная, а GC не совсем дружелюбный в плане интерфейса. В связи с этим пришлось сделать инструмент автоматической настройки аккаунта на GC с выдачей всех разрешений, включений API, подключения биллинга и прочего. Вкратце об инструменте настройки (может кому понадобиться):

Техническая логика работы

Скрипт настройки написан на языке Python и взаимодействует с интерфейсом командной строки Google Cloud SDK (gcloud CLI). Процесс разбит на несколько этапов:

1. Идентификация и авторизация

Программа инициирует протокол OAuth 2.0. Через системный вызов открывается окно браузера для входа в Google-аккаунт пользователя. После подтверждения скрипт получает временный токен для выполнения административных действий от имени владельца.

2. Проверка платежного профиля (Billing)

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

3. Создание и изоляция проекта

Программа генерирует уникальный идентификатор проекта (Project ID) с использованием случайного цифрового суффикса. Это необходимо для избежания конфликтов имен в глобальной системе Google Cloud. Скрипт автоматически привязывает созданный проект к найденному платежному аккаунту.

4. Конфигурация облачных API

Для генерации интерьеров требуется работа нескольких сервисов. Инструмент последовательно отправляет запросы на включение следующих API:

5. Создание сервисного аккаунта и ключей

Для безопасности приложение не использует личный пароль пользователя. Скрипт создает «Сервисный аккаунт» (виртуальный профиль) с ограниченной ролью Vertex AI User.
Затем программа генерирует файл ключа в формате JSON. Этот файл сохраняется локально и служит электронным пропуском для основного приложения.

6. Модификация исходного кода

На финальном этапе скрипт использует регулярные выражения для автоматического редактирования файла design.py. Он находит переменную PROJECT_ID и записывает в неё идентификатор созданного проекта. Это избавляет пользователя от необходимости вручную вносить изменения в программный код.

Итог работы инструмента

После завершения работы скрипта на компьютере пользователя формируется готовая среда:

  1. Создан облачный проект в Google Cloud.

  2. Активированы необходимые нейросетевые мощности.

  3. Настроен защищенный канал связи через JSON-ключ.

  4. Программный код приложения синхронизирован с облачными настройками.

Для работы моего инструмента есть определенные требования

  1. Компьютер на Windows.

  2. Аккаунт Google Cloud.

  3. Зарубежная банковская карта.

Важный нюанс: Оплата и карты

Google предоставляет бесплатные лимиты, которых хватает для личных нужд. Однако для активации доступа Google требует привязать карту (Billing Account) для верификации личности.
Карты российских банков не принимаются.

Если у вас нет зарубежной карты, можно воспользоваться сервисами выпуска виртуальных карт. На пикабу есть несколько статей по этому поводу.

Пошаговая установка кратко

  1. Скачайте архив с программой (ссылка на мой блог в конце). В папке ИНСТРУКЦИЯ все подробно написано.

  2. Запустите файл НАСТРОЙКА . Откроется командная строка.

  3. Авторизация: Скрипт попросит войти в Google-аккаунт через браузер.

  4. Биллинг: Если карта не привязана, скрипт перенаправит на страницу Google Billing. Привяжите карту.

  5. Финал: Скрипт сам создаст проект, включит API Vertex AI и сохранит ключи доступа в папку программы.

Весь процесс занимает 3–5 минут. После появления сообщения об успехе можно запускать приложение с помощью файла ДИЗАЙН

Итог

Что вы получаете, скачав этот инструмент:

  • Скорость: Концепт готов за 3 минуты вместо 3 дней.

  • Экономия: Бесплатное использование мощностей Google (в рамках их Free Tier) вместо оплаты работы визуализатора на раннем этапе.

  • Управляемость: Благодаря рисованию (Visual Prompting) и ссылкам вы получаете предсказуемый результат, а не случайную картинку.

Это отличный способ быстро проверить гипотезы, согласовать стиль и увидеть потенциал помещения без лишних затрат. Всем удачных интерьеров!

Сам инструмент можно скачать в моем блоге здесь.

Показать полностью 11
4

Карточки для маркетплейсов с помощью Nano Banana PRO и визуал промптинга

Серия История одного вайбкодера

Карточки для маркетплейсов с помощью Nano Banana PRO — часть вторая. Или как я расширил возможности своего инструмента

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

Ранее я рассказывал, как реализовал автоматический парсинг контента и генерацию карточек с помощью nano banana pro (ниже почему именно об этих инструментах я упомянул). Сейчас я хочу погрузиться в тему генерации контента, а конкретно карточек для маркетплейсов, более подробно. Я захотел переработать свой инструмент, превратив его из набора функций в более удобный инструмент. Мне нужно было получить более автоматизированный инструмент и как раз для этого мне пригодился опыт разработки предыдущих механизмов: автоматический парсинг и генерация карточек. Напомню кратко об этих инструментах, чтобы продолжить в их контексте повествование.

Парсинг и как он работает в моем инструменте

Разбор механики инструмента:

  • Этап планирования: Gemini анализирует карту сайта и отсеивает информационный шум, оставляя только целевые ссылки.

  • Этап кодинга: Система делает «слепок» страницы, а ИИ на лету генерирует Python-функцию для извлечения цен, артикулов и описаний (собственно любой другой информации)

  • Этап контроля: Прежде чем запускать полную обработку, я всегда вижу превью. Если данные «кривые» — ИИ переделывает код

Генерация карточек

На схеме — путь от «сырых» данных до готовой инфографики. Главное отличие от обычных нейросетей здесь в мультимодальности. Я не просто пишу текст, я скармливаю Gemini 3 Pro сразу четыре сущности: фото реального ботинка, сухие характеристики из ГОСТа, картинку-референс со стилем, который мне нравится, и команду «сделай красиво». Ядро модели «вплавляет» текст прямо в пиксели изображения, учитывая тени, свет и геометрию товара. На выходе мы получаем не просто картинку, а готовую карточку, которую можно сразу грузить на Wildberries или Ozon.

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

Чего мне не хватало в «старой» модели генерации карточек?

  1. Исходников

  2. Визуального промптинга

  3. Описательной части товара (приходилось делать отдельно)

  4. Экспорта

  5. Не всегда есть студийное фото товара под рукой. Часто есть только ссылка на страницу у поставщика или на собственном старом сайте. Бегать по страницам, вручную сохранять картинки и копировать описания — это снова рутина, которая отнимает много времени.

  1. Визуальный промптинг

Даже когда фото найдено, оно может быть не идеальным. На нём могут быть лишние объекты, водяные знаки или просто нужно указать, какую часть изображения стоит изменить. Обычным текстовым промптом сложно объяснить: «Убери вот этот ценник слева внизу» или «Сделай вот этот ремешок красным».

3 и 4. Изначально текст и картинка генерировались как два отдельных актива. Нужно было сначала сгенерировать описание, скопировать его куда-то, затем создать изображение, сохранить его, и только потом вручную собирать это в карточку на маркетплейсе. Это неудобно и разрывает рабочий процесс.

Вопросы и «хотелки» определены. Далее я приступил к реализации.

Nano Banana PRO: Новая архитектура генератора карточек

Я полностью переписал раздел генерации контента. Теперь это единое рабочее пространство с двумя основными режимами работы: «Из ссылки (URL)» и «Ручной режим».

Ключевыми изменениями стали внедрение Visual Prompting (визуального редактора), создание карточек по ссылке, экспорт.

Генерация из URL (Полная автоматизация)

Этот сценарий предназначен для быстрого заведения товаров, которых у нас нет в базе, или для рерайта карточек конкурентов. Идея проста: «Вставь ссылку — получи готовый архив с фото и описанием».

Этап 1: Умный парсинг (Requests vs Selenium)

Не все сайты одинаковы. Одни отдают контент по простому HTTP-запросу, другие (например, маркетплейсы или сайты с защитой от ботов) требуют имитации реального браузера.
Я реализовал переключатель внутри интерфейса:

  • Быстрый режим (Requests): Мгновенно скачивает HTML. Подходит для простых интернет-магазинов и каталогов.

  • Браузерный режим (Selenium): Запускает реальный экземпляр Chrome в фоновом режиме. Я использую библиотеку undetected-chromedriver, чтобы обходить защиту Cloudflare и капчи. Скрипт автоматически прокручивает страницу вниз (чтобы подгрузить «ленивые» изображения) и забирает полный DOM-код страницы.

Этап 2: AI-аналитик (Разбор HTML)

Раньше для парсинга нужно было писать сложные CSS-селекторы под каждый конкретный сайт (div.product-title > h1). Это долго и ненадежно — верстка меняется, парсер ломается.
Я переложил эту работу на Gemini (gemini-2.5-flash), который отлично понимает код.

Как это работает:

  1. Скрипт собирает весь текстовый контент со страницы и все ссылки на изображения (из тегов <img>, meta og:image, JSON-LD микроразметки).

  2. Мы отправляем этот «грязный» массив данных в Gemini с системным промптом: «Ты аналитик товаров. Твоя задача — найти в этом коде точное название товара, его описание/характеристики и выбрать из списка ссылок ОДНУ, которая является главным фото товара (игнорируй логотипы, иконки доставки и баннеры)».

  3. На выходе мы получаем чистый JSON: {‘title’: ‘…’, ‘description’: ‘…’, ‘image_url’: ‘…’}.

Плюс: Это работает на любом (но это не точно) сайте без предварительной настройки и написания кода.

Этап 3: Visual Prompting (Редактор) и Кэширование

Дисклеймер: Наткнулся на статью real_tolochkov: Что умеет Nano Banana Pro и почему вы захотите научиться ей пользоваться. И понял, что до сих пор я не использовал «визуальный промптинг». Благодарю автора за то, что подал идею.

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

Механика работы

Процесс реализации в инструменте технически разделен на три этапа:

  1. Формирование композитного изображения: Вместо создания отдельной бинарной маски, используется более прямой подход. Библиотека streamlit-drawable-canvas позволяет пользователю наносить графический слой (линии, маркеры) поверх исходного изображения. Этот слой представляет собой массив данных RGBA, то есть рисунки с альфа-каналом (прозрачностью).

  2. Композитинг на стороне клиента: С помощью библиотеки Pillow (PIL) и метода alpha_composite полупрозрачный слой с пометками пользователя накладывается на исходное изображение. В результате формируется единое новое изображение, где уже объединены и оригинал, и графические инструкции.

  3. Мультимодальный запрос и интерпретация: Именно это единственное, скомпонованное изображение передается в API Gemini вместе с текстовым промптом. Модель не выполняет классическую операцию «in-painting» по координатам. Вместо этого она интерпретирует нарисованные пометки (стрелки, круги, выделения) как визуальные подсказки, являющиеся частью общего задания. Модель анализирует все изображение, но уделяет особое внимание тем областям, которые выделил пользователь, и выполняет текстовую инструкцию в соответствии с этими визуальными «указателями».

Используемый инструментарий

  • streamlit-drawable-canvas: Обеспечивает фронтенд-интерфейс для рисования и передает данные о нанесенных пометках в бэкенд.

  • Pillow (PIL): Ключевая библиотека для всех операций по обработке изображений. В данном случае она используется для открытия исходного фото, создания слоев и, что самое важное, для композитинга (слияния) слоя с рисунками и фонового изображения в единое целое.

  • Gemini Pro Image (через REST API): В качестве вычислительного ядра выступает модель gemini-3-pro-image-preview. Она способна одновременно обрабатывать сложносоставные запросы, включающие как текст, так и одно или несколько изображений, и интерпретировать связь между ними.

Сценарии использования и технические задачи

Эта механика позволяет решать те же задачи, но через интерпретацию, а не через точно прописанные промпты:

  • Удаление нежелательных объектов: Пользователь обводит дефект и пишет промпт «убери это». Модель получает изображение с кругом и текстовую команду, понимает, что нужно отретушировать область внутри круга, ориентируясь на окружающие текстуры.

  • Замена фона: Пользователь может закрасить фон маркером и дать промпт «помести товар в промышленный интерьер». Модель интерпретирует закрашенную область как целевую для изменений, стараясь сохранить незатронутые объекты.

  • Управление размещением инфографики: Нарисовав стрелку или прямоугольник в определенной части изображения, пользователь может дать команду «размести здесь текст «Водонепроницаемый»». Модель поймет, куда именно нужно встроить инфографику.

  • Изменение характеристик материалов: Выделив часть товара (например, подошву ботинка) и написав «сделай эту часть красной», пользователь направляет модель на изменение цвета конкретного элемента.

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

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

Этап 4: Параллельная генерация

После подтверждения данных система запускает два параллельных процесса по нажатию одной кнопки:

  1. Текст: gemini-2.5-flash переписывает «сухое» техническое описание товара в «продающий» стиль для маркетплейса, выделяя ключевые преимущества.

  2. Изображение: gemini-3-pro-image-preview получает исходное фото (или отредактированное в Canvas), описание товара и промпт. Модель генерирует новую карточку, сохраняя геометрию товара, но меняя фон и добавляя инфографику (надписи, иконки) прямо на картинку. Инфографику модель также берет из описательной части товара.

Финал
Я получаю готовую карточку с инфографикой, описанием и возможностью экспортировать результат

Ручной ввод

Этот режим нужен, когда у нас есть «уникальные» фото со склада (те самые «мятые коробки» или фото с телефона), и нам нужно сделать из них конфетку для сайта. Все работает достаточно просто:

  1. Загрузка и Редактирование: Мы загружаем «сырое» фото и описание. Снова используем Visual Prompting. Например, если на фото ботинок стоит на грязном бетонном полу, я закрашиваю пол кистью и пишу в промпте: «Замени пол на текстуру асфальта, добавь тени».

  2. Работа с Референсами: В Gemini 3 Pro (и Flash Image) можно передавать не только исходник, но и референс стиля. Я могу загрузить успешную карточку конкурента и сказать: «Сделай в таком же стиле, используй похожие шрифты и цветовую гамму».

  3. Генерация Инфографики: В поле описания я вставляю характеристики (например, «ГОСТ 12.4.137, Подносок: Металл»). Модель сама распределяет этот текст по изображению, добавляя плашки и выноски. Раньше для этого требовался дизайнер.

  4. Текст: gemini-2.5-flash переписывает «сухое» техническое описание товара в «продающий» стиль для маркетплейса, выделяя ключевые преимущества.

Также мы получаем готовую карточку товара с возможностью экспорта.

Почему Gemini 3 Pro изменил правила игры

Ключевым технологическим прорывом стало внедрение модели gemini-3-pro-image-preview. Её основное отличие от предшественников — это способность корректно рендерить кириллический текст и понимать визуальные команды (Visual Prompting) в рамках одного запроса.

  1. Текстовый рендеринг

Предыдущие модели не могли обрабатывать текстовые символы как часть генерируемой сцены. Gemini 3 Pro, в свою очередь, выполняет текстовый рендеринг: он воспринимает надписи как полноценные объекты, обладающие формой, цветом и положением в пространстве.

  1. Visual Prompting (Визуальные команды)

Вторая важнейшая возможность — обработка правок, нанесенных прямо на исходное изображение. С помощью интегрированного редактора streamlit-drawable-canvas я могу:

  • Выделить дефект: Обвести маркером царапину или водяной знак на фото товара.

  • Указать на область: Нарисовать стрелку на элемент, который нужно перекрасить или изменить.

Эти рисунки отправляются в модель вместе с текстовым промптом. Gemini 3 Pro способен «увидеть» эти пометки и выполнить команду прицельно. Например, связка «фото с закрашенной областью + промпт «убери этот дефект»» работает гораздо точнее, чем просто текстовая команда.

Синергия технологий

Сочетание этих двух функций позволило изменить рабочий процесс. Вместо многоэтапной схемы «ретушь в редакторе → генерация фона → добавление текста» теперь используется единый, комплексный запрос.

Пример команды для модели:

«Взять это изображение ботинка, на котором я закрасил фон, и заменить этот фон на строительную площадку. Добавить текстовые блоки: надпись ‘НАДЁЖНАЯ ЗАЩИТА’ в правом нижнем углу и список характеристик ‘Натуральная кожа’, ‘Металлический подносок’ слева».

Модель выполняет следующие операции за один цикл:

  1. Распознает рисунок на фото и выполняет ретушь

  2. Генерирует новый фон и вписывает в него отредактированный объект

  3. Интегрирует текстовые блоки в композицию для создания инфографики

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

Финальная сборка и ZIP-выгрузка

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

  1. Скачивать картинку (Сохранить как).

  2. Копировать текст из окна браузера в Word.

  3. Сохранять файл, называть его, складывать в папку.

Теперь я реализовал функцию автоматической архивации. Скрипт Python «на лету» (в оперативной памяти, используя io.BytesIO) создает ZIP-архив.
Внутри архива лежат:

  • new_product_image.png (готовая карточка).

  • product_data.txt (готовое описание + название).

Я нажимаю одну кнопку «Скачать ZIP», и у меня на компьютере появляется готовый пакет для передачи контент-менеджеру. Это экономит десятки кликов на каждом товаре.

Итого:
Внедрение данного инструмента позволило достичь следующих измеримых показателей:

  • Время: Среднее время на создание одной карточки товара (включая генерацию изображения с инфографикой и написание продающего текста) сократилось с 30–40 минут до 5–7 минут.

  • Затраты: Прямые расходы сведены к стоимости вызовов API. Эта сумма значительно ниже стоимости рабочего времени штатных специалистов (дизайнера, копирайтера) или затрат на аутсорсинг аналогичных задач.

  • Стандартизация и скорость: Инструмент позволяет поддерживать единый визуальный стиль для большого ассортимента товаров и оперативно выводить новые позиции на рынок. Тестирование различных маркетинговых подходов (например, изменение дизайна карточек) теперь занимает минуты, а не часы.

Инструмент не ставит целью полную замену профильных специалистов, но эффективно автоматизирует до 80% типовых задач по созданию контента, освобождая ресурсы для более сложных и креативных проектов.

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

оригинал статьи

Показать полностью 13
4

Умеет ли Gemini в TTS и транскрибацию?

Серия История одного вайбкодера

Немного о работе с моделями гемини, небольшой анализ других LLM и собственный инструмент

Привет, Хабр! В предыдущих статьях я делился опытом создания инструментов для работы со структурированными данными на базе Gemini. Этот проект, начатый из практической необходимости, перерос в нечто большее — в исследовательский интерес к возможностям современных ИИ-моделей.

Если работа с текстами и таблицами стала понятной, то огромный пласт неструктурированных данных — аудиозаписи совещаний, вебинары, обучающие видео — оставался для моих инструментов «слепой зоной». Моей новой целью стало освоение мультимодальных возможностей Gemini. Частично это был чистый интерес — желание научиться работать с моделями, способными обрабатывать звук и видео. Частично — решение прикладных задач.

Я сформулировал для себя три ключевые задачи, которые должен был решить мой обновленный инструмент:

  • Слушать: Превращать любую аудиозапись в точный, читаемый текст (Speech-to-Text).

  • Говорить: Озвучивать любой текст практически человеческим голосом (Text-to-Speech).

  • Смотреть: Анализировать видео и извлекать из него суть, экономя время.

Эта статья — практический рассказ о создании трех новых модулей на базе Google Gemini: транскрибации, синтеза речи и анализа видео. Но прежде чем перейти к реализации, я поделюсь результатами своего «кабинетного исследования» — небольшого анализа рынка, в котором я сравнил подходы Google с решениями OpenAI, Qwen и Yandex.

Предварительный анализ и обоснование выбора технологического стека

Перед началом разработки я провел анализ рынка существующих ML-решений для работы с аудио и видео. Изначально я планировал остаться в экосистеме Google (Vertex AI), так как это обеспечивало единую аутентификацию, биллинг и уже знакомую среду разработки. Однако, чтобы убедиться, что этот выбор не накладывает критических ограничений на качество и функциональность будущего продукта, я провел сравнительный анализ ключевых альтернатив от OpenAI, Yandex и open-source сообщества.

Целью исследования было не найти абсолютного лидера, а понять, насколько конкурентоспособны решения Google в контексте моих конкретных бизнес-задач. Ниже приведены результаты анализа по трем ключевым направлениям.

1. Распознавание речи (ASR): Сравнение точности в различных акустических условиях

В данном сегменте рассматривались три основных решения: OpenAI Whisper, Google Speech-to-Text v2 (модель Chirp) и Yandex SpeechKit. Сравнение проводилось по метрике WER (Word Error Rate — процент ошибок на слово) и наличию встроенных функций постобработки.

Точность на чистых данных: Согласно бенчмаркам (на датасете LibriSpeech), модель OpenAI Whisper демонстрирует наилучшие показатели на студийных записях с низким уровнем шума. Значение WER составляет менее 3%. Это делает модель предпочтительной для транскрибации аудиокниг, подкастов или диктовки в идеальных условиях.

Точность в реальных условиях: При анализе зашумленных записей (датасеты CHIME-5, записи телефонных разговоров) производительность Whisper снижается, а WER возрастает до 25–30%. В этих условиях модель Google Chirp демонстрирует большую стабильность. Это обусловлено тем, что модель Google обучалась на массивах данных из YouTube, содержащих аудиофайлы низкого качества, фоновые шумы и перекрёстную речь.

Диаризация (разделение спикеров): Особенно критическим фактором для бизнес-задач (протоколирование совещаний) является способность системы различать спикеров.

  • OpenAI Whisper: Не имеет встроенной функции диаризации. Для реализации этого функционала требуется интеграция сторонних библиотек (например, Pyannote Audio), что усложняет архитектуру приложения и увеличивает время обработки.

  • Google Speech-to-Text: Поддерживает нативную диаризацию (enableSpeakerDiarization) через API. Система автоматически маркирует реплики разных участников, что исключает необходимость развертывания дополнительных сервисов.

Анализ показал, что OpenAI Whisper является лидером по точности в идеальных условиях. Однако для моей задачи (анализ записей совещаний) функционал Google оказался более чем достаточным, а наличие встроенной диаризации стало ключевым практическим преимуществом. Это подтвердило, что первоначальный выбор в пользу экосистемы Google не является компромиссом и полностью покрывает требуемые функциональные возможности без усложнения архитектуры.

2. Синтез речи (TTS): Методы управления интонацией

Сравнение проводилось между Yandex SpeechKit и Google Gemini TTS. Основным критерием был способ управления просодией (интонацией, темпом, паузами) и фонетикой.

Программный контроль (Yandex SpeechKit): Данное решение предоставляет инструменты для точного фонетического контроля. Используя специальную разметку, можно принудительно выставлять ударения (символ + перед гласной), задавать точную длительность пауз в миллисекундах (например, sil <500>) и корректировать произношение отдельных фонем. Этот подход оптимален для статических сценариев, требующих строгого соответствия стандартам (например, IVR в банковской сфере) и создания уникальных брендированных голосов.

Семантический контроль (Google Gemini TTS): Google использует подход, основанный на интерпретации контекста и промптов (Prompt-driven control). Вместо жесткой разметки пользователь может задать эмоциональную окраску речи через текстовые теги, например [angry], [calm] или [news reporter style]. Нейросеть самостоятельно адаптирует высоту тона, скорость и интонационный контур. Также поддерживается стандарт SSML (разметка для синтеза голоса), но акцент смещен на генеративное управление стилем (через промпт можно задать общий стиль речи).

Мое небольшое исследование продемонстрировало два принципиально разных, но одинаково мощных подхода к стилизации речи. Решение от Yandex незаменимо для задач, требующих глубокого инженерного контроля над произношением. В то же время, семантический подход Google идеально соответствовал моим целям — дать нетехническим пользователям простой инструмент для быстрой генерации аудиоконтента с разной эмоциональной окраской. Таким образом, выбор Gemini TTS был вполне оправдан.

3. Видеоаналитика: Специализация против мультимодальности

В сегменте анализа видео сравнивались мультимодальная модель Google Gemini 2.5 Pro и специализированная модель Qwen2.5-VL (Vision-Language).

Точность временной привязки: Модель Qwen2.5-VL архитектурно оптимизирована для работы с видеопотоком. Она использует механизмы динамического разрешения и абсолютного временного кодирования. Это позволяет ей генерировать саммари с точными таймкодами (time-coded summaries) и локализовать события с высокой точностью. Это решение предпочтительно для задач поиска конкретных кадров или событий в видеопотоке.

Контекстное окно и интеграция: Gemini 2.5 Pro обладает контекстным окном объемом до 2 миллионов токенов, что позволяет загружать в контекст видеофайлы большой длительности целиком. Ключевым преимуществом для архитектуры проекта стала возможность нативной обработки ссылок YouTube.

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

  • API Gemini позволяет передать URL видео напрямую, выполняя процессинг на стороне провайдера.

Специализированные модели, такие как Qwen, предлагают более высокую точность в задачах временной локализации (саммари с таймкодами). Однако для моей цели (быстрый семантический анализ вебинаров и докладов) ключевым фактором является минимизация предварительной обработки данных. Нативная поддержка YouTube-ссылок в Gemini API представляет собой значительное архитектурное упрощение, которое подтвердило целесообразность моего первоначального выбора для создания быстрого и удобного пользовательского инструмента.

Итог и подтверждение выбора

Рынок речевых и видеотехнологий предлагает множество высококачественных, но идеологически разных решений. Мое первоначальное решение остаться в рамках единой инфраструктуры Google прошло проверку на адекватность. Небольшой анализ подтвердил, что, хотя по отдельным метрикам (как WER на чистом аудио у Whisper или контроль фонетики у Yandex) существуют более сильные специализированные решения, для моих бизнес-задач комплексный продукт от Google не имеет критических недостатков.

  • Распознавание речи: Встроенная диаризация и устойчивость к шуму в реальных условиях делают Google Speech-to-Text v2 оптимальным практическим выбором.

  • Синтез речи: Семантический контроль Gemini TTS более интуитивен для нетехнических пользователей, что соответствует целям проекта.

  • Анализ видео: Нативная обработка YouTube URL значительно упрощает рабочий процесс, что является ключевым преимуществом.

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

Построение инструментов: от логики к реализации

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

Модуль 1: Транскрибация аудио

Логика и тактика: Моей главной целью было избавить коллег от необходимости слушать многочасовые записи. Я представил себе инструмент: я загружаю файл, нажимаю кнопку и через пару минут получаю не просто стену текста, а структурированный документ с основными моментами и задачами.

Эта мысль привела меня к двухэтапной логике:

  • Этап "Механическая работа": ИИ должен превратить звук в текст. Это чисто техническая задача.

  • Этап "Осмысление": Другой ИИ (или тот же, но в другой роли) должен прочитать этот текст и превратить его из хаоса в порядок.

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

Реализация:

В интерфейсе все просто: кнопка загрузки аудио, выпадающий список для выбора языка и большая кнопка "Начать транскрибацию".

Когда пользователь нажимает кнопку, запускается процесс. Обработка часового аудио не может быть мгновенной, поэтому пользователь должен видеть, что что-то происходит. Для этого я добавил прогресс-бар, который проходит три логических стадии: "Загрузка файла в облако", "Выполнение транскрибации (может занять несколько минут)" и "Структурирование текста". После завершения под формой появляются два текстовых поля. В первом — "сырой" транскрипт, который можно скопировать при необходимости. Далее можно прописать промпт для работы с данным текстом. Тут можно структурировать, делать саммари, ставить задачи (в общем, все как и при работе с любым другим текстом).

Собственно, а для чего? Теперь после часовой планерки (если так можно назвать наши «заседания») за пару минут можно получить четкий документ: саммари для отчета вышестоящему руководству и список задач, которые можно сразу скопировать в Битрикс.

Модуль 2: Синтез речи (TTS)

Разработка данного модуля была обусловлена скорее не прикладными задачами, а стремлением к освоению технологии синтеза речи, созданию удобного инструмента для генерации аудио и банальным интересом. Основной задачей было внедрение функционала Text-to-Speech (TTS) на базе доступных API.

Реализация:

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

После активации кнопки «Озвучить» система направляет запрос к Gemini TTS API, передавая как текст, так и заданный промпт стиля. В течение нескольких секунд сгенерированное аудио воспроизводится во встроенном плеере, с возможностью загрузки файла. Данный процесс обеспечивает простоту и функциональность использования.

А это то зачем?

Если честно ответить на данный вопрос, то «я просто захотел попробовать». Но что можно с этим сделать:

  • Обучающие материалы: Генерация аудиофайлов для объемных инструкций и обучающих курсов, повышающая доступность информации.

  • Прототипирование IVR-систем: Возможность быстрого итерационного тестирования голосовых меню (Interactive Voice Response) без привлечения профессиональных дикторов. Это позволяет оперативно генерировать и оценивать различные варианты сообщений, значительно ускоряя процесс разработки и оптимизируя финансовые затраты на финальную озвучку.

  • Озвучивание внутренних коммуникаций: Создание аудиоверсий информационных сообщений и новостных дайджестов.

Модуль 3: Анализ видео (та же транскрибация практически с теми же целями)

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

Логика модуля основана на интерактивном взаимодействии в формате "вопрос-ответ". Целью было предоставить пользователю возможность не только получать сводное содержание, но и задавать конкретные вопросы к видеоматериалу для извлечения целевой информации.

Реализация:

Интерфейс модуля разделен на две вкладки: "Ссылка YouTube" и "Загрузить файл". В обеих вкладках ключевыми элементами являются поле для указания источника видео и большое текстовое поле для ввода вопроса пользователя к видеоматериалу.

При активации кнопки "Анализировать" система формирует мультимодальный запрос. Этот запрос состоит из двух частей: объект, содержащий видеоданные (по ссылке или из загруженного файла), и текстовый промпт с вопросом пользователя. Такой подход позволяет формулировать конкретные запросы, например: "Определите момент, где спикер демонстрирует график роста, и опишите его содержание" или "Извлеките все упомянутые в докладе технологии и соответствующие таймкоды". Ответ, сгенерированный Gemini, выводится в текстовом поле под кнопкой активации.

А это пригодилось?

Тут ответ реально убедительный. Инструмент позволяет получать сводное содержание видеоматериалов, перечень анонсированных продуктов или соответствующие таймкоды значительно быстрее, чем при ручном просмотре. Обработка видео (с учетом огромного количества видео на YouTube на самые разные темы) потенциально дает много разного рода информации. По-простому, я «кайфанул» от использования этой технологии.


Итог:

В части проведенного анализа — модели Gemini можно использовать, не опасаясь за качество. В части инструмента – результаты внедрения меня удовлетворили, чего желаю и вам с вашими продуктами.

Благодарю за уделенное время! Надеюсь, мой подробный рассказ о пути от небольшого исследования до реализации вдохновит и вас на создание собственных ИИ-помощников.
оригинал статьи

Показать полностью 3

Фильтрация резюме на HH с помощью ИИ

Серия История одного вайбкодера

Часть 4. Как я научился делать грубую фильтрацию разюме с помощью API HH.ru и Gemini.

Привет! На связи снова Евгений.

Это четвертая часть цикла о моем самописном инструменте (написанным человеком, который далек от программирования), который вырос из простого поисковика по Excel-файлам в полноценную систему управления бизнес-процессами.

Чтобы вы понимали контекст:

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

И как всегда аппетит растет во время еды. В малом бизнесе часто нет отдельного HR-специалиста. Эту функцию выполняет собственник или руководители отделов. И это всегда привносит определенные неудобства.

Процесс найма обычно выглядит так:

Ты публикуешь вакансию на HeadHunter.

За день прилетает 50–100 откликов.

Ты начинаешь их открывать.

Через час у тебя дергается глаз.

Половина кандидатов вообще не читала описание вакансии. Люди откликаются веерно: «Авось куда-то возьмут». Ты ищешь менеджера в B2B со знанием тендеров, а тебе присылают резюме продавца-консультанта из салона сотовой связи. Формально и то, и то — «продажи», но по факту — разные вселенные.

Чтобы найти одного достойного кандидата, нужно просеять сотни анкет. Это часы монотонной работы, которая отвлекает от реальных дел. Я посмотрел на свой инструмент, где уже успешно трудились нейросети Gemini, и подумал: «Если ИИ может понять, подходит ли этот товар под запрос клиента, почему он не может понять, подходит ли этот человек под нашу вакансию?»

Так началась разработка модуля «Поиск резюме (HH.ru)».

Задача был достаточно простой: построить эффективную воронку отбора

Стандартный поиск на работных сайтах — это набор фильтров. Это работает, но грубо. Мне нужен был инструмент, который бы автоматизировал не просто поиск, а весь процесс первичного отсева, работая по принципу умной воронки: от широкого захвата к глубокому анализу только лучших (ну или хотя бы отсеять ненужные резюме).

Вот как я это реализовал.

Интеграция с HeadHunter

Первым делом нужно было научить мое Python-приложение общаться с HH.ru. Я зарегистрировал приложение в кабинете разработчика HeadHunter, получил Client ID и Client Secret.

В интерфейсе своего инструмента я добавил кнопку авторизации. Работает это через стандартный протокол OAuth. Я нажимаю «Войти через HH». Открывается окно браузера, где я подтверждаю доступ. Приложение получает токен и сохраняет его (в зашифрованном виде, разумеется). Теперь мой скрипт может официально делать запросы к базе резюме от моего имени.

Предварительный поиск

Я сознательно отказался от сложных интерфейсов. Вместо этого — два простых поля: Город и Текстовый запрос. В поле запроса я пишу так, как сказал бы живому рекрутеру.

Пример: «Нужен активный менеджер по продажам спецодежды. Обязателен опыт работы с юрлицами (B2B), понимание 44-ФЗ и тендеров. Желательно наличие автомобиля».

Как это работает под капотом:

Скрипт берет точный текст моего запроса и город. Он находит ID города (например, Москва — это 1, Краснодар — 53) для API.

Затем он делает запрос к HH.ru, прося выдать до 200 самых свежих резюме, которые соответствуют поисковой фразе в указанном регионе.

Сразу после получения списка, запускается строгий локальный фильтр. API HH.ru может выдать кандидатов из всего края или тех, кто готов к переезду. Мой скрипт проверяет поле «Город» в каждом резюме и отбрасывает всех, у кого оно не совпадает с введенным мной названием.

На выходе мы получаем отфильтрованный список кандидатов строго из нужного нам города.

«Быстрый сканер» — локальный предварительный рейтинг

Анализировать все 150-200 резюме с помощью Gemini — дорого и долго. Поэтому следующий этап — быстрая внутренняя сортировка.

Система проходит по каждому резюме из отфильтрованного списка и начисляет ему предварительные баллы. Ищет совпадения ключевых слов из моего запроса в названии должности и ключевых навыках кандидата. Добавляет бонусные баллы, если резюме было обновлено недавно. Это не ИИ, а простой и быстрый алгоритм. Его задача — поднять наверх списка тех, кто с наибольшей вероятностью подходит под запрос.

Глубокий анализ лучших с помощью Gemini

Вот здесь и начинается ИИ-магия. Система берет топ-50 (или меньше, в зависимости от настроек) кандидатов из предварительно отсортированного списка и только для них запускает глубокий анализ.  Для этих 50 кандидатов скачиваются их полные резюме: весь опыт работы, обязанности, достижения, раздел «Обо мне». Далее, для каждого кандидата, этот массив текста отправляется модели Gemini (роль «HH-Analyst»). В промпте для нее заложены инструкции опытного HR-директора.

ИИ делает следующее:

Сравнивает профиль с запросом. Он проверяет, действительно ли опыт кандидата релевантен. Если человек 10 лет продавал, но не в B2B, а в рознице — ИИ это заметит и снизит балл. Выставляет оценку. От 1 до 10 баллов по шкале соответствия моей вакансии. Пишет саммари (Summary). Это краткая выжимка в 2-3 предложения. Например: «Кандидат с сильным профилем в продажах, знает наш рынок. Из минусов — часто меняет работу (4 места за 2 года)».

Генерирует вопросы для собеседования. Это доп фича для руководителя. ИИ видит пробелы или интересные места в резюме и формулирует конкретные вопросы. Пример: «Вы указали, что выиграли крупный тендер в 2023 году. Какова была ваша роль в подготовке документации?»

Весь этот процесс для 50 кандидатов занимает пару минут. Вручную я бы потратил на это несколько часов.

Результат: Как это выглядит на экране

Когда анализ завершен, я вижу перед собой информативные карточки, отсортированные по финальному рейтингу от ИИ. Сверху — «десятки» и «девятки».

В карточке я сразу вижу:

ФИО, возраст, город.

Вердикт ИИ: Оценка и обоснование (почему этот кандидат подходит или нет).

Опыт работы

Вопросы: Готовый список, который можно распечатать перед звонком.

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

Экспорт и работа с командой

К примеру, мне нужно показать кандидатов руководителю отдела продаж. Скидывать ссылки в мессенджер неудобно. Поэтому я добавил кнопку «Скачать отчет в Excel». Система формирует аккуратную таблицу. В ней есть колонки: ФИО, Ссылка, Зарплата, Телефон и, самое главное, — Комментарий ИИ и Вопросы.

Итоги внедрения

Потенциальный эффект: что может измениться в нашем найме?

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

Качество кандидатов. Снижается риск пропустить хороших специалистов, у которых просто неидеально оформлено резюме (хотя тут большой вопрос, если он не может продать себя, как он будет продавать что-то еще). ИИ видит суть опыта, даже если он описан корявым языком, и находит скрытые таланты.

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

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

Всех благодарю за прочтение. Всем успехов в ваших начинаниях!
оригинал статьи

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

Показать полностью 4
2

Как я готовил рекламную кампанию для РСЯ с помощью Nano Banana и Gemini 2.5

Серия История одного вайбкодера

Часть 4. История о том, как я сэкономил на дизайнере и директологе, заставив ИИ генерировать нескучную рекламу для скучной ниши.

Привет! На связи снова Евгений.

Если вы следили за моими предыдущими статьями, то помните мой путь. Сначала я, не будучи программистом, собрал на Python и Gemini поиск по внутренней базе товаров. Потом мне стало тесно, и я прикрутил к инструменту парсер и модуль анализа цен конкурентов. Мой «комбайн» научился находить товар, сравнивать его с рынком и выдавать аналитику. Также я уже рассказывал о том, как подключил Nano Banana Pro и решил вопрос генерации карточек для маркетплейсов.

Кто работает с маркетплейсами, знает, что сейчас происходит со стоимостью доставки и хранения товара (в зависимости от модели — FBS или FBO). Рентабельность на МП сейчас под большим вопросом, поэтому остро встала задача лидогенерации на собственную площадку. Мы пошли простым путем — Яндекс.Директ. Скажу честно, у меня есть вопросы и к этому виду рекламы, но сейчас речь не об этом.

Партия (руководство) сказала: надо! Комсомол (я) ответил: есть!

Обычно в этот момент бизнес идет на аутсорс: платит агентству за настройку Директа, потом платит дизайнеру за баннеры. Я посмотрел на ценники и вспомнил, что когда-то уже занимался контекстом (еще во времена «Бизнес Молодости»). И решил: зачем платить, если у меня есть свой карманный отдел маркетинга — генеративный ИИ и (вроде бы) светлая голова.

Этап 1: Доверься роботу (Автоматическая настройка)

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

Все, что остается сделать — указать бюджет, геотаргетинг и немного мелочей. Реклама может формироваться и на РСЯ, и на поиске; также понравилась товарная кампания. Собственно, с небольшим моим вмешательством я получил готовую кампанию.

Это быстро и удобно. Но есть нюанс.

Этап 2: Креатив своими руками

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

Мне захотелось протестировать гипотезу: сработает ли в B2B-сегменте (и не только) провокационно-шутливая реклама в РСЯ.

Ниже расскажу, как я реализовал полный цикл запуска такой рекламы, не выходя из своего приложения.

Семантика без Wordstat

Любая кампания начинается с ключевых слов. Раньше я бы сидел в Wordstat, копировал фразы в Excel, чистил мусор и занимался прочими муторными делами.

Ранее я рассказывал, что мой инструмент умеет работать с Excel, и это помогает анализировать данные. Сейчас мне это пригодилось в очередной раз. Принципиально я взял 2 разных файла (их было больше, но важна суть):

  • Файл выгрузки из Яндекс.Метрики.

  • Файл из учетной базы 1С (наименование и описание товара).

Далее был написан промпт для Gemini:

«Ты — специалист по контекстной рекламе. На основе загруженных данных составь список целевых ключевых фраз для рекламы в РСЯ. Разбей их на группы: горячие (транзакционные), теплые (по характеристикам) и околотематические. Исключи слова "бесплатно", "скачать", "фото" и прочие. Формат вывода: список через запятую».

Через 20 секунд Gemini выдал мне готовый список. Он сам добавил к названиям моделей слова «купить», «цена», «оптом», «для рабочих». Описательная часть рекламной кампании была готова. Мне оставалось только скопировать этот текст и вставить в рекламный кабинет.

Креатив и провокация

Дальше — самое сложное. Мне нужен был «небольшой кликбейт в визуале» в хорошем смысле слова. Что-то, что зацепит замыленный взгляд снабженца или прораба. Я снова пошел к ИИ и попросил разработать концепции в провокационно-шутливом стиле.

Вот примеры концепций, которые выдал ИИ:

Концепция 1.

  • Визуал: Музейный стенд, изображающий эволюцию человека. Неандерталец, кроманьонец... и следующий в ряду — современный рабочий в полной экипировке (каска, очки, перчатки), который уверенно смотрит вперед. Он выглядит как вершина эволюционной цепочки.

  • Слоган: «Не ждите эволюции. Защитите своих людей сейчас». (Слоганы я потом поменял, это так, для примеров)

Концепция 2.

  • Визуал: Типичный рабочий цех или стройка, но вокруг — зомби-апокалипсис. Один рабочий спокойно выполняет свою задачу (например, пилит доску), в то время как зомби безуспешно пытаются прокусить его плотный комбинезон и защитные ботинки.

  • Слоган: «Защита, которую не прокусить. Даже если очень хочется». (Слоганы я потом поменял, это так, для примеров)

Слоганы и идеи были готовы. Осталось проработать визуал.

Визуализация: Дизайнер за 0 рублей

Тексты есть, нужны картинки. Для РСЯ нужны разные форматы: квадраты, широкоформатные, вертикальные.

В ранних статьях я рассказывал о том, что прикрутил в свой инструмент модель Nano Banana Pro, и объяснял, в чем её принципиальное отличие от предыдущих версий генерации изображений. На всякий случай напомню: это качественный рендеринг текста прямо на изображениях. Это было критически важно, чтобы получить практически готовые баннеры со слоганами без фотошопа.

Кроме того, в настройках генератора у меня есть выбор Aspect Ratio (соотношения сторон), что решало проблему форматирования под разные рекламные блоки Яндекса.

Оставалось написать небольшие промпты, прикрутить логотип компании (через интерфейс генератора), сгенерировать баннеры и совсем немного подработать размеры в графическом редакторе там, где это требовалось. Далее привожу немного примеров готовых изображений (лого компаний вырезал, чтобы никого не смущать):

Концепция с бобрами и котами (все любят животных)

Концепция с бобрами и котами (все любят животных)

Концепция с бобрами и котами (все любят животных)

Концепция с бобрами и котами (все любят животных)

Концепция с бобрами и котами (все любят животных)

Концепция с бобрами и котами (все любят животных)

Концепция с Давидом и Венерой

Концепция с Давидом и Венерой

Концепция с зомби

Концепция с зомби

Концепция с зомби

Концепция с зомби

В общем в концепциях мы не ограничены. И можно разработать много разного нестандартного контента для наших кампаний и компаний))

Сборка и запуск

В итоге у меня на руках были:

  • Файл с ключевыми словами.

  • Файл с заголовками и текстами объявлений.

  • Папка с уникальными изображениями разных форматов.

Я загрузил всё это в Мастер кампаний Яндекса и отправил на модерацию.
Кампания прошла модерацию без проблем (хотя я переживал за "провокационность", но ИИ, видимо, знает границы дозволенного лучше меня). Вот примеры как баннеры смотрятся в РСЯ:

Выводы

В итоге я получил две работающие рекламные кампании:

  • Сформированную с помощью автоматической настройки Яндекс.Директа.

  • Баннерную, полностью созданную с помощью своего ИИ-инструмента.

По результатам первых недель открутки я пришел к следующему выводу:

Автоматическая кампания от Яндекса нужна для привычного формата. Она дает стабильный, прогнозируемый трафик по стандартным запросам. Это «рабочая лошадка», которая закрывает горячий спрос.

Моя баннерная кампания сработала иначе. Она отлично работает на запоминание бренда. Нестандартные визуальные образы (зомби на стройке, эволюция рабочего) пробивают баннерную слепоту. Люди кликают не просто потому, что ищут «куртку», а потому что их зацепил креатив. Это позволяет охватить ту аудиторию, которая обычно пролистывает стандартные объявления мимо.

Таким образом, имея под рукой свой инструмент, я за один вечер сделал работу целого маркетингового отдела (я не говорю про маркетинговый отделы с хорошими грамотными специалистами крупных компаний), сэкономив бюджет и получив нестандартный источник трафика.

Всем удачи в ваших начинаниях, благодарю за прочтение!

оригинал статьи

Показать полностью 12
4

Как я внедрил Nano Banana PRO (не только его) для генерации карточек и других материалов

Серия История одного вайбкодера

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

С вами снова Евгений. Если вы читали мои предыдущие посты, то знаете мой бэкграунд: я сотрудник компании из сферы СИЗ (спецодежда и средства защиты), который устал от рутины и решил автоматизировать бизнес с помощью Gemini. Я не умею программировать, не знаю синтаксис Python, но имею желании и потихоньку обучился искусству "вайбкодинга"

Ранее я уже рассказал о своем опыте подбора товара по своей базе и про автоматический парсинг с последующим исследованием данных (подбор товара по базам поставщиков/конкурентов и анализ цен).

Какие насущные рутинные (и не только) вопросы я хотел решить с максимально возможной автоматизацией:
1. Создание обучающего материала для вновь прибывшего сотрудника
2. Анализ текстовых данных (тут вопросы были разные и останавливаться подробно не буду. Возможно, это будет отдельная статья)
3. Генерация презентаций
4. Генерация визуального материала для сайта, каталога и прочего
5. И самое насущное СОЗДАНИЕ КАРТОЧЕК ДЛЯ МАРКЕТПЛЕЙСОВ


Под эти задачи было разработано несколько мини инструментов:
Генерация Текста и Документов (он же анализ)
Создание простого текста (или кода)
Создание презентации (PPTX)
Генерация Изображений (с помощью разных моделей nano banana, nano banana pro, imagen4)
Генерация карточек (nano banana pro)

Далее постараюсь подробнее описать, что и как.


Текстовая фабрика ("Создание простого текста")

Оговорюсь, "простой текст" в данном случае - это все, что можно выразить буквами, цифрами и символами. Это может быть и продающая статья, и техническая документация, и даже программный код.
Все началось с простого.  У нас тонны PDF-файлов с ГОСТами, DOCX-инструкции от поставщиков и гигантские Excel-таблицы. Это контент, который невозможно читать, но который нужно превратить в продающие описания, статьи для блога, посты для соцсетей, а также в унифицированные обучающие материалы. Собственно, обучающие материалы и дали толчок для внедрения отдельных типов функций (генерация контента) в мой инструмент.
В один прекрасный момент руководитель компании попросил исследовать возможность создания обучающего материала на основе собственного накопившегося материала и по нашей специфике.
Что может быть интереснее структурирования материала и создания полезного из груды «мусора»?! Да, буквально всё (шучу, перерабатывать и структурировать мне очень нравится).
Назрел небольшой план. Сам себе задал вопросы: «Какой материал нужен был бы мне?», «Как его лучше запоминать?», «Как сделать точки среза?» и прочих подводящих вопросов для выработки стратегии этого материала и соответственно стратегии его создания. Углубляться в саму генерацию не буду, вкратце:
1. Есть материал по специфике (в разных форматах)
2. Есть правильный промпт
3. Есть результат (результат получил в html файлах с тестированием и сохранением результатов)

Первая разработка текстовой генерации:

Первым делом я окинул взглядом "сырье" для будущей базы знаний. Это был структурированный материал из 1С и хаос накопившихся файлов  (ГОСТы в PDF, DOCX-файлы от поставщиков с безумным форматированием и вставленными объектами; гигантские Excel-таблицы с характеристиками товаров и прочее).

Я пошел за помощью все также к гемини. ИИ, будучи послушным исполнителем, предложил мне целый "зоопарк" библиотек: PyPDF2 для PDF, python-docx для Word, openpyxl для Excel. И тут я впервые по-настоящему столкнулся с суровой реальностью:

PDF - это был персональный ад. Первые же попытки прочитать наши ГОСТы выдавали либо пустую строку, либо абракадабру. Кириллица превращалась в "кракозябры", текст из таблиц слипался в одну нечитаемую строку, а колонтитулы и номера страниц нагло лезли в основной контент, ломая всю логику. DOCX и XLSX были дружелюбнее, но тоже со своими причудами: скрытые символы, объединенные ячейки, которые ломали парсинг...

Моя реакция была типичной для "вайбкодера": я не стал читать документацию. Я скопировал кусок "мусорного" текста, который выдавала программа, в чат с Gemini и написал что-то типа: "Смотри, что оно мне выдает! Я не понимаю в этих ваших 'регулярных выражениях', но ты, я уверен, спец. Напиши функцию «санитара» для Python, которая будет вычищать из подобного текста весь мусор: переносы строк посреди слова, номера страниц, колонтитулы и прочую ересь".
Так в моем коде появилась функция clean_text, о существовании которой я и не подозревал. Она стала первым и важнейшим этапом обработки любого файла.

Дальше были работы с промптами и с моделями, тестирование, «допиливание» и так в небольшом цикле. Выбор "мозгов": Для этой задачи я однозначно выделил модель gemini-2.5-pro. Почему? Потому что для работы с большими, сложными документами и многоступенчатыми инструкциями нужен "тяжеловес". У этой модели огромное контекстное окно (она "помнит" очень много текста) и она достаточно хорошо следует строгим указаниям, не "додумывая" факты и минимально галлюцинирует. Flash-модели быстрее, но здесь была важна именно въедливость и точность.

На скрине я выделил файл с данными, промпт. Далее я получил выходной материал  в html, который осталось скопировать в блокнот и сохранить

И вот он, финальный штрих, о котором я упомянул - "результат в html файлах". Это была победа. Я заставил ИИ писать мне интерактивные веб-страницы с нужным мне результатом. Я подготовил обучающие уроки по всем нужным категориям товаров, которые подходили для новичков и которые фиксировали прохождение уроков (тестирование) путем тестирования после каждой категории. Вот пример (часть обучающего материала и тестирования):

Теперь процесс создания одного учебного модуля выглядит так: я беру папку с документами по теме, скармливаю их инструменту, пишу один главный промпт, и на выходе получаю HTML код, сохраняю его, отдаю на проверку эксперту и заливаю на внутренний портал . Мечта, а не работа.

Сценарии работы с данным инструментом может быть огромное количество, тут все зависит от фантазии и необходимости.


Генератор презентаций: от идеи до готового PPTX-файла

После того как я наладил процесс генерации текстов, я обратил внимание на следующую рутинную задачу, отнимающую много времени - создание презентаций. Этот процесс требует не только сбора и написания контента, но и его структурирования, форматирования и подбора визуальных материалов. Моей целью было создать инструмент, который бы брал на себя основную часть этой работы, позволяя на выходе получить готовый .pptx файл, требующий лишь минимальных правок в павер поинте.

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

Ступень 1: ИИ-планировщик

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

  • title: Заголовок слайда.

  • content: Ключевые тезисы в виде списка.

  • image_prompt: Детальный промпт на английском языке для нейросети, которая сгенерирует подходящее изображение.

Ступень 2: Python-сборщик

Когда план готов, в дело вступает скрипт на Python, использующий библиотеку python-pptx. Он выполняет чисто механическую работу:

  • Читает созданный на первом этапе план.

  • Создает пустую презентацию в формате 16:9.

  • Для каждого элемента в плане последовательно создает новый слайд, добавляя на него текстовые поля с заголовком и тезисами.

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

В процессе разработки я столкнулся с ожидаемой проблемой: на первых сгенерированных слайдах текст налезал на изображения, а заголовки выходили за границы. Библиотека python-pptx использует свои единицы измерения, и вместо изучения документации я применил практический подход. Я потратил достаточно много времени на подбор нужных координат и размеров для всех элементов, многократно перезапуская скрипт с разными значениями, пока не добился приемлемого вида.

В примере я взял реальную задачу: создать обучающую презентацию по теме «терминология спецодежды». У меня был файл с определениями и описаниями. Я загрузил этот документ в инструмент и дал простую команду: «Сделай презентацию на 3 слайда, объясняющую ключевые термины из этого файла».

Через минуту система выдала готовый .pptx файл. В нем был титульный слайд, 2 контентных слайда, каждый из которых был посвящен отдельной группе терминов, и заключительный слайд. Тезисы были взяты из моего документа, а изображения - сгенерированы ИИ на основе контекста.

Самое главное - сразу можно открыть этот файл в PowerPoint и начать его редактировать при желании. Основная часть механической работы была сделана за меня.

P.S.: даже здесь гугл не смог отойти от инклюзивности ))) для примера оставлю, как есть

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


Генерация изображений с помощью Nano Banana и не только


Изначально генерацию изображений я сделал исключительно «для себя». Не совсем понимал, что вообще можно с этим делать, но это была модель Imagen. Как только в сети хайпанула первая реинкарнация нано банана, пришли мысли о возможной практической пользе. У нас в компании есть магазин неликвида, который получает своих клиентов в основном с Авито. И тут сразу пришло на ум, что нейрофотошоп в виде нано бананы как раз то, что нужно для работы с карточкой товара. Я приведу пример того, что я делал с его помощью.

Проблема нашего "Авито-магазина" была до боли знакомой. На складе лежат абсолютно новые, качественные товары, но в старых, помятых коробках, покрытых слоем складской пыли. Сфотографировать это "как есть" - значит сразу отпугнуть покупателя. Нанимать фотографа для каждой позиции - экономически нецелесообразно.

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

Результат был огонь. Модель не просто вырезала объект, она "поняла" его форму и органично вписала в новое окружение. То, на что у дизайнера ушло бы 15-20 минут в Photoshop, ИИ сделал за 30 секунд. Я понял, что нащупал золотую жилу, и начал формализовывать этот процесс, встраивая его в свой основной инструмент.

Как это работает под капотом:

Я реализовал трехрежимный интерфейс. Пользователь может выбрать, какая модель ему нужна прямо сейчас, в зависимости от задачи:

Imagen – дешево и сердито

Первой моделью, которую я подключил, была Imagen. Это инструмент, который хорошо справляется с созданием изображений по четкому текстовому описанию. Его главная особенность - необходимость «говорить с ним на его языке». Чтобы получить качественный результат, нужно было разделять запрос на две части (а также к промптам пришлось прикрутить автоматический перевод на буржуйский)

Промпт: Основное описание того, что должно быть на картинке (например, «защитный костюм на манекене»). Этот текст я настроил на автоматический перевод на английский.

Стиль: Дополнительные параметры, определяющие стиль  изображения (например, «professional photo, studio lighting, 8k»).

Imagen стал моим инструментом для быстрых и понятных задач, когда нужно было просто создать объект на нейтральном фоне (но если честно, после появления нано банан gemini flash image я практически перестал им пользоваться).

Вот пример изображения по промпту

Gemini Flash: "Топ за свои деньги" (модель gemini-2.5-flash-image, он же Nano Banana).

ТУТ не хочу даже описывать ничего, это просто нереальный экспириенс. Я добавил возможность редактирования своих изображений и получил этот чертов нейрофотошоп (ну по крайней мере я так думал, пока не попробовал nanobananapro). Теперь я мог загрузить одно или несколько изображений-референсов и попросить ИИ создать что-то новое, но в похожем стиле. Например, я мог загрузить фотографию с определенной цветовой гаммой или композицией и попросить сгенерировать изображение своего товара в том же стиле. Это позволило уйти от подбора слов для описания стиля и просто показывать, что я хочу получить.
Тут я покажу для примера, как я улучшил рандомное изображение с авито.
Вот пример скачанных изображений:

Небольшой промпт и мы получаем чудесное преображение:

И получаем готовое изображение для карточки авито

Решив проблему с Авито, я быстро понял, что этот инструмент можно использовать и для других задач (просто как пример):

«Апскейл (улучшение) изображений»

«Затирание водяных знаков»

Конечно, все эти ваши бизнес сценарии хороши, но куда без баловства. Превращал себя с женой в рокеров, панков, монголов, древних русичей)))

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


Все это подвело меня к следующему, революционному этапу (исключительно по моему мнению, на истину не претендую).

Gemini 3 Pro aka Nano banana PRO

Финальным и самым мощным дополнением к моей «фабрике изображений» стала модель Gemini 3 Pro. Если Imagen требовал четкого разделения запроса и стиля, а Gemini Flash отлично работал с визуальными референсами, то Gemini 3 Pro принес новую функцию -  УМЕНИЕ ПИСАТЬ ТЕКСТ НА ИЗОБРАЖЕНИЯХ. Нельзя преувеличить важность этой функции. Да да, это открыло для всех новые дороги.

Раньше этот процесс был настоящей головной болью. Нужно было сначала сгенерировать идеальную картинку, сохранить ее, затем открыть в Photoshop или Canva, подобрать шрифт, добавить текст, выровнять его, наложить эффекты... Это был многоэтапный, ручной труд, который требовал навыков работы в графическом редакторе. Каждый раз, когда нужно было поменять текст — например, «Скидка 20%» на «Скидка 30%» — всё приходилось начинать заново.

Теперь всё изменилось. Я могу просто написать: «Сделай рекламный баннер с нашим защитным ботинком на фоне стройки, и добавь яркую надпись "НАДЁЖНАЯ ЗАЩИТА" в нижнем правом углу». И Gemini 3 Pro не просто генерирует картинку, он вписывает в неё текст, пытаясь сделать это гармонично.
Вот что было:

Вот что стало:

Умение работать с текстом и референсами привело меня к следующему и, думаю, самому важному инструментарию из всех перечисленных.

Генерация карточек для маркетплейсов  с Nano Banana PRO

Умение Gemini 3 Pro работать с текстом на изображениях стало тем ключом, который открыл дверь к созданию, пожалуй, самого важного инструмента во всем проекте. Это превратило генератор из интересной «игрушки» в настоящую «производственную линию» для маркетинга. Я понял, что теперь могу автоматизировать не просто отдельные задачи, а целый цикл создания контента для маркетплейсов, и переписал логику, чтобы использовать три главные возможности этой модели.

Я добавил поле ввода описания продукта, поле ввода промпта, поле загрузки референса (пример того, как вы хотите, чтобы выглядело конечное изображение), поле загрузки вашего фото

Давайте разберем пример:

1.  Инфографика для маркетплейсов на основе текста

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

Наше описание:
Ботинки демисезонные
Материал : Натуральная кожа
Подкаладка: Типика
Материал верха - термоустойчивая водоотталкивающая кожа повышенной толщины (1,8 - 2,0 мм)
Подносок: термопласт
Подошва: Двухслойный полиуретан (ПУ+ПУ)
Соответсвует : ГОСТ 12.4.137-2001, ГОСТ 28507-99, ГОСТ 12.4.032-95.
Универсальная модель для тяжелых работ в различных отраслях промышленности: нефтегазовой, горнодобывающей, энергетической, в черной и цветной металлургии, на транспорте , в сельском хозяйстве и в строительстве.

Наш референс:

Наш промпт (сделаем его специально максимально простым):
Сделай карточку для маркетплейса

Результат:

Модель не просто «лепит» текст поверх картинки. Она встраивает его в изображение, подбирая стиль и расположение. Текст может быть изогнут по форме объекта, на него могут быть добавлены тени, чтобы он выглядел органично. На выходе получается готовый слайд, который раньше дизайнер делал бы час.

2. Изображения на основе реальных данных

Но что, если информация на изображении должна быть не просто красивой, а технически верной? Здесь в дело вступает вторая возможность модели — связь с поиском Google.

К примеру, нам нужно разработать для производственного цеха плакат на тему «Правила использования страховочной привязи». Я задаю промпт: «Создай инфографику в виде плаката, показывающую по шагам, как правильно надевать трехточечную страховочную привязь. Покажи точки крепления: спинную, грудную, боковые».

Результат: Модель не выдумывает конструкцию привязи. Она обращается к поиску, находит реальные схемы и инструкции, и на основе этих данных рисует плакат.

3.  Изображение для обучения

Изображение для обучения Есть задача сделать изображение для обучения? Тоже не проблема) Небольшой простой промпт (его конечно можно уточнять, но сейчас просто примеры) «создай изображение для обучающего материала. рабочий ботинок, на нем нужно указать все его детали и рассказать для чего они служат» и всё, смотрим результат:

Единая рабочая среда

Мой проект вырос из набора разрозненных скриптов в цельную рабочую среду. Теперь менеджер находит нужный товар в поисковике, тут же во вкладке «Генератор контента» создает для него презентацию для отдела продаж, а маркетолог в этой же вкладке делает для него карточку товара на сайт. Все происходит в одном окне и на базе единых данных. Я потратил на это ноль рублей на разработку, только время и средства на использование API, но взамен получил инструмент, который экономит часы рутинной работы и позволяет быстро тестировать маркетинговые гипотезы.

Оригинал моей статьи.

Всех благодарю за прочтение!

Показать полностью 23
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества