Spaces:
No application file
No application file
# RAG5_2_ChooseLLM ํ๋ก์ ํธ ๊ณํ์ | |
## ํ๋ก์ ํธ ๊ฐ์ | |
์ด ํ๋ก์ ํธ๋ RAG(Retrieval-Augmented Generation) ๊ธฐ๋ฐ ๊ฒ์ ์ฑ๋ด์ผ๋ก, ์ง์๋ฒ ์ด์ค์์ ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ฒ์ํ์ฌ ์ฌ์ฉ์ ์ง์์ ๋ต๋ณํฉ๋๋ค. ์ฃผ์ ํน์ง์ผ๋ก๋ OpenAI์ DeepSeek ๋ฑ ๋ค์ํ LLM์ ์ ํํ์ฌ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ๊ณผ ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. | |
## ์ฃผ์ ๊ธฐ๋ฅ | |
1. ์ง์๋ฒ ์ด์ค ๊ด๋ฆฌ | |
- ๋ฌธ์ ์ ๋ก๋ (.txt, .md, .csv ๋ฑ) | |
- ๋ฌธ์ ์ฒญํฌ ๋ถํ ๋ฐ ๋ฒกํฐ ์ธ๋ฑ์ฑ | |
- ์ง์๋ฒ ์ด์ค ๋ฌธ์ ๋ชฉ๋ก ์กฐํ | |
2. LLM ์ ํ | |
- OpenAI, DeepSeek ๋ฑ ๋ค์ํ LLM ์ ํ ๊ฐ๋ฅ | |
- LLM ๋ณ๊ฒฝ ์ ์ค์๊ฐ ์ ํ | |
- ํ์ฌ ์ฌ์ฉ ์ค์ธ LLM ์ ๋ณด ํ์ | |
3. ์ฑ๋ด ๊ธฐ๋ฅ | |
- ํ ์คํธ ๊ธฐ๋ฐ ์ง์์๋ต | |
- ์์ฑ ์ธ์ ๋ฐ ์ง์์๋ต (VITO STT ํ์ฉ) | |
- ๊ฒ์ ๊ฒฐ๊ณผ ์ ๋ณด ์ถ์ฒ ํ์ | |
4. ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ | |
- ๋ก์ปฌ PC์ ํต์ ํ๋ ๊ธฐ๋ฅ | |
- ์ฅ์น ์ํ ํ์ธ ๋ฐ ์ฅ์น ๋ชฉ๋ก ์กฐํ | |
- ํ๋ก๊ทธ๋จ ๋ชฉ๋ก ์กฐํ ๋ฐ ์คํ | |
## ๊ธฐ์ ์คํ | |
- **๋ฐฑ์๋:** Flask (Python) | |
- **ํ๋ก ํธ์๋:** HTML, CSS, JavaScript | |
- **LLM ํตํฉ:** OpenAI API, DeepSeek API | |
- **๊ฒ์ ๊ธฐ๋ฅ:** ๋ฒกํฐ ๊ฒ์, ์ฌ์์ํ | |
- **STT ์๋น์ค:** VITO API | |
- **ํต์ ํ๋กํ ์ฝ:** RESTful API | |
## ์๋ฃ๋ ์์ | |
- [X] ํ๋ก์ ํธ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ค์ | |
- [X] Flask ์น ์๋ฒ ๊ตฌํ | |
- [X] ๋ค์ค LLM ์ธํฐํ์ด์ค ๊ตฌํ (OpenAI, DeepSeek) | |
- [X] ์ฌ์ฉ์ ์ธ์ฆ ๊ธฐ๋ฅ ๊ตฌํ | |
- [X] ๋ฒกํฐ ๊ฒ์ ๋ฐ ์ฌ์์ํ ๊ธฐ๋ฅ ๊ตฌํ | |
- [X] ๋ฌธ์ ์ฒ๋ฆฌ ๋ฐ ๊ด๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ | |
- [X] ์น ์ธํฐํ์ด์ค ๊ตฌํ | |
- [X] ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ ํตํฉ | |
- [X] ์ฅ์น ๊ด๋ฆฌ UI ๊ตฌํ | |
- [X] ์ฅ์น๊ด๋ฆฌ ํญ ํด๋ฆญ ์ด๋ฒคํธ ๋ฒ๊ทธ ์์ | |
## ์งํํด์ผ ํ ์์ | |
- [ ] ๋ฌธ์๊ด๋ฆฌ&์ฅ์น๊ด๋ฆฌ ํญ ๋ก๋ฉ์ง์ ํ์ ํด๊ฒฐ๊ฒฐ | |
- [ ] LLM ์ ํ UI ๊ฐ์ | |
- ๋๋กญ๋ค์ด์ ์์ด์ฝ ์ถ๊ฐ | |
- ๊ฐ LLM๋ณ ์์ธ ๋ชจ๋ธ ์ ๋ณด ํ์ | |
- [ ] ์๋ต ๋ด ์์ค ๋งํฌ ํด๋ฆญ ์ ์๋ฌธ ํ์ ๊ธฐ๋ฅ | |
- [ ] ์๋ต ์๋ ๊ฐ์ | |
- [ ] ์ค๋ฅ ์ฒ๋ฆฌ ๊ฐํ | |
- [ ] ํ ์คํธ ์ผ์ด์ค ์์ฑ ๋ฐ ์ ๋ ํ ์คํธ ๊ตฌํ | |
- [ ] ์ฌ์ฉ์ ๊ฐ์ด๋ ๋ฌธ์ ์์ฑ | |
## ํตํฉ ๊ตฌํ ๋ด์ฉ | |
### 1. ์น์ฑ ํตํฉ | |
- ๋จ์ผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ RAG ๊ฒ์ ์ฑ๋ด๊ณผ ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ ํตํฉ | |
- ํญ ๊ธฐ๋ฐ ์ธํฐํ์ด์ค๋ก ๊ธฐ๋ฅ ๋ถ๋ฆฌ (๋ํ, ๋ฌธ์๊ด๋ฆฌ, ์ฅ์น๊ด๋ฆฌ) | |
- Flask๋ฅผ ํตํ ์ค์ ์ง์ค์ ์๋ฒ ๊ด๋ฆฌ | |
### 2. ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ | |
- ์ฅ์น ์ํ ํ์ธ ๊ธฐ๋ฅ | |
- ์ฐ๊ฒฐ๋ ์ฅ์น ๋ชฉ๋ก ์กฐํ | |
- ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก ์กฐํ ๋ฐ ์คํ | |
- ์๋ฒ์์ RESTful API ํต์ | |
### 3. ํ๋ก ํธ์๋ ๊ตฌํ | |
- ์ง๊ด์ ์ธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค | |
- ์ค์๊ฐ ์ํ ์ ๋ฐ์ดํธ | |
- ์๋ฌ ์ฒ๋ฆฌ ๋ฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ ์ ๊ณต | |
- ๋ฐ์ํ ๋์์ธ ์ ์ฉ | |
## ์ต๊ทผ ๋ฒ๊ทธ ์์ | |
### ์ฅ์น๊ด๋ฆฌ ํญ ์๋ ๋ฌธ์ ํด๊ฒฐ | |
**๋ฌธ์ ์ํฉ:** UI์์ ์ฅ์น๊ด๋ฆฌ ๋ฒํผ์ด ์ ํ ์๋ํ์ง ์๋ ๋ฌธ์ ๋ฐ์ | |
**์์ธ ๋ถ์:** | |
1. HTML ๋ฌธ์ : | |
- `device-style.css` ํ์ผ์ด HTML์ ๋งํฌ๋์ด ์์ง ์์ | |
2. JavaScript ๋ฌธ์ : | |
- `app.js`์์ deviceTab ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ์ ๋๋ก ๋ฑ๋ก๋์ง ์์ | |
- `app-device.js`์ `app.js` ๊ฐ์ ํจ์ ๊ณต์ ์ ๋ฌธ์ ๋ฐ์ | |
**ํด๊ฒฐ ๋ฐฉ๋ฒ:** | |
1. HTML ์์ : | |
- `device-style.css` ํ์ผ์ HTML์ head ์น์ ์ ๋งํฌ ์ถ๊ฐ | |
- ์ฅ์น๊ด๋ฆฌ ํญ์ ์ํ ์ง์ ์ ์ธ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ HTML ๋ด๋ถ ์คํฌ๋ฆฝํธ๋ก ์ถ๊ฐ | |
2. ์ด๋ฒคํธ ํธ๋ค๋ง ๊ฐ์ : | |
- ์ฅ์น๊ด๋ฆฌ ํญ์ ์ง์ onclick ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ถ๊ฐํ์ฌ ๊ธฐ์กด ๋ฌธ์ ์ฐํ | |
- ๋๋ฒ๊น ์ฉ ์ฝ์ ๋ก๊ทธ ์ถ๊ฐ๋ก ๋ฌธ์ ์ถ์ ๊ฐ๋ฅํ๊ฒ ํจ | |
**์์ ํ์ผ:** | |
- `app/templates/index.html`: CSS ๋งํฌ ๋ฐ ์ง์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ถ๊ฐ | |
- `docs/project_plan.md`: ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ๋ฌธ์ํ | |
## ํ์ผ ๊ตฌ์กฐ | |
``` | |
RAG5_2_ChooseLLM/ | |
โโโ app/ | |
โ โโโ app.py # ๋ฉ์ธ Flask ์ ํ๋ฆฌ์ผ์ด์ | |
โ โโโ app_routes.py # ๊ธฐ๋ณธ ๋ผ์ฐํธ ์ ์ | |
โ โโโ app_device_routes.py # ์ฅ์น ๊ด๋ฆฌ ๊ด๋ จ ๋ผ์ฐํธ | |
โ โโโ static/ | |
โ โ โโโ css/ | |
โ โ โ โโโ style.css # ๊ธฐ๋ณธ ์คํ์ผ์ํธ | |
โ โ โ โโโ device-style.css # ์ฅ์น ๊ด๋ฆฌ ์คํ์ผ์ํธ | |
โ โ โโโ js/ | |
โ โ โโโ app.js # ๋ฉ์ธ JavaScript | |
โ โ โโโ app-device.js # ์ฅ์น ๊ด๋ฆฌ JavaScript | |
โ โโโ templates/ | |
โ โโโ index.html # ๋ฉ์ธ ํ์ด์ง ํ ํ๋ฆฟ (์์ ๋จ) | |
โ โโโ login.html # ๋ก๊ทธ์ธ ํ์ด์ง ํ ํ๋ฆฟ | |
โโโ data/ # ์ ๋ก๋๋ ๋ฌธ์ ์ ์ฅ | |
โโโ docs/ # ํ๋ก์ ํธ ๋ฌธ์ | |
โโโ retrieval/ # ๊ฒ์ ๊ด๋ จ ๋ชจ๋ | |
โโโ utils/ # ์ ํธ๋ฆฌํฐ ๋ชจ๋ | |
``` | |
## ํ๊ฒฝ ๋ณ์ ์ค์ | |
- `ADMIN_USERNAME`: ๊ด๋ฆฌ์ ์ฌ์ฉ์๋ช (๊ธฐ๋ณธ๊ฐ: admin) | |
- `ADMIN_PASSWORD`: ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: rag12345) | |
- `DEVICE_SERVER_URL`: ์ฅ์น ๊ด๋ฆฌ ์๋ฒ URL (๊ธฐ๋ณธ๊ฐ: http://localhost:5050) | |
- `OPENAI_API_KEY`: OpenAI API ํค | |
- `DEEPSEEK_API_KEY`: DeepSeek API ํค | |
- `VITO_API_KEY`: VITO STT API ํค | |
## ์ฐธ๊ณ ์ฌํญ | |
- ์ฅ์น ๊ด๋ฆฌ ์๋ฒ๋ ๋ณ๋๋ก ์คํ๋์ด์ผ ํจ (ํฌํธ 5050) | |
- OpenAI, DeepSeek ๋ฐ VITO API ํค๋ .env ํ์ผ์ ์ค์ ํด์ผ ํจ | |
- ์ด๊ธฐ ๋ก๊ทธ์ธ ๊ณ์ ์ ๋ณด๋ ํ๊ฒฝ ๋ณ์์ ์ค์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ | |
- ์ฅ์น๊ด๋ฆฌ ํญ ํด๋ฆญ ์ ์ฝ์ ๋ก๊ทธ๋ฅผ ํ์ธํ์ฌ ์ด๋ฒคํธ ์ฒ๋ฆฌ ์ํ ๊ฒ์ฆ ๊ฐ๋ฅ | |
## ํ์ฌ ๋ฌธ์ ์ฌํญ | |
- ๋ฌธ์๊ด๋ฆฌ & ์ฅ์น๊ด๋ฆฌ์์ ๋ก๋ฉํ์์ ์ง์ | |