API untuk analisis nutrisi makanan menggunakan OCR + Google Gemini AI. Service ini menggabungkan OCR ingredients, nutrition facts, AI summary, dan validation dalam satu API.
# Copy dan edit .env file
cp .env.example .env
# Install dependencies
pip install -r requirements.txt# Development
python main.py
# Production
uvicorn main:app --host 0.0.0.0 --port 8080Note: Database table akan otomatis dibuat saat pertama kali server dijalankan.
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
docker build -t noga-ai .
docker run -p 8080:8080 --env-file .env noga-aiNote: Docker dan deployment otomatis setup database via
init_db.pysaat startup.
| Endpoint | Method | Deskripsi |
|---|---|---|
/ocr-ingredients |
POST | Extract ingredients dari foto label makanan |
/ocr-nutrition-info |
POST | Extract nutrition facts dari foto label |
/summary_foods |
POST | Generate AI summary & health analysis |
/validate-fix-typo |
POST | Validasi dan perbaiki typo otomatis |
POST /ocr-ingredients
{
"session_id": "user123",
"composition": "https://example.com/image.jpg"
}POST /ocr-nutrition-info
{
"session_id": "user123",
"nutrition_info": "https://example.com/nutrition.jpg"
}POST /summary_foods
{
"ingredients": [
{"nama": "Sugar", "status": "bad", "detail": "High in empty calories"}
],
"nutrition_info": [
{"nama": "Calories", "nilai": 250, "type": "kilocalorie", "status": "neutral"}
]
}DB_HOST=your_mysql_host
DB_PORT=3306
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
GOOGLE_API_KEY=your_gemini_api_key
PORT=8080- FastAPI - Web framework
- Google Gemini AI (2.0-flash) - OCR & AI processing
- MySQL - Database untuk menyimpan hasil OCR
- Uvicorn - ASGI server
Noga-AI/
βββ main.py # FastAPI app & routing
βββ handlers/ # Business logic per endpoint
βββ functions/ # OCR & AI utilities
βββ schemas/ # Pydantic models
βββ db/ # Database connection
βββ models/ # Health classification data