Streamlit
voila는 레이아웃을 잡기는 어렵다.
자바스크립트, react를 사용해서 프로토타입을 만드는 것은 시간적으로 효율성이 없다.
다른 조직 프론트나 PM의 도움 없이 빠르게 웹 서비스를 만드는 것이 streamlit이다.
streamlit의 대안
- voila : notebook을 바로 시각화, ux나 layout 잡기가 어려움
- dash : 문서를 읽고 코드를 고쳐야함
- flask+fastAPI : 백엔드와 프론트를 직접 구성해야 함
streamlit의 장점
- 백엔드 개발이 필요 없다
- 파이썬을 조금만 수정하면 된다
- UI를 구성할 수 있다.
- 배포까지 할 수 있게 되어 있다.
pip install streamlit
를 CLI에 쳐서 설치한다.
나머지 것들은
깃허브에 있는 requirements.txt 들로 설치한다
pip install -r requirements.txt
설치가 잘 됬는지 확인하자. 나는 streamlit이 설치가 제대로 안되서 뒤에서 계속 모듈을 못찾는다는 에러가 떴다.
다음 streamlit 코드 파일을 만들고,
streamlit run <파이썬 파일>
streamlit run <파이썬 파일> --server.port <사용하고자하는 port번호> # 위의 코드로는 안 될 때
나는 aistage에서 서버 받을때 준 포트를 사용했다.
이렇게 하면
이렇게 URL이 뜬다. External URL로 들어가서 접속이 잘 되면 성공
그러면 stream text를 어떻게 작성하는지 알아보자
import streamlit as st
st.title('제목')
st.write('print같은 것')
st.button('버튼')
st.checkbox('체크박스')
st.dataframe('interactive한 dataframe')
st.table('정적인 dataframe')
st.line_chart(차트 data)
와 같이 여러 component가 있다.
더 많은 것은 공식 documentation이나
를 참고하면 될 것 같다.
session state
코드가 바뀌면 매번 코드가 처음부터 재실행된다. 그래서 중복 이벤트를 할 수 없다. global 변수를 사용하면 조금 이를 보완할 수 있기에 그런 역할을 하는 것이 st.session_state.변수명에 variable을 저장하면 된다.
if '<변수명>' not in st.session_state:
st.session_state.변수명=0
st.session_state.변수명+=3
위의 코드는 default value init 부분인데, 이 코드가 없으면 없으면 0으로 계속 초기화 되서 자꾸 0이 될 것이다.
cache
매번 dataframe을 받아오면 시간이 걸리기 때문에 메모리에 잠시 저장하는 기능이다.
@st.cache을 위에 그냥 쓰면 된다.
다음 강의인 2-3은 전에 들었던
이것과 같은 내용이라서 생략하겠습니다. 위의 게시글을 참고하세요!
'부스트캠프 AI Tech 3기 > 프로젝트 : P-stage' 카테고리의 다른 글
[GCP] bucket의 객체 삭제,서비스 계정 키 발급 & 환경변수 설정 (0) | 2022.05.25 |
---|---|
[Day86] Product Serving 2-4 Cloud (0) | 2022.05.25 |
[Day82] Product Serving 2-1 프로토타이핑 - Notebook 베이스(Voila) (0) | 2022.05.18 |
[Day82] Product Serving 1-3 Model Serving (0) | 2022.05.18 |
[Day80] Product Serving 1-2 MLOps 개론 (0) | 2022.05.16 |