AI-ассистент для сотрудников: Telegram, память проектов и RAG-поиск
AI-ассистент · Telegram · RAG · Project Memory · Qdrant
AI-ассистент для сотрудников с памятью по проектам и поиском по перепискам
Разработал внутреннюю AI-платформу, которая собирает рабочие данные из Telegram, документов, почты и облачных хранилищ, связывает их с проектами и помогает сотруднику быстро находить решения, задачи, доступы и историю договорённостей.
Ассистент работает не как отдельный чат. За ним находится база знаний, проектная память, гибридный поиск, фоновые обработчики и правила безопасности. Ответы формируются по фактам из конкретного проекта и сопровождаются сообщениями-источниками.
Задача проекта
В рабочих переписках ежедневно появляются решения, задачи, ссылки, контакты и технические детали. Через несколько недель важный факт сложно найти, а состояние проекта приходится восстанавливать по сообщениям вручную.
Собрать знания
Объединить переписки, файлы, письма и документы в едином контуре.
Сохранить контекст проекта
Связать сообщения с проектами, задачами, решениями, контактами, доменами и репозиториями.
Упростить поиск
Позволить сотруднику задавать вопрос обычным языком прямо в Telegram.
Не раскрывать секреты
Маскировать пароли, токены и API-ключи до AI-анализа и перед выводом ответа.
Главная идея
Платформа состоит из двух связанных уровней. База знаний хранит и индексирует отдельные материалы. Проектная память собирает из них текущее состояние проекта.
Сотруднику нужен не список найденных сообщений, а подтверждённый ответ с пониманием проекта и ссылками на первоисточники.
Поэтому система сохраняет как исходный контент, так и извлечённые сущности. В результате один вопрос может учитывать переписку, документы, задачи, последние решения и метаданные проекта.
Какие данные подключены
Telegram
Личные диалоги и выбранные рабочие чаты, включая историю сообщений и связь с проектом.
Почта
Письма из IMAP-ящиков, папки, отправители, получатели и текст поддерживаемых вложений.
Google Docs
Текст всех вкладок документа, версия файла и автоматическое обновление изменённых материалов.
Яндекс.Диск
Выбранные каталоги и поддерживаемые файлы с периодической проверкой изменений.
Файлы и аудио
TXT, Markdown, PDF, DOCX, таблицы и аудиозаписи с транскрибацией.
Webhooks и API
PLAUD, внешние интеграции, ручное добавление материалов и Custom GPT Actions.
Как сообщение становится знанием
-
Сбор сообщения
Telegram collector или персональный бот принимает сообщение и сохраняет его с автором, датой, идентификатором диалога и связью с ответом.
Collector · Webhook · Deduplication
-
Привязка к проекту
Выбранный диалог связывается с существующим проектом или создаёт новый проект по команде сотрудника.
Project · Chat · Contact
-
Маскирование чувствительных данных
Перед AI-обработкой система скрывает пароли, токены, API-ключи, заголовки авторизации и приватные ключи.
Sanitizer · Secrets · Privacy
-
AI-анализ
Из текста извлекаются краткое содержание, участники, задачи, факты, решения, категория и название проекта.
Summary · Tasks · Facts · Decisions
-
Индексация
Контент делится на смысловые фрагменты. Embeddings и метаданные сохраняются в Qdrant, структурированные данные остаются в MySQL.
Chunks · Embeddings · Qdrant · MySQL
-
Обновление проектной памяти
Система добавляет задачи, решения, события, контакты, домены и ссылки на репозитории в карточку проекта.
Project State · Events · Repositories
Что умеет ассистент в Telegram
Отвечать по полной переписке
Сотрудник указывает пользователя и задаёт вопрос. Ассистент выбирает релевантные сообщения и добавляет свежий контекст диалога.
Находить договорённости
Отдельный режим ищет последние решения, обязательства и незакрытые вопросы в истории общения.
Искать упомянутые сайты
Система анализирует полную историю и формирует список доменов, о которых шла речь.
Работать с доступами безопасно
Реестр фиксирует тип и контекст предоставленного доступа, но скрывает пароли и токены в ответах.
Создавать проект из диалога
Команда связывает пользователя с проектом и запускает синхронизацию доступной истории.
Показывать источники
Подтверждённый ответ содержит дату, идентификатор и фрагмент исходного сообщения.
Если подходящих сообщений нет или уверенность ответа недостаточна, ассистент не придумывает факт и сообщает, что подтверждение не найдено.
Проектная память
Каждый подключённый диалог может быть связан с проектом. После обработки сообщений система поддерживает структурированную карточку состояния.
Задачи
Название, описание, приоритет, срок, статус и сообщение, из которого задача была извлечена.
Решения
Принятые договорённости, дата и ссылка на материал-источник.
События
Хронология активности проекта и краткое содержание обработанных сообщений.
Контакты
Участники, которых AI определил в материалах проекта.
Домены
Сайты, обнаруженные в переписке и документах.
Репозитории
Ссылки на GitHub, GitLab и Bitbucket, связанные с работой над проектом.
Как формируется ответ сотруднику
-
Определяется область поиска
Запрос ограничивается конкретным проектом или перепиской с выбранным пользователем.
-
Выбираются кандидаты
Система учитывает точные совпадения, смысловую близость, свежие сообщения и соседний контекст.
-
Данные очищаются
Чувствительные значения маскируются до передачи контекста в модель.
-
Модель готовит ответ
Инструкция запрещает добавлять сведения, которых нет в состоянии проекта и найденных материалах.
-
Проверяется подтверждение
Ответ считается подтверждённым только при достаточной уверенности и наличии исходных сообщений.
-
Возвращаются источники
Сотрудник получает короткий ответ и фрагменты сообщений, по которым можно проверить вывод.
Гибридный поиск
Для базы знаний используются сразу несколько способов поиска. Это важно, потому что в рабочих данных встречаются как обычные вопросы, так и короткие точные значения.
Векторный поиск
Qdrant находит фрагменты по смыслу, даже если пользователь сформулировал вопрос другими словами.
Точный поиск
MySQL ищет совпадения в заголовках, содержимом, тегах, фактах, задачах и решениях.
Варианты запроса
Для коротких вопросов выделяются ключевые слова, числа и предметные варианты формулировки.
Общее ранжирование
Результаты объединяются, очищаются от дублей и сортируются по релевантности.
Автоматическая синхронизация
Обновление источников выполняют планировщик и отдельные очереди. Долгие операции не блокируют web-интерфейс и могут повторяться после временной ошибки.
Яндекс.Диск
Проверка подключённых каталогов запускается каждые 5 минут.
Почта
Новые письма и вложения синхронизируются каждые 10 минут.
Google Docs
Версии документов проверяются каждые 15 минут. Неизменённые файлы повторно не индексируются.
Telegram
Новые сообщения поступают постоянно, а отложенная AI-обработка автоматически возобновляется.
Безопасность
Защищённый webhook
Персональный Telegram webhook принимает только JSON и проверяет секретный заголовок.
Ограничение пользователя
Команды персонального бота доступны только разрешённой учётной записи.
Маскирование секретов
Пароли, токены, приватные ключи и данные авторизации заменяются безопасными маркерами.
Защита API
Интеграции и Custom GPT используют отдельные ключи с безопасным сравнением значений.
Двухфакторная авторизация
Доступ к административной панели защищён TOTP и резервными кодами.
Закрытая инфраструктура
Redis, Qdrant и обработчики работают во внутренней Docker-сети и не требуют публичного доступа.
Административная панель
Web-интерфейс используется для управления знаниями и источниками без ручной работы с конфигурацией.
База знаний
Добавление записей, поиск, просмотр summary, задач, фактов, решений и удаление материалов.
Проекты
Управление карточками проектов, кодами, статусами и связанной информацией.
Источники
Файлы, Google Docs, почтовые ящики, папки Яндекс.Диска и Telegram-диалоги.
Обработка
Статусы синхронизации, ошибки, запуск повторной обработки и контроль фоновых задач.
Стек и инфраструктура
Результат
Единый рабочий контекст
Переписки и документы больше не существуют отдельно от карточки проекта.
Быстрые ответы
Сотрудник задаёт вопрос в привычном Telegram и получает результат без ручного просмотра истории.
Проверяемые выводы
Ответ сопровождается источниками и не выдаётся за подтверждённый при недостатке данных.
Живая проектная память
Задачи, решения, события, контакты, домены и репозитории обновляются по мере появления новых материалов.
Автоматическое обновление
Почта, облачные документы и сообщения попадают в систему через планировщик и очереди.
Основа для новых агентов
Защищённый API позволяет подключать Custom GPT и другие интерфейсы к общей памяти проектов.
Обсудить внутреннего AI-ассистента
Если важная информация хранится в переписках, документах и почте, можно собрать единую проектную память и дать сотрудникам удобный поиск через Telegram, web-интерфейс или внутреннюю систему.
Для оценки достаточно описать основные источники данных, роли пользователей и вопросы, на которые должен отвечать ассистент.
AI Assistant · Telegram · RAG · Project Memory · Qdrant · Laravel
