Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Новая реальность: почему классическое SEO больше не работает в одиночку

Ландшафт поискового маркетинга меняется прямо сейчас. С запуском блоков Яндекс Нейро и Google AI Overviews (SGE), а также с ростом популярности ChatGPT, DeepSeek, Gemini идр., пользователи все чаще получают готовые ответы на свои вопросы без перехода на сайты.

Для нас, как для специалистов, это стало вызовом нового поколения — GEO (Generative Engine Optimization) и AEO (Answer Engine Optimization). Если вашего бренда нет в текстовом ответе нейросети, вы теряете клиента.

Чтобы контролировать этот генеративный трафик, мне потребовалось регулярно сканировать коммерческие промпты. Я решил разобраться как устроены данные решения на рынке и создать собственный инструмент.
Существующие на рынке SaaS-решения для ИИ-мониторинга меня не устроили по ряду причин:

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

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

Этот кейс — история создания моего личного рабочего MVP-инструмента. Я спроектировал и написал его полностью самостоятельно (с помощью Gemini) под конкретную практическую задачу: объективно оценивать результаты GEO-продвижения, отслеживать не просто абстрактные упоминания, а кликабельные ссылки на домен, и иметь независимый контур контроля качества данных.

Инструмент №1: Прямой опрос баз знаний ИИ-ассистентов через официальные API

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

Чем можно управлять:

  • Выбор проекта с пулом промптов
  • Выбор нужных нейронок для проверки
  • Выбор промптов
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Какие параметры собирает и фиксирует подсистема опроса ИИ:

  • Текстовое упоминание бренда: Проверяется факт вхождения названия компании, синонимов или брендовых маркеров в сгенерированный ответ.
  • Гиперссылка (Клик-контур): Модуль ищет наличие, доступность и анкоры активных Markdown-ссылок на домен, проверяя, ведет ли ИИ пользователя на ваш сайт или оставляет «слепое» текстовое название.

Инженерные решения, реализованные в коде подсистемы:

  • Ротация ключей (Модуль gemini_service.py): Пакетное сканирование больших матриц промптов приводило к ошибке 429 Too Many Requests от Google Gemini. Чтобы сессия не прерывалась, я внедрил алгоритм динамической ротации: в файле config.py хранится массив ключей, и бэкенд автоматически подставляет следующий рабочий токен при утыкании в лимит.
  • Обход ограничений даты обучения (Knowledge Cutoff): Чтобы нейросети могли оперировать актуальными данными из интернета в режиме реального времени, в конфигурации запросов к ChatGPT Search и Google Gemini были принудительно активированы встроенные инструменты веб-серчинга.
  • Regex-обработчик разметки (format_ai_response_text): Модели часто возвращали ответы в виде сплошного неструктурированного текста. Для обеспечения читаемости в интерфейсе я написал модуль предобработки строк на базе регулярных выражений, который перехватывает символы списков (1., -) и маркеры жирного шрифта, принудительно добавляя перед ними двойные переносы строк (\n\n), переводя сырой массив данных в человекочитаемый Streamlit-вид.

Техническая конфигурация подсистемы опроса ИИ:

  • Google Gemini: gemini-2.5-flash (Принудительное включение нативной функции веб-поиска google_search.)
  • OpenAI ChatGPT: gpt-4o (Активация встроенного инструмента web_search для сканирования сети.)
  • DeepSeek: deepseek-chat (Подключение через OpenAI-сомместимый клиент со строгим JSON-форматированием ответа.)
  • YandexGPT: YandexGPT / Алиса (Авторизация через Yandex Cloud API с использованием индивидуального Folder ID.)

Необходимо было собрать собрать и добавить ключи всех движков.

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

Промпт отправляется в нейроку, как-будто пользователь обращался в чате

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Фиксирует в базу ответы и вставляет в таблицу:

  • Название нейронки
  • Промпт
  • Найден или нет бренд и/или ссылка
  • Ответ нейронки в виде HTML
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Полный ответ нейросети в HTML
Полный ответ нейросети в HTML
Полный ответ нейросети в HTML
Полный ответ нейросети в HTML

Динамика позиций сайта в ИИ

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Инструмент №2: Сквозной мониторинг генеративной выдачи поисковиков (Яндекс Нейро и Google AI Overviews)

Эта автономная подсистема создана для работы с живой поисковой выдачей (SERP), ландшафт которой полностью изменился после запуска блоков Яндекс Нейро и Google AI Overviews (SGE). Задача контура — регулярно сканировать коммерческие запросы по региону Москва, находить генеративные ответы поисковиков, вытаскивать их содержимое, фиксировать текстовый контекст и ссылки, а также сопоставлять данные с классической органической выдачей.

Технологическая цепочка подсистемы мониторинга выдачи SERP:

  • Пакетный сбор данных через API-шлюз: Чтобы собирать чистые данные в режиме реального времени, обходить капчи и не тратить ресурсы на прокси, я настроил интеграцию с XML-шлюзом XMLRiver (модуль xmlriver_service.py).
  • Декодирование скрытых массивов (Base64-декодер): Главная техническая сложность заключалась в том, что поисковые системы не отдают контент ИИ-блоков в открытом виде. Они кодируют сгенерированные ответы в огромные Base64-строки и прячут их глубоко в узлах XML-дерева. Я написал кастомный декодер в модуле yandex_serp_service.py, который находит эти скрытые элементы и на лету распаковывает их в сырой HTML-код.
  • Хирургическая очистка кода через BeautifulSoup4: Сырой HTML-код из ИИ-блоков перенасыщен техническим мусором (ломающие инлайновые стили, тяжелые SVG, скрытые кнопки). Оставлять это в исходном виде было нельзя — верстка Streamlit-панели управления просто поплыла бы. Модуль очистки DOM-дерева полностью вырезает мусор, отдавая на фронтенд легкий и понятный HTML.
  • Параллельный мониторинг органики: Параллельно со сбором ИИ-ответов трекер проверяет ТОП-10 стандартной органической выдачи. Чтобы исключить ложноположительные текстовые срабатывания, проверка была переписана строго на валидацию доменного имени: система полностью игнорирует текст сниппета и сверяет точное совпадение целевого домена внутри тега ссылки.
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

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

Как работает инструмент сквозной мониторинг генеративной выдачи поисковиков (Яндекс Нейро и Google AI Overviews)

  1. Выбирается проект
  2. Выбирается режим
  3. Выбор ИИ
  4. Выбор промптов
  5. Нажимаем Запуск
  6. В таблицу собираются данные
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

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

Позиция на скрине не правильная, но сайт есть.
Позиция на скрине не правильная, но сайт есть.

Ответ полностью формируется в HTML, чтобы было удобно смотреть, если есть необходимость.

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Я сделал так чтобы в отчет попадали не только данные об упоминании бренда и ссылки в нейроответах поисковых систем, но и выдача ТОП10 поисковика.

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Архитектура платформы: структура изолированных слоев кода

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах
Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

В этом инструменте я не стал разворачивать собственную сложную инфраструктуру для заходов на поиск, а просто воспользовался сервисом XMLRiver. Он собирает живую выдачу, отдает ИИ-ответы и ТОП10, за низкую стоимость.

База данных

Всю собранную информацию можно скачать в виде csv или HTML и анализировать информацию больших данных.

Как я с нуля создал две независимые системы ИИ-аналитики на Python для контроля упоминаний бренда и ссылок на поиске и в чатах

Что понадобится:

Любая нейронка для помощи в работе, чем мощнее тем лучше.

Ссылки для скачивания и настройки среды:

  • Python официальный сайт: https://www.python.org/downloads/ (⚠ Обязательно поставьте галочку "Add Python.exe to PATH" при установке!)
  • VS Code редактор: https://code.visualstudio.com/Download

Для получения ключей

  • Google AI Studio (для Gemini 2.5): https://aistudio.google.com/
  • OpenAI Platform (для ChatGPT): https://platform.openai.com/
  • DeepSeek Platform: https://platform.deepseek.com/
  • Yandex Cloud (для YandexGPT/Алисы): https://cloud.yandex.ru/
  • XMLRiver (для парсинга SERP): https://xmlriver.com/

Команда для установки библиотек в терминале

pip install streamlit google-genai openai requests beautifulsoup4

Что еще сказать

Я хотел поделится тем, как самостоятельно смог собрать собственный MVP-инструмент.

  • Он обходится дешевле платных онлайн сервисов.
  • Его можно кастомизировать под себя: Собирать ту информацию которая нужна, настроить визуал так как удобно, делать более сложные анализы. Например: за 1000 проверок XMLRiver просит 35 рублей. Одна проверка ровна 1 промпту, 1 поисковой системе и 1 ответу в котором есть и ИИ-ответ и органика.
  • В отличие от платных сервисов я знаю как работает этот сбор, если прилетаю ошибки, я их вижу и понимаю что данные учитывать не стоит. В платных сервисах ответ будет пустым, как будто не найдено упоминание, это искажает статистику.
  • Я не знаток Питона, я пользовался Gemini, время на сборку составило 2 дня. Можно и быстрее, я тестировал разные плюшки, поэтому получилось чуть дольше. Мои шаги были примерно такими, я пишу промпт с пожеланиями, ии пишет код, я внедряю, проверяю, иду дальше если все ОК. Важно точно понимать что а как должно работать.
  • Продукт буду допиливать и адаптировать под свои хотелки.
  • Если кто-то решит создать что-то самостоятельно в первый раз, я советую дробить файлы по отдельным задачам, при масштабировании задач, это облегчит работу над модификацией и исправлением ошибок.
  • Еще одно преимущество, например в одном из платных SaaS-сервисов экран вывода ответа в виде HTML очень маленький и не информативный, я же могу развернуть ответ на весь экран.
  • Работает он с локального компьютера.

Итог

Полностью готовый инструмент (GEO/AEO-аналитики для мониторинга (сайта и бренда) в чатах нейросетей и генеративной выдаче), которые качественно и что важно точно собирает информацию с которой я могу работать, анализировать качество ИИ-оптимизации своих сайтов.

Спасибо за внимание! Надеюсь, этот разбор поможет вам лучше понять, как автоматизировать GEO-аналитику, собрать себе что-то похожее перестать зависеть от сторонних сервисов.
С вами был Тимур, Senior SEO-специалист (AI-Search, AEO, GEO), интернет-маркетолог и директолог, в веб-студии ХОЧУ САЙТ (хочу-сайт.москва).

11