How ming-flowbetter/palonaai-food-recommendation works
PalonaAI is a food-discovery application whose main workflow is a user chatting about preferences, receiving AI-generated recommendations, and exploring a searchable dish catalog. The React pages call a FastAPI API; its routes delegate conversational work to the AI service and menu operations to the menu service. The README also documents intent, emotion and entity analysis, feedback, and conversation metrics. Those capabilities are represented, though some route implementations were not sampled. The menu service excerpt shows in-memory sample dishes, not a persistent store; external AI integration is documented but its call path was not shown.
Main entry points: routes.py API routes · ai_service.py AI conversation service · App.tsx Routed app · Chat.tsx Chat page
Components 16
Web experience
- Routed app
frontend/src/App.tsx - Chat page
frontend/src/pages/Chat.tsx - Menu browser
frontend/src/pages/Menu.tsx - Analysis display
frontend/src/components/AIAnalysis.tsx - API client
frontend/src/services/api.ts
API layer
- API routes
backend/app/api/routes.py - Request schemas
backend/app/models/schemas.py - FastAPI server
backend/main.py - App settings
backend/app/core/config.py
Conversation and recommendations
- AI conversation service
backend/app/services/ai_service.py - Intent emotion entities
backend/app/services/ai_service.py - Sessions and metrics
backend/app/services/ai_service.py - User feedback
backend/app/api/routes.py
Menu catalog
- Menu and search
backend/app/services/menu_service.py
Other components
- Diner
- OpenAI GPT
Connections 20
- Diner → Routed app: uses
- Routed app → Chat page: routes to
frontend/src/App.tsx - Routed app → Menu browser: routes to
frontend/src/App.tsx - Chat page → API client: requests chat
frontend/src/pages/Chat.tsx - Chat page → Analysis display: renders
frontend/src/pages/Chat.tsx - Menu browser → API client: loads and searches
frontend/src/pages/Menu.tsx - API client → API routes: calls endpoints
frontend/src/services/api.ts - FastAPI server → API routes: mounts routes
backend/main.py - FastAPI server → App settings: loads settings
backend/main.py - API routes → Request schemas: uses models
backend/app/api/routes.py - API routes → AI conversation service: delegates chat
backend/app/api/routes.py - API routes → Menu and search: delegates menu
backend/app/api/routes.py - API routes → Intent emotion entities: requests analysis
README.md - API routes → Sessions and metrics: gets session metrics
backend/app/api/routes.py - API routes → User feedback: accepts feedback
README.md - AI conversation service → Intent emotion entities: analyzes messages
backend/app/services/ai_service.py - AI conversation service → Sessions and metrics: tracks sessions
backend/app/services/ai_service.py - AI conversation service → Menu and search: uses menu data
backend/app/services/ai_service.py - AI conversation service → App settings: reads settings
backend/app/services/ai_service.py - AI conversation service → OpenAI GPT: generates responses