RisalDash RisalDash

Qoʻllanma · AI · ESP32

ESP32 ga oʻylaydigan yuz bering

ESP32 katta til modelini tortmaydi — ammo u uchun ideal front-end boʻladi. Chip savolni qabul qiladi, joylashtirilgan model oʻylaydi, robot-yuz esa butun yoʻl davomida reaksiya bildiradi: tinglaydi → oʻylaydi → gapiradi → tayyor. Mana arxitektura, bitta muhim xavfsizlik qoidasi va hammasini bogʻlaydigan usul.

AI-agentLLMESP32ProksiRisalDash
ESP32 AI-agent pipeline: robot yuzi tinglaydi, oʻylaydi, gapiradi va muvaffaqiyat bosqichlaridan oʻtadi
Yuz — bu agentning holatlar mashinasi: soʻrovning har bosqichida oʻz ifodasi bor.

Sxema: ESP oldinda, model orqada

AI’ni chipning oʻzida yurgizishga urinma. Yutuqli boʻlinish oddiy: ESP32 interfeysni boshqaradi — kirishni oladi (matn, tugma, keyin mikrofon), nima boʻlayotganini koʻrsatadi va javobni chizadi — joylashtirilgan model esa tilni bajaradi. Oʻrtada — sen nazorat qiladigan kichik server. Soʻrov bir tomonga ketib, qaytadi:

sen yozasan  →  ESP32  →  sening proksing  →  LLM  →  javob + kayfiyat  →  ESP32 yuzi

Foydalanuvchi koʻradigan va tegadigan hamma narsa ESP’da yashaydi va jonli veb-dashboard sifatida beriladi — shunday qilib «agent»ning ovozdan ancha oldin tanasi bor.

Bitta qoida: API kalit hech qachon ESP’ga tegmaydi

Aynan shu joyda koʻpchilik xato qiladi. LLM API kalitini proshivkaga hech qachon joylashtirmang. Flesh’dan .bin ni olgan har kim uni oʻqiydi — ESP32 nimani qayerda saqlashiga qarang — va mikrokontroller baribir ta’minotchining aylanuvchi TLS zanjirini xavfsiz «pin» qila olmaydi. Buning oʻrniga ingichka proksi (Cloudflare Worker, kichik Node yoʻli) koʻtaring — u sirni saqlaydi. ESP sening URL’ingni oddiy xabar bilan chaqiradi; proksi kalitni qoʻshadi, modelni chaqiradi va kichik JSON qaytaradi. Bu taxminan oʻn besh qator — va bitta qurilmani ham qayta proshivka qilmasdan modellarni almashtirish, limit va kesh qoʻyish imkonini beradi.

Yuz — holatlar mashinasi

Mana hammasini jonlantiradigan usul: tarmoq soʻrovida holatlar bor — yuborish, kutish, javob-keldi, xato — va ular ifodalarga bir-birga toʻgʻri keladi. Sen jarayonni matn bilan tasvirlamaysan; yuz oʻzi progress-bar. Bitta bogʻlangan oʻzgaruvchini oʻrnatasan — beriladigan yuz (va qurilmadagi istalgan ekran) WebSocket orqali unga ergashadi:

mood = FACE_LISTENING;   // soʻraldi
mood = FACE_PONDERING;   // modelga topshirildi
reply = askAgent(msg);   // proksi chaqiruvi
mood = FACE_SPEAKING;    // javob keldi
mood = replyMood;        // modelning oʻz kayfiyatiga joylashish

Oxirgi qator eng qizigʻi: model oʻz kayfiyatini oʻzi tanlasin. Undan javobni kayfiyat indeksi bilan tugatishni soʻra — va yuz «quvur»ni emas, javob mazmunini aks ettiradi: mamnun, ishonchsiz, uzr soʻrayotgan. Yuzda tanlash uchun oʻnlab holat bor (yigʻilgan va koʻrib chiqiladigan BoardLabda); agent jonli tuyulishi uchun bir hovuchi yetadi.

Kim nima qiladi

QatlamQayerda ishlaydiVazifasi
Yuz + UIESP32 dakirishni olish, holatni koʻrsatish, javobni chizish
Proksisening serving / Workerkalitni saqlash, modelni chaqirish, JSON’ni shakllantirish
Modelbulutdatushunish, javob berish, kayfiyat tanlash

Chegarani toza tut — va har boʻlak almashtiriladigan boʻlib qoladi: proksida modelni almashtirasan, proshivkada yuzni qayta boʻyaysan, biri ikkinchisiga tegmaydi.

Keyin qayerga

Brauzerdagi matn — eng oddiy front-end, ammo aynan shu pipeline tugma yoki mikrofonni ham xuddi shunday qabul qiladi — kirishni almashtirasan, holatlar mashinasini qoldirasan. Unga toʻgʻri radio va quvvat manbai qoʻsh — gapiradigan yuz javondagi haqiqiy qurilmaga aylanadi. Toʻliq sketch (proksi shartnomasi bilan) RisalDash omborida AI-Agent misoli sifatida keladi.

Avval tana? Toʻliq jonli dashboard — yuz, datchiklar, boshqaruv — bir necha qator C++.

Agent yuzi jonli

Bu pipeline boshqaradigan holatlardan bir nechasi — oʻzi animatsiya boʻladi.

neutral
listening
pondering
speaking
happy
success
worried
error
Toʻliq toʻplamni BoardLab’da yigʻing →