KB

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.

Preview mobilnego dashboardu BerniNutri

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ą.