Интеллектуальный помощник для планирования питания и покупок продуктов
🧠 AI-агенты · 🔗 Model Context Protocol · 📚 RAG · 🛒 Реальная интеграция с ВкусВилл
┌──────────────────────────────────────────────────────────┐
│ AGENT PIPELINE - Умная обработка от фото до корзины │
├──────────────────────────────────────────────────────────┤
│ │
│ 1️⃣ FridgeAnalyzerAgent (Gemini 2.0 Flash Lite) │
│ 📸 Анализ фото холодильника │
│ 🧠 Vision AI → список продуктов │
│ ✅ Распознавание: овощи, мясо, молочка, готовая еда │
│ ▼ │
│ 2️⃣ MealPlannerAgent (Smart Matching + RAG) │
│ 📚 RAG поиск в базе 300+ рецептов │
│ 🎯 Умный матчинг с учетом замен (салат↔руккола) │
│ 🔄 Гарантия разнообразия (разные блюда каждый день) │
│ 💰 Оптимизация покупок (макс 2-3 новых на блюдо) │
│ ▼ │
│ 3️⃣ ShoppingGeneratorAgent (VkusVill MCP) │
│ 🛒 Поиск товаров через MCP │
│ 💎 Выбор лучших по рейтингу │
│ 🔗 Создание корзины с реальной ссылкой │
│ │
└──────────────────────────────────────────────────────────┘
Прямая интеграция с ВкусВилл через MCP сервер:
- 🎯
vkusvill_products_search- поиск товаров с фильтрами - 📦
vkusvill_cart_link_create- создание корзины - 💰 Реальные цены и наличие
- ⭐ Рейтинги и отзывы покупателей
JSON-based векторный поиск рецептов:
- 300+ рецептов (завтрак/обед/ужин)
- Интеллектуальный матчинг ингредиентов
- Поиск по доступным продуктам
- Скоринг совпадений (match_score)
50+ правил умных замен:
салат латук ↔ салат айсберг ↔ руккола ↔ шпинат
сметана ↔ йогурт ↔ майонез
курица ↔ индейка
говядина ↔ свинина
рис ↔ булгур ↔ кускус📦 Domain Layer → Entities, Value Objects (Money, Quantity)
📦 Application → Use Cases, Business Logic
📦 Infrastructure → AI, MCP, Database, RAG
📦 API Layer → FastAPI REST endpoints
📦 Frontend → React + TypeScript + Tailwind
# 1. Клонирование и настройка
git clone <repo-url>
cd try2
# 2. Добавьте Gemini API key в .env
# 3. Запуск всех сервисов
docker-compose up --build -d
# 4. Откройте браузер
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000
# API Docs: http://localhost:8000/api/docs✅ Готово! Система запущена и готова к использованию.
pip install -r requirements.txt
python main.py # http://localhost:8000cd frontend
npm install
npm run dev # http://localhost:5173-
📸 Анализ холодильника
Загрузите фото → Gemini Vision распознает продукты -
🧠 Умное планирование
AI-агенты создают рацион на 1-4 недели с учётом:- 90% использования имеющихся продуктов
- Максимум 2-3 новых покупки на блюдо
- Гибких замен ингредиентов
- Разнообразия (разные блюда каждый день)
-
🛒 Автоматическая корзина
Реальные товары ВкусВилл с ценами → прямая ссылка для заказа
- ✅ AI Vision - Gemini 2.0 Flash Lite для распознавания продуктов
- ✅ RAG Search - 300+ рецептов с интеллектуальным поиском
- ✅ MCP Integration - Реальная интеграция с ВкусВилл API
- ✅ Smart Matching - 50+ правил замены ингредиентов
- ✅ Budget Control - Гибкий бюджет от 1K до 100K ₽
- ✅ Multi-Week - Планирование на 1-4 недели
- ✅ Responsive UI - Адаптивный дизайн для мобильных
try2/
├── 🤖 infrastructure/ai_agents/ # Multi-Agent System
│ ├── simple_agent_system.py # 3 AI агента
│ └── langchain_agent_system.py # LangChain версия
│
├── 🔗 infrastructure/external_services/
│ ├── stores/vkusvill_mcp.py # MCP клиент ВкусВилл
│ └── ai/gemini_service.py # Gemini Vision AI
│
├── 📚 infrastructure/rag/
│ └── recipe_search.py # RAG поиск рецептов
│
├── 🧩 infrastructure/utils/
│ └── product_matcher.py # Замены ингредиентов
│
├── 🏛️ core/domain/ # Domain Entities
│ ├── entities/ # Recipe, User, Inventory
│ └── value_objects/ # Money, Quantity
│
├── 🔌 api/ # FastAPI REST API
│ ├── routers/ # Endpoints
│ │ ├── agent_planning.py # Главный endpoint
│ │ ├── recipes.py # CRUD рецептов
│ │ ├── shopping.py # Список покупок
│ │ └── inventory.py # Инвентарь
│ ├── middleware/ # Error handling, CORS
│ └── schemas/ # Pydantic models
│
├── 📱 frontend/ # React + TypeScript
│ ├── src/pages/ # UI страницы
│ │ ├── PlanningPage.tsx # Главная страница
│ │ ├── RationPage.tsx # Просмотр рациона
│ │ └── ShoppingCartPage.tsx # Корзина покупок
│ ├── src/components/ # Переиспользуемые компоненты
│ └── src/api/ # API клиент
│
├── 📊 data/ # База рецептов
│ ├── breakfast.json # 100 рецептов завтраков
│ ├── lunch.json # 100 рецептов обедов
│ └── dinner.json # 100 рецептов ужинов
│
└── 🐳 deployment/ # Docker
├── Dockerfile.api
├── Dockerfile.frontend
└── nginx.conf
infrastructure/ai_agents/simple_agent_system.py
class AgentPipeline:
"""Оркестратор 3 агентов"""
async def execute(self, image, budget, days):
# Stage 1: Анализ холодильника (Gemini Vision)
context = await self.fridge_agent.execute(image)
# Stage 2: Планирование рациона (RAG + Matching)
context = await self.meal_planner.execute(context, days)
# Stage 3: Генерация покупок (VkusVill MCP)
context = await self.shopping_agent.execute(context, budget)
return contextinfrastructure/rag/recipe_search.py
class RecipeSearchService:
"""RAG поиск по 300+ рецептам"""
def search_by_ingredients(self, ingredients, meal_type, limit=200):
# 1. Загрузка рецептов из JSON
recipes = self._load_recipes(meal_type)
# 2. Вычисление match_score для каждого рецепта
scored = [(recipe, recipe.calculate_match_score(ingredients))
for recipe in recipes]
# 3. Сортировка по убыванию score
scored.sort(key=lambda x: x[1], reverse=True)
return [recipe for recipe, score in scored[:limit]]infrastructure/external_services/stores/vkusvill_mcp.py
class VkusVillMCPClient:
"""MCP клиент для ВкусВилл"""
BASE_URL = "https://mcp001.vkusvill.ru/mcp"
async def search_products(self, query: str):
"""Поиск товаров через MCP"""
return await self._call_mcp_tool(
"vkusvill_products_search",
{"q": query, "sort": "popularity"}
)
async def create_cart(self, items: List[CartItem]):
"""Создание корзины"""
return await self._call_mcp_tool(
"vkusvill_cart_link_create",
{"products": items}
)infrastructure/utils/product_matcher.py
class ProductMatcher:
"""Умное сопоставление продуктов с заменами"""
SUBSTITUTIONS = {
# Салаты/зелень
'салат латук': ['салат айсберг', 'руккола', 'шпинат'],
'руккола': ['салат латук', 'шпинат', 'салат айсберг'],
# Молочка
'сметана': ['йогурт натуральный', 'греческий йогурт'],
'йогурт': ['сметана', 'кефир'],
# Мясо
'куриное филе': ['индейка', 'куриная грудка'],
'говядина': ['свинина', 'телятина'],
# ... 50+ правил
}
@classmethod
def find_substitution(cls, ingredient, available):
"""Найти замену ингредиента в наличии"""
for substitute in cls.SUBSTITUTIONS.get(ingredient, []):
if cls.match(substitute, available):
return substitute
return NonePOST /api/agent/analyze-and-plan
Запускает полный pipeline обработки:
Request:
{
"image_base64": "data:image/jpeg;base64,...",
"budget": 5000,
"days_count": 7,
"preferences": {
"dietary": ["vegetarian"],
"allergies": ["gluten"]
}
}
Response:
{
"fridge_products": ["молоко", "яйца", "курица", ...],
"meal_plan": [
{
"day": 1,
"breakfast": {
"title": "Омлет с овощами",
"match_score": 0.85,
"missing_ingredients": ["помидоры"]
},
"lunch": {...},
"dinner": {...}
}
],
"shopping_list": [
{
"name": "Помидоры черри",
"price": 199.0,
"xml_id": 12345,
"rating": 4.9
}
],
"total_cost": 974.0,
"cart_url": "https://vkusvill.ru/?share_basket=564519130"
}GET /api/recipes- Получить все рецептыGET /api/recipes/{id}- Детали рецептаGET /api/health- Healthcheck
- Python 3.11 - Современная версия Python
- FastAPI - Высокопроизводительный async framework
- Pydantic v2 - Валидация данных
- Google Gemini 2.0 Flash Lite - Vision AI для анализа фото
- HTTPX - Async HTTP клиент для MCP
- Uvicorn - ASGI сервер
- React 18 + TypeScript - Типобезопасный UI
- Vite - Быстрая сборка
- Tailwind CSS - Утилитарные стили
- Zustand - Легковесный state management
- React Router - Навигация
- Docker + Docker Compose - Контейнеризация
- Nginx - Reverse proxy для фронтенда
- MCP Protocol - Стандартизированная интеграция
✅ Multi-Agent Architecture - 3 специализированных AI-агента
✅ Model Context Protocol - Современный подход к интеграциям
✅ RAG Implementation - Векторный поиск по рецептам
✅ Computer Vision - Gemini Vision для анализа фото
✅ Clean Architecture - Domain-Driven Design
✅ Async/Await - Полностью асинхронный backend
✅ Реальная проблема - Люди тратят время на планирование и поиск товаров в магазине
✅ Работающая интеграция - Реальные товары и цены ВкусВилл
✅ Масштабируемость - Можно добавить другие магазины (Галмарт, Магнум)
✅ B2C + B2B - Индивидуальные пользователи + корпоративное питание
✅ Type Safety - TypeScript на фронте, Pydantic на беке
✅ Clean Architecture - Разделение слоёв (Domain, Application, Infrastructure)
✅ SOLID Principles - Соблюдение принципов ООП
✅ Error Handling - Глобальные обработчики ошибок
✅ Logging - Структурированные логи для debugging
✅ Docker - Воспроизводимое окружение
✅ End-to-End Flow - От фото до реальной корзины
✅ Polished UI - Современный дизайн на Tailwind
✅ Real Data - Реальные товары, цены, рейтинги
✅ Fast Response - Gemini Flash Lite для быстрого ответа
✅ Mobile Friendly - Адаптивный дизайн
- ⚡ Анализ фото: 2-3 секунды (Gemini Vision)
- 🔍 Поиск рецептов: <100ms (JSON-based RAG)
- 🛒 Поиск товаров: 1-2 секунды (VkusVill MCP)
- 📦 Полный pipeline: 5-8 секунд от фото до корзины
Создать полностью автоматизированную систему управления домашним питанием:
- 📸 Автоматическое отслеживание запасов (фото холодильника)
- 🍽️ Умное планирование рациона
- 🛒 Автоматические заказы продуктов
- ⏰ Напоминания о сроках годности
- 📊 Аналитика питания и расходов
См. PRODUCT_ROADMAP.md для детального плана развития
Для вопросов и предложений: dimash.bekeshev2007@gmail.com
Made with ❤️ by NEXUS Team