soyailabs / HUGGINGFACE_DEPLOY.md
SOY NV AI
Add PostgreSQL support and update database configuration for data persistence in Hugging Face Spaces
9f9640b
|
raw
history blame
5.01 kB

Hugging Face Spaces 배포 κ°€μ΄λ“œ

이 κ°€μ΄λ“œλŠ” SOY NV AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ Hugging Face Spaces에 λ°°ν¬ν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.

사전 μ€€λΉ„

  1. Hugging Face 계정 생성 및 둜그인
  2. Hugging Face Spaces 생성

배포 단계

1. Hugging Face Spaces 생성

  1. Hugging Face Spaces에 접속
  2. "Create new Space" 클릭
  3. λ‹€μŒ 정보 μž…λ ₯:
    • Space name: μ›ν•˜λŠ” 이름 (예: soy-nv-ai)
    • SDK: Docker 선택
    • Docker template: Blank 선택 (λ˜λŠ” λΉ„μ›Œλ‘κΈ°) βœ…
      • 이미 Dockerfile을 μƒμ„±ν–ˆμœΌλ―€λ‘œ blank ν…œν”Œλ¦Ώμ„ μ„ νƒν•˜μ„Έμš”
    • Hardware: ν•„μš”μ— 따라 선택 (CPU κΈ°λ³Έ, GPU ν•„μš” μ‹œ 선택)
    • Visibility: Public λ˜λŠ” Private 선택

2. 파일 μ—…λ‘œλ“œ

λ‹€μŒ νŒŒμΌλ“€μ„ Hugging Face Spaces에 μ—…λ‘œλ“œν•΄μ•Ό ν•©λ‹ˆλ‹€:

ν•„μˆ˜ 파일

  • app.py - Hugging Face Spaces μ§„μž…μ 
  • requirements.txt - Python νŒ¨ν‚€μ§€ μ˜μ‘΄μ„±
  • README.md - ν”„λ‘œμ νŠΈ μ„€λͺ…
  • app/ - μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œ 디렉토리
  • templates/ - HTML ν…œν”Œλ¦Ώ 디렉토리
  • static/ - 정적 파일 디렉토리

선택적 파일

  • .gitignore - Git λ¬΄μ‹œ 파일
  • .env.example - ν™˜κ²½ λ³€μˆ˜ 예제 (μ‹€μ œ .envλŠ” μ—…λ‘œλ“œν•˜μ§€ μ•ŠμŒ)

3. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

Hugging Face Spaces의 Settings > Repository secretsμ—μ„œ λ‹€μŒ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•˜μ„Έμš”:

ν•„μˆ˜ ν™˜κ²½ λ³€μˆ˜

  • SECRET_KEY: Flask μ‹œν¬λ¦Ώ ν‚€ (랜덀 λ¬Έμžμ—΄ 생성)

λ°μ΄ν„°λ² μ΄μŠ€ ν™˜κ²½ λ³€μˆ˜ (ꢌμž₯: μ™ΈλΆ€ λ°μ΄ν„°λ² μ΄μŠ€)

  • DATABASE_URL: λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²° URL
    • PostgreSQL (ꢌμž₯): postgresql://user:password@host:port/database
    • SQLite (κΈ°λ³Έκ°’): μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μžλ™μœΌλ‘œ SQLite μ‚¬μš©
      • ⚠️ 주의: Hugging Face SpacesλŠ” μ»¨ν…Œμ΄λ„ˆ κΈ°λ°˜μ΄λ―€λ‘œ SQLite μ‚¬μš© μ‹œ μž¬μ‹œμž‘ μ‹œ 데이터가 μ‚¬λΌμ§‘λ‹ˆλ‹€.
      • 영ꡬ μ €μž₯이 ν•„μš”ν•˜λ©΄ λ°˜λ“œμ‹œ μ™ΈλΆ€ PostgreSQL을 μ‚¬μš©ν•˜μ„Έμš”.

선택적 ν™˜κ²½ λ³€μˆ˜

  • GEMINI_API_KEY: Google Gemini API ν‚€ (Gemini μ‚¬μš© μ‹œ)
  • OLLAMA_BASE_URL: Ollama μ„œλ²„ URL (κΈ°λ³Έκ°’: http://localhost:11434)
  • EMBEDDING_MODEL_NAME: μž„λ² λ”© λͺ¨λΈ 이름
  • RERANKER_MODEL_NAME: 리랭컀 λͺ¨λΈ 이름

4. Dockerfile 확인

βœ… 이미 생성됨: ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— Dockerfile이 이미 μƒμ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ν•„μš”ν•œ 경우 Dockerfile을 ν™•μΈν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. README.md μž‘μ„±

Hugging Face Spaces용 README.mdλ₯Ό μž‘μ„±ν•˜μ„Έμš”:

---
title: SOY NV AI
emoji: πŸ“š
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
---

# SOY NV AI - μ›Ήμ†Œμ„€ μž‘ν’ˆ 개발 μ–΄μ‹œμŠ€ν„΄νŠΈ

AIλ₯Ό ν™œμš©ν•œ μ›Ήμ†Œμ„€ μž‘ν’ˆ κ°œλ°œμ„ μ§€μ›ν•˜λŠ” μ–΄μ‹œμŠ€ν„΄νŠΈμž…λ‹ˆλ‹€.

## κΈ°λŠ₯

- μ›Ήμ†Œμ„€ 파일 μ—…λ‘œλ“œ 및 뢄석
- AI 기반 μž‘ν’ˆ 뢄석 및 μš”μ•½
- 캐릭터 관계 κ·Έλž˜ν”„ μΆ”μΆœ
- νšŒμ°¨λ³„ 뢄석

## μ‚¬μš© 방법

1. 둜그인 λ˜λŠ” νšŒμ›κ°€μž…
2. μ›Ήμ†Œμ„€ 파일 μ—…λ‘œλ“œ
3. AI 뢄석 μ‹€ν–‰
4. κ²°κ³Ό 확인

## ν™˜κ²½ λ³€μˆ˜

λ‹€μŒ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€:

- `SECRET_KEY`: Flask μ‹œν¬λ¦Ώ ν‚€
- `GEMINI_API_KEY`: Google Gemini API ν‚€ (선택사항)

μ£Όμ˜μ‚¬ν•­

1. λ°μ΄ν„°λ² μ΄μŠ€

  • Hugging Face SpacesλŠ” μž„μ‹œ μ €μž₯μ†Œμ΄λ―€λ‘œ, λ°μ΄ν„°λ² μ΄μŠ€λŠ” 영ꡬ μ €μž₯μ†Œκ°€ μ•„λ‹™λ‹ˆλ‹€.
  • μ€‘μš”ν•œ λ°μ΄ν„°λŠ” μ™ΈλΆ€ λ°μ΄ν„°λ² μ΄μŠ€(PostgreSQL, MySQL λ“±)λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μ •κΈ°μ μœΌλ‘œ λ°±μ—…ν•˜μ„Έμš”.

2. 파일 μ—…λ‘œλ“œ

  • μ—…λ‘œλ“œλœ νŒŒμΌμ€ Spaces μž¬μ‹œμž‘ μ‹œ μ‚­μ œλ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 영ꡬ μ €μž₯이 ν•„μš”ν•œ 경우 μ™ΈλΆ€ μŠ€ν† λ¦¬μ§€(S3, Google Cloud Storage λ“±)λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

3. λ¦¬μ†ŒμŠ€ μ œν•œ

  • Hugging Face SpacesλŠ” 무료 ν‹°μ–΄μ—μ„œ λ¦¬μ†ŒμŠ€ μ œν•œμ΄ μžˆμŠ΅λ‹ˆλ‹€.
  • λŒ€μš©λŸ‰ 파일 μ²˜λ¦¬λ‚˜ κΈ΄ μž‘μ—…μ€ νƒ€μž„μ•„μ›ƒλ  수 μžˆμŠ΅λ‹ˆλ‹€.

4. Ollama μ‚¬μš©

  • OllamaλŠ” 둜컬 μ„œλ²„μ΄λ―€λ‘œ Hugging Face Spacesμ—μ„œ 직접 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • μ™ΈλΆ€ Ollama μ„œλ²„λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜, Hugging Face의 λͺ¨λΈ APIλ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

배포 ν›„ 확인

  1. Spaces νŽ˜μ΄μ§€μ—μ„œ "Logs" 탭을 ν™•μΈν•˜μ—¬ 였λ₯˜κ°€ μ—†λŠ”μ§€ 확인
  2. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ λ‘œλ“œλ˜λŠ”μ§€ 확인
  3. 둜그인 및 κΈ°λ³Έ κΈ°λŠ₯ ν…ŒμŠ€νŠΈ

문제 ν•΄κ²°

λΉŒλ“œ μ‹€νŒ¨

  • requirements.txt의 νŒ¨ν‚€μ§€ 버전 확인
  • λ‘œκ·Έμ—μ„œ 였λ₯˜ λ©”μ‹œμ§€ 확인

λŸ°νƒ€μž„ 였λ₯˜

  • ν™˜κ²½ λ³€μˆ˜κ°€ μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λ˜μ—ˆλŠ”μ§€ 확인
  • λ°μ΄ν„°λ² μ΄μŠ€ 경둜 및 κΆŒν•œ 확인

μ„±λŠ₯ 문제

  • 더 높은 ν•˜λ“œμ›¨μ–΄ ν‹°μ–΄λ‘œ μ—…κ·Έλ ˆμ΄λ“œ κ³ λ €
  • λΆˆν•„μš”ν•œ μ˜μ‘΄μ„± 제거

μΆ”κ°€ λ¦¬μ†ŒμŠ€