Ünite 4 / 11

Besin Veritabanları ve Besin Öğesi Verisi: AI'ı Doğru Kaynağa Bağlamak

Kazanimlar:

  • Besin değerlerini yapay zeka belleğinden değil tanınmış veritabanlarından (USDA, TÜBER, BeBiS) alma gerekliliğini kavrayabilme
  • RAG mantığıyla yapay zekayı yalnızca kaynaktan çekilen veriyle hesap ve yorum yapacak şekilde yönlendirebilme
  • Çiğ/pişmiş dönüşümleri, porsiyon netliği ve kaynak tutarlılığını gözeterek besin değeri hatalarını önleyebilme

Bir diyetisyenin günlük işinin merkezinde "bu besinde ne kadar var?" sorusu vardır. 100 gram tavuk göğsünde kaç gram protein? Bir dilim tam buğday ekmeğinde kaç gram lif? Bir yemek kaşığı zeytinyağında kaç kalori? Bu soruların cevapları besin veritabanlarında (İngilizce food composition database) tutulur — binlerce besinin enerji, makro ve mikro besin içeriğini laboratuvar analizine dayanarak listeleyen resmi tablolardır. Yapay zekanın bu alandaki en tehlikeli yanılgısı, bu sayıları "hatırladığını" sanmaktır. Oysa dil modeli sayıları ezberlemez; olasılıklı biçimde üretir ve çoğu zaman gerçeğe yakın ama bazen ciddi biçimde yanlış değerler verir. Bu ünitenin ana mesajı nettir: besin değerini YZ'nin belleğinden değil, tanınmış bir veritabanından alın; YZ'yi veriyi hatırlamak için değil, doğru veriyle çalışmak için kullanın.

Tanınmış veritabanları ve ne işe yararlar

Dünyada ve Türkiye'de yaygın kullanılan başlıca kaynaklar şunlardır:

Veritabanı

Kapsam

Güçlü yanı

Dikkat

USDA FoodData Central (ABD)

Çok geniş, ~çeyrek milyon kayıt

Ayrıntılı, ücretsiz, API'li

ABD ürünleri; yerel yemekler sınırlı

TÜBER / Türkiye Beslenme Rehberi ekleri

Türk mutfağı odaklı

Yerel yemek ve porsiyon

Kapsam USDA'dan dar

BeBiS (Beslenme Bilgi Sistemi)

Türkiye'de yaygın yazılım

Türk yemek tarifleri

Lisanslı yazılım

USDA/EuroFIR

Avrupa bileşim verileri

Ülke bazlı standart

Erişim kurumsal olabilir

"API" derken kastedilen, bir yazılımın veritabanına programlı olarak (otomatik) soru sorup yapılandırılmış cevap almasını sağlayan arayüzdür. USDA FoodData Central gibi kaynakların API'si olması, gelecekte YZ araçlarını gerçek veriye bağlamayı mümkün kılar. Bu, "veriye bağlı YZ" yaklaşımının temelidir: model uydurmasın, gerçek kaynaktan çeksin.

Dikkat: Aynı besin, farklı veritabanlarında farklı değer gösterebilir; çünkü tarım koşulu, çeşit, pişirme yöntemi ve analiz farklıdır. "Doğru" tek bir sayı yoktur; makul bir aralık vardır. Bir danışan planında hangi kaynağı kullandığınızı kaydedin ki tutarlı olun.

"Retrieval" mantığı: YZ'yi kaynağa bağlamak

Modern uygulamalarda YZ'yi gerçek veriye bağlamanın yolu RAG yaklaşımıdır — İngilizce Retrieval-Augmented Generation, yani "geri getirmeyle güçlendirilmiş üretim". Basitçe: model cevabı belleğinden uydurmak yerine, önce güvenilir bir kaynaktan (veritabanı, belge) ilgili veriyi çeker, sonra o veriye dayanarak cevap üretir. Pratikte bunu iki şekilde uygularsınız:

  1. Elle besleme: Güvenilir tablodan besinin değerlerini kopyalayıp YZ'ye verirsiniz; YZ yalnızca bu veriyle hesap/yorum yapar, kendi belleğinden sayı eklemez.
  2. Bağlı araç: Veritabanına bağlı bir araç kullanırsınız; YZ sorguyu gerçek kaynağa iletir ve dönen değeri kullanır.

Her iki durumda da altın kural aynıdır: sayı kaynaktan gelir, YZ yorumlar. YZ'ye "100 gram mercimekte ne kadar demir var?" diye açık uçlu sormak, uydurmaya davetiye çıkarmaktır.

Genel ürün, markalı ürün ve yemek karışıklığı

Besin veritabanlarında aynı isim altında birden çok kayıt bulunur ve yanlış kaydı seçmek sessiz bir hata kaynağıdır. Örneğin "yoğurt" araması size tam yağlı, yarım yağlı, yağsız, Yunan tipi (süzme) ve şekerli meyveli yoğurt gibi onlarca farklı kayıt verir; bunların kalori ve makroları birbirinden çok uzaktır. Süzme yoğurt, normal yoğurdun neredeyse iki katı proteine sahiptir. Benzer biçimde "markalı ürün" kayıtları (bir firmanın paketli ürünü) ile "genel besin" kayıtları farklı değerler taşır. Doğru pratikte, danışanın gerçekte tükettiği ürünü olabildiğince yakın eşleştirirsiniz: mümkünse ambalajdaki besin etiketini esas alır, yoksa veritabanında en yakın tanımı seçersiniz. YZ'ye "hangi kaydı seçmeliyim?" diye danıştığınızda, size doğru arama terimini önerebilir; ama nihai kayıt seçimi ve etiketle karşılaştırma sizin denetiminizdedir. Bir plan boyunca aynı besin için aynı kaydı kullanmak da tutarlılık açısından önemlidir; yarısında tam yağlı, yarısında yağsız süt kullanmak toplamları bozar.

Porsiyon ve pişirme dönüşümleri

Besin veritabanları değerleri genellikle "100 gram çiğ" üzerinden verir. Ama danışan çiğ mercimek değil, pişmiş mercimek yer. Pişirme sırasında su çekerek ağırlık değişir; 100 gram çiğ pirinç, pişince ~250-300 grama çıkar. Bu yüzden "pişmiş 200 gram" ile "çiğ 100 gram" farklı besin değeri taşır. YZ bu dönüşümleri yapabilir ama yönü karıştırabilir. Kullandığınız değerin çiğ mi pişmiş mi olduğunu her zaman netleştirin; bu, hesap hatalarının sık kaynağıdır.

Üç mini vaka

Vaka 1 — Halüsinasyon yakalamak. Bir diyetisyen, YZ'ye "100 gram haşlanmış brokolide kaç gram protein var?" diye sorar; YZ "yaklaşık 8 gram" der. Diyetisyen USDA'ya bakar: gerçek değer ~2,4 gramdır. YZ, baklagil/kuruyemiş verileriyle karıştırıp üç kat şişirmiştir. Diyetisyen doğru değeri kullanır. Ders: yeşil sebzenin protein değeri düşüktür; sayı akıcı diye doğru değildir.

Vaka 2 — Çiğ/pişmiş karışıklığı. Bir plan taslağında "150 gram makarna" için YZ çiğ değeri (~525 kcal) kullanır, oysa danışan 150 gram pişmiş makarna (~210 kcal) yemektedir. Fark bir öğünde 315 kcal, günde tek öğünle bile ciddi bir sapmadır. Diyetisyen ölçü birimini "pişmiş" olarak netleştirip yeniden hesaplar.

Vaka 3 — Doğru kullanım. Bir diyetisyen, USDA'dan tavuk, pirinç ve brokolinin 100 gram değerlerini kopyalar, bunları YZ'ye "sadece bu verilerle bir öğünün toplam makrosunu hesapla, kendi belleğinden sayı ekleme" talimatıyla verir. YZ yalnızca verilen sayılarla toplar; diyetisyen geri çarparak doğrular. Veri kaynaktan geldi, YZ aritmetik yaptı.

Kopyalanabilir prompt şablonları

KAYNAK VERİYLE HESAP ŞABLONU (RAG mantığı)Rolün: yalnızca SANA VERİLEN besin değerleriyle çalışan asistan.Kendi belleğinden besin değeri EKLEME veya DEĞİŞTİRME. Eksik veriolursa "[veri yok]" yaz, uydurma.Veriler (100 g başına, kaynak: USDA):- Tavuk göğsü (pişmiş): 165 kcal, 31 g protein, 3,6 g yağ, 0 g karb- Pirinç (pişmiş): ...Görev: 120 g tavuk + 150 g pirinç için toplam kcal ve makroyu hesapla.

ÇİĞ/PİŞMİŞ DÖNÜŞÜM ŞABLONUŞu besinin değeri 100 g ÇİĞ üzerinden verilmiştir: [değerler].Danışan bunu PİŞMİŞ olarak [X] g yiyor. Pişince ağırlık ~[oran]değişiyor. Buna göre yenen miktarın besin değerini hesapla vehangi varsayımı kullandığını AÇIKÇA yaz.

VERİTABANI SORGU HAZIRLIĞI ŞABLONUBir öğünün besin değerini bulmak istiyorum. Aşağıdaki besinler içinbesin veritabanında (USDA/TÜBER) HANGİ terimi aramam gerektiğini,çiğ/pişmiş hangi kaydı seçmem gerektiğini listele. Değerleri SENverme; sadece doğru arama terimini ve dikkat noktasını söyle.Besinler: [...]

TUTARLILIK KONTROL ŞABLONUAşağıdaki öğün için besin değerlerini iki farklı yorumla:(1) tüm besinler çiğ, (2) tüm besinler pişmiş varsayımıyla.İki toplamı karşılaştır ve farkın nereden geldiğini açıkla.Böylece hangi varsayımı doğrulamam gerektiğini göreyim.

Zayıf prompt / Güçlü prompt

Zayıf prompt:

Bir tabak mercimek çorbasında kaç kalori var?

"Bir tabak" belirsiz, tarif belirsiz, kaynak yok; YZ belleğinden bir sayı uydurur ve nasıl bulduğunu söylemez.

Güçlü prompt:

Rolün: sadece verilen verilerle hesap yapan asistan.Mercimek çorbası porsiyonu = 300 g. İçindekiler (100 g başınadeğerler, kaynak USDA, aşağıda veriyorum): kırmızı mercimek(pişmiş) [değerler], soğan [değerler], zeytinyağı [değerler].Porsiyondaki miktarlar: [...]. Toplam kcal ve makroyu buverilerle hesapla, belleğinden ekleme yapma, adımları göster.

İkinci prompt kaynağı, porsiyonu, çiğ/pişmiş bilgisini ve "ekleme yapma" kısıtını verir; çıktı denetlenebilir ve güvenilirdir.

Sık yapılan hatalar

  • YZ'nin belleğine güvenmek: Besin değerini açık uçlu sormak; bu halüsinasyona davetiyedir.
  • Çiğ/pişmiş karıştırmak: En sık sessiz hata; ölçü birimini her zaman netleştirin.
  • Kaynak karışıklığı: Farklı besinleri farklı veritabanlarından karışık almak; bir planda tutarlı kaynak kullanın.
  • Porsiyonu belirsiz bırakmak: "Bir tabak", "bir avuç" gibi ifadeleri grama çevirmeden hesaplamak.
  • Aralık yerine tek sayıya kilitlenmek: Aynı besinin makul bir değer aralığı olduğunu unutmak; sahte kesinlik yaratmak.

Özetle

Besin değeri verisi, dil modelinin en zayıf olduğu alandır; çünkü model sayıları hatırlamaz, üretir. Bu yüzden besin değerlerini her zaman tanınmış bir veritabanından (USDA, TÜBER, BeBiS) alın ve YZ'yi yalnızca o veriyle hesap ve yorum yapması için kullanın — RAG mantığıyla, kaynaktan çekilen veriye dayanarak. Çiğ/pişmiş dönüşümlerine, porsiyon netliğine ve kaynak tutarlılığına dikkat edin. Sayı akıcı çıktı diye doğru değildir; doğrusunu ancak kaynağa bağlı çalışarak elde edersiniz.

Uygulama görevi

Üç besin seçin (örneğin haşlanmış yumurta, tam buğday ekmeği, süzme yoğurt). Önce YZ'ye açık uçlu sorup değerlerini alın (belleğinden). Sonra aynı besinlerin gerçek değerlerini USDA FoodData Central'dan bulun. İki seti karşılaştırıp hangi besinde ne kadar sapma olduğunu bir tabloya yazın. Bu tablo, "belleğe güvenme, kaynağa bağla" ilkesini gözünüzün önüne serecektir.

Kontrol listesi

  • [ ] Besin değerlerini tanınmış bir veritabanından aldım, YZ belleğinden değil.
  • [ ] YZ'ye "sadece verilen veriyle çalış, ekleme yapma" kısıtını koydum.
  • [ ] Çiğ mi pişmiş mi olduğunu her besin için netleştirdim.
  • [ ] Porsiyonları grama çevirdim; "bir tabak/avuç" bırakmadım.
  • [ ] Bir plan içinde tutarlı tek kaynak kullandım.
  • [ ] YZ'nin toplamını geri çarparak doğruladım.