๐Ÿ“ ํŒ€ ํ”„๋กœ์ ํŠธ: [์ •๋ถ€์ง€์›๊ธˆ ์ถ”์ฒœ ์ฑ—๋ด‡]

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์งˆ๋ฌธ์— ๋งž๋Š” ์ •๋ถ€์ง€์›๊ธˆ ์ •๋ณด๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” Retrieval-Augmented Generation (RAG) ๊ธฐ๋ฐ˜ ์ฑ—๋ด‡ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ •๋ถ€24 ๊ณต๊ณต ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , Upstage์˜ Solar API์™€ LangChain์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ ์ ˆํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โฑ๏ธ ๊ธฐ๊ฐ„ ๋ฐ ์ธ์›

๊ธฐ๊ฐ„: 2025.03.01 ~ 2025.04.15

์ธ์›: ์ด 3๋ช…

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ๋„๊ตฌ: Python, Jupyter Notebook, JSON, LangChain, Streamlit

์ž„๋ฒ ๋”ฉ ๋ฐ ๊ฒ€์ƒ‰: Upstage Solar API, FAISS

๐Ÿ”ง ํ•ต์‹ฌ ๊ธฐ๋Šฅ

๐Ÿงญ ์‹œ์Šคํ…œ ์›Œํฌํ”Œ๋กœ์šฐ

์ •๋ถ€์ง€์›๊ธˆ ์ถ”์ฒœ ์ฑ—๋ด‡์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๋ถ€ํ„ฐ ์งˆ๋ฌธ ์‘๋‹ต๊นŒ์ง€์˜ ์ „์ฒด ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

RAG ํŒŒ์ดํ”„๋ผ์ธ ์›Œํฌํ”Œ๋กœ์šฐ

โ–ฒ ์ „์ฒด ์‹œ์Šคํ…œ ๋™์ž‘ ํ๋ฆ„์„ ๋ณด์—ฌ์ฃผ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ๋‹ค์ด์–ด๊ทธ๋žจ

๐Ÿง‘โ€๐Ÿ’ป ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ ๋ถ€๋ถ„

๐Ÿ› ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๐Ÿ“Œ ์ฒญํฌ ๋ถ„ํ•  ๊ธฐ์ค€ ์„ ํƒ ๋ฌธ์ œ

- ๋ฌธ์ œ ๋ฐฐ๊ฒฝ: ๋ฌธ์„œ ๋‚ด์šฉ์„ ๋‚˜๋ˆŒ ๋•Œ ๋ฌธ์ž ๊ธธ์ด ๊ธฐ๋ฐ˜๊ณผ ํ† ํฐ ๊ฐœ์ˆ˜ ๊ธฐ๋ฐ˜ ์ค‘ ์–ด๋–ค ๊ธฐ์ค€์ด ์„ฑ๋Šฅ์— ์œ ๋ฆฌํ• ์ง€ ํŒ๋‹จ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: LLM์˜ ๋ฌธ๋งฅ ํŒŒ์•… ๋‹จ์œ„๊ฐ€ 'ํ† ํฐ'์ด๋ผ๋Š” ์ ์— ์ฐฉ์•ˆํ•ด ํ† ํฐ ์ˆ˜ ๊ธฐ๋ฐ˜ ๋ถ„ํ• ์„ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์˜๋ฏธ ๋‹จ์ ˆ ์—†์ด ์•ˆ์ •์ ์œผ๋กœ ๋ฌธ์„œ๊ฐ€ ๋ถ„ํ• ๋˜์–ด ๋ฌธ์„œ ์œ ์‚ฌ๋„ ํƒ์ƒ‰์˜ ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ž„๋ฒ ๋”ฉ ๋น„์šฉ ๊ณผ๋‹ค ๋ฐœ์ƒ ๋ฌธ์ œ

- ๋ฌธ์ œ ๋ฐฐ๊ฒฝ: ์‚ฌ์ „ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์ค‘๋ณต๋œ ๋ฌธ์„œ๊ฐ€ ๋Œ€๋Ÿ‰ ํฌํ•จ๋˜์–ด ์ž„๋ฒ ๋”ฉ ๋น„์šฉ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: EDA๋ฅผ ํ†ตํ•ด ์™„์ „ ์ค‘๋ณต / ๋ถ€๋ถ„ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ์„œ๋น„์ŠคID์™€ ์„œ๋น„์Šค๋ช… ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•˜๊ณ , ์„ธ๋ถ€ ๋‚ด์šฉ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋„ key ๊ธฐ์ค€์œผ๋กœ dict ๋ณ‘ํ•ฉ, ๋ฆฌ์ŠคํŠธ ๋ณ‘ํ•ฉ, ๋ฌธ์ž์—ด ๋ณ‘ํ•ฉ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฑด์ˆ˜๋ฅผ ๋Œ€ํญ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

- ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ:

์„œ๋น„์ŠคID์™€ ์„œ๋น„์Šค๋ช…์„ ์ด์šฉํ•œ ์ค‘๋ณต ํ™•์ธ
๐Ÿ” ์„œ๋น„์ŠคID์™€ ์„œ๋น„์Šค๋ช…์„ ์ด์šฉํ•œ ์ค‘๋ณต ํ™•์ธ ๊ฒฐ๊ณผ
์„œ๋น„์Šค ์ˆ˜ ๋น„๊ต ์‹œ๊ฐํ™”
๐Ÿ” ๋ณ‘ํ•ฉ ์ „ํ›„ ์„œ๋น„์Šค ์ˆ˜ ๋น„๊ต

๐Ÿ“Œ ์ „์ฒด ์žฌ์ž„๋ฒ ๋”ฉ ๋น„ํšจ์œจ ๋ฌธ์ œ

- ๋ฌธ์ œ ๋ฐฐ๊ฒฝ: JSON ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ๋ฌธ์„œ๋ฅผ ์žฌ์ž„๋ฒ ๋”ฉํ•˜๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์ž์›์ด ๋‚ญ๋น„๋ฉ๋‹ˆ๋‹ค.

- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: prev.json๊ณผ new.json์„ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋ฌธ์„œ๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ž„๋ฒ ๋”ฉํ•˜๋„๋ก ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœ ํ•ด์‹œ ๋น„๊ต๊ฐ€ ์•„๋‹Œ JSON ํ•„๋“œ ๋‹จ์œ„๋กœ ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ์œ ํ˜•๊ณผ ์›์ธ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณ€๊ฒฝ๋œ ๋ฌธ์„œ๋งŒ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ๋น„์šฉ์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

- ์ฒ˜๋ฆฌ ๋ฐฉ์‹:

๐ŸŒŸ ํŒ€ ์„ฑ๊ณผ

๐Ÿ“ธ ๋ฐ๋ชจ ์ด๋ฏธ์ง€ ๋ณด๊ธฐ ๋ฐ๋ชจ ์„œ๋น„์Šค ํ™”๋ฉด1 ๋ฐ๋ชจ ์„œ๋น„์Šค ํ™”๋ฉด2

๐Ÿ’ก ๊นจ๋‹ฌ์€ ์ 

์„œ๋น„์Šค๋ฅผ ์‹ค์ œ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹จ์ˆœํžˆ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ, ์šด์˜ ๋น„์šฉ์„ ์ค„์ด๋Š” ๊ตฌ์กฐ์  ์„ค๊ณ„๊ฐ€ ํ•„์ˆ˜์ ์ž„์„ ์ฒด๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ž„๋ฒ ๋”ฉ์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ์ •๋ฐ€ํ•˜๊ฒŒ ํƒ์ง€ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋ฌธ์„œ๋งŒ ์„ ๋ณ„์ ์œผ๋กœ ์ž„๋ฒ ๋”ฉํ•˜๋Š” ๋ฐฉ์‹์ด ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ณ ์•ˆํ•œ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ๋ณ‘ํ•ฉ ์ „๋žต์ด ์„œ๋น„์Šค ํšจ์œจ์„ฑ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ค€๋‹ค๋Š” ์ ์—์„œ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ์˜ ์ค‘์š”์„ฑ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นŠ์ด ์žˆ๊ฒŒ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ