Studium przypadku
BerniNutri — prototyp analizy posiłków AI ze zdjęcia
Mobile-first prototyp trackera żywieniowego, który używa endpointu z OpenAI do estymacji posiłku.
Problem
Analiza jedzenia ze zdjęcia może pomagać, ale estymacje AI bywają niepełne lub niedokładne i wymagają jasnego przepływu review.
Cel projektu
Zbudować mobile-first prototyp, w którym użytkownik wrzuca zdjęcie posiłku, przegląda estymację i zapisuje lokalną historię.
Status
Prototype
Stack
ReactTypeScriptViteVercel FunctionsOpenAI Responses APIlocalStorage
Najważniejsze funkcje
- Upload zdjęcia posiłku i kompresja obrazu po stronie przeglądarki.
- Endpoint serverless, który trzyma klucz OpenAI po stronie serwera.
- Ścisły schemat JSON dla odpowiedzi modelu.
- Kalorie, makro, składniki, poziom pewności i notatki w widoku wyniku.
- Lokalna historia posiłków zapisywana w localStorage.
- Przykładowe posiłki, empty states i komunikat braku konfiguracji API.
Decyzje techniczne
- Klucz API zostaje po stronie serwera w funkcji Vercel.
- Wynik AI jest normalizowany przed pokazaniem użytkownikowi.
- Copy przedstawia analizę jako pomocniczą estymację, nie poradę dietetyczną ani medyczną.
Czego się nauczyłem
- Projektowania przepływu produktu wokół funkcji AI, a nie samego promptu.
- Obsługi ustrukturyzowanej odpowiedzi modelu i komunikowania niepewności.
- Zarządzania lokalną historią w przeglądarce oraz użytecznymi empty states.
Co poprawiłbym dalej
- Poprawić walidację obrazów i stany ponowienia analizy.
- Dodać edycję wyniku przed zapisem.
- Dodać historię kont użytkowników z realną bazą danych.
- Poprawić dostępność i obsługę klawiatury.
Ograniczenia
Aplikacja nie jest poradą medyczną, dietetyczną ani profesjonalną usługą żywieniową. Wyniki AI są estymacją.