Теги — штука полезная ровно до момента, когда надо расставить их вручную. Пишешь статью, увлечён идеей, а потом сидишь и думаешь: это monitoring или observability? ai или programming? Скучно, и поэтому теги постепенно расползаются.
Я решил отдать рутину машине — но так, чтобы это не стоило как отдельный проект.
Идея
При публикации статья уходит в LLM, и она предлагает теги. Ключевое правило: авторские теги всегда главнее. Модель не переписывает мою разметку, а только дополняет её — ставит те, которых я не поставил.
Чтобы теги не разъезжались, я не даю модели свободу выдумывать: в промпт подставляется наш словарь уже существующих тегов, и ответ должен быть только из него. Так разметка остаётся согласованной, а не превращается в облако из синонимов.
Дёшево по дизайну
Задача маленькая, поэтому и решение максимально экономное:
- модель
yandexgpt-lite— самая лёгкая и дешёвая; - текст статьи обрезается перед отправкой (первые ~1500 символов);
temperature 0и маленькийmaxTokens— короче ответ, меньше токенов;- кэш по хэшу текста — статью не оценивают дважды;
- вызов идёт в фоне, публикация не ждёт модель.
Плюс в редакторе есть кнопка «предложить»: можно запросить подсказку вручную и, если нравится, оставить.
Отдельная подсветка
Теги, которые поставила LLM, хранятся отдельно от авторских и показываются другим контуром — тонкой линией фирменного фиолетового из Yandex AI Studio. Сразу видно, где мой выбор, а где машинный. Если тег от модели не нравится — он и не мешает: это отдельная сущность, её легко убрать.
Тег как связка
Из этой истории выросла ещё одна вещь. Раньше разделы песочницы ссылались на блог «вообще». Теперь у каждого модуля — свой уникальный тег, и карточка ведёт прямо на статью, где этот модуль обсуждается. Один тег — одна статья, никаких общих подборок.
Как подключить Yandex AI Studio
Само подключение оказалось простым — всё живёт в AI Studio.
- В каталоге Yandex Cloud создаётся сервисный аккаунт и ему выдаётся роль
ai.languageModels.user. - Для этого аккаунта выпускается API-ключ.
- Приложению передаются три переменные:
YC_FOLDER_ID,YC_API_KEYи модель (YC_LLM_MODEL, у меняyandexgpt-lite). - Запрос идёт на
https://llm.api.cloud.yandex.net/foundationModels/v1/completionсmodelUri: gpt://<folder_id>/yandexgpt-lite/latestи заголовкомAuthorization: Api-Key <ключ>.
Ключи я держу только в серверном .env — в репозиторий они не попадают. Секрет показан один раз при создании, так что первым делом он едет в менеджер паролей.
Всю связку я отметил на схеме: страница архитектуры теперь показывает Yandex AI Studio и поток «публикация → LLM → автотеги».
Что понял
LLM не нужно применять «большими мазками». Иногда она полезна в очень узкой роли: не писать текст, а классифицировать его по уже заданному словарю. Дёшево, локально по смыслу и незаметно в потоке — а рутина уходит.
Оговорки остаются: текст статьи уходит в облако Яндекса, и это платно (пусть и копейки на lite). Но за то, чтобы теги перестали быть рутиной, цена кажется честной.
Загрузка…