RAG6_AgenticAI / docs /project_plan.md
jeongsoo's picture
init
d93e680
|
raw
history blame
4.19 kB

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

์™„๋ฃŒ๋œ ์ž‘์—…

  • ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์„ค์ •
  • Flask ์›น ์„œ๋ฒ„ ๊ตฌํ˜„
  • ๋‹ค์ค‘ LLM ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ (OpenAI, DeepSeek)
  • ์‚ฌ์šฉ์ž ์ธ์ฆ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ์žฌ์ˆœ์œ„ํ™” ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๋ฌธ์„œ ์ฒ˜๋ฆฌ ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์›น ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
  • ์žฅ์น˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํ†ตํ•ฉ
  • ์žฅ์น˜ ๊ด€๋ฆฌ UI ๊ตฌํ˜„

์ง„ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…

  • LLM ์„ ํƒ UI ๊ฐœ์„ 
    • ๋“œ๋กญ๋‹ค์šด์— ์•„์ด์ฝ˜ ์ถ”๊ฐ€
    • ๊ฐ LLM๋ณ„ ์ƒ์„ธ ๋ชจ๋ธ ์ •๋ณด ํ‘œ์‹œ
  • ์‘๋‹ต ๋‚ด ์†Œ์Šค ๋งํฌ ํด๋ฆญ ์‹œ ์›๋ฌธ ํ‘œ์‹œ ๊ธฐ๋Šฅ
  • ์‘๋‹ต ์†๋„ ๊ฐœ์„ 
  • ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๊ฐ•ํ™”
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ๋ฐ ์œ ๋‹› ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
  • ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ ๋ฌธ์„œ ์ž‘์„ฑ

ํ†ตํ•ฉ ๊ตฌํ˜„ ๋‚ด์šฉ

1. ์›น์•ฑ ํ†ตํ•ฉ

  • ๋‹จ์ผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— RAG ๊ฒ€์ƒ‰ ์ฑ—๋ด‡๊ณผ ์žฅ์น˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํ†ตํ•ฉ
  • ํƒญ ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ (๋Œ€ํ™”, ๋ฌธ์„œ๊ด€๋ฆฌ, ์žฅ์น˜๊ด€๋ฆฌ)
  • Flask๋ฅผ ํ†ตํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ์„œ๋ฒ„ ๊ด€๋ฆฌ

2. ์žฅ์น˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

  • ์žฅ์น˜ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ
  • ์—ฐ๊ฒฐ๋œ ์žฅ์น˜ ๋ชฉ๋ก ์กฐํšŒ
  • ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ์‹คํ–‰
  • ์„œ๋ฒ„์™€์˜ RESTful API ํ†ต์‹ 

3. ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌํ˜„

  • ์ง๊ด€์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค
  • ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ์—…๋ฐ์ดํŠธ
  • ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

ํŒŒ์ผ ๊ตฌ์กฐ

RAG5_2_ChooseLLM/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ app.py                   # ๋ฉ”์ธ Flask ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
โ”‚   โ”œโ”€โ”€ app_routes.py            # ๊ธฐ๋ณธ ๋ผ์šฐํŠธ ์ •์˜
โ”‚   โ”œโ”€โ”€ app_device_routes.py     # ์žฅ์น˜ ๊ด€๋ฆฌ ๊ด€๋ จ ๋ผ์šฐํŠธ
โ”‚   โ”œโ”€โ”€ static/
โ”‚   โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ 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 ํŒŒ์ผ์— ์„ค์ •ํ•ด์•ผ ํ•จ
  • ์ดˆ๊ธฐ ๋กœ๊ทธ์ธ ๊ณ„์ • ์ •๋ณด๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ๊ฐ’ ์‚ฌ์šฉ