# ๐Ÿฆ™ Windows PC Ollama ์—ฐ๋™ ๊ฐ€์ด๋“œ NAS(Docker)์— ์žˆ๋Š” `stock-lab` ์„œ๋น„์Šค๊ฐ€ ๊ณ ์„ฑ๋Šฅ Windows PC์˜ Ollama๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AI ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ## 1. Windows PC ์„ค์ • (AI ์„œ๋ฒ„) ๊ณ ์„ฑ๋Šฅ PC(9800X3D + 3070 Ti)์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ### 1-1. Ollama ์„ค์น˜ ๋ฐ ์ค€๋น„ 1. [Ollama ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€](https://ollama.com/)์—์„œ Windows์šฉ Ollama๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. 2. ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(CMD)๋‚˜ PowerShell์„ ์—ด๊ณ  ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ```powershell ollama pull llama3 # ๋˜๋Š” ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ ollama pull gemma:2b ``` ### 1-2. ์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉ ์„ค์ • (์ค‘์š” โญ๏ธ) ๊ธฐ๋ณธ์ ์œผ๋กœ Ollama๋Š” ๋กœ์ปฌ(localhost)์—์„œ๋งŒ ์ ‘์† ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. NAS์—์„œ ์ ‘์†ํ•˜๋ ค๋ฉด ์ด๋ฅผ ๋ชจ๋“  IP(`0.0.0.0`)์—์„œ ์ ‘์† ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1. **์ž‘์—… ๊ด€๋ฆฌ์ž**๋ฅผ ์—ด๊ณ  'Ollama' ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด **์ž‘์—… ๋๋‚ด๊ธฐ**๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. (ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ ์šฐํด๋ฆญ -> Quit) 2. **์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŽธ์ง‘**์„ ์—ฝ๋‹ˆ๋‹ค. (์œˆ๋„์šฐ ํ‚ค ๋ˆ„๋ฅด๊ณ  "ํ™˜๊ฒฝ ๋ณ€์ˆ˜" ๊ฒ€์ƒ‰) 3. **์‹œ์Šคํ…œ ๋ณ€์ˆ˜(S)** ์„น์…˜์—์„œ `์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ(W)...`๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. * ๋ณ€์ˆ˜ ์ด๋ฆ„: `OLLAMA_HOST` * ๋ณ€์ˆ˜ ๊ฐ’: `0.0.0.0` 4. ํ™•์ธ์„ ๋ˆŒ๋Ÿฌ ์ €์žฅํ•˜๊ณ , Ollama๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ### 1-3. ๋ฐฉํ™”๋ฒฝ ํฌํŠธ ๊ฐœ๋ฐฉ Windows Defender ๋ฐฉํ™”๋ฒฝ์ด ์™ธ๋ถ€ ์ ‘์†์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. Powershell์„ **๊ด€๋ฆฌ์ž ๊ถŒํ•œ**์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 2. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ 11434 ํฌํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ```powershell New-NetFirewallRule -DisplayName "Ollama API" -Direction Inbound -LocalPort 11434 -Protocol TCP -Action Allow ``` (๋˜๋Š” `์ œ์–ดํŒ > Windows Defender ๋ฐฉํ™”๋ฒฝ > ๊ณ ๊ธ‰ ์„ค์ •`์—์„œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์œผ๋กœ TCP 11434 ํฌํŠธ ํ—ˆ์šฉ์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.) ### 1-4. IP ์ฃผ์†Œ ํ™•์ธ CMD์—์„œ `ipconfig`๋ฅผ ์ž…๋ ฅํ•˜์—ฌ Windows PC์˜ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: `192.168.0.5`) --- ## 2. NAS ์„ค์ • (Client) Synology NAS์˜ `web-page-backend` ํ”„๋กœ์ ํŠธ์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ### 2-1. .env ํŒŒ์ผ ์ˆ˜์ • `.env` ํŒŒ์ผ์— Windows PC์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ```bash # .env ํŒŒ์ผ # ... ๊ธฐ์กด ์„ค์ •๋“ค ... # ์œˆ๋„์šฐ PC์˜ IP๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š” (http:// ํฌํ•จ, ํฌํŠธ 11434 ํฌํ•จ) OLLAMA_URL=http://192.168.0.5:11434 OLLAMA_MODEL=llama3 ``` ### 2-2. ์ปจํ…Œ์ด๋„ˆ ์žฌ๋ฐฐํฌ ๋ณ€๊ฒฝ๋œ ์„ค์ •์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด `stock-lab` ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ```bash # NAS ํ„ฐ๋ฏธ๋„ (ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๊ฒฝ๋กœ) docker-compose up -d --build stock-lab ``` --- ## 3. ํ…Œ์ŠคํŠธ ๋ธŒ๋ผ์šฐ์ €๋‚˜ API ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ NAS์˜ ์ฃผ์†Œ๋กœ ๋ถ„์„ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. * **์š”์ฒญ**: `GET http://[NAS_IP]:18500/api/stock/analyze` * **๊ฒฐ๊ณผ**: Windows PC์˜ GPU๊ฐ€ ์ž‘๋™ํ•˜๋ฉฐ(ํŒฌ์ด ๋Œ๊ฑฐ๋‚˜ GPU ๋กœ๋“œ์œจ ์ƒ์Šน) ๋ช‡ ์ดˆ ๋’ค์— ๋ถ„์„๋œ ํ…์ŠคํŠธ๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.