AI-ассистент для сотрудников: Telegram, память проектов и RAG-поиск

AI-ассистент · Telegram · RAG · Project Memory · Qdrant

AI-ассистент для сотрудников с памятью по проектам и поиском по перепискам

Разработал внутреннюю AI-платформу, которая собирает рабочие данные из Telegram, документов, почты и облачных хранилищ, связывает их с проектами и помогает сотруднику быстро находить решения, задачи, доступы и историю договорённостей.

Ассистент работает не как отдельный чат. За ним находится база знаний, проектная память, гибридный поиск, фоновые обработчики и правила безопасности. Ответы формируются по фактам из конкретного проекта и сопровождаются сообщениями-источниками.

Telegramрабочий интерфейс
RAGконтекст из данных
Qdrantпоиск по смыслу
Projectsпамять по проектам
Sourcesподтверждение ответа

Задача проекта

В рабочих переписках ежедневно появляются решения, задачи, ссылки, контакты и технические детали. Через несколько недель важный факт сложно найти, а состояние проекта приходится восстанавливать по сообщениям вручную.

Собрать знания

Объединить переписки, файлы, письма и документы в едином контуре.

Сохранить контекст проекта

Связать сообщения с проектами, задачами, решениями, контактами, доменами и репозиториями.

Упростить поиск

Позволить сотруднику задавать вопрос обычным языком прямо в Telegram.

Не раскрывать секреты

Маскировать пароли, токены и API-ключи до AI-анализа и перед выводом ответа.

Главная идея

Платформа состоит из двух связанных уровней. База знаний хранит и индексирует отдельные материалы. Проектная память собирает из них текущее состояние проекта.

Сотруднику нужен не список найденных сообщений, а подтверждённый ответ с пониманием проекта и ссылками на первоисточники.

Поэтому система сохраняет как исходный контент, так и извлечённые сущности. В результате один вопрос может учитывать переписку, документы, задачи, последние решения и метаданные проекта.

Какие данные подключены

Telegram

Личные диалоги и выбранные рабочие чаты, включая историю сообщений и связь с проектом.

Почта

Письма из IMAP-ящиков, папки, отправители, получатели и текст поддерживаемых вложений.

Google Docs

Текст всех вкладок документа, версия файла и автоматическое обновление изменённых материалов.

Яндекс.Диск

Выбранные каталоги и поддерживаемые файлы с периодической проверкой изменений.

Файлы и аудио

TXT, Markdown, PDF, DOCX, таблицы и аудиозаписи с транскрибацией.

Webhooks и API

PLAUD, внешние интеграции, ручное добавление материалов и Custom GPT Actions.

Как сообщение становится знанием

  1. Сбор сообщения

    Telegram collector или персональный бот принимает сообщение и сохраняет его с автором, датой, идентификатором диалога и связью с ответом.

    Collector · Webhook · Deduplication

  2. Привязка к проекту

    Выбранный диалог связывается с существующим проектом или создаёт новый проект по команде сотрудника.

    Project · Chat · Contact

  3. Маскирование чувствительных данных

    Перед AI-обработкой система скрывает пароли, токены, API-ключи, заголовки авторизации и приватные ключи.

    Sanitizer · Secrets · Privacy

  4. AI-анализ

    Из текста извлекаются краткое содержание, участники, задачи, факты, решения, категория и название проекта.

    Summary · Tasks · Facts · Decisions

  5. Индексация

    Контент делится на смысловые фрагменты. Embeddings и метаданные сохраняются в Qdrant, структурированные данные остаются в MySQL.

    Chunks · Embeddings · Qdrant · MySQL

  6. Обновление проектной памяти

    Система добавляет задачи, решения, события, контакты, домены и ссылки на репозитории в карточку проекта.

    Project State · Events · Repositories

Что умеет ассистент в Telegram

Отвечать по полной переписке

Сотрудник указывает пользователя и задаёт вопрос. Ассистент выбирает релевантные сообщения и добавляет свежий контекст диалога.

Находить договорённости

Отдельный режим ищет последние решения, обязательства и незакрытые вопросы в истории общения.

Искать упомянутые сайты

Система анализирует полную историю и формирует список доменов, о которых шла речь.

Работать с доступами безопасно

Реестр фиксирует тип и контекст предоставленного доступа, но скрывает пароли и токены в ответах.

Создавать проект из диалога

Команда связывает пользователя с проектом и запускает синхронизацию доступной истории.

Показывать источники

Подтверждённый ответ содержит дату, идентификатор и фрагмент исходного сообщения.

Если подходящих сообщений нет или уверенность ответа недостаточна, ассистент не придумывает факт и сообщает, что подтверждение не найдено.

Проектная память

Каждый подключённый диалог может быть связан с проектом. После обработки сообщений система поддерживает структурированную карточку состояния.

Задачи

Название, описание, приоритет, срок, статус и сообщение, из которого задача была извлечена.

Решения

Принятые договорённости, дата и ссылка на материал-источник.

События

Хронология активности проекта и краткое содержание обработанных сообщений.

Контакты

Участники, которых AI определил в материалах проекта.

Домены

Сайты, обнаруженные в переписке и документах.

Репозитории

Ссылки на GitHub, GitLab и Bitbucket, связанные с работой над проектом.

Как формируется ответ сотруднику

  1. Определяется область поиска

    Запрос ограничивается конкретным проектом или перепиской с выбранным пользователем.

  2. Выбираются кандидаты

    Система учитывает точные совпадения, смысловую близость, свежие сообщения и соседний контекст.

  3. Данные очищаются

    Чувствительные значения маскируются до передачи контекста в модель.

  4. Модель готовит ответ

    Инструкция запрещает добавлять сведения, которых нет в состоянии проекта и найденных материалах.

  5. Проверяется подтверждение

    Ответ считается подтверждённым только при достаточной уверенности и наличии исходных сообщений.

  6. Возвращаются источники

    Сотрудник получает короткий ответ и фрагменты сообщений, по которым можно проверить вывод.

Гибридный поиск

Для базы знаний используются сразу несколько способов поиска. Это важно, потому что в рабочих данных встречаются как обычные вопросы, так и короткие точные значения.

Векторный поиск

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-диалоги.

Обработка

Статусы синхронизации, ошибки, запуск повторной обработки и контроль фоновых задач.

Стек и инфраструктура

BackendLaravel 13 · PHP 8.3+
Основные данныеMySQL · Eloquent
Векторный поискQdrant · Embeddings
AIOpenAI · DeepSeek · Transcription
Фоновые процессыRedis · Laravel Queue · Scheduler
ИнтеграцииTelegram · IMAP · Google Docs · Яндекс.Диск
ИнтерфейсBlade · Vite · Admin UI
ИнфраструктураDocker · Nginx · Workers

Результат

Единый рабочий контекст

Переписки и документы больше не существуют отдельно от карточки проекта.

Быстрые ответы

Сотрудник задаёт вопрос в привычном Telegram и получает результат без ручного просмотра истории.

Проверяемые выводы

Ответ сопровождается источниками и не выдаётся за подтверждённый при недостатке данных.

Живая проектная память

Задачи, решения, события, контакты, домены и репозитории обновляются по мере появления новых материалов.

Автоматическое обновление

Почта, облачные документы и сообщения попадают в систему через планировщик и очереди.

Основа для новых агентов

Защищённый API позволяет подключать Custom GPT и другие интерфейсы к общей памяти проектов.

Обсудить внутреннего AI-ассистента

Если важная информация хранится в переписках, документах и почте, можно собрать единую проектную память и дать сотрудникам удобный поиск через Telegram, web-интерфейс или внутреннюю систему.

Для оценки достаточно описать основные источники данных, роли пользователей и вопросы, на которые должен отвечать ассистент.

AI Assistant · Telegram · RAG · Project Memory · Qdrant · Laravel


Сделать заказ

| необходим для связи с вами
В кротчайшие сроки я свяжусь с вами.

Также вы можетете связать со мной:
telegram: @ifwcom