[Streamlit] 스트림릿 시작하기

Streamlit

 

 데이터쪽을 공부한다면... ML, DL 등을 공부한다면.. 한 번쯤 들어봤을 법한 Streamlit!

파이썬과 연동되어 html이나 css, javascript 지식 없이도 내가 분석한 모델들을 웹 페이지 형태로 시각화 할 수 있는 좋은 파이썬관련 프레임워크 중 하나이다!

 

Streamlit을 이용해서 나만의 블로그를 작성해 봐도 좋을 것 같고, 포트폴리오로 제작해봐도 좋을 것 같음!

 

 

Streamlit 사용의 이점

  • Scikit, Keras, Numpy, Pandas, Tensorflow 등등과 쉽게 연동할 수 있고
  • 서비스 개발 속도를 최소화 할 수 있으며
  • 안전한 웹 개발 Development 이며
  • HTML, CSS & JavaScript 지식이 전무해도 되며!
  • 개발하기가 쉽다..!

 

 실제로 포스코 AI 빅데이터 아카데미 활동을 진행하면서 결과물들을 종종 Streamlit을 통해 html 형태로 제출하는 조들도 있었는데 LLM을 공부하면서, LangChain이나 API를 적용해서 웹페이지 결과물들을 만들어 내는 프로젝트들을 보고 Streamlit 공부를 좀 시작해봐야 할 것 같아서 이렇게 게시물을 작성하게 되었다 ㅎㅎ

 

공부 영상은 아래 유튜브 링크를 참고하였다!

 

https://www.youtube.com/watch?v=RjiqbTLW9_E&list=PLa6CNrvKM5QU7AjAS90zCMIwi9RTFNIIW

 


 

 

Streamlit 시작하기

 

 Streamlit을 시작하기 전에 먼저 가상환경(Conda)를 구축하고 pip install 을 시켜준다.

pip install streamlit

 

 

그 다음, 다음과 같이 아무 파이썬 파일을 만들어 Streamlit 모듈을 import 해준다.

import streamlit as st

 

 

Streamlit을 터미널에서 실행시킨 후 결과물을 보고 싶다면 아래 명령어를 이용하면 된다.

 

streamlit run 파이썬파일이름.py

 

다음과 같이 내 IP 주소와 함께 html 접속 주소를 알려준다.

 

접속 주소는 보통

 

http://localhost:8501

으로, localhost 부분에 본인의 IP 주소를 주소 입력창에 치면 제대로 접속이 된다.

 

 

 

 

페이지 구성 하기

 

Steamlit을 이용하면 다양한 모듈들을 확인할 수 있는데, html이나 javascript와 같은 기능들을 구현할 수도 있고, Markdown과 Latex같은 모듈들도 다 지원하기 때문에 보다 쉽게 페이지 구성이 가능하다는 장점이 있다!

 

다음과 같이 html 기능들을 이용할 수 있다. (필자는 사실 html 에 대해 잘 모른다)

st.title("Title")
st.subheader("Hi, I'm your subheader")

 

 

그리고 이렇게 Markdown과 Latex를 이용해 볼 수도 있다.

st.markdown("[Google](https://www.google.com)")
st.markdown("---")
st.latex(r"\begin{pmatrix}a&b\\c&d\end{pmatrix}")

 

Markdown과 Latex를 보다 더 자세히 사용하고 싶다면 아래 링크들을 참조하면 좋다.

 

https://www.markdownguide.org/cheat-sheet/

 

Markdown Cheat Sheet | Markdown Guide

A quick reference to the Markdown syntax.

www.markdownguide.org

https://katex.org/docs/supported.html

 

KaTeX – The fastest math typesetting library for the web

Simple API, no dependencies – yet super fast on all major browsers.

katex.org

 

 

추가 기능 구현하기

 

 

그리고 앞서 말한 것처럼,

Streamlit 프레임 워크는 Pandas, Scikit, Tensorflow 등 다양한 프레임워크들을 또 지원하기 때문에 이런 프레임 워크들을 페이지로 불러올 수도 있다. (그래서 ML, AL 프로젝트를 구현하기에 정말 최적..!)

 

 

예를 들어 pandas를 이용해 데이터 프레임을 가져오고 싶다면,

import streamlit as st
import pandas as pd

table = pd.DataFrame({"column 1":[1, 2, 3 , 4, 5, 6, 7], "column 2":[11, 12, 13, 14, 15, 16, 17]})

st.table(table)
st.dataframe(table)

 

이렇게 각각 table, dataframe 형식으로 가져올 수 있다.

 

위 = table, 아래 = dataframe

 

table의 경우 말 그대로 표 자체를 가져오는 것이고 dataframe의 경우 실제로 오름차순, 내림차순 정렬로 확인해 볼 수도 있다!

 

 

Streamlit 이용해서 파일 올려보기

 

또 이미지, 동영상, 음성 파일 등 다양한 내용을 웹페이지로 올려 만들 수 있다. 코드도 매우 단순하다.

 

st.image("이미지 경로")

 

마찬가지로,

st.audio("오디오 경로")
st.video("비디오 경로")

 

이렇게 하면 오디와 비디오가 업로드된 모습도 확인할 수 있다.

 

반대로 바로 웹페이지 상에서 업로드를 하는 방법도 있으니 그런 방법들을 응용해서 다음엔 프로젝트 형식으로 가져와볼까 한다!

 

 

 

마지막으로...

 

streamlit hello

 

를 입력하면 다양한 예제들을 경험해 볼 수 있다고 하니까 궁금한 사람들은 직접 해보기!