Векторизация email-архивов: как найти нужное письмо за 3 года переписки
- Архивы
- Пайплайн


Векторизация email-архивов - это процесс преобразования корпоративной переписки в числовые представления (эмбеддинги), которые позволяют искать письма по смыслу, а не по точному совпадению ключевых слов. Если у вашей компании накопились гигабайты почты за три, пять или десять лет - вы знаете проблему: нужное письмо существует, вы помните суть обсуждения, но не можете его найти. Обычный поиск по ящику бесполезен, потому что вы не помните ни точных формулировок, ни даты, ни отправителя. Промолитика решает эту задачу с помощью пятиступенчатого пайплайна обработки, который превращает хаотичный архив в структурированную базу знаний с семантическим поиском.
Каждый, кто работал в корпоративной среде больше двух лет, сталкивался с ситуацией: нужно найти письмо с определёнными договорённостями, но ни встроенный поиск Gmail, ни поиск Outlook не помогают. Вы вводите слово «договор», а вам возвращаются тысячи результатов. Пробуете «договор поставки ООО Альфа» - ноль результатов, потому что в письме было написано «контракт на отгрузку», а контрагент упоминался как «Альфа-Трейд».
Это фундаментальное ограничение полнотекстового поиска: он работает с символами, а не со смыслом. Если вы помните суть обсуждения, но не помните конкретные слова - поиск бессилен. А ведь именно так работает человеческая память: мы запоминаем контекст, а не формулировки.
Масштаб проблемы впечатляет. Средний корпоративный сотрудник получает и отправляет около 120 писем в день. За три года это более 130 000 писем. За пять лет - более 200 000. Прибавьте вложения, цепочки пересылок, рассылки - и объём архива легко достигает 10-15 гигабайт. Искать что-то в этом массиве по ключевым словам - всё равно что искать иголку в стоге сена, тыкая вилами наугад.
Ситуация усугубляется тем, что почтовые клиенты не понимают структуру переписки. Одно обсуждение может быть разбросано по десяткам писем с разными темами. Ответы на пересланные сообщения теряют связь с оригинальной цепочкой. Вложения индексируются плохо или не индексируются вовсе.
Семантический поиск кардинально меняет подход к работе с архивом. Вместо того чтобы искать точные совпадения слов, система понимает смысл вашего запроса и находит письма, которые содержат ответ - даже если они сформулированы совершенно по-другому.
Вы пишете: «Какие условия мы согласовали с поставщиком оборудования в третьем квартале?» Система находит письмо, в котором написано: «По итогам переговоров с ТехноПром мы договорились о скидке 15% при заказе от 50 единиц, доставка за их счёт, оплата через 30 дней после отгрузки». Обычный поиск никогда бы не нашёл это письмо по запросу «условия поставщик оборудование», потому что ни одно из этих слов не встречается в тексте.
Это становится возможным благодаря векторизации - процессу, в котором каждое письмо преобразуется в числовой вектор, отражающий его семантическое содержание. Два текста с похожим смыслом оказываются «рядом» в многомерном векторном пространстве, и при поиске система находит ближайшие по смыслу фрагменты к вашему запросу.
Промолитика разработала специализированный конвейер для обработки email-архивов, который состоит из пяти последовательных этапов. Каждый этап решает конкретную задачу и критически важен для качества итогового результата. Мы обрабатываем архивы объёмом от нескольких гигабайт до 12 ГБ и более, поддерживая параллельную обработку для ускорения процесса.
Первый шаг - получение исходных данных. Чаще всего клиенты предоставляют экспорт из почтового ящика в формате mbox, который загружается через Google Drive или другое облачное хранилище. Формат mbox - стандарт для хранения email-архивов, его поддерживают Gmail (Google Takeout), Thunderbird, Apple Mail и большинство почтовых систем.
Для работы с большими архивами (более 1 ГБ) мы используем чанкинг на уровне файлов - разбиваем загрузку на порции по 500 МБ. Это позволяет обрабатывать архивы размером 12 ГБ и более без нагрузки на оперативную память и с возможностью возобновления при сбоях. Каждый чанк обрабатывается независимо, что открывает возможность параллельной загрузки.
На этапе парсинга конвейер извлекает из каждого письма структурированные данные: отправитель, получатели, копии, дата отправки, тема, тело письма (текст и HTML), вложения. Особое внимание уделяется обработке цепочек (threads) - система восстанавливает связи между письмами на основе заголовков In-Reply-To и References.
На этом же этапе работают фильтры для исключения нерелевантного контента. Спам, автоматические уведомления, маркетинговые рассылки, письма от no-reply адресов, системные оповещения - всё это создаёт шум, который ухудшает качество поиска. Мы применяем набор правил для фильтрации:
Также на этапе парсинга удаляются технические артефакты: HTML-теги, CSS-стили, подписи почтовых клиентов, блоки «Отправлено с iPhone», баннеры конфиденциальности и другие шаблонные фрагменты, которые не несут информационной ценности.
Это ключевой этап, который отличает наш подход от простой индексации. Сырой текст письма часто неструктурирован: обрывки цитат, нечитаемые форматирования, перемешанные реплики разных участников. Языковая модель анализирует каждое письмо (или цепочку писем) и преобразует его в чистый, структурированный текст.
Модель извлекает ключевые факты, решения, договорённости и задачи из переписки. Если обсуждение длилось пять писем, результатом будет компактное резюме с сохранением всех важных деталей: кто предложил, что согласовано, какие сроки установлены, какие вопросы остались открытыми.
Для обработки больших объёмов мы используем Batch API, который позволяет отправлять сотни запросов пакетами. Это даёт двукратное преимущество: скорость обработки возрастает за счёт параллельности (до 100 одновременных запросов), а стоимость снижается до 50% по сравнению с поштучной отправкой. Для архива из 50 000 писем это означает экономию в десятки тысяч рублей.
После реструктуризации каждый фрагмент текста преобразуется в числовой вектор с помощью модели эмбеддингов. Промолитика использует Voyage AI (модель voyage-4-large) с размерностью 2048 измерений. Это одна из наиболее точных моделей эмбеддингов на рынке, оптимизированная для задач семантического поиска по корпоративным документам.
Для обработки больших архивов мы запускаем до 30 параллельных контейнеров, каждый из которых генерирует эмбеддинги для своей порции данных. Это позволяет обработать десятки тысяч фрагментов за часы, а не за дни. Параллельная обработка особенно важна для архивов, превышающих 10 ГБ, где количество фрагментов после реструктуризации достигает сотен тысяч.
Каждый эмбеддинг сохраняется вместе с полным набором метаданных: идентификатор письма, отправитель, получатели, дата, тема, идентификатор цепочки. Эти метаданные критически важны для фильтрации результатов поиска - вы сможете ограничить поиск по дате, отправителю, теме или комбинации этих параметров.
Финальный этап - загрузка эмбеддингов и метаданных в специализированное векторное хранилище Turbopuffer. Мы выбрали Turbopuffer по нескольким причинам: высокая скорость поиска по косинусному сходству, поддержка фильтрации по метаданным на уровне движка (а не постфильтрация), масштабируемость до миллионов векторов и конкурентная стоимость хранения.
После загрузки данных система готова к использованию. Векторное хранилище оптимизировано для быстрого поиска: запрос преобразуется в эмбеддинг, сравнивается с миллионами фрагментов по косинусному сходству, и релевантные результаты возвращаются за миллисекунды с учётом фильтров по метаданным.
Корпоративные email-архивы бывают огромными. Мы регулярно работаем с архивами объёмом 5-12 ГБ, содержащими от 50 000 до 200 000 писем. Такие объёмы невозможно обработать «в лоб» - нужна продуманная архитектура параллельной обработки.
На каждом этапе пайплайна мы используем параллелизм. Загрузка идёт чанками по 500 МБ. Парсинг распределяется по нескольким процессам. Реструктуризация через Batch API обрабатывает до 100 писем одновременно. Генерация эмбеддингов работает в 30 параллельных контейнерах. Загрузка в Turbopuffer идёт батчами.
Для архива объёмом 12 ГБ полный цикл обработки занимает от нескольких часов до суток в зависимости от количества содержательных писем (после фильтрации спама и системных сообщений реальный объём обычно сокращается на 40-60%). Это одноразовый процесс - после индексации поиск работает мгновенно.
Архитектура пайплайна спроектирована с учётом отказоустойчивости. Каждый этап сохраняет промежуточные результаты, и при сбое обработка возобновляется с последнего успешного чекпоинта. Это критически важно для больших архивов, где полная переобработка может стоить значительного времени и денег.
Семантический поиск по содержанию письма - это мощный инструмент, но он становится по-настоящему полезным только в сочетании с метаданными. Для каждого фрагмента переписки Промолитика сохраняет полный набор контекстной информации:
Комбинация семантического поиска и метаданных позволяет формулировать сложные запросы: «Что обсуждали с поставщиками в январе-феврале по теме закупки оборудования?» Система одновременно ищет по смыслу (закупка оборудования, даже если в письмах это называлось «приобретение техники» или «заказ станков») и фильтрует по дате (январь-февраль) и типу контрагента (поставщики).
После индексации архива пользователи получают доступ к мощному инструменту поиска, который кардинально отличается от встроенного поиска почтовых клиентов. Вот основные сценарии использования.
Самый востребованный сценарий. Вы описываете, что ищете, своими словами - система находит релевантные письма независимо от формулировок. Запрос «обсуждение условий оплаты с новым клиентом» найдёт письмо «Здравствуйте! По поводу расчётов за первую поставку предлагаем предоплату 30%, остаток - по факту получения товара».
Если вы помните, с кем вели переписку, но не помните тему - можно ограничить поиск по адресу или имени отправителя. Это существенно сужает выборку и повышает точность результатов.
Временные рамки - один из наиболее частых фильтров. «Что обсуждали в прошлом квартале?», «Найди переписку за декабрь 2024», «Все письма за последние полгода про проект Восток» - дата как ограничитель работает в сочетании с семантическим поиском.
Вы можете искать только по письмам с определённой темой или содержащим определённые слова в заголовке. Это полезно, когда вы помните, что обсуждение шло в ветке с конкретным названием.
Максимальная точность достигается при комбинировании семантического запроса с метаданными: «Какие скидки мы давали клиентам из Новосибирска в первом полугодии?» - поиск по смыслу (скидки, специальные условия) плюс фильтрация по дате (первое полугодие) и содержанию (упоминание Новосибирска).
Email-архивы содержат чувствительную информацию: персональные данные сотрудников и клиентов, коммерческие условия, внутренние обсуждения. Безопасность при обработке таких данных - абсолютный приоритет.
Промолитика обеспечивает защиту на всех уровнях пайплайна:
Для компаний с особыми требованиями к безопасности мы предлагаем вариант развёртывания пайплайна в инфраструктуре клиента (on-premise), когда данные никогда не покидают периметр организации.
Качество поиска напрямую зависит от качества индекса. Если проиндексировать всё подряд - включая спам, уведомления от сервисов, маркетинговые рассылки и автоматические отчёты - результаты поиска будут засорены нерелевантными фрагментами. Поэтому фильтрация - критически важный этап.
Наш конвейер применяет многоуровневую систему фильтрации:
Эффективная фильтрация обычно сокращает объём индексируемых данных на 40-60%. Архив из 150 000 писем после фильтрации может содержать 60 000-90 000 содержательных сообщений. Это не только улучшает качество поиска, но и значительно снижает стоимость обработки - ведь каждое письмо проходит через этап реструктуризации с использованием языковой модели.
Семантический поиск по email-архиву решает множество бизнес-задач, которые раньше требовали часов ручной работы или оставались нерешёнными. Вот реальные сценарии из практики наших клиентов.
Менеджер ведёт переговоры с клиентом, который упоминает: «Мы же в прошлом году обсуждали специальные условия». Менеджер не помнит деталей. Раньше он тратил бы час на перебор писем, а сейчас вводит запрос: «Специальные условия для компании ТехноПром» - и за секунду получает выдержку из переписки годичной давности с конкретными цифрами и условиями.
Руководитель проекта пытается вспомнить, почему было принято определённое техническое решение. Запрос: «Почему выбрали PostgreSQL вместо MySQL для проекта Восток» - находит цепочку писем с обсуждением, где архитектор перечислял аргументы «за» и «против» каждого варианта.
Новый менеджер принимает дела от ушедшего коллеги. Ему нужно быстро войти в курс дела по каждому клиенту. Запрос: «Вся переписка с ООО Южный Ветер за последний год» - выдаёт хронологическую сводку всех обсуждений, решений и незакрытых вопросов.
Юридический отдел проверяет, были ли согласованы определённые условия контракта. Запрос: «Согласование условий возврата и гарантийных обязательств» - находит всю цепочку обсуждения, включая финальное подтверждение.
Перед важной встречей с партнёром нужно освежить в памяти все предыдущие обсуждения. Запрос: «Ключевые обсуждения с Альфа-Банк за 2025 год» - формирует компактную сводку всех тем, которые поднимались в переписке.
Для технических специалистов приведём дополнительные детали реализации.
Пайплайн реализован на бессерверной инфраструктуре с автоматическим масштабированием. Каждый этап - это отдельная функция, которая может масштабироваться независимо. При обработке крупного архива система автоматически увеличивает количество параллельных процессов, а после завершения - освобождает ресурсы.
Модель эмбеддингов Voyage AI voyage-4-large выбрана не случайно. Размерность 2048 обеспечивает высокую точность семантического сходства для длинных текстов, что критично для email-переписок. В сравнительных тестах на наших данных voyage-4-large показывает на 12-15% лучший recall по сравнению с моделями размерностью 768 и 1024.
Turbopuffer как векторное хранилище поддерживает фильтрацию по метаданным на уровне индекса - это значит, что фильтрация по дате или отправителю не замедляет поиск, в отличие от решений, где фильтрация выполняется после основного поиска. Для архивов с сотнями тысяч фрагментов это даёт кратный выигрыш в скорости.
Batch API для реструктуризации позволяет обрабатывать до 100 запросов параллельно, при этом стоимость каждого запроса снижается на 50% по сравнению со стандартным API. Для архива из 80 000 писем это сокращает расходы на десятки тысяч рублей.
На рынке существуют различные подходы к поиску по корпоративной переписке. Разберём их ограничения в сравнении с семантической векторизацией.
Внедрение семантического поиска по email-архиву - это проект с чётко определёнными этапами и прогнозируемыми сроками.
Типичный проект от первого контакта до рабочего прототипа занимает 2-4 недели. Стоимость зависит от объёма архива, количества пользователей и требований к интеграциям. Свяжитесь с нами через Telegram-бот Промолитики или оставьте заявку на сайте - мы проведём бесплатную консультацию и оценим ваш проект.
