AI-планер
и база знаний

Задачи и регламенты мебельной мастерской, которыми управляют обычными сообщениями в Telegram через LLM-ассистента

Немного о проекте

Мастерская делает корпусную мебель на заказ: шкафы-купе, кухни, гардеробные. Знания о производстве хранились в головах мастеров и в чатах, задачи раздавали устно, а о сроках вспоминали, когда клиент уже звонил с вопросом.
Классические таск-трекеры здесь не приживались: мастер в цеху стоит у станка в перчатках, ему некогда открывать ноутбук, искать нужную колонку и заполнять форму.

наша задача

Сделать планер и базу знаний, которыми можно управлять так же просто, как писать коллеге в Telegram. Сотрудник пишет обычным языком «поставь Кириллу раскрой на пятницу» или «какой зазор под плинтус?», а система сама понимает, что нужно сделать, и делает это.

Главная фишка — AI-ассистент в Telegram

Весь планер и вся база знаний доступны через чат с LLM-ботом. Без команд, кнопок и шаблонов: бот понимает свободную речь и сам выбирает, какое действие выполнить.
  • Создать задачу — «поставь Кириллу раскрой кухни Петровых, срок пятница»: бот заведёт карточку с исполнителем и дедлайном;
  • Достать задачи — «что сейчас в работе?», «что висит на Тимуре?»: бот пришлёт список с номерами и сроками;
  • Переместить задачу — «Тимур закончил покраску, перенеси на проверку»: карточка переезжает в нужную колонку доски;
  • Спросить регламент — бот ищет по заметкам и отвечает со ссылкой на страницу;
  • Дописать или создать заметку — «запиши в оборудование: заменили ремень»;
  • Сохранить пост — пересланный пост поставщика, фото или ссылку на статью бот сам разбирает и раскладывает в подходящий раздел базы.

Как это устроено

Бот построен как LLM-агент с вызовом инструментов (tool calling). Модель получает сообщение, решает, какие функции нужны: поиск по заметкам, чтение, запись, создание, перемещение задачи. Затем она вызывает их по очереди, иногда несколько подряд, например сначала находит id задачи, потом переносит её, и отвечает человеку.
Бот работает с той же базой и теми же файлами, что и веб-интерфейс, поэтому изменения из чата сразу видны на доске. Автором задачи записывается тот, кто написал боту. Бот помнит контекст диалога и понимает уточнения вроде «а теперь поставь её в работу». Писать ему могут только сотрудники из белого списка.

Веб-планер

Для тех, кто за компьютером, есть полноценный веб-интерфейс. Это канбан-доска To Do → In Progress → In Review → Done с перетаскиванием карточек, исполнителями, сроками и списанным временем.
  • диаграмма Ганта показывает загрузку цеха и сегодняшний день;
  • отчёт по часам собирает списанное время по неделям и сотрудникам;
  • всё, что сделали через бота, сразу видно здесь, и наоборот.

База знаний

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

Доступ и безопасность

Веб-интерфейс закрыт Authelia: единый вход по логину и паролю, защита от перебора, сессии. Nginx пропускает запрос только после проверки. Бот отвечает только сотрудникам из белого списка, остальным пишет «Доступ запрещён». Все данные лежат на сервере заказчика.

Технологический стек

  • LLM с tool calling — агент, который управляет планером и заметками;
  • Telegram Bot API — интерфейс для команды;
  • Python, FastAPI — API заметок и планера;
  • React, TypeScript, Vite — веб-интерфейс;
  • PostgreSQL — задачи, сроки и списанные часы;
  • Authelia + Nginx forward-auth — авторизация;
  • systemd и Docker — развёртывание на сервере заказчика.

что у нас получилось

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

Этот проект показывает, как LLM превращает обычный чат в интерфейс управления: вместо ещё одной системы, которую нужно осваивать, команда получила ассистента, который понимает человеческую речь и сам работает с задачами и знаниями.