← Все статьи
2026-05-19 10:04 · 🌐 СНГ (tech/AI)

RAG умнее: как LLM превращает тексты в структурированную базу

Классический RAG ищет по похожести фрагментов — но не понимает жанр, тональность, аудиторию или тему документа. Российский разработчик выложил в открытый доступ инструмент, который заставляет LLM генерировать богатые метаданные по каждому документу и сохранять их в DuckDB — и показал это на 13 275 статьях Хабра.

RAG умнее: как LLM превращает тексты в структурированную базу

Разработчик опубликовал open-source проект text-metadata-generator, реализующий гибридный подход к индексации документов: LLM анализирует каждый текст и возвращает структурированный JSON с резюме, темами, тональностью, жанром, ключевыми словами, признаком NSFW и даже анализом демагогических приёмов. Всё это сохраняется в DuckDB вместе с эмбеддингами, что открывает комбинированный поиск — семантика плюс SQL-предикаты.

Контекст

RAG — Retrieval-Augmented Generation — де-факто стандарт для работы с корпоративными знаниями. Вы разбиваете документы на чанки, считаете эмбеддинги, при запросе ищете ближайшие векторы и передаёте их в модель. Работает. Но у классического RAG есть слепое пятно: он не знает, что документ — сатира, что его аудитория — начинающие разработчики, что тональность смешанная, а главная тема — «противостояние личности и системы». Всё это теряется при нарезке на чанки.

Подход text-metadata-generator — другой. Вместо того чтобы просто векторизовать сырой текст, инструмент прогоняет каждый документ через LLM с жёсткой JSON-схемой на выходе. Результат проходит валидацию и ложится в базу как структурированные поля. Итог: можно делать запросы вида «найди технические статьи с негативной тональностью, рейтингом выше 50 и жанром opinion» — обычный SQL поверх семантического поиска.

Автор демонстрирует подход на коллекции из 13 275 статей Хабра за 2023 год (без корпоративных блогов), а также на текстах песен — Nautilus Pompilius, Jonathan Coulton, The Beatles. Это не случайный выбор: на разношёрстных данных хорошо видно, насколько гибко LLM извлекает смысл, жанр и аудиторию из принципиально разных типов контента.

Аналитика

За этим проектом стоит более широкий тренд: смещение от «найти похожий кусок текста» к «понять, что именно написано». Классический векторный поиск хорош для семантической близости, но плохо работает там, где нужна фильтрация по смыслу высокого уровня. Комбинация структурированных LLM-метаданных + векторных эмбеддингов + SQL закрывает этот пробел — и это именно то, что корпоративные RAG-системы делают вручную через кастомные пайплайны за большие деньги.

Важен и технический выбор: DuckDB как хранилище — это аналитическая OLAP-база, заточенная под агрегации и фильтрации по колонкам. В связке с эмбеддингами она даёт возможность не просто искать документы, но и делать аналитику по коллекции: распределение жанров, корреляция рейтинга с тональностью, частота NSFW-признака по категориям. Это инструмент не только для поиска, но и для исследования корпуса.

Синтетический плюрализм мнений — отдельная идея из статьи: один и тот же документ можно прогнать через несколько разных LLM и получить набор «точек зрения». Для аналитики это ценно: разные модели расставляют акценты по-разному, и агрегация этих интерпретаций даёт более объёмную картину, чем одна модель. Применительно к бизнес-документам — потенциально мощный инструмент для контент-аудита или конкурентного анализа.

Кейсы применения в бизнесе

B2B-SaaS стартап с базой знаний. Если у вас накоплено несколько тысяч тикетов поддержки, внутренних документов или статей — классический RAG найдёт «похожее», но не скажет «вот все жалобы с негативной тональностью за последний квартал» или «вот документы, адресованные новичкам». Внедрение text-metadata-generator поверх существующей базы даёт аналитику по тональности, жанру и теме — без ручной разметки. Ожидаемый результат: сокращение времени на контент-аудит в разы, новые срезы для product-команды.

Корпорация с legacy-архивом документов. Тысячи PDF, внутренних регламентов, протоколов совещаний — всё это лежит мёртвым грузом. Структурированная LLM-индексация позволяет превратить архив в аналитический актив: найти все документы по определённой теме, отфильтровать по дате и жанру, выявить противоречия между регламентами. Пайплайн: pandoc для конвертации → LLM для метаданных → DuckDB для хранения и запросов.

SMB и локальный бизнес в КР/СНГ. Небольшая компания с базой клиентских обращений или отзывов в мессенджерах может использовать подход для автоматической классификации: тональность, тема, срочность. Это не требует дорогой инфраструктуры — DuckDB работает на одном сервере, LLM-вызовы можно маршрутизировать через OpenRouter с недорогими моделями. Порог входа — несколько тысяч долларов в разработку, окупаемость — ускорение обработки обращений и аналитика по клиентскому опыту.

Кейсы в личной жизни

Разработчик с Obsidian-хаосом. Сотни заметок, накопленных за годы, — и поиск по ключевым словам уже не справляется. text-metadata-generator можно направить на папку с Markdown-файлами: LLM проставит темы, жанры, уровень сложности. После этого — семантический поиск с SQL-фильтрами. Найти «все заметки по архитектуре, написанные в жанре opinion, с негативной тональностью» становится одним запросом.

Контент-мейкер и исследователь. Если вы собираете материал для статей или видео — структурированная индексация источников позволяет быстро находить нужные углы: «все источники по теме X с жанром academic» или «материалы с противоречивыми утверждениями». Признак demagoguery analysis из схемы помогает отфильтровать манипулятивные тексты ещё на этапе отбора.

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

Как применить сегодня

  • Склонируйте text-metadata-generator с GitHub, изучите пример JSON-схемы из статьи — она покрывает title, summary, meaning, topics, sentiment, genre, target_audience, demagoguery.
  • Используйте pandoc для конвертации HTML/PDF в Markdown перед подачей в LLM — это снижает шум и количество токенов.
  • Начните с небольшого корпуса (100–500 документов), подберите дешёвую модель через OpenRouter (например, Qwen или Gemini Flash) для первичной классификации, дорогую — только для сложных полей.
  • Храните результаты в DuckDB вместе с эмбеддингами — это даст возможность комбинировать семантический поиск с SQL-фильтрами в одном запросе.
  • Попробуйте «синтетический плюрализм»: прогоните один документ через две разные модели, сравните расхождения в тематике и тональности — это само по себе аналитика качества ваших текстов.
← Все статьи