Spaces:
Sleeping
Sleeping
File size: 5,706 Bytes
6575706 1c2d73c 6575706 1c2d73c 6575706 1c2d73c 6575706 1c2d73c 6575706 1c2d73c 6575706 |
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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# RAG ์ฑ๋ด + LocalPCAgent ํตํฉ ํ๋ก์ ํธ ๊ณํ
## ํ๋ก์ ํธ ๊ฐ์
๊ธฐ์กด RAG ์ฑ๋ด(Flask ๊ธฐ๋ฐ)์ LocalPCAgent ์ ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ํตํฉ ์์
์
๋๋ค. Gradio UI ์ฝ๋์ ๊ธฐ๋ฅ์ Flask+HTML/JS ๊ตฌ์กฐ์ ์ด์ํฉ๋๋ค.
## ์๋ฃ๋ ์์
- [x] ๊ธฐ๋ณธ Flask ๊ธฐ๋ฐ RAG ์ฑ๋ด ๋ฐฑ์๋ ๊ตฌํ
- [x] LocalPCAgent ์ ์ด๋ฅผ ์ํ API ์๋ํฌ์ธํธ ์ถ๊ฐ (`app_device_routes.py`)
- [x] Flask ๋ฐฑ์๋์ LocalPCAgent ๊ฐ ํต์ ๋ก์ง ๊ตฌํ
- [x] ์น UI์ LocalPCAgent ์ ์ด ํ๋ฉด ์ถ๊ฐ (HTML/CSS)
- [x] ์น UI์์ LocalPCAgent ์ ์ด ๊ธฐ๋ฅ์ ์ํ JavaScript ๋ก์ง ๊ตฌํ
- [x] ํ๋ก์ ํธ ์ฝ๋ ์ ๋ฆฌ ๋ฐ ์ต์ ํ
- ๋ถํ์ํ ํ์ผ ๋ฐ ์ฝ๋ ์ ๊ฑฐ
- ๋ชจ๋ํ๋ ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์
## ํ๋ก์ ํธ ๊ตฌ์กฐ ์ ๋ฆฌ
- ์ฃผ์ ์คํ ํ์ผ์ ํ์ธํ๊ณ `app_revised.py`๋ฅผ ์ฃผ ํ์ผ๋ก ์ ํ
- ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ฅผ 'app' ํจํค์ง๋ก ๋ชจ๋ํ:
- ์ฅ์น ์ ์ด ๋ผ์ฐํฐ: `app/app_device_routes.py`
- ๊ธฐ๋ณธ API ๋ผ์ฐํฐ: `app/app_routes.py`
- ๊ฒ์๊ธฐ ์ด๊ธฐํ: `app/init_retriever.py`
- ํ๋ฐํธ์๋ ์ฝ๋ ํตํฉ:
- `templates/index.html`์ ์ฅ์น ์ ์ด UI ์น์
- `static/js/app-device.js`์ ์ฅ์น ์ ์ด JavaScript ์ฝ๋
- `static/css/device-style.css`์ ์ฅ์น ์ ์ด ์คํ์ผ
## ํ์ฌ ์ํ
์ฝ๋ ๊ฒํ ๊ฒฐ๊ณผ ๋๋ถ๋ถ์ ํตํฉ ์์
์ด ์ด๋ฏธ ์๋ฃ๋ ์ํ์
๋๋ค:
- Flask ๋ฐฑ์๋์ LocalPCAgent API ์๋ํฌ์ธํธ๊ฐ ๊ตฌํ๋์ด ์์ต๋๋ค (`app_device_routes.py`)
- ํ๋ก ํธ์๋ UI์ ์ฅ์น ์ ์ด ํญ์ด ์ถ๊ฐ๋์ด ์์ต๋๋ค (`index.html`)
- ์ฅ์น ์ ์ด๋ฅผ ์ํ JavaScript ๋ก์ง์ด ๊ตฌํ๋์ด ์์ต๋๋ค (`app-device.js`)
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ์ ์ ์ ๋ช
๋ น์ด ์คํ ๊ธฐ๋ฅ์ด ๋ชจ๋ ๊ตฌํ๋์ด ์์ต๋๋ค
## ์ถ๊ฐ ๊ฐ๋ฐ ๊ณํ: ์ฅ์น ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ์ถ๊ฐ
### ๊ฐ๋ฐ ๋ชฉํ
๋ก์ปฌPC์ ์ฐ๊ฒฐ๋ ์ฅ์น(ํนํ COM ํฌํธ์ USB ์ฅ์น)๋ฅผ ์กฐํํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
### ๊ตฌํ ์๊ตฌ์ฌํญ
1. **๋ก์ปฌPC ์ฅ์น ์กฐํ Python ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ**
- COM ํฌํธ ๋ฐ USB ์ฅ์น ๋ชฉ๋ก ์กฐํ
- ์ฅ์น๋ณ ์์ธ ์ ๋ณด(์ ์กฐ์ฌ, ์ ํ๋ช
, ์๋ฆฌ์ผ ๋ฒํธ ๋ฑ) ์์ง
- ๋ฉํฐ ํ๋ซํผ ์ง์(Windows, Linux, macOS)
2. **LocalPCAgent API ํ์ฅ**
- ์ฅ์น ๋ชฉ๋ก ์กฐํ API ์๋ํฌ์ธํธ ์ถ๊ฐ
- ์กฐํ ๊ฒฐ๊ณผ ํจ์จ์ ์ธ ์ ์ก ๋ฐฉ์ ๊ตฌํ
3. **UI ํ์ฅ**
- ์ฅ์น ์ ์ด ํญ์ ์ฅ์น ๋ชฉ๋ก ์กฐํ ์น์
์ถ๊ฐ
- ์กฐํ ๊ฒฐ๊ณผ ํ์ UI ๊ตฌํ
- ์ฅ์น ํ์
๋ณ ํํฐ๋ง ๊ธฐ๋ฅ ๊ตฌํ
### ๊ธฐ์ ์คํ
- ๋ฐฑ์๋: Python(`pyserial`, `pyusb`), Flask
- ํ๋ก ํธ์๋: HTML, CSS, JavaScript
- ํต์ : REST API, JSON ํฌ๋งท
### ๊ตฌํ ๊ณํ
1. **๋ก์ปฌPC ์ฅ์น ์กฐํ Python ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ**
- `scan_devices.py` ์คํฌ๋ฆฝํธ ์์ฑ
- ํ
์คํธ ๋ฐ ๋๋ฒ๊น
2. **LocalPCAgent์ ํตํฉ**
- LocalPCAgent ํ๋ก๊ทธ๋จ ๋ชฉ๋ก์ ๋ฑ๋ก
- API ์๋ํฌ์ธํธ ํ
์คํธ
3. **Flask ๋ฐฑ์๋ API ํ์ฅ**
- `app_device_routes.py`์ ์ฅ์น ์กฐํ API ์ถ๊ฐ
- ๋ฐ์ดํฐ ํฌ๋งท ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ ๊ตฌํ
4. **ํ๋ก ํธ์๋ UI ๊ฐ๋ฐ**
- `index.html`์ ์ฅ์น ๋ชฉ๋ก ์กฐํ ์น์
์ถ๊ฐ
- `app-device.js`์ ์ฅ์น ์กฐํ ๊ด๋ จ ํจ์ ์ถ๊ฐ
- ํ์์ CSS ์คํ์ผ ์ถ๊ฐ
## ๋จ์ ์์
- [ ] ๋ก์ปฌPC ์ฅ์น ์กฐํ Python ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ
- [ ] LocalPCAgent ์๋ฒ์ ์ฅ์น ์กฐํ ๊ธฐ๋ฅ ํตํฉ
- [ ] Flask ๋ฐฑ์๋ ์ฅ์น ์กฐํ API ๊ตฌํ
- [ ] ํ๋ก ํธ์๋ UI ํ์ฅ
- [ ] ์ ์ฒด ์์คํ
ํ
์คํธ ๋ฐ ๋๋ฒ๊น
- [ ] ์ต์ข
์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋ฌธ์ํ ๋ณด์
## ํ์ผ ๊ตฌ์กฐ
- `app_revised.py`: ๋ฉ์ธ Flask ์ ํ๋ฆฌ์ผ์ด์
- `app.py`: ๋จ์ํ๋ ์ง์
์ (app_revised.py ํธ์ถ)
- `app/`: ์ ํ๋ฆฌ์ผ์ด์
๋ชจ๋
- `__init__.py`: ํจํค์ง ์ด๊ธฐํ
- `app_device_routes.py`: LocalPCAgent ์ ์ด API ๋ผ์ฐํธ
- `app_routes.py`: ๊ธฐ๋ณธ RAG ์ฑ๋ด API ๋ผ์ฐํธ
- `init_retriever.py`: RAG ๋ชจ๋ธ ์ด๊ธฐํ ์ฝ๋
- `static/`: ์ ์ ํ์ผ
- `css/`: ์คํ์ผ์ํธ
- `style.css`: ๊ธฐ๋ณธ ์คํ์ผ
- `device-style.css`: ์ฅ์น ์ ์ด ์คํ์ผ
- `js/`: JavaScript ํ์ผ
- `app.js`: ๋ฉ์ธ JavaScript
- `app-core.js`: ํต์ฌ ๊ธฐ๋ฅ
- `app-device.js`: ์ฅ์น ์ ์ด ๊ธฐ๋ฅ
- `app-docs.js`: ๋ฌธ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ
- `app-llm.js`: LLM ๊ด๋ จ ๊ธฐ๋ฅ
- `templates/`: HTML ํ
ํ๋ฆฟ
- `index.html`: ๋ฉ์ธ ์ ํ๋ฆฌ์ผ์ด์
ํ์ด์ง
- `login.html`: ๋ก๊ทธ์ธ ํ์ด์ง
- `loading.html`: ๋ก๋ฉ ํ์ด์ง
- `docs/`: ํ๋ก์ ํธ ๋ฌธ์
- `project_plan.md`: ํ๋ก์ ํธ ๊ณํ ๋ฌธ์
- `cleanup_plan.md`: ์ฝ๋ ์ ๋ฆฌ ๊ณํ ๋ฌธ์
- **์ ๊ท ํ์ผ:**
- `LocalPCAgent/programs/scan_devices.py`: ์ฅ์น ์กฐํ Python ์คํฌ๋ฆฝํธ
## LocalPCAgent ํตํฉ ์์ฝ
- **๋ฐฑ์๋ API**: `app/app_device_routes.py`์ ๊ตฌํ
- `/api/device/status`: ์ฅ์น ์๋ฒ ์ํ ํ์ธ
- `/api/device/connect`: ์ฌ์ฉ์ ์ง์ URL ์ฐ๊ฒฐ
- `/api/device/list`: ์ฅ์น ๋ชฉ๋ก ์กฐํ
- `/api/device/programs`: ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ๋ชฉ๋ก ์กฐํ
- `/api/device/programs/<program_id>/execute`: ๋ฑ๋ก๋ ํ๋ก๊ทธ๋จ ์คํ
- `/api/device/execute-custom`: ์ฌ์ฉ์ ์ ์ ํ๋ก๊ทธ๋จ ์คํ
- **์ถ๊ฐ ์์ :** `/api/device/scan-ports`: COM ํฌํธ ๋ฐ USB ์ฅ์น ๋ชฉ๋ก ์กฐํ
- **ํ๋ฐํธ์๋**: ๊ธฐ๋ฅ ์์ฑ
- ์ฅ์น ์ ์ด ํญ UI: `templates/index.html`์ ๊ตฌํ
- JavaScript ๋ก์ง: `static/js/app-device.js`์ ๊ตฌํ
- ์คํ์ผ: `static/css/device-style.css`์ ๊ตฌํ
## ์ฃผ์์ฌํญ
- JavaScript๋ ์ง์ LocalPCAgent์ ํต์ ํ์ง ์๊ณ Flask ๋ฐฑ์๋๋ฅผ ํตํด ํต์
- ๋ชจ๋ ์ฅ์น ๊ด๋ จ API๋ ์ธ์ฆ๋ ์ฌ์ฉ์๋ง ์ ๊ทผ ๊ฐ๋ฅ (`login_required` ๋ฐ์ฝ๋ ์ดํฐ ์ ์ฉ)
- ๋ก๊น
์ฝ๋ ์ ์งํ์ฌ ๋๋ฒ๊น
์ฉ์ดํ๊ฒ ํจ
|