lily_fast_api / PROMPT.md
gbrabbit's picture
Fresh start for HF Spaces deployment
526927a
# Lily LLM RAG ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ - ์ƒˆ ์ฑ„ํŒ…์ฐฝ AI ํ”„๋กฌํ”„ํŠธ
## ๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
PDF ๋ฌธ์„œ์˜ ์ˆ˜ํ•™ ๋ฌธ์ œ ํ•ด์„ ๋ฐ ํ•ด๊ฒฐ์„ ์œ„ํ•œ RAG ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ CPU ํ™˜๊ฒฝ์—์„œ ์ž‘์€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๋น ๋ฅธ ๊ฒ€์ฆ์„ ์™„๋ฃŒํ–ˆ์œผ๋ฉฐ, ๋‹ค์Œ ๋‹จ๊ณ„๋กœ GPU ์„œ๋ฒ„ ๋ฐฐํฌ ๋ฐ ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
## ๐Ÿ“‹ ํ˜„์žฌ ์ƒํ™ฉ
### โœ… ์™„๋ฃŒ๋œ ์ž‘์—…
1. **ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ RAG ์‹œ์Šคํ…œ ๊ตฌ์ถ•**
- PDF ํ…์ŠคํŠธ ์ง์ ‘ ์ถ”์ถœ (์ด๋ฏธ์ง€ OCR ๋Œ€์‹ )
- RAG ํ”„๋กœ์„ธ์„œ ๋‹จ์ˆœํ™” (๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ฒ˜๋ฆฌ ์ œ๊ฑฐ)
- LLM ์—†์ด๋„ ์ž‘๋™ํ•˜๋Š” ๊ตฌ์กฐํ™”๋œ ์‘๋‹ต
2. **ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•**
- ์„œ๋ฒ„ ์—ฐ๊ฒฐ ๋ฐ ๋ฌธ์„œ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
- ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ RAG ์ฟผ๋ฆฌ ํ…Œ์ŠคํŠธ
- ๊ตฌ์ฒด์ ์ธ ์ˆ˜ํ•™ ๋ฌธ์ œ ์งˆ๋ฌธ ํ…Œ์ŠคํŠธ
3. **์„ฑ๊ณผ ํ™•์ธ**
- PDF ํ…์ŠคํŠธ ์ถ”์ถœ ์™„๋ฒฝ ์ž‘๋™
- ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์™„๋ฒฝ ์ž‘๋™ (5๊ฐœ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ)
- ๋น ๋ฅธ ์ฒ˜๋ฆฌ (์ฆ‰์‹œ ์‘๋‹ต)
- ์‹ค์ œ ์ˆ˜ํ•™ ๋ฌธ์ œ ๋‚ด์šฉ ์ •ํ™•ํžˆ ์ถ”์ถœ
### ๐Ÿ”ง ํ•ด๊ฒฐ๋œ ๋ฌธ์ œ๋“ค
1. **ํ† ํฐ ID ๋ฌธ์ œ**: ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๊ฒฐ
2. **PDF ํ…์ŠคํŠธ ์ถ”์ถœ**: ์‹ค์ œ ๋ฌธ์ œ ๋‚ด์šฉ ์ถ”์ถœ ์„ฑ๊ณต
3. **๋น ๋ฅธ ๊ฒ€์ฆ**: ์ž‘์€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ์„ฑ๊ณต
4. **๊ตฌ์กฐํ™”๋œ ์‘๋‹ต**: ๋ฌธ์ œ ๋ถ„์„๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ํฌํ•จ
## ๐Ÿ“ ์ฃผ์š” ํŒŒ์ผ ๊ตฌ์กฐ
### Core ํŒŒ์ผ๋“ค
- `lily_llm_core/document_processor.py`: PDF ํ…์ŠคํŠธ ์ถ”์ถœ ๊ฐœ์„ 
- `lily_llm_core/rag_processor.py`: RAG ํ”„๋กœ์„ธ์„œ ๋‹จ์ˆœํ™”
- `lily_llm_api/app_v2.py`: ์—”๋“œํฌ์ธํŠธ ์ˆ˜์ •
### ํ…Œ์ŠคํŠธ ํŒŒ์ผ๋“ค
- `test_simple_rag.py`: ๊ธฐ๋ณธ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ
- `test_text_only_rag.py`: ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ RAG ํ…Œ์ŠคํŠธ
- `test_specific_questions.py`: ๊ตฌ์ฒด์  ์งˆ๋ฌธ ํ…Œ์ŠคํŠธ
- `test_llm_rag.py`: LLM ํฌํ•จ ํ…Œ์ŠคํŠธ
## ๐Ÿš€ ๋‹ค์Œ ๋‹จ๊ณ„ ์š”์ฒญ์‚ฌํ•ญ
### 1. GPU ์„œ๋ฒ„ ๋ฐฐํฌ ์ค€๋น„
- ํ˜„์žฌ CPU ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ
- GPU ํ™˜๊ฒฝ์—์„œ์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”
- ์„œ๋ฒ„ ๋ฐฐํฌ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
### 2. LLM ํ†ตํ•ฉ ๊ฐœ์„ 
- Kanana ๋ชจ๋ธ์˜ ํ† ํฐ ๋””์ฝ”๋”ฉ ๋ฌธ์ œ ํ•ด๊ฒฐ
- ์‹ค์ œ ์ˆ˜ํ•™ ๋ฌธ์ œ ํ’€์ด ๋Šฅ๋ ฅ ํ–ฅ์ƒ
- ๋” ์ •ํ™•ํ•œ ๋‹ต๋ณ€ ์ƒ์„ฑ
### 3. ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ
- ์ˆ˜ํ•™ ๋ฌธ์ œ ํ’€์ด ๋กœ์ง ๊ฐœ์„ 
- ๋‹จ๊ณ„๋ณ„ ํ•ด๊ฒฐ ๊ณผ์ • ์ œ์‹œ
- ์ •๋‹ต๊ณผ ํ•ด์„ค ์ œ๊ณต
### 4. ์„ฑ๋Šฅ ์ตœ์ ํ™”
- ๋” ํฐ ๋ฐ์ดํ„ฐ์…‹ ์ฒ˜๋ฆฌ
- ์‘๋‹ต ์†๋„ ๊ฐœ์„ 
- ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์ ํ™”
## ๐Ÿ’ก ๊ธฐ์ˆ ์  ์š”๊ตฌ์‚ฌํ•ญ
### ํ˜„์žฌ ํ™˜๊ฒฝ
- **OS**: Windows 10
- **Python**: ๊ฐ€์ƒํ™˜๊ฒฝ (lily_llm_env)
- **์„œ๋ฒ„**: FastAPI (ํฌํŠธ 8001)
- **๋ชจ๋ธ**: Kanana-1.5-v-3b-instruct
- **๋ฒกํ„ฐ ์Šคํ† ์–ด**: FAISS
### ๋ชฉํ‘œ ํ™˜๊ฒฝ
- **GPU ์„œ๋ฒ„**: ๋” ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„
- **ํ™•์žฅ์„ฑ**: ๋” ํฐ ๋ฌธ์„œ ์ฒ˜๋ฆฌ
- **์ •ํ™•์„ฑ**: ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ
## ๐Ÿ” ํ˜„์žฌ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
### ์„ฑ๊ณตํ•œ ๊ธฐ๋Šฅ๋“ค
- โœ… **PDF ํ…์ŠคํŠธ ์ถ”์ถœ ์™„๋ฒฝ**: ์‹ค์ œ ์ˆ˜ํ•™ ๋ฌธ์ œ ๋‚ด์šฉ ์ •ํ™•ํžˆ ์ถ”์ถœ
- โœ… **๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์™„๋ฒฝ**: ๊ด€๋ จ ๋ฌธ์ œ๋“ค์„ ์ •ํ™•ํžˆ ์ฐพ์•„๋ƒ„
- โœ… **๋น ๋ฅธ ์ฒ˜๋ฆฌ**: ์ฆ‰์‹œ ์‘๋‹ต (LLM ์—†์ด๋„ ์ž‘๋™)
- โœ… **๊ตฌ์กฐํ™”๋œ ์‘๋‹ต**: ๋ฌธ์ œ ๋ถ„์„๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ œ์‹œ
- โœ… **์ •ํ™•ํ•œ ๋ฌธ์ œ ๋งค์นญ**: 23๋ฒˆ, 24๋ฒˆ, 15๋ฒˆ ๋ฌธ์ œ ์ •ํ™•ํžˆ ์ฐพ์Œ
### ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
- **๋ฌธ์„œ ์—…๋กœ๋“œ**: 12๊ฐœ ์ฒญํฌ ์„ฑ๊ณต
- **๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ**: 5๊ฐœ์”ฉ ์ •ํ™•ํžˆ ๋ฐ˜ํ™˜
- **์‘๋‹ต ์‹œ๊ฐ„**: ์ฆ‰์‹œ (ํ† ํฐ ID ๋ฌธ์ œ ํ•ด๊ฒฐ๋จ)
- **๋ฌธ์ œ ์ธ์‹**: ์‹ค์ œ ์ˆ˜ํ•™ ๋ฌธ์ œ ๋‚ด์šฉ ์ •ํ™•ํžˆ ์ถ”์ถœ
## ๐Ÿ“ ์š”์ฒญ์‚ฌํ•ญ
์ƒˆ๋กœ์šด AI ์–ด์‹œ์Šคํ„ดํŠธ์—๊ฒŒ ๋‹ค์Œ ์ž‘์—…์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค:
1. **ํ˜„์žฌ ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ถ„์„**: ์œ„์—์„œ ์–ธ๊ธ‰๋œ ํŒŒ์ผ๋“ค์„ ๊ฒ€ํ† ํ•˜์—ฌ ํ˜„์žฌ ์ƒํƒœ ํŒŒ์•…
2. **GPU ์„œ๋ฒ„ ๋ฐฐํฌ ๊ณ„ํš ์ˆ˜๋ฆฝ**: ํ˜„์žฌ CPU ํ…Œ์ŠคํŠธ ์™„๋ฃŒ ์ƒํƒœ์—์„œ GPU ํ™˜๊ฒฝ์œผ๋กœ ์ „ํ™˜
3. **LLM ํ†ตํ•ฉ ๊ฐœ์„ **: ํ† ํฐ ๋””์ฝ”๋”ฉ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ
4. **์„ฑ๋Šฅ ์ตœ์ ํ™”**: ๋” ํฐ ๋ฐ์ดํ„ฐ์…‹ ์ฒ˜๋ฆฌ ๋ฐ ์‘๋‹ต ์†๋„ ๊ฐœ์„ 
5. **์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ**: ์ˆ˜ํ•™ ๋ฌธ์ œ ํ’€์ด ๋กœ์ง ๊ฐœ์„  ๋ฐ ์ •ํ™•ํ•œ ๋‹ต๋ณ€ ์ƒ์„ฑ
ํ˜„์žฌ "์ž‘์€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๋น ๋ฅธ ๊ฒ€์ฆ" ๋ชฉํ‘œ๋Š” ๋‹ฌ์„ฑํ–ˆ์œผ๋ฏ€๋กœ, ๋‹ค์Œ ๋‹จ๊ณ„์ธ "์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ"๊ณผ "GPU ์„œ๋ฒ„ ๋ฐฐํฌ"์— ์ง‘์ค‘ํ•ด์ฃผ์„ธ์š”.