AI-система для фильтрации информации: архитектура, n8n, LLM, векторная БД | AiManual
AiManual Logo Ai / Manual.
22 Фев 2026 Гайд

Ваш личный AI-фильтр: как перестать читать мусор и не пропустить важное

Пошаговый гайд по созданию персональной AI-системы для фильтрации RSS, новостей и статей с обратной связью. Стек: n8n, GPT-4o, Qdrant. Актуально на 2026 год.

Информационный шум убивает. Пора с этим что-то делать

Вы подписаны на 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-запросов, баз данных
  • Простая отладка - видишь весь поток данных между нодами
💡
Если вы уже работаете с Java/Kotlin в enterprise, не пытайтесь запихнуть эту систему в свой основной стек. Это отдельный сервис. В статье "Интеграция AI в Java/Kotlin проекты" мы разбирали, как правильно разделять ответственность.

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 * векторное_сходство.

💡
Не заставляйте LLM делать всю работу. Это дорого и медленно. Используйте каскадный подход: сначала быстрая векторная фильтрация (отсеивает 80% мусора), потом LLM анализирует оставшиеся 20%. Так система будет работать в режиме реального времени, а не раз в сутки.

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
)

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

Петля обратной связи: как система учится

Вот где магия. Система не просто фильтрует - она адаптируется. Механизм обучения:

  1. Пользователь нажимает "👍" на статью про Rust
  2. Система берет эмбеддинг этой статьи и добавляет в коллекцию "положительных" векторов пользователя
  3. При следующем поиске система ищет статьи, похожие на ВСЕ положительные векторы (усредненный поиск)
  4. Если пользователь несколько раз игнорирует статьи про JavaScript, система добавляет их в "негативные" векторы и понижает вес похожих материалов

Через 2-3 недели такой обратной связи система начинает предлагать материалы, которые вы бы сами нашли только через глубокий поиск.

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

Типичные ошибки (учитесь на моих костылях)

Я собрал эту систему три раза с нуля. Вот что не работает:

  • Хранить весь текст в Qdrant. База раздувается до сотен гигабайт. Храните только эмбеддинги и ссылки на оригинал.
  • Использовать одну LLM для всего. GPT-4o для summarization каждой статьи - это $500 в месяц. Используйте каскад: маленькая модель для summarization, большая - только для сложной классификации.
  • Игнорировать метаданные. Дата публикации, автор, источник - это важные сигналы. Я не хочу видеть статьи 2015 года, даже если они релевантны.
  • Делать систему черным ящиком. Всегда показывайте пользователю, почему статья была рекомендована. "Похоже на ваши сохраненные материалы про микросервисы" - так пользователь понимает логику и доверяет системе.

Еще одна ошибка - пытаться сразу сделать идеальную систему. Начните с одного источника (например, Hacker News), одной модели классификации и простого Telegram-бота. Когда это заработает - добавляйте остальное.

А что насчет комплаенса и приватности?

Если вы в России и работаете с персональными данными (а профиль интересов - это ПДн), нужно помнить про ФСТЭК 117 и Указ 490. Вкратце:

  • Храните эмбеддинги и историю действий на серверах в РФ
  • Используйте шифрование при передаче данных
  • Дайте пользователю возможность экспортировать все свои данные и удалить аккаунт
  • Не используйте cloud-сервисы AI без договора оффшоринга (если у вас российские пользователи)

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

Куда развивать систему дальше?

Базовая система работает. Что дальше? Вот идеи:

  1. Добавьте суб-агентов для разных типов контента. Один агент анализирует технические статьи, другой - новости, третий - исследования. Как это сделать - смотрите в гайде по суб-агентам.
  2. Внедрите BPMN для управления бизнес-процессами фильтрации. Когда система станет сложной, визуальная нотация поможет не запутаться. Мы разбирали этот подход в статье про AI-агентов против веб-форм.
  3. Экспериментируйте с архитектурой. 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 случайных. Систему, которая понимает ваши интересы и развивается вместе с вами.

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

Попробуйте собрать минимальную версию. Хотя бы для одного источника. Когда увидите первую статью, которую система нашла для вас (и вы бы сами ее никогда не нашли) - поймете, что игра стоит свеч.

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