new-term-radar — радар новых терминов в AI: ловит имена моделей и продуктов раньше, чем их покажут инструменты подбора ключевых слов
📂 Исходный код на GitHubЕжедневный радар новых терминов в AI. Собирает имена новых моделей, продуктов и репозиториев из X, Hugging Face, GitHub и чужих sitemap-файлов, оценивает их в таблицу ключевых слов и проверяет результат через Google Trends. Только стандартная библиотека Python.
Утилита new-term-radar каждый день отслеживает имена, которые начинают набирать обороты в мире AI: новые модели, продукты, инструменты и репозитории. Она замечает их там, где их произносят впервые, то есть раньше, чем они появляются в инструментах подбора ключевых слов. Проект рассчитан на тех, кто делает страницы, посты или продукты вокруг новых терминов: SEO для сайтов про AI-инструменты, рассылки, каталоги. Написан на Python, лицензия MIT.
Зачем нужен отдельный радар
Новое имя оставляет за собой след, и порядок шагов каждый раз один и тот же:
- Лаборатория или известный аккаунт называет его в X, а модель попадает в trending-раздел Hugging Face.
- Один репозиторий на GitHub внезапно набирает обороты сам по себе.
- Каталоги и конкуренты добавляют страницы, кто-то регистрирует домен, и сайт начинает ранжироваться.
- Ваш собственный сайт получает первые показы по этому запросу.
- Google Trends показывает график, через несколько дней или недель.
Инструменты подбора ключевых слов читают только шаг 5. Этот радар читает шаги с 1-го по 4-й каждый день, а шаг 5 использует исключительно для самопроверки.
Пример, вокруг которого всё и строилось. Репозиторий Niko1221/Strata появился 24 сентября 2026 года, а через девять дней у него было 7 700 звёзд. Люди искали «niko strata» начиная с 26 сентября, хотя второго репозитория с этим именем не существовало и ни один инструмент подбора ключевых слов его не показывал. Один репозиторий, который набирает по 800 звёзд в день, — это и есть весь сигнал. Причём он общедоступный.
Какие сигналы он читает
| Сигнал | Что он ловит | Что нужно | Стоимость |
|---|---|---|---|
| ① X | Имена, которые аккаунты из вашего списка употребили впервые за последние 60 дней | ключ AIsa | 0.003 доллара за аккаунт за один запуск |
| ① Hugging Face | Модели, впервые попавшие в топ-50 trending; сжатые копии собираются под именем базовой модели | ничего | бесплатно |
| ② GitHub breakout | Репозиторий младше 14 дней со средним приростом от 200 звёзд в день, либо прирост от 400 за последние сутки. Дополнительно добавляет варианты запросов, которые люди используют с этим именем | ничего, токен GitHub лишь поднимает лимит запросов | бесплатно |
| ③ Sitemap-файлы | Слова, которые повторяются в нескольких новых адресах сайта и почти не встречаются в старых | sitemap-файлы, которые вы перечислили | бесплатно |
| ③ Новые сайты | Домены, зарегистрированные и впервые проиндексированные за последние 90 дней и уже ранжирующиеся больше чем по 20 запросам | ключ AIsa | около 0.13 доллара за запрос, раз в неделю |
| ④ Search Console | Запросы, по которым ваш сайт впервые получил показы | ваш собственный токен Google | бесплатно |
| ⑤ Проверка | Каждая находка проверяется в Google Trends через 14 дней и сравнивается с её собственным базовым уровнем | ключ AIsa | 0.0012 доллара за вариант запроса |
Цены указаны по тарифам AIsa на октябрь 2026 года. С примером конфигурации из репозитория месяц обходится примерно в 15 долларов: 10 долларов на чтение X и 5 долларов на таблицу ключевых слов. В конфигурации читаются 35 аккаунтов из X три раза в день и 5 новых имён в день. Если читать меньше аккаунтов или делать это один раз в день, сумма уменьшается пропорционально.
Зачем нужна таблица ключевых слов
Само имя — это только половина дела. У «SynthID Detector» короткая жизнь в качестве ключевого слова, и оно принадлежит Google. А вот задачу, которую он решает, люди ищут как «ai image detector», и она никому не принадлежит. Поэтому каждый день радар читает новые имена ещё раз и строит одну таблицу, где есть и имена, и общие запросы.
| Keyword | Type | Behind | New? | Est. searches/day | Started rising | Peak vs gpts | Peak day | Last 7 days vs the 7 before | Now | Decision |
| **photocraft** | name | — | yes | 12747 | 2026-10-05 | 97 vs 3.1 | 2026-10-09 | — | still rising | **prioritize** |
| **claude haiku 5.5** | name | — | yes | 1863 | 2026-10-07 | 100 vs 23.7 | 2026-10-08 | ×6.0 | still rising | **prioritize** |
| **ai image detector** | generic | synthid detector | no | 2537 | — | 87 vs 31.6 | 2026-10-04 | ×1.2 | flat | watch |
| **photoshop alternative** ⚠ | generic | photocraft | no | 244 | — | 61 vs 61.7 | 2026-10-08 | ×1.8 | flat | skip |
Это реальный отчёт за 12 октября 2026 года, сокращённый.
Как собирается таблица
Логика живёт в файле radar/usecases.py и состоит из пяти шагов.
- Доказательства. Берутся самые залайканные посты, где упоминается имя, через расширенный поиск в X. Для репозитория дополнительно читается его README.
- Фразы. Модель читает доказательства и записывает запрос, который обычный человек набрал бы в поиске для каждой задачи, которую люди пытаются этим решить. К каждой фразе прилагается подтверждающая цитата. Фраза, построенная на имени чужого продукта, вроде «photoshop alternative», сохраняется и помечается значком ⚠: спрос часто зависит от текущего игрока рынка, а решение использовать чужой бренд остаётся за вами. Если задан необязательный ключ GoAnyAPI, радар дополнительно берёт связанные запросы из Google Trends для этого имени. Так для SynthID Detector получились «ai photo detector», «google ai detector» и «ai detector». Такие строки помечаются значком 🔎.
- Проверка. Второй запрос к модели оценивает, насколько хорошо имя отвечает на каждую фразу, отмечает бренды и распознаёт имена других вещей. Слабо связанные фразы отбрасываются. Для Claude Haiku 5.5 модель отбросила все шесть предложенных вариантов, включая «ai coding assistant» и «github copilot alternative». Для SynthID Detector оставила все пять.
- Объём. Месячные поисковые запросы из Google Ads для оставшихся фраз запрашиваются одним пакетным запросом. Фразы ниже порога
min_volumeотбрасываются, и это большинство. - Google Trends, дважды по каждой строке. Сам запрос по отдельности даёт форму кривой: новый он или нет, с какого дня начал расти, где пик, как последняя неделя соотносится с предыдущей и что происходит прямо сейчас. Тот же запрос рядом с эталонным ключевым словом (
gptsпо умолчанию) даёт размер.
Количество поисков в день — это оценки. Для общего запроса они берутся из его собственного объёма в Google Ads и сдвигаются на сегодня по его же кривой из Google Trends. Эталонный запрос потом масштабируется по этим данным, а имя, у которого пока нет данных об объёме, измеряется относительно эталона.
Решение выбирается по трём правилам. prioritize означает, что запрос вырос за последние 30 дней, продолжает расти и даёт не меньше min_daily поисков в день. watch означает, что вырос, но скромно, либо поднялся слишком рано, чтобы что-то сказать, либо стоит ровно с устойчивым спросом такого размера. skip означает, что запрос падает либо стоит ровно и при этом маленький.
Каждое имя читается дважды: в день появления и через три дня. В день анонса посты — это анонсы, и никакого реального использования в них ещё нет. Общие запросы сохраняются как находки и проверяются через 14 дней, как и имена.
Чего ждать от таблицы
Авторы прогнали инструмент на первых восьми именах и вот что получилось.
- Имена выросли, а большинство общих запросов за пять дней — нет. PhotoCraft, Claude Haiku 5.5 и SynthID Detector поднялись все. Из общих запросов за ними сдвинулся один: «photoshop alternative» держался примерно на 80 процентах выше своего уровня в США пять дней после появления PhotoCraft. Мировой дневной ряд, который читает таблица, этого почти не показал: 2, 1, 1, 2, 4, 2. А вот дневной ряд по США из другого источника показал это отчётливо. Из этого следует, что нулевой показатель по мировому ряду не доказывает, что запрос не двигался.
- Надёжнее всего таблица сейчас отвечает на вопрос, какому существующему спросу служит новая вещь и насколько этот спрос большой. Для «ai image detector» это около 2 500 поисков в день. А вот вырастут ли общие запросы вслед за именами, покажет проверка через 14 дней, и результата пока нет.
- Для чистых релизов моделей вроде Claude Haiku 5.5 и Nano Banana 2.1 доказательства сводились к анонсам и бенчмаркам, и предложенные фразы получались слабыми, например «ai coding assistant». Инструмент работает лучше на продуктах и репозиториях, у которых одна понятная задача.
- Последние два дня в Google Trends не устоялись. Для несвязанных запросов они возвращались как 0, а затем как 100, что читается как резкий скачок. Первый проход обманул именно этим. Теперь каждый модуль чтения отбрасывает эти два дня, а рост должен продержаться два дня, чтобы засчитаться.
- Объёмы из Google Ads отстают примерно на два месяца. Google Trends не даёт ничего надёжного для запросов с несколькими сотнями поисков в месяц.
Отключить таблицу можно через "usecases": {"per_day": 0} или флагом --skip usecases.
Один ключ и второй необязательный
Всё, что нужно радару, идёт через один сервис — AIsa. Через него идут посты из X, данные Google Trends и по доменам, а также модели, которые судят имена и предлагают фразы. Один ключ, оплата по факту, никаких подписок на API X и DataForSEO.
Это реферальная ссылка: регистрация через неё поддерживает проект. С ключом откуда угодно на aisa.one радар работает точно так же.
Необязательный ключ GOANYAPI_API_KEY улучшает таблицу ключевых слов двумя способами примерно за 0.07 доллара в день. Он добавляет связанные запросы Google Trends для каждого имени и читает кривую имён и крупных общих запросов, а именно от 1 000 поисков в месяц и не больше восьми строк, по 30 дням дневных данных одной страны с отставанием в один день. Такие строки показывают страну после колонки «Now», например still rising (US). Без этого ключа таблица строится только из фраз, предложенных моделью, и из мирового ряда Google Trends.
Без ключа AIsa бесплатные сигналы всё равно работают: Hugging Face, GitHub, sitemap-файлы и Search Console. Отчёт в этом случае перечисляет все термины без сортировки, потому что никто не судит, где имя, а где обычное слово.
Быстрый старт
Нужен Python 3.10 или новее. Радар использует только стандартную библиотеку.
git clone https://github.com/zhuyansen/new-term-radar
cd new-term-radar
cp config.example.json config.json # then edit: X accounts, sitemaps, topics
export AISA_API_KEY=...
python -m radar daily --out report.md
Первый запуск строит снимки состояния. Снимков вчерашнего словаря X, счётчиков звёзд и адресов из sitemap-файлов ещё нет, поэтому в первый раз попадают только находки по GitHub, которым вчерашние данные не нужны. Начиная со второго запуска каждый сигнал показывает, что именно изменилось.
Дальше есть две команды:
python -m radar sources --out sources.md # signals 1 only: X and Hugging Face. Run every few hours
python -m radar daily --skip x,hf --out report.md # everything else, once a day
Команда sources пишет отчёт, только если появилось новое имя. Команда daily с --skip x,hf перечисляет то, что sources сохранил за последние 24 часа. Если запускать радар один раз в день, используйте python -m radar daily и ничего не пропускайте.
Остальные флаги: --skip принимает любой из списка x,hf,breakout,sitemaps,newsites,gsc,review,judge,usecases; --new-sites запускает еженедельный сигнал сегодня же; --mail отправляет отчёт по почте; --state DIR переносит базу и снимки.
Как выглядит отчёт
Вот реальный отчёт за 12 октября 2026 года, сокращённый:
### Кандидаты в новые термины (сначала имена; термины, которые вы уже покрываете, помечены)
| Термин | Сигналы | Оценка имени | Известен | Варианты запроса | Примеры |
| **gridcraft** | GitHub breakout storytold/gridcraft ★3178 (626/day) | 0.95 | нет | storytold gridcraft | GridCraft: open-source, cl… |
| **artex** | GitHub breakout mhtsec/ARTEX ★3353 (825/day) | 0.85 | нет | mhtsec artex, mht artex | Самостоятельная система penetration-тестирования на базе AI … |
Другие растущие термины (признаны обычными словами): anatomy, math, iphone use
### ⑤ Проверка (термины, о которых сообщили 14 дней назад: выросли ли они в Google Trends?)
| Термин | Первое сообщение | Вердикт | На сколько дней раньше |
| strata | 2026-09-25 | hit | 3 |
А вот так выглядит отчёт команды sources:
| **qwen image 2.1** | Hugging Face: new at #4, 2 versions | 1.00 | none | Qwen/Qwen-Image-2.1-Turbo (text-to-image, ♥569) |
| **ltx 2.5** | Hugging Face: new at #6 | 0.90 | none | Lightricks/LTX-2.5 (image-to-video, ♥7347) |
Команда daily рядом с Markdown кладёт ещё файл report.json со всем, из чего отчёт был собран.
Настройка config.json
Пример файла лежит в репозитории: config.example.json. Основные ключи:
| Ключ | Что это |
|---|---|
lang |
"en" или "zh", язык отчёта |
x_accounts |
Списки labs и bloggers: аккаунты X, которые нужно читать. Лаборатории первыми называют имена, а блогеры — те, через кого новые термины расходятся в вашей области |
sitemaps |
Сайты, новые страницы на которых вам интересны. Поле index указывает на sitemap-файл или на индекс sitemap-файлов, когда shards с регулярным выражением выбирает нужные. Поле pause задаёт паузу в секундах между запросами к сайту, а strip_locale убирает префиксы /en/, /zh-CN/, чтобы одна страница во многих языках считалась один раз |
topics |
Имя и регулярное выражение. Для каждой темы создаётся своя секция с находками, репозиториями и запросами, которые под неё подходят |
known_terms |
Термины, для которых у вас уже есть страница, или которые вы не хотите видеть. Находка, содержащая такой термин, помечается и не идёт в проверку |
stop_words |
Обычные слова вашей области, которые добавляются к встроенному списку |
judge |
Ключ model для любой чат-модели на AIsa и min_score, по умолчанию 0.5 |
breakout |
window_days, min_stars, velocity_min в звёздах в день и delta_min, то есть прирост звёзд за вчера |
new_sites |
queries со списком имён и шаблонов SQL LIKE для домена вида "%ai%", по одному платному запросу на каждый. Поле weekday, где 0 означает понедельник |
review |
after_days, по умолчанию 14, и per_day, то есть 5 находок в день |
usecases |
Настройки таблицы ключевых слов: per_day, где 0 выключает таблицу, model, эталонный запрос benchmark, min_volume, min_daily, recheck_days, работа с связанными запросами related, регион related_geo, страна country_trends, порог country_min_volume и country_max |
gsc |
Параметры site вида sc-domain:example.com и token_file. Пустой объект отключает сигнал |
Перед добавлением чужого sitemap-файла прочитайте robots.txt этого сайта и поставьте pause не меньше его crawl-delay. Пример конфигурации делает в сумме несколько десятков запросов в день с паузами между ними.
Search Console по желанию
pip install google-auth-oauthlib
python scripts/gsc_auth.py gsc_client.json # opens a browser once, writes gsc_token.json
Файл gsc_client.json — это OAuth-клиент типа «Desktop app» из Google Cloud Console, созданный в проекте с включённым Search Console API. Дальше в конфигурации задаётся "gsc": {"site": "sc-domain:your-site.com"}. Токен доступен только для чтения и остаётся на вашей машине, он уже указан в .gitignore.
Отправка отчёта по почте
Флаг --mail отправляет отчёт через Resend. Нужны переменные RESEND_API_KEY, EMAIL_FROM с адресом на домене, который там подтверждён, и RADAR_EMAIL_TO со списком получателей через запятую. Для HTML-версии поставьте pip install markdown.
Запуск на GitHub Actions
Файл .github/workflows/radar.yml запускает sources каждые 8 часов, а daily один раз в день. Состояние хранится в кэше Actions, а каждый отчёт попадает в сводку запуска. До вашего явного включения он ничего не делает:
- Сделайте форк репозитория, приватный тоже подойдёт.
- Уберите
config.jsonиз.gitignoreи закоммитьте свой конфиг. Секретов в нём нет. - Добавьте секрет
AISA_API_KEY. По желанию добавьтеGOANYAPI_API_KEY,RESEND_API_KEY,EMAIL_FROM,RADAR_EMAIL_TOиGSC_TOKEN_JSON. - Задайте переменную репозитория
RADAR_ENABLEDзначениеtrue.
Как отдельные части принимают решения
- Имена в постах в файле radar/terms.py. Берутся слова с заглавной буквы, слова с цифрой вроде
Qwen3.8и слова с заглавными буквами внутри вродеHyperFrames. Число после имени присоединяется к нему, получаетсяOpus 5.5. Имя, которое употребили два аккаунта, засчитывается сразу. Имя от одного аккаунта требует 100 лайков и должно однозначно быть именем, потому что слово с заглавной буквы часто просто начало предложения. - Всплески в sitemap-файлах. Считаются по разным адресам относительно собственного базового уровня сайта, поэтому одна страница с длинным адресом не может изобразить волну.
- Судья из файла radar/judge.py. Один запрос к чат-модели на 25 терминов, к каждому передаётся не больше трёх мест, где термин встретился. Если запрос не прошёл, отчёт всё равно уходит, но без сортировки.
- Проверка из файла radar/review.py. Вариант запроса считается выросшим, если его пик после дня, когда о нём сообщили, превышает собственный более ранний базовый уровень в 2 раза и на 10 пунктов. Слово с прежним значением вроде «strata», обозначающего слои породы или отношения собственности, имеет высокий базовый уровень и не засчитывается. А вот переход «niko1221 strata» из нуля во что-то засчитывается. Неустоявшиеся последние два дня Google Trends не учитываются.
Что уже измерено, а что ещё нет
- Судья имён на модели
gpt-4.1-miniпрогнали по 170 терминам, которые более ранняя версия судьи признала именами в ежедневной работе авторов. Он согласился со 149 из них. Из 21 отклонённого термина большинство были шумом, который ранняя версия пропустила, например фрагменты адресов из sitemap-файловio.github.wxt invoiceилиasd. Около трёх были настоящими именами, которые он пропустил:synthid detector,veo,v4.1 flash. Тест давал модели меньше контекста, чем бывает в реальном запуске. Из 40 обычных слов он не принял ни одного:dashboard,pricing,today. - Доля успешных попаданий по каждому сигналу ещё не измерена. Для проверки нужно 14 дней на находку, а собственные данные только начали копиться. Единственная проверка, запущенная вручную, Strata, оказалась попаданием за три дня до её роста в Google Trends. Собственный отчёт покажет ваши цифры по мере их накопления, а до этого любой сигнал стоит считать непроверенным.
- Сигнал X хорош ровно настолько, насколько хорош список аккаунтов. Он не увидит имя, которое не произносит ни один из ваших аккаунтов.
Известные проблемы
- Новые сайты, 12 октября 2026 года. Проверка в AIsa для
post_dataforseo_domains_whois_overview_liveсейчас отклоняет формат фильтра, который требует DataForSEO. Из-за этого сигнал выдаёт ошибку, а остальной отчёт работает нормально. До 6 октября всё работало. Чтобы убрать сообщение, добавьте--skip newsites, пока это не починят на стороне поставщика. - Встроенный список стоп-слов и очистка имён моделей из Hugging Face настроены под AI-модели и инструменты для агентов. Для другой области добавьте свои слова в
stop_words. - Объёмы поиска в отчёт не попадают. Радар сообщает, что имя новое. Проверяйте объём и первые результаты сами, прежде чем делать под него страницу.
Разработка и тесты
pip install pytest markdown
python -m pytest -q tests
Тесты покрывают логику: извлечение имён, оценку, хранилище и формирование отчётов. Сеть они не трогают.
Лицензия
MIT. Проект выделен из радара, который каждый день работает за сайтом agentskillshub.top.