개발 창고/AI

Streamlit 앱을 Hugging Face Spaces에 배포하는 가이드

로이제로 2025. 6. 17. 23:27
반응형

1. 무엇을 배울 수 있나요?

이 글을 통해:

  • Hugging Face Spaces에 Streamlit 앱 배포 과정을
  • GitHub 또는 HF 리포지토리 연결부터
  • app.py, requirements.txt 작성 후
  • git push로 자동 배포하는 워크플로우를

실습 형태로 배울 수 있습니다.


2. 배포 준비

  1. Hugging Face 계정 생성

  2. Git 설치 및 GitHub 계정 준비

  3. 배포할 Streamlit 앱 프로젝트 준비

    • app.py: 애플리케이션 코드
    • requirements.txt: 라이브러리 명시 (streamlit, transformers, 등)

3. Space 생성

  • Hugging Face 웹에서 Spaces → Create new Space 클릭
  • Space 이름, SDK: Streamlit, 공개 여부 설정
  • 생성 후 git 리포가 생성되며, clone URL이 제공됩니다

4. 코드 작성

예시 app.py

import streamlit as st

st.title("Text Transformer")
user = st.text_area("Enter text:", "Hello World!")
if st.button("Uppercase"):
    st.write(user.upper())

예시 requirements.txt

streamlit

5. 로컬 로드 및 테스트

pip install -r requirements.txt
streamlit run app.py

http://localhost:8501 에서 앱 확인


6. 리포지토리 연결 및 배포

A) GitHub 기반

  1. GitHub 리포 생성 및 앱 코드 푸시
  2. Hugging Face Space 생성 시 GitHub 리포 연결 옵션 선택
  3. 푸시할 때마다 자동 배포

B) 직접 HF 리포 push 방식

git clone <HF_SPACE_URL>
cd your-space
cp path/to/app.py .
cp requirements.txt .
git add .
git commit -m "Initial commit"
git push
  • HTTPS: URL에 토큰 포함
  • SSH: 개인 SSH 키 등록 후 URL 사용

→ 일반적으로 HTTPS 방식 토큰 사용이 쉽고 추천됨


7. 자동 배포 & 런타임

  • 커밋 푸시 시 자동 빌드 및 실행
  • Maximum 16GB RAM, 2 vCPU 무료 제공, GPU 업그레이드 가능
  • README.md 내 YAML에서 sdk_version, app_file 등 설정 확인

8. 디버깅 팁

  • 로그 확인: Space 페이지에서 빌드/런타임 로그 확인 가능
  • requirements.txt 확인: 필요한 모듈 누락 없이 작성
  • app_file 설정: README.md에 앱 파일 지정 오류 없도록 체크

요약

  • Streamlit 앱 준비 → app.py + requirements.txt
  • GitHub 또는 직결 방식으로 HF Space와 연결
  • git push만 하면 자동으로 빌드 및 배포
  • 로그 + 설정 확인으로 문제 해결 가능
반응형