You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A multi-agent recipe recommendation system built with LangGraph, Milvus, and FastAPI. The system combines semantic search over a curated recipe corpus with real-time YouTube tutorial discovery via MCP.
Architecture
User Query
│
▼
┌─────────────────┐
│ Ingredient Agent│ Parses intent, dietary restrictions, health goals
└────────┬────────┘
│
▼
┌─────────────────┐
│ Recipe Agent │ Semantic search over recipes_main (Milvus)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Nutrition Agent │ Re-ranks by nutrition_profiles (Milvus)
└────────┬────────┘
│
▼
┌─────────────────┐
│ YouTube Agent │ Fetches tutorials via YouTube MCP server
└────────┬────────┘
│
▼
┌─────────────────┐
│ Responder │ Generates final answer with sources
└─────────────────┘
Tech Stack
Component
Technology
Reason
Agent orchestration
LangGraph
State machine with typed state, SSE streaming support
Vector store
Milvus
Two collections: semantic recipes + nutrition profiles
USDA match rate: ~94% of ingredients matched (790/841). Unmatched ingredients (exotic spices, brand names) stored as null and excluded from nutrition totals.
Nutrition totals are estimates. Each ingredient treated as ~100g regardless of actual measure. Suitable for relative comparison, not precise calorie counting.
Dual embedding strategy: Recipe text captures cuisine identity and ingredient composition. Nutrition text captures macro profile in natural language so health-goal queries like "high protein low carb" match semantically.
Setup
Prerequisites
Docker + Docker Compose
Milvus running on 172.17.0.1:19530
vLLM running on host.docker.internal:8080
YouTube Data API v3 key (free at console.cloud.google.com)