꺼내먹는지식 준
Product Serving 해보기 2 - Streamlit 본문
사전 product Serving에서 확인했던 Voila의 장점은 노트북에서 프로토 타입을 쉽게 만들 수 있다는 것이다.
그러나 레이아웃을 잡기 어려워서 웹 개발을 해야 할 수도 있다.
그러나 현재 이 글의 대상자들은 데이터 분석가 혹은 사이언티스트 인데, 이들이 밑단부터 웹 개발을 할 필요는 없다.
즉 이로 인해 자바 스크립트, React, Vue 등을 사용해야 하는데, 이는 시간대비 효율적이지 않다.
처음부터 HTML/ 자바스크립트 + Flask/Fast API가 아닌, 기존 코드를 조금만 수정해서 웹 서비스를 만드는 것이 목표
데이터 분석가 혹은 사이언티스트가 웹 서비스를 작업하는 Flow를 살펴보자.
시나리오 1

시나리오 2

시나리오 1 의 경우 익숙해지는데 시간이 오래 걸린다. 시나리오 2의 경우 프론트엔드 조직이 새롭게 도와주기 전까지는 모든 step이 멈춘다.
이러한 문제를 해결하기 위해, 다른 조직 도움 없이 빠르게 웹 서비스를 만드는 방법이 바로 Streamlit






Streamlit Gallery 를 보면 공개 된 프로젝트의 source 코드를 참고하여 간단하게 구현해볼 수도 있다.
사용 방법
pip install streamlit
#CLI
streamlit run streamlit-basic.py

Component
(마치 마크다운)







Chart

Map

Ploty Chart

Radio Button, Select Box

Multi Select Box

Slider

Streamlit Input Box, Caption, Code, Latex






st.ballons
notifier Status Box

Streamlit Form

200 MB 제한, stream lit upload file

https://docs.streamlit.io/knowledge-base/deploy/increase-file-uploader-limit-streamlit-cloud
Streamlit Docs
Join the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come join us on the community forum. We love to hear your questions
docs.streamlit.io
찾아보니 200MB 넘게 올릴 수 있다.
다양한 그 외의 component는 참고
아래는 cheat sheet



위 말이 무슨 말인지 직관적으로 와닿지 않는다.
아래의 예시를 보자.

아무리 화면의 버튼을 눌러도 코드가 재 실행 되니까 1 이상 커지지 않는다.
마치 processing 을 처음 사용할 때 겪었던 일과 유사하다.
이에 따라 session state가 추가된다면?

코드가 좀 늘어나고, session state에 값이 잘 추가가 된다! :)
session state 사용법은 다음과 같다.

session state도 초기화 되는 상황을 막기 위해서 없는 경우에만 0으로 설정!


데이터도 계속 읽어오지 않도록 caching!
'AI > MLOps' 카테고리의 다른 글
| Product Serving 해보기 1 - Voila (0) | 2022.05.17 |
|---|---|
| Model Serving 개론 (0) | 2022.05.17 |
| MLOps 개론 (0) | 2022.05.16 |