언어모델 LLM/웹 인터페이스

Streamlit을 이용한 다중 앱 구현하기

General AI 2024. 10. 5. 23:27
728x90
반응형

Streamlit을 이용한 다중 앱 구현하기

Streamlit을 이용한 다중 앱 구현하기

Streamlit을 사용하여 여러 개의 앱을 하나의 프로젝트에서 구현하는 방법에 대해 알아보겠습니다. 프로젝트는 다음과 같은 구조를 가집니다:

multi_app_project/
│
├── main.py
├── .gitignore
└── apps/
    ├── __init__.py
    ├── app1/
    │   ├── __init__.py
    │   └── app.py
    ├── app2/
    │   ├── __init__.py
    │   └── app.py
    └── app3/
        ├── __init__.py
        └── app.py

앱 구현

각 앱은 run() 함수를 포함하는 app.py 파일로 구현됩니다. 예를 들어, apps/app1/app.py는 다음과 같습니다:

import streamlit as st

def run():
    st.title("App 1")
    st.write("This is the first app.")

메인 앱 구현

main.py 파일에서는 모든 앱을 불러와 사용자가 선택할 수 있게 합니다:

import streamlit as st
import sys
import os

# 현재 스크립트의 디렉토리를 파이썬 경로에 추가
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(current_dir)

from apps.app1.app import run as run_app1
from apps.app2.app import run as run_app2
from apps.app3.app import run as run_app3

PAGES = {
    "App 1": run_app1,
    "App 2": run_app2,
    "App 3": run_app3
}

st.sidebar.title('Navigation')
selection = st.sidebar.radio("Select Page", list(PAGES.keys()))

page = PAGES[selection]
page()

실행 방법

프로젝트 루트 디렉토리에서 다음 명령어로 앱을 실행합니다:

python -m streamlit run main.py

main.py에서 sys.path.append(current_dir)를 사용하여 현재 디렉토리를 Python 경로에 추가합니다. 이는 앱 모듈을 올바르게 import하기 위함입니다. 이렇게 Streamlit을 사용하여 여러 개의 앱을 하나의 프로젝트에서 관리하는 방법에 대해 알아보았습니다. 이 방식을 활용하면 복잡한 데이터 분석 프로젝트나 다양한 기능을 가진 웹 애플리케이션을 효율적으로 구현할 수 있습니다.

Streamlit을 이용한 다중 앱 구현하기

이 프로젝트의 구조와 코드를 더 자세히 살펴보고 싶다면, 아래 GitHub 저장소를 참고해보세요.

https://github.com/makepluscode/streamlit-ex-multipages

참고사이트

  1. Streamlit 공식 문서
  2. Python 공식 문서 - 모듈
728x90
반응형