Steven
Steven5 min lasīšana

Kāpēc jūsu AI piezīmju rīks pārtrauc ierakstīšanu sapulces vidū

Mūsu pašu lietotne izbeidza divas mūsu sapulces, kamēr otra puse bija teikuma vidū. Kriminālistiskā pēda noveda pie labu nodomu vadīta dīkstāves taimera, kas nedzirdēja nevienu, izņemot jūs — un pie otras kļūdas, kas varēja nobloķēt visu jūsu darbvirsmu. Abas salabotas GeekBye v2.0.9.

Uzticamība
Sapulces
Inženierija
GeekBye laidieni
Kāpēc jūsu AI piezīmju rīks pārtrauc ierakstīšanu sapulces vidū
  1. jūlijā GeekBye pats no sevis izbeidza sapulces ierakstu. Datubāzes rinda pasaka visu: ended_reason = 'idle', ilgums 519 sekundes, 99 transkripta ieraksti — pēdējais ierakstīts divas sekundes, pirms lietotne nolēma, ka tur neviena nav.

Otrs dalībnieks bija skaidrojuma vidū. Transkripta pēdējā rinda burtiski ir teikuma fragments: "...executes it or turns it on or so—".

Tā nebija pirmā reize. Iepriekšējā vakarā tāpat beidzās cita sesija. Divas sapulces, kuras nogalināja mūsu pašu uzticamības funkcija. Šeit ir diagnoze un labojums, kas tika piegādāts GeekBye v2.0.9 — plus otra, biedējošāka kļūda, ko salabojām tajā pašā laidienā.

Labu nodomu vadīts taimeris, kas dzirdēja tikai jūs

Dīkstāves automātiskā aizvēršana pastāv laba iemesla dēļ. Cilvēki aizmirst ierakstus, kas darbojas cauru nakti; vaļā atstāta sapulces cilne mūžīgi pilina audio. Tāpēc GeekBye seko neaktivitātei: pēc 60 sekundēm bez balss aktivitātes tas parāda nelielu uzvedni "Still recording?" (vai joprojām ierakstām?), un vēl pēc 30 sekundēm, ja atbildes nav, izbeidz sesiju — pieklājīgi saglabājot visu.

Kļūme slēpās vienā vārdā: balss. Aktivitātes pulkstenis skaitīja tikai noturīgu mikrofona enerģiju. Tas bija apzināts dizaina lēmums, un ne muļķīgs — skaitīt neapstrādātu sistēmas audio enerģiju nozīmētu, ka izslēgta, bet trokšņaina cilne varētu bezgalīgi uzturēt mirušu sesiju dzīvu, kas ir tieši tā kļūme, kuras novēršanai šī funkcija pastāv. Sapulces, kurās jūs pārsvarā klausāties, bija paredzēts nosegt ar sapulces logu noteikšanu.

Tikai sapulču noteikšana nevar redzēt katru sapulci. Pārlūka cilnes, neierasti klienti, prezentācija, kuru skatāties — nenoteikti. Un nenoteiktā sapulcē, kurā jūs 90 sekundes klausāties — pilnīgi normāla lieta, kamēr kāds skaidro savu Databricks konveijeru — dīkstāves pulksteņa acīs jūs esat neatšķirams no tukšas istabas.

Paskatieties uz nogalinātās sesijas laika skalu: pēdējais transkripts no mūsu mikrofona pienāca 68 sekundes pirms beigām. Tad 60 sekundes, kurās runāja otrs cilvēks (transkribēts nevainojami, pulksteņa ignorēts), nepamanītā uzvedne, 30 sekunžu atskaite un nogalināšana — 2 sekundes pēc viņa pēdējiem vārdiem.

Labojums: transkripts ir dzīvības pierādījums

Korekcija, atskatoties, ir gandrīz apkaunojoša: ienākošs transkripts ir spēcīgākais iespējamais pierādījums, ka sesija nav dīkstāvē. Nav svarīgi, kurš runāja. Runas modelis tikko atpazina vārdus — tā ir sapulce.

Tāpēc v2.0.9 atzīmē aktivitātes pulksteni pie katra transkripta, kas pienāk, no jebkuras puses. Neapstrādāta sistēmas audio enerģija joprojām neskaitās — mūzika, gaidīšanas toņi un ventilācijas dūkoņa joprojām nevar padarīt mirušu sesiju nemirstīgu, un stingrā ierakstīšanas robeža joprojām nodrošina visu no aizmugures. Tikai atpazīta runa uztur sesiju dzīvu, un tieši tā ir pareizā robeža.

Viena detaļa no koda pārskates, ko vērts nodot tālāk: pirmā labojuma versija pulksteni atzīmēja runātāja attiecinājuma ceļā — kuru daļa transkriptu var leģitīmi izlaist. Pārskate noķēra, ka kāda nākotnes izmaiņa varētu klusi atgriezt kļūdu tieši tiem transkriptiem, kuriem ir nozīme (otra runātāja). Atzīme tagad ir beznosacījuma, pirms jebkādas zarošanās, ar testu, kas izgāžas, ja kāds to pārvieto.

Tas pats laidiens salaboja kaut ko biedējošāku

Testējot šos labojumus, mēs smagā ceļā uzskrējām citai kļūdai: avārija interfeisa procesā atstāja visu darbvirsmu neklikšķināmu.

GeekBye pārklājums ir caurspīdīgs, vienmēr virspusē esošs logs, kas nosedz jūsu ekrānu. Pēc noklusējuma tas laiž klikšķus cauri; interfeiss to pārslēdz interaktīvā režīmā, kad lietojat kādu paneli. Šie pārslēgumi nāk no interfeisa procesa — tāpēc, kad šis process avarēja ar atvērtu paneli, neredzamais logs palika interaktīvajā režīmā bez dzīva UI aiz tā. Katrs klikšķis uz jūsu darbvirsmas trāpīja mirušā, neredzamā rūtī. Vienīgā izeja bija piespiedu kārtā aizvērt lietotni.

v2.0.9 avārijas apstrādātājs tagad nekavējoties atjauno klikšķu caurlaidību un pārlādē interfeisu — ar ierobežojumu trīs pārlādes minūtē, lai avāriju cilpa nevarētu griezties mūžīgi (pēc ierobežojuma sasniegšanas lietotne atmet pārlādēšanu, bet jūsu darbvirsma paliek lietojama, un tieši tā ir daļa, kurai ir nozīme). Koda pārskate arī šo padarīja asāku: atkopšana attiecas tieši uz pārklājuma logu, jo klikšķu caurlaidības uzspiešana jebkuram avarējušam parastam logam — teiksim, atjaunināšanas dialogam — būtu radījusi pretēju bloķēšanu.

Šo labojumu varat pārbaudīt paši, brutāli: atveriet GeekBye paneli, programmā Activity Monitor piespiedu kārtā nogaliniet procesu "GeekBye Helper (Renderer)" un vērojiet, kā lietotne sekundes laikā atgūst jūsu darbvirsmu.

Ko šis kļūdu pāris mums iemācīja

  1. Katrs aizstājējsignāls jautājumam "vai lietotājs ir šeit?" kaut kur izgāžas. Mikrofona enerģija izgāžas pie klausītājiem. Logu noteikšana izgāžas pie pārlūkiem. Atpazīti transkripti izgāžas pie... nekā, ko līdz šim būtu atraduši, jo tie nav aizstājējsignāls — tie ir pats produkts.
  2. Visam, ko vada renderer, vajadzīgs avārijas stāsts. Ja miris UI process var atstāt aiz sevis OS līmeņa stāvokli (peles tveršanu, vienmēr-virspusē režīmu, satura aizsardzību), atiestatei jāpieder galvenajam procesam.
  3. Būt pašiem saviem smagākajiem lietotājiem ir kļūdu meklēšanas stratēģija. Abas kļūdas mūs ķēra īstās sapulcēs, pirms tās pamanīja vairāk nekā daži klienti. ended_reason kolonna, ko novērojamības vārdā bijām pievienojuši pirms vairākiem mēnešiem, ir tas, kas diagnozi padarīja par datubāzes vaicājumu, nevis minējumu.

Abi labojumi no diagnozes līdz piegādātam, notarizētam laidienam nonāca dienas laikā, katru nesa pārskatīts PR ar regresijas testiem. Ja lietojat GeekBye v2, tie jums ir kopš v2.0.9, pateicoties automātiskajai atjaunināšanai.

Par pārējo šī laidiena stāstu lasiet sērijas kaimiņu kāpēc AI transkripcija pārprot tehniskos terminus (v2.0.11), uzticamības pamatus rakstā kāpēc jūsu AI piezīmju rīks apstājas sliktā Wi-Fi tīklā un to, kā pārklājums paliek neredzams ekrāna kopīgošanas laikā, nezogot jūsu klikšķus.