Pazandachilik kontenti uchun videoni retseptga aylantiruvchi SI
RecipeReel pazandachilik yoki o‘quv videosini bitta toza, tartibli retseptga aylantiradi. YouTube, TikTok yoki Instagram Reels havolasini qo‘ying yoki faylni yuklang. Natijada quyidagilarni olasiz:
- miqdori va o‘lchov birligi ko‘rsatilgan masalliqlar
- ketma-ket qadamlar — har biri videoda qaysi soniyada bo‘lishi bilan belgilangan
- tayyorlash, pishirish va umumiy vaqt
- jihozlar va maslahatlar
- taxminiy ozuqaviy qiymat jadvali
Natija JSON yoki retsept sayti to‘g‘ridan-to‘g‘ri chop eta oladigan schema.org/Recipe JSON-LD ko‘rinishida chiqadi.
Biz uni AMD Developer Hackathon: ACT II’ning 3-yo‘nalishi (Track 3) uchun uch kunda qurdik. Kod MIT litsenziyasi ostida va GitHub’da ochiq. Jonli demo butun konveyerni mock rejimida ishga tushiradi.
Asosiy imkoniyatlar
- Transkript va ekrandagi matnni birlashtirish — diktor nutqi qadamlar tartibi va texnikani beradi. Kalit kadrlardagi vizual tahlil va matnni tanib olish esa mualliflar ko‘rsatadigan, lekin aytmaydigan aniq miqdorlarni beradi.
- Vaqt belgili qadamlar — har bir qadam boshlanish vaqtini saqlaydi, shuning uchun veb-ilova joylashtirilgan videoni aynan o‘sha lahzaga o‘tkaza oladi.
- Har bir maydonning manbasi — har bir masalliq «aytilgan», «ekranda» yoki «xulosa qilingan» deb belgilanadi. Noma’lum miqdor o‘ylab topilmaydi — null bo‘lib qoladi.
- schema.org Recipe eksporti — alohida endpoint masalliqlar,
HowToStepko‘rsatmalari, vaqtlar, jihozlar va ozuqaviy qiymat bilan JSON-LD qaytaradi. - Havola yoki fayl — havolalar yt-dlp bilan yuklab olinadi, yuklangan fayllar esa o‘sha konveyerdan o‘tadi.
- Jonli jarayon — vazifalar asinxron ishlaydi va har bir bosqichni Server-Sent Events orqali jonli uzatadi.
- Uchinchi tomonsiz botlardan himoya — ajratib olish endpoint’larini o‘z serverimizdagi Altcha proof-of-work CAPTCHA qo‘riqlaydi. Uning topshiriqlari imzolangan, muddati tugaydi va faqat bir marta ishlatilishi mumkin.
Arxitektura va texnologiyalar
Qayta ishlash konveyeri
Har bir vazifa sakkiz bosqichdan o‘tadi:
- Videoni qabul qilish.
- FFmpeg bilan 16 kHz audioni ajratib olish.
- Taxminan 24 ta vaqt belgili kalit kadrni tanlab olish.
- Audioni Whisper-large-v3 bilan matnga o‘girish.
- Kadrlarni Qwen2.5-VL bilan o‘qish.
- Gemma yordamida 0 haroratda, JSON sxemasi bilan cheklangan holda bitta retsept tuzish.
- Natijani tekshirish, o‘lchov birliklarini normallashtirish va takroriy masalliqlarni olib tashlash.
- Retseptni SQLite’da saqlash.
Modellar va uskunalar
Nutq va tasvir tahlili — og‘ir, o‘tkazuvchanlikka bog‘liq bosqichlar, shuning uchun ular ROCm orqali AMD Instinct MI300X GPU’larida ishlashga moslab qurilgan. ROCm PyTorch o‘zini CUDA sifatida ko‘rsatadi, shuning uchun bir xil kod noutbuk CPU’sida ham, CI’da ham, GPU’da ham ishlaydi. Bitta notebook ikkala modelni MI300X’da ishga tushiradi.
Sintez almashtirsa bo‘ladigan yo‘nalishlarga ega, OpenAI bilan mos yagona mijoz orqali o‘tadi: Google AI Studio’dagi Gemma 4, Fireworks AI’dagi tezkor model yoki vLLM bilan o‘z serverimizda ishlaydigan Gemma. Ular orasida almashish — faqat sozlamani o‘zgartirish. Haqiqiy YouTube Short’da boshidan oxirigacha tekshirilgan bir ishga tushirishda kadrlarni Gemini 2.5 Flash o‘qidi, retseptni esa Gemma 4 yozdi.
Production’da YouTube to‘sig‘idan o‘tish
Jonli server data-markaz IP manzilida ishlaydi va YouTube undan yuklab olishni to‘sib qo‘ydi. Data-markaz va provayder (ISP) proksilarini sinab ko‘rdik, so‘ng YouTube’dan yuklab olishni xostingdagi yuklab olish API’siga o‘tkazdik, yt-dlp’ni esa zaxira sifatida qoldirdik. Ajratib oluvchining xom xatolari o‘rniga faylni to‘g‘ridan-to‘g‘ri yuklashni taklif qiladigan xotirjam xabar ko‘rsatiladi, shuning uchun botlarni bloklash haqidagi xabarlar foydalanuvchilarga hech qachon yetib bormaydi.
Veb-ilova
Frontend — API tomonidan uzatiladigan, o‘z-o‘zidan yetarli sof HTML, CSS va JavaScript ilova. Kompyuterlarda jurnal uslubidagi maket, telefonlarda esa ekranni to‘liq egallaydigan ilova maketi ko‘rsatiladi. Unda retsept sahifasi, pishirish rejimi, qidiruvli kutubxona va haqiqiy ajratib olish vazifasini ishga tushiradigan havola orqali qo‘shish oqimi bor.
Sifat
Har bir bosqich mock varianti bor almashtiriladigan provayder, shuning uchun servis doim ishga tushadi. Mock rejimi demo va CI uchun to‘plamdagi namunalar (fixture) asosida haqiqiy kod yo‘lini ishlatadi. Test to‘plamida 24 ta muvaffaqiyatli test bor, yengil (slim) va ROCm Docker obrazlari ham qo‘shilgan.
Tartibli retsept ma’lumotlari nega muhim
Videoni retseptga aylantiruvchi vositaning foydasi uning natijasi bilan o‘lchanadi. schema.org Recipe mikrorazmetkasi retsept sahifalariga Google’ning retseptlar uchun kengaytirilgan natijalarida (rich results) chiqish imkonini beradi, ovqatlanish rejalashtiruvchilari va oziq-ovqat xaridi integratsiyalari ham aynan shu formatni qabul qiladi. Shuning uchun RecipeReel shunchaki tartibliroq transkript emas, standart tuzilmalangan ma’lumotlar chiqaradi.
Tegishli ishlar
RecipeReel — sun’iy intellekt integratsiyasi va avtomatlashtirish bo‘yicha ishlarimizdan biri. LectureLoom xuddi shu konveyerni ma’ruza videolariga qo‘llaydi. Legible, Testify va Keystone ham shu xakatonda yaratilgan.



