Susitikimų kambariai ir santraukos
Vaizdo skambučiai ant LiveKit + webedge-db — realaus laiko kambariai, įrašymas (LiveKit Egress) ir santraukos.
Dev-storyIššūkis
Po skambučio sprendimai ir užduotys dingsta pokalbių istorijoje arba niekieno užrašuose.
Ką darėme
Vue 3 + webedge-db susitikimų programa, naudojanti LiveKit WebRTC vaizdui, kambarių valdymui ir įrašo eksportui (egress), plius santraukos žingsnis, paverčiantis įrašą po pokalbio sprendimų ir veiksmų santrauka.
Rezultatas
Skambutis vyksta tikrame kambaryje, įrašomas ir palieka santrauką, prie kurios galima grįžti, o ne naršyti visą transkripciją.
Dev-story straipsnis
Kaip buvo kuriamas projektas: Susitikimų kambariai ir santraukos
Sistemai reikėjo savų vaizdo susitikimų, o ne nuorodos į svetimą produktą, kad tapatybė, kalendorius ir organizacijos prieiga tekėtų tiesiogiai. Kliūtis — backend'as sukasi ant dviejų branduolių arm dėžutės: nebuvo laisvo procesoriaus serveriniam vaizdo komponavimui ir jokio noro perkrauti medijos serverį dėl kiekvieno įrašymo. Šis apribojimas nulėmė beveik kiekvieną sprendimą.
Skyriai
05
Moduliai
05
Stackas
TypeScript + Vue 3
Kodėl projektas atsirado
Po skambučio sprendimai ir užduotys dingsta pokalbių istorijoje arba niekieno užrašuose.
Sistemai reikėjo savų vaizdo susitikimų, o ne nuorodos į svetimą produktą, kad tapatybė, kalendorius ir organizacijos prieiga tekėtų tiesiogiai. Kliūtis — backend'as sukasi ant dviejų branduolių arm dėžutės: nebuvo laisvo procesoriaus serveriniam vaizdo komponavimui ir jokio noro perkrauti medijos serverį dėl kiekvieno įrašymo. Šis apribojimas nulėmė beveik kiekvieną sprendimą.
Ką sukūrėme
Vue 3 + webedge-db susitikimų programa, naudojanti LiveKit WebRTC vaizdui, kambarių valdymui ir įrašo eksportui (egress), plius santraukos žingsnis, paverčiantis įrašą po pokalbio sprendimų ir veiksmų santrauka.
LiveKit SFU tvarko mediją, o mūsų reaktyvusis backend'as (webedge-db) valdo kambarių būseną, pokalbius, dalyvius ir prieigos patikras, todėl paneliai atsinaujina gyvai be apklausinėjimo. Įrašymas atliekamas komponuojant visų dalyvių langelius į tinklelį moderatoriaus naršyklėje ir ten pat sumaišant garsą, o serverinis LiveKit Egress kelias paliktas kaip alternatyva. Po pokalbio santraukos ištraukia veiksmų punktus iš transkripcijos ir pokalbio.
Pagrindiniai moduliai ir vartotojo kelias
Naršyklėje veikiantis įrašytuvas, kuris kiekvieno dalyvio vaizdą sudėlioja į Google-Meet stiliaus canvas tinklelį ir per WebAudio sumaišo visą garsą, gyvai suderindamas langelius ir garso grafą, kai žmonės prisijungia ar išeina — vienintelis kelias, tinkantis dviejų branduolių serveriui be laisvo procesoriaus
LiveKit Egress įrašymo valdymo sluoksnis, įkeliantis baigtus failus į S3, paliktas kaip serverinė alternatyva su diegimo išankstine patikra
Pokalbio santraukos, kurios ištraukia ir pašalina dublikatus iš transkripcijos bei pokalbio veiksmų punktų naudodamos signalų euristikas (tolesni veiksmai, kitas žingsnis, atsakingas, terminų frazės), o ne LLM
Realaus laiko kambario paneliai — dalyvių sąrašas, pokalbis, kambario būsena — prenumeruojantys backend'o atnaujinimus, todėl lieka gyvi be apklausinėjimo
15 minučių cron valymas, automatiškai užbaigiantis apleistus gyvus kambarius, kurių šeimininkas uždarė kortelę, finalizuojantis vaikinius grupinius kambarius ir aktyvius įrašus, kad būsena ir lankomumas liktų švarūs
Architektūra ir technologiniai sprendimai
Sukurta su TypeScript, Vue 3, Media workflows.
LiveKit SFU medijai su įrašymu naršyklėje per canvas/WebAudio (LiveKit Egress į S3 kaip alternatyva), mūsų reaktyvusis backend'as realaus laiko būsenai, seanso autentifikacijai, cron'ams ir kalendoriaus jungčiai, savarankiškai talpinta ant dviejų branduolių arm dėžutės, o frontend'as ant Cloudflare Pages.
Rezultatas ir pamokos
Skambutis vyksta tikrame kambaryje, įrašomas ir palieka santrauką, prie kurios galima grįžti, o ne naršyti visą transkripciją.
Veikiantis savarankiškai talpinamas susitikimų rinkinys, kuris įrašo ir sudaro santraukas ribotoje aparatinėje įrangoje ir susieja kiekvieną dalyvį su jo prisijungusiu sistemos profiliu — santraukos yra sąžininga raktažodžiais grįsta ekstrakcija, o ne DI magija.
Susiję straipsniai
Toliau skaityti
Susijusios projektų istorijos
Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.
Dev-storyCMS
Dinaminis CMS ant webedge-db — turinio tipai, medija, rolės ir vieša skaitymo API, maitinanti mūsų svetaines ir straipsnius.
Dev-storyVilniaus Verinėlis svetainė
Maža, greita statinė svetainė Vilniaus Verinėlio darželiui.
Dev-storyKalendoriaus rezervacijų platforma
Rezervacijos ant Vue 3 — laisvi laikai, užsakymai, laiškai ir Meet vaizdo nuorodos.
Turite panašią idėją?
Aptarti projektą