Spaces:
Running
Running
File size: 4,202 Bytes
867f974 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# Gradio RAG ์ฑ๋ด & LocalPCAgent ์ ์ด ์น์ฑ ํตํฉ ํ๋ก์ ํธ ๊ณํ
## 1. ํ๋ก์ ํธ ๊ฐ์
๋ณธ ํ๋ก์ ํธ๋ ๊ธฐ์กด์ ๊ตฌํ๋ RAG ์ฑ๋ด ์ ํ๋ฆฌ์ผ์ด์
๊ณผ LocalPCAgent ์ ์ด ๊ธฐ๋ฅ์ ๊ฐ์ง ์น ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋์ ํตํฉ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ๊ฒฐํฉํ๋ ์์
์
๋๋ค. ์ฌ์ฉ์๊ฐ ๋จ์ผ ์น ์ธํฐํ์ด์ค ๋ด์์ RAG ์ฑ๋ด๊ณผ ์ํธ์์ฉํ๋ฉด์ ๋์์ ์๊ฒฉ PC์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ฑฐ๋ ์ํ๋ฅผ ํ์ธํ๋ ๋ฑ์ ์ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
## 2. ํ๋ก์ ํธ ํ์ฌ ์ํ
### ์๋ฃ๋ ์์
- [x] ๋ฐฑ์๋ API ํ์ธ ๋ฐ ์ค๋น (app_device_routes.py)
- [x] HTML/CSS UI ์์ ์ถ๊ฐ (ํ
ํ๋ฆฟ ์์ , CSS ์ถ๊ฐ)
- [x] JavaScript ์ฝ์ด ์ ํธ๋ฆฌํฐ ๋ชจ๋ ์์ฑ (app-core.js)
- [x] ์ฅ์น ์ ์ด UI ๋ชจ๋ ์์ฑ (app-device.js)
- [x] ๋ฉ์ธ JavaScript ์ฝ๋ ์
๋ฐ์ดํธ (app.js)
### ๊ตฌ์ฑ ์์
- **Flask ๋ฐฑ์๋**
- app_revised.py: ๋ฉ์ธ Flask ์ ํ๋ฆฌ์ผ์ด์
- app_routes.py: RAG ์ฑ๋ด ๊ด๋ จ API ๋ผ์ฐํธ
- app_device_routes.py: ์ฅ์น ์ ์ด ๊ด๋ จ API ๋ผ์ฐํธ
- init_retriever.py: RAG ๊ฒ์๊ธฐ ์ด๊ธฐํ ๊ด๋ จ ์ฝ๋
- **์น ํ๋ก ํธ์๋**
- index.html: ๋ฉ์ธ UI ํ
ํ๋ฆฟ (์ฑํ
, ๋ฌธ์ ๊ด๋ฆฌ, ์ฅ์น ์ ์ด ํญ ํฌํจ)
- app-core.js: ๊ณตํต ์ ํธ๋ฆฌํฐ JavaScript ๋ชจ๋
- app-device.js: ์ฅ์น ์ ์ด ๊ด๋ จ JavaScript ๋ชจ๋
- app.js: ๋ฉ์ธ JavaScript ์ฝ๋
- device-style.css: ์ฅ์น ์ ์ด UI ๊ด๋ จ ์คํ์ผ
## 3. ๊ธฐ๋ฅ ์ค๋ช
### RAG ์ฑ๋ด ๊ธฐ๋ฅ
- ํ
์คํธ ๊ธฐ๋ฐ ์ง์์๋ต
- ์์ฑ ์ธ์์ ํตํ ์ง์์๋ต
- ๋ฌธ์ ์
๋ก๋ ๋ฐ ๊ด๋ฆฌ
- ๋ค์ํ LLM ๋ชจ๋ธ ์ ํ ๊ฐ๋ฅ (OpenAI, DeepSeek ๋ฑ)
### LocalPCAgent ์ ์ด ๊ธฐ๋ฅ
- ์๊ฒฉ PC ์ํ ํ์ธ
- ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก ์กฐํ
- ์๊ฒฉ์ผ๋ก ํ๋ก๊ทธ๋จ ์คํ
## 4. ๊ธฐ์ ์คํ
### ๋ฐฑ์๋
- Flask: ์น ์๋ฒ ๋ฐ API ์ ๊ณต
- OpenAI/DeepSeek: LLM ๋ชจ๋ธ ํต์
- VITO STT: ์์ฑ-ํ
์คํธ ๋ณํ
- ์๋ฒ ๋ฉ/๊ฒ์: RAG ๊ธฐ๋ฅ ๊ตฌํ
### ํ๋ก ํธ์๋
- HTML/CSS/JavaScript: ๊ธฐ๋ณธ ์น ์ธํฐํ์ด์ค
- Fetch API: ๋ฐฑ์๋ ํต์
- MediaRecorder API: ์ค๋์ค ๋
น์
## 5. ํตํฉ ์ํคํ
์ฒ
### ํตํฉ ๋ฐฉ์
์ด ํ๋ก์ ํธ๋ "Flask ๋ฐฑ์๋ + HTML/JavaScript ํ๋ก ํธ์๋" ๊ตฌ์กฐ๋ก ๋์ด ์์ต๋๋ค. RAG ์ฑ๋ด๊ณผ ์ฅ์น ์ ์ด ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ํตํฉ๋์์ต๋๋ค:
1. **๋ฐฑ์๋ ํตํฉ**
- app_revised.py์์ RAG ์ฑ๋ด ๋ผ์ฐํธ(app_routes.py)์ ์ฅ์น ์ ์ด ๋ผ์ฐํธ(app_device_routes.py)๋ฅผ ๋ชจ๋ ๋ฑ๋ก
- ์ฅ์น ์ ์ด๋ ๋ฐฑ์๋์์ LocalPCAgent์ ํต์ (ํ๋ก์ ํจํด)
2. **ํ๋ก ํธ์๋ ํตํฉ**
- ํญ ๊ธฐ๋ฐ UI๋ก ๊ธฐ๋ฅ ๋ถ๋ฆฌ (์ฑํ
, ๋ฌธ์ ๊ด๋ฆฌ, ์ฅ์น ์ ์ด)
- ๋ชจ๋ํ๋ JavaScript ํ์ผ๋ก ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ
- ๊ณตํต ์ ํธ๋ฆฌํฐ ํจ์๋ app-core.js์ ํตํฉ
### ๋ฐ์ดํฐ ํ๋ฆ
- ์ฌ์ฉ์ -(์์ฒญ)-> ์น UI -(API ํธ์ถ)-> Flask ๋ฐฑ์๋ -(ํ๋ก์ ์์ฒญ)-> LocalPCAgent/LLM
- LocalPCAgent/LLM -(์๋ต)-> Flask ๋ฐฑ์๋ -(JSON ์๋ต)-> ์น UI -(ํ์)-> ์ฌ์ฉ์
## 6. ๋ณด์ ๊ณ ๋ ค์ฌํญ
- ๋ชจ๋ API์ `@login_required` ๋ฐ์ฝ๋ ์ดํฐ ์ ์ฉํ์ฌ ์ธ์ฆ๋ ์ฌ์ฉ์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ๋ธ๋ผ์ฐ์ ์์ ์ง์ LocalPCAgent URL์ ์ ๊ทผํ์ง ์๊ณ ํญ์ Flask ๋ฐฑ์๋๋ฅผ ํตํด ์ ๊ทผ
- DEVICE_SERVER_URL์ ์๋ฒ ํ๊ฒฝ๋ณ์๋ก๋ง ๊ด๋ฆฌ (ํด๋ผ์ด์ธํธ ์ฝ๋์ ๋
ธ์ถ ์ ํจ)
## 7. ํ
์คํธ ๋ฐฉ๋ฒ
### ๋ก์ปฌ ํ
์คํธ
1. LocalPCAgent ์๋ฒ ์คํ ๋ฐ ngrok URL ํ์ธ
2. ํ๊ฒฝ ๋ณ์ ์ค์ : `DEVICE_SERVER_URL=<ngrok-url>`
3. Flask ์ฑ ์คํ: `python app.py`
4. ์น ๋ธ๋ผ์ฐ์ ์์ `http://localhost:7860` ์ ์
5. ๋ก๊ทธ์ธ ํ '์ฅ์น ์ ์ด' ํญ ํ
์คํธ
### ๋๋ฒ๊น
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ ์ฝ์: JavaScript ๋ก๊ทธ ๋ฐ ์ค๋ฅ ํ์ธ
- Flask ์๋ฒ ๋ก๊ทธ: API ์์ฒญ ๋ฐ ์๋ต ํ์ธ
- LocalPCAgent ์๋ฒ ๋ก๊ทธ: ์ค์ ์คํ ๊ฒฐ๊ณผ ํ์ธ
## 8. ํฅํ ๊ฐ์ ์ฌํญ
- ์ฅ์น ์ ์ด ๋ก๊ทธ ์ ์ฅ ๋ฐ ์ด๋ ฅ ์กฐํ ๊ธฐ๋ฅ
- ์คํ ๊ฒฐ๊ณผ ์คํฌ๋ฆฐ์ท ์๋ ์บก์ฒ ๋ฐ ํ์
- ์คํ ํ๋ก๊ทธ๋จ ์ค์ผ์ค๋ง (์์ฝ ์คํ)
- ๋ ์์ธํ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ
- ์ฅ์น ๊ด๋ฆฌ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ด์ ์ฐ๋ (์ฑํ
์ผ๋ก ์ฅ์น ์ ์ด ๋ช
๋ น ๋ด๋ฆฌ๊ธฐ)
|