SOY NV AI
Add PostgreSQL support and update database configuration for data persistence in Hugging Face Spaces
9f9640b
| # Hugging Face Spaces ๋ฐฐํฌ ๊ฐ์ด๋ | |
| ์ด ๊ฐ์ด๋๋ SOY NV AI ์ ํ๋ฆฌ์ผ์ด์ ์ Hugging Face Spaces์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. | |
| ## ์ฌ์ ์ค๋น | |
| 1. Hugging Face ๊ณ์ ์์ฑ ๋ฐ ๋ก๊ทธ์ธ | |
| 2. Hugging Face Spaces ์์ฑ | |
| ## ๋ฐฐํฌ ๋จ๊ณ | |
| ### 1. Hugging Face Spaces ์์ฑ | |
| 1. [Hugging Face Spaces](https://huggingface.co/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` | |
| - ๋ฌด๋ฃ PostgreSQL ์ ๊ณต ์๋น์ค: [Supabase](https://supabase.com/), [Neon](https://neon.tech/), [Railway](https://railway.app/) | |
| - **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๋ฅผ ์์ฑํ์ธ์: | |
| ```markdown | |
| --- | |
| 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`์ ํจํค์ง ๋ฒ์ ํ์ธ | |
| - ๋ก๊ทธ์์ ์ค๋ฅ ๋ฉ์์ง ํ์ธ | |
| ### ๋ฐํ์ ์ค๋ฅ | |
| - ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธ | |
| - ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฒฝ๋ก ๋ฐ ๊ถํ ํ์ธ | |
| ### ์ฑ๋ฅ ๋ฌธ์ | |
| - ๋ ๋์ ํ๋์จ์ด ํฐ์ด๋ก ์ ๊ทธ๋ ์ด๋ ๊ณ ๋ ค | |
| - ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ | |
| ## ์ถ๊ฐ ๋ฆฌ์์ค | |
| - [Hugging Face Spaces ๋ฌธ์](https://huggingface.co/docs/hub/spaces) | |
| - [Docker ๋ฐฐํฌ ๊ฐ์ด๋](https://huggingface.co/docs/hub/spaces-sdks-docker) | |