Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Разработка программного средства для анализа рациона питания и тренировок пользователей

Информационные технологии
13.06.2026
5
Поделиться
Аннотация
В статье рассматривается разработка программного средства для анализа рациона питания и тренировок пользователей. Описана проблема отсутствия комплексных решений, объединяющих учёт питания и физической активности с получением персонализированных рекомендаций. Представлено микросервисное решение на Python (Django, FastAPI) и TypeScript (React). Описаны асинхронная обработка данных через Redis и Celery, а также формирование аналитических выводов на базе языковой модели GigaChat. Уделено внимание проектированию базы данных в PostgreSQL, полнотекстовому поиску и визуализации статистики.
Библиографическое описание
Ершов, П. А. Разработка программного средства для анализа рациона питания и тренировок пользователей / П. А. Ершов. — Текст : непосредственный // Молодой ученый. — 2026. — № 24 (627). — URL: https://moluch.ru/archive/627/138218.


The article discusses the development of a software tool for analyzing the diet and training of users. The problem of the lack of comprehensive solutions combining nutrition and physical activity accounting with personalized recommendations is described. A microservice solution in Python (Django, FastAPI) and TypeScript (React) is presented. Asynchronous data processing via Redis and Celery is described, as well as the formation of analytical conclusions based on the GigaChat language model. Attention is paid to database design in PostgreSQL, full-text search and visualization of statistics.

Keywords: software engineering, data analysis, nutrition diary, physical activity accounting, microservice architecture, Python, Django, FastAPI, TypeScript, React, PostgreSQL, Redis, Celery, GigaChat.

Введение

Одной из ключевых проблем остаётся низкая мотивация пользователей к систематическому контролю питания и физической активности. Большая часть времени уходит на рутинные процессы: ручной поиск калорийности продуктов, расчёт баланса белков, жиров и углеводов, фиксацию тренировочных показателей.

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

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

Основная часть

Организация хранения данных

Для обеспечения целостности и эффективности работы спроектирована реляционная база данных на PostgreSQL. Основные сущности: профиль пользователя, справочники продуктов и упражнений, журналы приёмов пищи и тренировочных сессий. Для ускорения поиска по названию используются GIN-индексы с расширением pg_trgm, обеспечивающие полнотекстовый поиск с учётом нечёткого совпадения. Пищевая ценность рецептов рассчитывается автоматически на основе суммирования характеристик ингредиентов. Проблема избыточных запросов к БД при выборке связанных объектов решена с помощью метода select_related в Django ORM, который подгружает все необходимые данные одним join-запросом.

Логика серверной части

Серверная часть реализована на Python: Django с DRF для сервисов аутентификации и ведения дневников, FastAPI для сервиса аналитики. Микросервисы взаимодействуют по протоколу HTTP с обменом данными в формате JSON. Длительные операции (агрегация данных, формирование аналитических отчётов) вынесены в фоновые задачи с использованием брокера сообщений Redis и очереди задач Celery, что позволяет избежать блокировки пользовательского интерфейса. Для снижения нагрузки на сервер внедрено кэширование часто запрашиваемых данных в Redis с настраиваемым временем жизни и автоматической инвалидацией при изменении данных.

Интеграция с языковой моделью

Для формирования персонализированных рекомендаций используется облачная языковая модель GigaChat. Сервис аналитики агрегирует данные из дневника пользователя за заданный период, формирует структурированный промпт с показателями калорийности, баланса макронутриентов и тренировочной нагрузки, и передаёт его в модель. Ключевая проблема — непредсказуемое время ответа LLM (до нескольких десятков секунд). Решение: запросы к GigaChat помещаются в очередь Celery, пользовательский интерфейс не блокируется, результат сохраняется в БД и доставляется асинхронно. Такой подход сочетает детерминированный расчёт фактических показателей с генеративными возможностями ИИ, исключая риск галлюцинаций при работе с числовыми данными.

Результаты

Апробация показала, что предложенные архитектурные решения — микросервисное разделение, асинхронная обработка через Celery, кэширование в Redis и оптимизированные запросы к PostgreSQL — обеспечивают высокую производительность и стабильность работы системы.

Пользовательский интерфейс главного экрана

Рис. 1. Пользовательский интерфейс главного экрана

На рисунке 1 представлен интерфейс главного экрана. На нём отображается сводная информация о прогрессе пользователя: текущее потребление калорий относительно дневной нормы, количество тренировок за неделю. Также на главном экране расположен модуль интеллектуальной аналитики. После нажатия кнопки «Сгенерировать отчёт» система создаёт фоновую задачу, а по готовности отображает результат в виде текстовых рекомендаций с общей оценкой рациона и тренировок, разбором питания (калорийность, белки, жиры, углеводы) и тренировочного процесса (частота занятий, объём нагрузки, прогресс).

Пользовательские интерфейсы дневника питания (слева) и дневника тренировок (справа)

Рис. 2. Пользовательские интерфейсы дневника питания (слева) и дневника тренировок (справа)

На рисунке 2 представлены основные интерфейсы разработанного программного средства. Левая часть иллюстрирует дневник питания: пользователь фиксирует приёмы пищи с автоматическим расчётом калорийности и баланса белков, жиров и углеводов. В данном примере показан рацион за день с перечнем потреблённых продуктов и их пищевой ценностью. Правая часть демонстрирует дневник тренировок с детализацией конкретной тренировочной сессии. Пользователь видит общие показатели (тоннаж, максимальный вес, интенсивность, количество подходов и повторений), а также детальную информацию по каждому упражнению и подходу. Система автоматически рассчитывает все метрики на основе введённых данных.

Заключение

Разработанное программное средство решает задачу комплексного учёта питания и физической активности. Микросервисная архитектура на базе Python и TypeScript с оптимизированными запросами к PostgreSQL и кэшированием в Redis обеспечила высокую производительность. Формирование аналитических выводов на основе агрегированных данных дневника гарантирует безопасность и обоснованность рекомендаций. Автоматизированный сбор метрик с интеллектуальной интерпретацией позволяет пользователю фокусироваться на достижении целей без погружения в сложные расчёты.

Литература:

1. Руководство по интеграции Сбер GigaChat: GigaChat API. [Электронный ресурс]. URL: https://developers.sber.ru/docs/ru/gigachat/guides/main (дата обращения: 06.06.2026).

2. Официальная документация фреймворка Django. [Электронный ресурс]. URL: https://docs.djangoproject.com/ (дата обращения: 06.06.2026).

3. Официальная документация языка TypeScript. [Электронный ресурс]. URL: https://www.typescriptlang.org/docs/ (дата обращения: 06.06.2026).

4. Официальная документация PostgreSQL. [Электронный ресурс]. URL: https://www.postgresql.org/docs/ (дата обращения: 06.06.2026).

5. Официальная документация Redis. [Электронный ресурс]. URL: https://redis-docs.ru/ (дата обращения: 06.06.2026).

6. Официальная документация Celery. [Электронный ресурс]. URL: https://docs.celeryq.dev/en/stable/ (дата обращения: 06.06.2026).

7. Тутельян В. А. Нутрициология: полное руководство для практикующих специалистов по питанию / В. А. Тутельян, Д. Б. Никитюк, А. В. Погожева. — Москва: Эксмо, 2025. — 431 с.

8. Уилмор Дж. Х. Физиология спорта / Дж. Х. Уилмор, Д. Л. Костилл; пер. с англ. — Киев: Олимпийская литература, 2001. — 503 с.

Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Похожие статьи
Разработка программного модуля автоматизации деятельности преподавателя на основе интеграции с большими языковыми моделями
Методологические основы интеграции стеков Django REST и React при разработке цифровых систем рекрутинга
Исследование и разработка современных веб-приложений для образовательных платформ
Система учета и анализа физической активности с элементами социальной сети в мобильном приложении
Программное средство для финансового планирования с применением искусственного интеллекта
Создание клиент-серверного приложения на основе restful api архитектуры
Проектирование модульной информационно-творческой системы для поддержки и развития наставничества в проектной деятельности молодежи (на примере ИТС «ПрофиЛинк»)
Разработка веб-сервиса для хранения и передачи данных
Разработка приложения для формирования распоряжений и контроля их исполнения персоналом
Сервис проверки лабораторных работ

Молодой учёный