Разработчик опубликовал 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-фильтрами в одном запросе.
- Попробуйте «синтетический плюрализм»: прогоните один документ через две разные модели, сравните расхождения в тематике и тональности — это само по себе аналитика качества ваших текстов.