Описание задачи

Требуется разработать Telegram-бота на Python, который позволяет пользователю отправить фото блюда, распознать его с помощью стороннего AI API (без обучения собственных моделей) и рассчитать КБЖУ. Бот должен иметь полноценную админ-панель для настройки, управления пушами и AI-модулем.

Функциональные требования

  • Telegram Bot - работа через Telegram API, прием фото, хранение пользовательских данных.
  • Inline-кнопки - навигация по меню и результатам с помощью кнопок под сообщением.
  • FSM (конечные автоматы) - четкие состояния диалога: приветствие, загрузка фото, ожидание подтверждения, вывод результатов и т.д.
  • Админпанель - отдельный интерфейс (например, веб-страница или панель в самом боте) для настройки бота, рассылки пуш-уведомлений, управления AI-модулем и просмотра логов.
  • Интеграция AI API - используем любой готовый облачный сервис распознавания изображений продуктов (например, Google Vision API, Clarifai или аналог). Подробные инструкции по подключению будут предоставлены исполнителю.
  • Тестовый режим - для отладки заложить 15 бесплатных наименований еды с фиксированным КБЖУ (только демо, реальная база наполняется через админку).

Технические детали

  • Язык: Python 3.10+
  • Библиотеки: python-telegram-bot, FSM, aiogram (на усмотрение разработчика), requests для API.
  • Хранение данных: SQLite для теста, в production возможна миграция (согласуется отдельно).
  • Логирование действий пользователя и ошибок.
  • Безопасность: минимальная - только базовая проверка прав на админку, настройки через переменные окружения.

Критерии приемки

  • Бот работает корректно с фото еды, отдает расчет КБЖУ.
  • Админка позволяет менять список продуктов, отправлять пуши, просматривать какие фото распознавались.
  • Код соответствует PEP 8, задокументирован ключевые классы.
  • Исполнитель предоставляет инструкцию по развертыванию на VPS или локально.

Этапы работы

  1. Согласование архитектуры и выбор AI API.
  2. Прототип базового бота с одним фото.
  3. Добавление FSM и inline-кнопок.
  4. Разработка админ-панели.
  5. Интеграция AI API и загрузка тестовых данных (15 блюд).
  6. Финальное тестирование и передача исходного кода.

Адаптивная верстка макета из Figma

Требуется сверстать готовый макет из Figma с полной адаптацией под мобильные устройства. Все интерактивные элементы и анимации должны быть реализованы согласно техническому заданию.

Ускорение работы сайта на Drupal 7

Требуется оптимизировать производительность старого сайта на Drupal 7 при одновременном редизайне. Нужно увеличить скорость загрузки страниц и улучшить пользовательский опыт.