Ar kada bandėte paversti "Jupyter" bloknotą kažkuo, ką jūsų viršininkas gali spustelėti neklausdamas: "Kodėl čia 'Comic Sans' šriftas?" Tai yra "Streamlit" pažadas: paimkite savo "Python" kodą, įberkite kelis st. ir – puf – jūs turite internetinę programą, nuo kurios jūsų suinteresuotosios šalys nebėgs. Šioje "Streamlit" apžvalgoje aš sukūriau kelias programas, kelias sugadinau, paaiškinau tai trims ne programuotojams ir priverčiau save kažką išleisti penktadienį. Štai kas nutiko, ką "Streamlit" puikiai įgyvendina, kur ji dūsta ir pūškuoja, ir ar ji turėtų būti jūsų pasirinkimas duomenų programoms 2025 m.
Kas yra "Streamlit" – be brošiūros
"Streamlit" yra atvirojo kodo "Python" sistema, kuri greitai paverčia scenarijus interaktyviomis internetinėmis programomis. Jūs rašote "Python" kodą, pridedate komponentų, tokių kaip slankikliai, diagramos, failų įkėlėjai ir duomenų lentelės, o "Streamlit" tvarko vartotojo sąsają, būseną ir aptarnavimą. Pagrindinis patrauklumas: nereikia jokio HTML/CSS/JS. Jūsų programa atrodo padoriai iškart ir diegiama su minimaliu vargu. Taip, kaip tuose "15 minučių patiekalo" vaizdo įrašuose – tik šis kartais iš tikrųjų trunka 15 minučių.
Kodėl ši apžvalga skirta jums (ir jūsų viršininkui, kuris nuolat prašo prietaisų skydelio)
- Jūs esate duomenų mokslininkas, kuris atsisako mokytis "React", bet nori išleisti kažką naudotino.
- Jūs kuriate AI įrankių prototipus ir jums reikia spustelėjamos demonstracinės versijos vakar.
- Jūs lyginate "Streamlit" su "Dash", "Gradio" ir "Shiny" ir svarstote, kas jus apleis dideliu mastu.
- Arba jūs esate viršininkas. Sveiki! Tai padės jums nustoti prašyti "tiesiog greito portalo", tarsi tai būtų latte.
"Streamlit" greitasis bėgimas: tikros programos kūrimas per popietę
Aš sukūriau tris mažas, bet tikras programas:
- CSV aiškintuvas: įkėlimas, profilio sudarymas, diagramų sudarymas, filtravimas, eksportavimas. Prietaisų skydelis "Aš prisiekiu, kad patikrinau duomenis".
- Kalbos modelio žaidimų aikštelė: raginimas, parametrai, atsako istorija ir paprasta įvertinimo metrika.
- Klientų nutekėjimo aiškintuvas: SHAP reikšmės, gabalai ir "kas būtų, jei" slankikliai produktų vadovams, kurie mėgsta svertus.
Laikas iki pirmojo "oho": 12 minučių. Laikas iki pirmojo apribojimo: 47 minutės. Tas antrasis yra svarbus. "Streamlit" žavesys yra tai, kaip greitai jūs pasiekiate "tai yra demonstracinė versija". Jos iššūkis yra tai, kaip greitai jūs pasiekiate "kaip man padaryti tai šiek tiek labiau pritaikytu?"
Privalumai, kurie iš tikrųjų svarbūs 2025 m.
- Absurdiškai greitas prototipų kūrimas: tai yra duomenų programų mikrobangų krosnelė. Ne gurmaniškas – bet mano vakarienė yra karšta ir ant stalo.
- Gimtoji "Python" eiga: nereikia perjungti konteksto į priekinės sąsajos sistemas. Jūsų smegenys lieka "pandas" žemėje.
- Baterijos įtrauktos valdikliai: mygtukai, slankikliai, skirtukai, stulpeliai, plėtikliai, diagramos – jūs naudosite 80% savo vartotojo sąsajos iš numatytojo meniu.
- Būsenos valdymas, kuris nepriverčia jūsų verkti: session_state yra pakankamai paprastas daugumai programų poreikių.
- "Atrodo gerai" numatytosios reikšmės: ji nelaimės dizaino apdovanojimų, bet jūsų suinteresuotosios šalys linktelės ir paprašys daugiau diagramų. Tai yra pergalė.
- Lengvos bendrinimo parinktys: "Community Cloud" ir "Snowflake" integracija padaro "spustelėkite, kad įdiegtumėte" mažiau fantazijos.
Trūkumai, kuriuos pajusite, kai tik parodysite tai kitiems žmonėms
- Sudėtingi išdėstymai reikalauja darbo: du stulpeliai? Puiku. Jautrus, tobulas pikselių valdymo pultas? Jūs grumsitės su CSS ir pasirinktiniais komponentais.
- Našumas dideliu mastu: didelės duomenų lentelės, sunkūs modeliai ir per daug pakartotinių paleidimų gali priversti jūsų programą dūsti.
- Ribota patirtis be interneto arba puikiai pritaikyta mobiliesiems įrenginiams: tai yra internetinė programa – veikia telefonuose, taip, bet nesukurta mobiliesiems įrenginiams pritaikytai UX.
- Pardavėjo neapibrėžtumas, jei jums reikia "įmonės": "Streamlit" atvirojo kodo yra tvirtas; dėl prieglobos daugelis žmonių remiasi kitomis platformomis arba "Snowflake" kontekstu. Kainodara ir įmonių istorijos gali atrodyti išsibarsčiusios už atvirojo kodo pagrindo.
Kur "Streamlit" spindi, palyginti su "Dash", "Gradio" ir "Shiny"
- "Streamlit" prieš "Dash": "Dash" suteikia jums daugiau kontrolės (ir sudėtingumo). Jei norite "dizaino pirmumo" prietaisų skydelio su chirurgine išdėstymo kontrole, "Dash" vis dar yra jūsų draugas. Jei norite greičio, kūrėjų laimės ir mažiau judančių dalių, "Streamlit" yra jūsų savaitės meilė.
- "Streamlit" prieš "Gradio": "Gradio" puikiai tinka ML demonstracinėms versijoms – įvestys/išvestys, greiti valdikliai, greitas bendrinimas. "Streamlit" pralenkia kuriant pilnesnes programas – kelių puslapių, pritaikytą būseną, turtingesnį duomenų tvarkymą.
- "Streamlit" prieš "Shiny": "Shiny" valdo R minią ir turi subrendusius įmonės modelius. "Streamlit" yra "Python" atitikmuo su draugiškesniu įvažiavimu ML/duomenų žmonėms.
2025 m. kontekstas: ne tik žaislinės programos
Pasakojimas "tai yra žaislas" sensta. "Streamlit" iš "šalto eksperimento" išaugo į "gamybai panašų" daugelyje komandų – ypač vidiniams įrankiams ir AI funkcijų bandomiesiems projektams. Geresnis sesijų tvarkymas, kelių puslapių programos, talpinimas į podėlį ir komponentų ekosistema užaugo. Ar tai yra jūsų kita milijardo vartotojų vartotojų programa? Ne. Ar tai yra jūsų kita vidinė AI triažo konsolė ar pardavimų įžvalgų portalas? Labai tikėtina.
Praktinis: kaip jaučiasi kūrimas (ir kur jis įkanda)
- Išdėstymo dėlionė: jums patiks stulpeliai ir skirtukai – kol jums prireiks sudėtingų jautrių tinklelių. Tada jūs "Google" "Streamlit custom components" kaip gremlinas 1 val. nakties.
- Pakartotinio paleidimo modelis: "Streamlit" "pakartotinis paleidimas sąveikos metu" modelis iš pradžių yra protą lenkiantis, bet lengvai suprantamas. Būsena išsprendžia daug. Tai taip pat gali sukelti slaptų pakartotinių skaičiavimų, jei netalpinsite į podėlį protingai.
- Talpinimas į podėlį ir našumas: naudokite st.cache_data ir st.cache_resource taip, kaip valote dantis – reguliariai ir su ketinimu. Šiek tiek talpinimo į podėlį paverčia "ugh" į "ahh".
- Failai ir įkėlimai: failų įkėlėjai yra tvirti. Dėl kelių GB chaoso naudokite debesų saugyklą ir tingius skaitymus.
- Autentifikavimas ir vaidmenys: jūs sukursite savo arba naudosite platformos lygio autentifikavimą. Tai įmanoma, bet ne džiugu.
"Streamlit" diegimas 2025 m.: jūsų parinktys
- "Community Cloud": puikiai tinka demonstracinėms versijoms, prototipams, hakatonams ir dalijimuisi su draugais, kurie vis dar jums skolingi kavos.
- Savarankiškas priegloba ir PaaS: "Docker" + jūsų pasirinktas debesis veikia gerai. Populiarūs pasirinkimai apima bendrąją debesų infrastruktūrą arba programų prieglobą; ten rasite daugybę vadovėlių ir šablonų.
- "Snowflake" susiejimas: jei jūsų duomenys jau yra "Snowflake", "Streamlit" diegimas ten sumažina jūsų galvos skausmą "kas vėl yra mano duomenų šaltinis?".
- Trečiųjų šalių platformos: yra valdomų pasiūlymų, kurie paleidžia "Streamlit" už jus – patogu, kai jūsų DevOps žmogus vėl yra paplūdimyje.
Kainų realybės patikrinimas
Atvirojo kodo yra nemokamas. Priegloba yra tai, kur jūs sversite išlaidas: savo pačių infrastruktūra, trečiųjų šalių paslaugos arba "Snowflake" pagrįstos sąrankos. "Community Cloud" istoriškai siūlė nemokamą kelią paprastoms programoms, tačiau komandos, kurioms reikia SLA, SSO ir pažangaus mastelio keitimo, dažnai ieško kitur arba atsineša savo debesį. Vertimas: jūsų programa yra pigi; jūsų atitikties komanda nėra.
Realūs naudojimo atvejai, kur "Streamlit" puikiai tinka
- Vidinė analizė: pardavimų operacijų prietaisų skydeliai, produktų KPI, finansų scenarijai. Vienas "Python" failas, trys diagramos, kolektyvinis atsidusimas.
- AI/ML demonstracinės versijos: LLM įrankiai, vaizdų klasifikatoriai, A/B raginimų testavimas. PM mėgsta spustelėti dalykus – duokite jiems mygtukų.
- Duomenų tyrinėjimo portalai: įkėlimas, valymas, profilio sudarymas, eksportavimas. Sudie, skaičiuoklių chaosas; sveiki, socializuota tiesa.
- Švietimas ir seminarai: studentai mato tiesioginį grįžtamąjį ryšį; instruktoriai mato mažiau "tai veikia mano mašinoje" gedimų.
Kada nereikėtų pasirinkti "Streamlit"
- Jums reikia tobulų pikselių, prekės ženklu nušlifuotų vartotojo sąsajų su sudėtingomis priekinės sąsajos sąveikomis.
- Realaus laiko, kelių žaidėjų programos su sunkiais "websockets" ir sudėtingu sinchronizavimu.
- Gimtoji mobiliesiems įrenginiams arba be interneto pirmumas yra būtinas.
- Jūs planuojate paversti savo prototipą didele, vartotojams skirta SaaS be priekinės sąsajos komandos. Nedarykite to sau. Arba savo vartotojams.
"Streamlit" mokymosi kreivė: nuo nulio iki prietaisų skydelio
- 1 diena: jūs išleidžiate veikiančią programą. Taip, tikrai.
- 3 diena: jūs išmokote talpinti į podėlį, formas, kelis puslapius ir būseną. Jūs esate biuro herojus.
- 7 diena: jūs klausiate apie autentifikavimą, vaidmenimis pagrįstą matomumą ir "kaip man padaryti šį mygtuką žalią?" Sveikiname, jums dabar rūpi priekinė sąsaja.
Sider.AISider.AI profesionalo patarimas (atsitiktinis pašalinis)
Verta paminėti: jei norėtumėte gauti ekspertų patarimų kuriant, Sider.AISider.AI gali padėti parengti komponentų modelius, pasiūlyti talpinimo į podėlį strategijas ir netgi generuoti kodo fragmentus "Streamlit" UI srautams – greičiau nei jūs galite pasakyti "kodėl mano programa vėl paleidžiama?" Tai tarsi turėti draugišką pilotą, kuris neteis jūsų kintamųjų pavadinimų. Našumo išgyvenimo rinkinys: penki pataisymai, kuriuos iš tikrųjų naudosite
- Talpinkite į podėlį viską, kas pagrįsta: duomenų įkėlimus, modelių objektus, įdėjimus. Jūsų CPU atsiųs vaisių krepšelį.
- Naudokite formas sugrupuotoms sąveikoms: neleiskite pakartotinių paleidimų, kol vartotojai nebus pasiruošę. Mažiau chaoso, daugiau kontrolės.
- Suskirstykite dideles lenteles į puslapius: nerodykite visos savo duomenų saugyklos vienoje duomenų lentelėje. Jūsų naršyklė sukils.
- Perkelkite sunkų kėlimą nuo pagrindinio gijos: foniniai darbuotojai, asinchroniniai skambučiai arba apdorojimas neprisijungus.
- Profilį anksti: keli spausdinimo laikai išgelbėja jus nuo tūkstančio "Slack" žinučių.
Tinkinimo vadovas: padarykite, kad atrodytų, jog bandėte
- Temos nustatymai: šiek tiek temų suteikimo nueina ilgą kelią – prekės ženklo spalvos, šriftai ir nuoseklus tarpų išdėstymas.
- Komponentai: įtraukite žemėlapius, turtingas diagramas ar net pasirinktinius "React" bitus. Tiesiog atminkite: kiekvienas pasirinktinis kūrinys prideda sudėtingumo mokestį.
- Kelių puslapių programos: suskaidykite savo programą į puslapius kaip skyrius. Vartotojai jums padėkos. Jūsų kodas taip pat.
Saugumas ir valdymas: nepatraukli dalis
- Paslapčių valdymas: naudokite aplinkos kintamuosius ir saugyklas, o ne užkoduotus prieigos raktus. Taip, ateities jūs tai skaito.
- Prieigos kontrolė: atvirkštiniai tarpiniai serveriai, OAuth arba platformos SSO. Gaukite pagalbos, jei tvarkote neskelbtinus duomenis.
- Audito galimybė: registruokite vartotojų veiksmus serverio pusėje. Ekrano nuotraukos nėra audito sekos (atsiprašau, atitikties).
"Streamlit" verdiktas viename netvarkingame, sąžiningame paragrafe
"Streamlit" yra greičiausias būdas patekti nuo "Python" idėjos iki bendrinamos programos, ir tai yra jos supergalia. Prototipams, vidiniams įrankiams, AI demonstracinėms versijoms ir prietaisų skydeliams tai yra dėjimas į krepšį iš viršaus. Dėl tobulų pikselių prekės ženklų, didelio lygiagretumo ar vartotojams skirto sudėtingumo jūs ją peraugsite – arba pradėsite prisukti pasirinktinius komponentus ir DevOps lipnią juostą. 2025 m. tai yra mažiau "žaislas" ir daugiau "patikimas darbinis arklys" duomenų komandoms, kurioms reikia pristatyti kažką naudotino dabar ir patobulinti vėliau.
(Per ilgas; "Dash" refaktorius): ar turėtumėte naudoti "Streamlit"?
- Taip, jei: jūs naudojate "Python", jums reikia kažko bendrinamo šią savaitę ir jūs vertinate greitį labiau nei pikselių tikslumą.
- Galbūt, jei: tai bus skirta klientams ir jūsų prekės ženklo policija nešiojasi segtuvus.
- Ne, jei: jums reikia realaus laiko kelių žaidėjų, sunkios pasirinktinės priekinės sąsajos logikos arba gimtojo mobiliesiems įrenginiams. Jūsų "React" draugai jums perskambins – galiausiai.
Ką daryti toliau (jūsų pirmadienio ryto planas)
- Sukurkite savo populiariausios darbo eigos prototipą "Streamlit". Apribokite laiką iki dviejų valandų.
- Pridėkite minimalų talpinimą į podėlį ir kelis puslapius. Išsiųskite nedidelei vidinei auditorijai.
- Surinkite atsiliepimus, registruokite, kas lėtai, ir nuspręskite: poliruokite "Streamlit" arba pereikite prie specialios priekinės sąsajos. Jokios kaltės bet kuriuo atveju.
Paskutinis žodis
"Streamlit" ne tik demokratizavo programų kūrimą duomenų žmonėms – ji padarė internetines vartotojo sąsajas...prieinamas. Kaip automatinės transmisijos pakeitimas rankine transmisija. Jūs neišraižysite viršūnių, bet pateksite ten, kur einate, greičiau, su mažiau sustojimų. Ir kartais būtent taip atrodo pristatymas.
DUK
Q1: Ar "Streamlit" tinka gamybos programoms 2025 m.?
Vidinėms priemonėms ir AI/duomenų prietaisų skydeliams, taip – "Streamlit" yra patikimas ir greitas pristatyti. Vartotojams skirtoms programoms su tobulu pikselių dizainu, sudėtingu autentifikavimu ir dideliu lygiagrečiu greičiausiai pereisite prie pilnos priekinės sąsajos po prototipų kūrimo.
Q2: Kaip "Streamlit" palyginti su "Dash" ar "Gradio"?
"Streamlit" teikia pirmenybę greičiui ir paprastumui, "Dash" siūlo smulkesnę išdėstymo kontrolę, o "Gradio" puikiai tinka greitoms ML demonstracinėms sąsajoms. Pasirinkite "Streamlit", kai norite pilnos, bet paprastos "Python" pirmumo programos, negrumtyniaudami su priekine sąsaja.
Q3: Koks geriausias būdas įdiegti "Streamlit" programą?
Naudokite "Community Cloud" arba "Snowflake" greitam bendrinimui arba konteinerizuokite ir įdiekite į savo mėgstamą debesį, kad gautumėte daugiau kontrolės. Atvirojo kodo branduolys yra nemokamas; priegloba ir įmonės funkcijos priklausys nuo jūsų platformos ir atitikties poreikių.
Q4: Kaip pagreitinti lėtą "Streamlit" programą?
Talpinkite į podėlį duomenų įkėlimus ir modelių objektus, sugrupuokite brangias operacijas ir paleiskite iš naujo tik pateikus formą. Suskirstykite dideles lenteles į puslapius ir apsvarstykite galimybę perkelti sunkų darbą foniniams darbuotojams arba API.
Q5: Ar galiu padaryti, kad "Streamlit" programos atrodytų pagal prekės ženklą?
Taip – pradėkite nuo temų ir išdėstymo primityvų, tada pridėkite komponentų, kad gautumėte pažangią vartotojo sąsają. Galite priartėti prie prekės ženklo, bet jei jums reikia tobulo pikselių valdymo, planuokite pasirinktinį priekinės sąsajos darbą.