Информационный шум убивает. Пора с этим что-то делать
Вы подписаны на 50 RSS-лент, 20 телеграм-каналов и еще пару десятков рассылок. Каждый день - сотни статей, новостей, постов. 95% из них - вода, повторение или просто нерелевантный шум. Вы тратите час в день на скроллинг, чтобы найти три стоящих материала. Знакомо? Я тоже так жил. Пока не собрал систему, которая делает это за меня.
Сегодня расскажу, как построить персонального AI-ассистента, который не просто фильтрует информацию, но и учится на ваших реакциях. Систему, которая через месяц работы знает ваши интересы лучше, чем вы сами. Без хайпа, только рабочий стек и архитектура, которую можно собрать за выходные.
Важный нюанс: мы говорим о системе с обратной связью. Простой RAG (Retrieval-Augmented Generation) - это вчерашний день. Наша система должна запоминать, что вам понравилось, что пропустили, на что кликнули. И корректировать фильтрацию. Иначе получится просто умный спам-фильтр.
Архитектура: три слоя и петля обратной связи
Вот как выглядит система, если нарисовать на салфетке:
| Слой | Что делает | Технологии |
|---|---|---|
| Сбор и предобработка | Забирает контент из всех источников, чистит HTML, извлекает текст | n8n, Python (BeautifulSoup, Readability), RSS парсеры |
| Анализ и фильтрация | Векторизация, сравнение с профилем интересов, оценка релевантности | GPT-4o, Qdrant/Weaviate, Sentence Transformers |
| Доставка и обратная связь | Отправка в Telegram/Email, сбор реакций, обновление профиля | Telegram Bot API, n8n Webhooks, База данных для логов |
Ключевой элемент - петля обратной связи. Каждый ваш клик, каждая прочитанная до конца статья, каждый пропущенный материал - это сигнал для системы. Эти данные идут обратно в векторную базу и корректируют ваш "профиль интересов". Через пару недель система начинает предлагать материалы, о которых вы сами еще не знали, что они вам интересны.
Стек 2026 года: что выбрать и почему
Технологии меняются каждый квартал. Вот что актуально на февраль 2026 и будет работать еще год-два.
1Оркестратор: n8n против традиционных подходов
Многие начинают с Python-скриптов. Через месяц получают спагетти из cron-задач и непонятных зависимостей. n8n - это визуальный оркестратор, который позволяет собрать весь пайплайн как конструктор. И самое главное - видеть, где что сломалось.
Почему именно n8n в 2026:
- Бесплатная самодостаточная версия (не нужно платить за каждый узел, как в некоторых других)
- Нативная работа с AI моделями через OpenRouter и другие провайдеры
- Встроенные ноды для RSS, HTTP-запросов, баз данных
- Простая отладка - видишь весь поток данных между нодами
2Модель: GPT-4o или что-то поменьше?
GPT-4o (на февраль 2026 это все еще актуальная модель от OpenAI) отлично справляется с анализом текста. Но она дорогая. Для простой классификации "интересно/не интересно" можно использовать более дешевые модели.
Мой стек моделей:
- Для извлечения сути: GPT-4o-mini. Дешевле, но достаточно умная для summarization
- Для классификации: Mistral Large 2 через OpenRouter. Точность сравнима с GPT-4, цена в 3 раза ниже
- Для эмбеддингов (векторизации): text-embedding-3-small. Новейшая модель от OpenAI на 2026 год, дает 1536-мерные эмбеддинги с улучшенной точностью
Не используйте одну модель для всего. Это как забивать гвозди микроскопом - дорого и неэффективно.
3Векторная БД: Qdrant выигрывает у Pinecone
В 2024 все кричали про Pinecone. В 2025 - про Weaviate. На февраль 2026 мой выбор - Qdrant. Почему?
- Можно развернуть локально (не нужно платить за облачный инстанс)
- REST API проще, чем у конкурентов
- Есть встроенная поддержка фильтров по метаданным (дата, источник, теги)
- Хорошая документация на русском (редкость для opensource проектов такого уровня)
Ошибка новичков: хранить в векторной БД полный текст статей. Не делайте так. Храните только эмбеддинги и метаданные (id, заголовок, дата, источник). Сам текст - в обычной PostgreSQL или даже в файловой системе. Иначе размер базы взлетит до небес.
Собираем систему: пошаговый план
1Этап 1: Настраиваем сбор данных
Создаем в n8n workflow, который будет запускаться каждый час:
// Пример ноды Function в n8n для обработки RSS
const feeds = [
'https://habr.com/ru/rss/all/all/',
'https://news.ycombinator.com/rss',
'https://martinfowler.com/feed.atom'
];
const articles = [];
for (const feedUrl of feeds) {
const feedItems = await $axios.get(feedUrl);
// Парсим RSS/Atom
// Очищаем HTML от мусора
// Извлекаем чистый текст
articles.push(...processedItems);
}
return articles;
Используйте библиотеку readability-lxml или trafilatura для очистки HTML. Не изобретайте велосипед - эти библиотеки уже решают 90% проблем с парсингом.
2Этап 2: Векторизация и сравнение
Каждую статью превращаем в вектор (эмбеддинг) и сравниваем с вашим "профилем интересов". Профиль - это просто набор векторов статей, которые вы ранее одобрили.
# Python скрипт для векторизации (запускаем из n8n через Execute Command)
from openai import OpenAI
import qdrant_client
client = OpenAI(api_key="your-key")
qdrant = qdrant_client.QdrantClient(host="localhost", port=6333)
# Генерируем эмбеддинг для статьи
def get_embedding(text):
response = client.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding
# Ищем похожие статьи в профиле пользователя
def find_similar(embedding, user_id):
results = qdrant.search(
collection_name=f"user_{user_id}_profile",
query_vector=embedding,
limit=5
)
# Среднее значение похожести - наша оценка релевантности
avg_score = sum(r.score for r in results) / len(results)
return avg_score
3Этап 3: Интеллектуальная фильтрация с LLM
Векторное сходство - это хорошо, но недостаточно. Статья может быть похожа по словам, но не по смыслу. Здесь подключаем LLM.
Создаем prompt для классификации:
prompt = f"""
Ты - персональный ассистент пользователя.
Оцени, насколько эта статья будет ему интересна (от 1 до 10).
Профиль интересов пользователя:
{user_interests_summary}
Статья:
Заголовок: {article_title}
Краткое содержание: {article_summary}
Темы: {article_topics}
Верни ТОЛЬКО число от 1 до 10 и краткое обоснование через дефис.
Пример: 8 - статья про новые возможности Python, а пользователь пишет на Python
"""
Комбинируем оценку от LLM с векторным сходством. Например: итоговый_score = 0.7 * llm_оценка + 0.3 * векторное_сходство.
4Этап 4: Доставка и сбор фидбека
Лучший канал доставки - Telegram. Почему не email? Потому что в Telegram можно сразу получить обратную связь через кнопки.
Настраиваем бота:
# Отправляем статью в Telegram с inline-кнопками
import telebot
bot = telebot.TeleBot("TOKEN")
keyboard = telebot.types.InlineKeyboardMarkup()
keyboard.add(
telebot.types.InlineKeyboardButton("👍 Интересно", callback_data=f"like_{article_id}"),
telebot.types.InlineKeyboardButton("👎 Не интересно", callback_data=f"dislike_{article_id}"),
telebot.types.InlineKeyboardButton("💾 Сохранить", callback_data=f"save_{article_id}")
)
bot.send_message(
chat_id=user_id,
text=f"{article_title}\n\n{article_summary}\n\nОценка системы: {score}/10",
reply_markup=keyboard
)
Каждый клик по кнопке - это сигнал для системы. Сохраняем его в базу и периодически (раз в день) пересчитываем профиль пользователя.
Петля обратной связи: как система учится
Вот где магия. Система не просто фильтрует - она адаптируется. Механизм обучения:
- Пользователь нажимает "👍" на статью про Rust
- Система берет эмбеддинг этой статьи и добавляет в коллекцию "положительных" векторов пользователя
- При следующем поиске система ищет статьи, похожие на ВСЕ положительные векторы (усредненный поиск)
- Если пользователь несколько раз игнорирует статьи про JavaScript, система добавляет их в "негативные" векторы и понижает вес похожих материалов
Через 2-3 недели такой обратной связи система начинает предлагать материалы, которые вы бы сами нашли только через глубокий поиск.
Важно: не переобучайте систему на каждом клике. Собирайте фидбек пачками и раз в день обновляйте профиль. Иначе сегодня вам понравилась статья про космос (вы просто зашли с ребенком), а завтра система завалит вас астрофизикой.
Типичные ошибки (учитесь на моих костылях)
Я собрал эту систему три раза с нуля. Вот что не работает:
- Хранить весь текст в Qdrant. База раздувается до сотен гигабайт. Храните только эмбеддинги и ссылки на оригинал.
- Использовать одну LLM для всего. GPT-4o для summarization каждой статьи - это $500 в месяц. Используйте каскад: маленькая модель для summarization, большая - только для сложной классификации.
- Игнорировать метаданные. Дата публикации, автор, источник - это важные сигналы. Я не хочу видеть статьи 2015 года, даже если они релевантны.
- Делать систему черным ящиком. Всегда показывайте пользователю, почему статья была рекомендована. "Похоже на ваши сохраненные материалы про микросервисы" - так пользователь понимает логику и доверяет системе.
Еще одна ошибка - пытаться сразу сделать идеальную систему. Начните с одного источника (например, Hacker News), одной модели классификации и простого Telegram-бота. Когда это заработает - добавляйте остальное.
А что насчет комплаенса и приватности?
Если вы в России и работаете с персональными данными (а профиль интересов - это ПДн), нужно помнить про ФСТЭК 117 и Указ 490. Вкратце:
- Храните эмбеддинги и историю действий на серверах в РФ
- Используйте шифрование при передаче данных
- Дайте пользователю возможность экспортировать все свои данные и удалить аккаунт
- Не используйте cloud-сервисы AI без договора оффшоринга (если у вас российские пользователи)
Для персонального использования можно закрыть глаза на часть требований. Но если делаете систему для компании - изучите тему заранее.
Куда развивать систему дальше?
Базовая система работает. Что дальше? Вот идеи:
- Добавьте суб-агентов для разных типов контента. Один агент анализирует технические статьи, другой - новости, третий - исследования. Как это сделать - смотрите в гайде по суб-агентам.
- Внедрите BPMN для управления бизнес-процессами фильтрации. Когда система станет сложной, визуальная нотация поможет не запутаться. Мы разбирали этот подход в статье про AI-агентов против веб-форм.
- Экспериментируйте с архитектурой. RAG - это только начало. В 2026 уже появляются более интересные подходы. Дорожная карта для AI-разработчика подскажет, куда смотреть.
Можно пойти дальше и сделать систему, которая не только фильтрует, но и генерирует контент на основе найденного. Если интересно - посмотрите курс "AI-креатор: создаём контент с помощью нейросетей" (партнерская ссылка).
Сколько это стоит и стоит ли овчинка выделки?
Давайте посчитаем на февраль 2026:
- VPS для n8n и Qdrant: $10-20/месяц
- OpenAI API (GPT-4o-mini + эмбеддинги): $30-50/месяц при активном использовании
- Время на настройку: 2-3 выходных
Итого: $40-70 в месяц и пара выходных. Что вы получаете? 1-2 часа ежедневно, которые раньше тратили на скроллинг. 10-20 качественных материалов в день вместо 100 случайных. Систему, которая понимает ваши интересы и развивается вместе с вами.
Самое ценное - не время, а внимание. Современный интернет борется за ваше внимание, рассеивает его, дробит на тысячу кусочков. Эта система - ваш личный щит. Она возвращает контроль над тем, что попадает в ваш мозг.
Попробуйте собрать минимальную версию. Хотя бы для одного источника. Когда увидите первую статью, которую система нашла для вас (и вы бы сами ее никогда не нашли) - поймете, что игра стоит свеч.
А если система начнет генерировать слишком много технического долга (спойлер: начнет), у нас есть отдельный гайд по борьбе с этим.