Buna Ne Zaman İhtiyacınız Var?
Manuel yemek kaydı, iyi beslenme alışkanlıklarının öldüğü yerdir. Eski usulde bir tabak chicken curry kaydetmek için, kullanıcı "chicken curry" aratır, bir listede gezinir, porsiyon boyutunu tahmin eder ve tabaktaki her öğe için tekrarlar. Teoride doğru olsa da pratikte terk edilir — sürtünme motivasyonu ağır basar.
Kamera tüm bunları kısaltır. Bir yemeğe telefonunuzu tuttuğunuzda, saniyeler sonra tam besin değerleriyle eşleşen tarifler kayda hazır hale gelir. Bu model, veri yakalamanın kullanıcılar ve ürününüzün değeri arasındaki engel olduğu zamanlarda — "sadece bir fotoğraf çekmek" çok adımlı manuel girişi değiştirebildiğinde — yerini sağlamlaştırır. Bu, MicrocosmWorks'ün AI geliştirme hizmetlerinin faaliyet gösterdiği alanda yer alan bir sorundur: teknik olarak yetenekli bir modeli, gerçek sürtünmeyi ortadan kaldıran bir hatta dönüştürmek.
Model Genel Bakışı
Bir fotoğraf dört aşamada kaydedilmiş, niceliksel bir öğün haline gelir:
- Yakala — fotoğraf çekin veya bir görüntü seçin; yüklemeden önce cihazda optimize edin.
- Gör — bir görüntü modeli yemeği, ham etiketler yerine sıralanmış arama terimleri olarak ifade edilmiş şekilde tanımlar.
- Eşleştir — bu terimler, sıralaması modelin güveninden miras alınan bir tarif aramasını yönlendirir.
- Kaydet — kullanıcı bir tarif seçer, malzemeleri ve besin değerlerini görür, bir miktar seçer ve kaydeder.
Ana fikir: görüntü ve arama birbiriyle ayrı sistemler değildir. Görüntü modeli, arama motorunun tam olarak ne istediğini üretecek şekilde yönlendirilir ve arama motoru modelin ürettiği sıralamaya güvenir. "Gösterdiğimiz" ve "fotoğraftaki" arasındaki ayrım ortadan kalkar.
Referans Mimari
Cihazda optimize edilmiş Yakalama. Görüntüler yüklemeden önce ~512 piksel genişliğe yeniden boyutlandırılır ve ~%40 JPEG kalitesine sıkıştırılır — görüntü API'lerinin sabit boyut sınırları vardır ve ham bir telefon fotoğrafı bunları aşar. Sunucu, bir güvence olarak 2MB'lık bir üst sınır uygular.
Gör: model aramayı yazar. Görüntü GPT-4o'ya gider. İstem (prompt), "bu ne yemeği?" yerine yemeği bütün olarak adlandıran, en güvenilir olandan en geniş yedek olana doğru düzenlenmiş beş aranabilir tarif adı ister. Bir burger şöyle döner:
["cheeseburger", "beef burger", "cheese burger", "hamburger", "burger"]Eşleştir: güvenilirlik alaka düzeyine dönüşür. Beş ad, bir Elasticsearch tarif dizinine karşı tek bir "herhangi birini eşleştir" araması olarak çalışır ve her biri konuma göre ağırlıklandırılmış bir güçlendirme (50×'den 5×'e kadar) taşır. Cheeseburger başlıklı bir tarif, metin istatistiklerinden değil, modelin daha güvenilir olmasından dolayı genel bir Burger'ın önüne geçer. Beş VEYA ile eşleşen terim, kullanıcının neredeyse her zaman bir şeyler görmesi anlamına gelir; güçlendirmeler en iyi tahmini en üste iter.
Kaydet: tarif kartından niceliksel öğüne. Malzemeler — düz metin, düzenlenmiş referanslar ve harici FatSecret referansları olarak saklanır — tek, temiz bir listeye normalleştirilir. Kullanıcı bir birim ve miktar seçer; kaloriler ve makrolar anında hesaplanır ve öğün günlüğüne kaydedilir.
Ham malzemeler için ikinci bir yol. Aranacak bir yemek olmadığında, özel bir yemek tanıma API'si besin değerlerini doğrudan döndürür — genel bir görüntü modelinden daha ucuz ve daha uygun. Uygulama, niyete göre yönlendirme yapar.
Tasarım Kararları & Tavizler
Modeli bir sonraki sistemin giriş formatına yönlendirin (prompt). Sıralanmış, aranabilir isimler — serbest biçimli etiketler değil — geçişi temiz yapar. İstem (prompt) sözleşmenin bir parçasıdır; onu metin değil, kod olarak ele alırız.
Geniş bir ağ, tek bir en iyi tahmini yener. Beş VEYA ile eşleşen terim, "sonuç bulunamadı" mesajını önemli ölçüde azaltır, ancak listenin daha aşağılarında ara sıra gevşekçe ilgili sonuçlar görülebilir.
Görüntüyü bulunduğu yerde optimize edin. Cihaz üzerinde sıkıştırma, yükleme süresini kısaltır ve API sınırlarını aşar, küçük bir istemci tarafı bağımlılığının maliyetiyle — gerçek dünyadaki mobil güvenilirlik için değerlidir.
Doğru model, doğru iş. Genel bir görüntü modeli "bu hangi yemek?" konusunda üstündür ve "bu elmada kaç kalori var?" için aşırıya kaçar. İki yol, maliyeti kontrol eder ve sonuçları iyileştirir.
Dürüstçe bozulma. Algılama yok, eşleşme yok — uygulama bunu açıkça belirtir ve numara yapmak veya akışı bozmak yerine manuel arama sunar.
Oran sınırlama, yükleme sınırları ve zarif hata yönetimi gibi koruyucular, yalnızca alttaki altyapı buna göre inşa edildiğinde işe yarar — MicrocosmWorks'ün bulut altyapı hizmetlerinin sağlamak üzere inşa edildiği temel türü.
Ne Zaman Kullanmalı — ve Ne Zaman Kaçınmalı
Bu modeli, manuel yakalamanın gerçek bir engel olduğu, bir fotoğrafın çok adımlı girişi temsil edebildiği, eşleştirecek bir kataloğunuz olduğu ve "anında yeterince iyi"nin "sonunda mükemmel"den daha iyi olduğu durumlarda kullanın. Etki alanının laboratuvar düzeyinde doğruluk gerektirdiği, eşleştirilecek bir kataloğun olmadığı, görüntü API maliyetlerinin kazanılan etkileşimi aştığı veya girişlerin güvenilir bir şekilde tanımlanamayacak kadar görsel olarak belirsiz olduğu durumlardan kaçının.
Yaklaşımımız
Bilgisayar görüşünde içgüdü, yiyeceği mükemmel şekilde adlandıran bir modeli kovalamaktır. Gerçek kaldıraç başka bir yerdedir: görüntü çıktısının aşağı akışta her şeye nasıl bağlandığında. Modeli arama motorunun dilini konuşması için yönlendirin (prompt), güvenini sıralama haline getirin, sahne arkasındaki dağınıklığı normalleştirin — ve tüm bunlar birkaç dokunuşla çözüme kavuşur. Kazanç daha akıllı bir sınıflandırıcı değildir; bu, dikişsiz bir hattır.
Benzer bir şey mi inşa ediyorsunuz? MicrocosmWorks'ün AI ajan çözümlerini keşfedin veya hattınızın mimarisi hakkında konuşmak için bizimle iletişime geçin.
Diğer Bloglar
1. Kişiselleştirilmiş Tarif Arama: Bir Sonraki Yemeğinizi Bilen Geri Alma
2. Microservices ile Dijital Bir Sağlık Platformunu Ölçeklendirme
3. Apple Health ve Health Connect'i Senkronize Etme

