Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Calories Tracker

AI-трекер калорий и макронутриентов (КБЖУ) с анализом еды по фотографиям и текстовым описаниям.

Что это

Веб-приложение для персонального учёта питания. Пользователь отправляет фото еды или текстовое описание — AI-агент определяет блюда, разбивает на ингредиенты, находит нутриентный состав в проверенных базах (USDA, Open Food Facts) и рассчитывает итоговые КБЖУ.

Ключевые возможности

  • Анализ фото еды (одно блюдо, несколько блюд, этикетки, штрих-коды)
  • Текстовый ввод (название продукта, рецепт, описание еды)
  • 8 специализированных путей обработки через LangGraph-агент
  • Трёхуровневый поиск нутриентов: RAG (USDA/OFF) → Веб-поиск (Gemini Grounding) → Оценка LLM
  • Дневник питания с дневными итогами и целями
  • SSE-стриминг прогресса анализа в реальном времени

Стек технологий

Компонент Технология
Backend FastAPI (Python, async)
AI-агент LangGraph (граф из 8 путей обработки)
LLM Gemini API (vision + grounding)
Эмбеддинги OpenAI-совместимый API (настраиваемый)
Векторная БД Qdrant (семантический поиск продуктов)
СУБД PostgreSQL 16 + Alembic (миграции)
Хранилище изображений MinIO (S3-совместимое)
Observability Langfuse + ClickHouse + Redis
Frontend React 19 + TypeScript + Vite
Инфраструктура Docker Compose

Быстрый старт

# 1. Клонировать и настроить окружение
cp .env.example .env
# Отредактировать .env: указать GEMINI_KEY, EMBEDDING_API_URL/KEY/MODEL

# 2. Запустить все сервисы
docker compose up -d

# 3. Применить миграции БД
docker compose exec backend bash -c "PYTHONPATH=/app alembic upgrade head"

# 4. Создать пользователя
docker compose --profile scripts run --rm scripts python create_user.py \
  --email your@email.com --password your_password

# 5. Загрузить базу продуктов (USDA)
docker compose --profile scripts run --rm scripts python ingest.py \
  --data-dir /data --skip-off

# 6. Открыть приложение
# Frontend: http://localhost:3002
# API docs: http://localhost:8002/docs

Подробнее о настройке: deployment.md

Документация

Раздел Описание
Архитектура Схема сервисов, поток данных, фоллбэк-цепочка
API Справочник эндпоинтов, SSE-стриминг, примеры запросов
Агентный пайплайн LangGraph: 8 путей обработки, RAG, sanity check
База данных Схема таблиц, миграции Alembic
Развёртывание Docker Compose, переменные окружения, порты
Фронтенд React-приложение: компоненты, роутинг, стили
Загрузка данных Инжест USDA/OFF в Qdrant

Веб-интерфейсы

Сервис URL (по умолчанию)
Frontend http://localhost:3002
Swagger API http://localhost:8002/docs
Langfuse http://localhost:3100
MinIO Console http://localhost:9012

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages