๋ค์ํ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ IT ์ ๊ณ ํธ๋ ๋์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๋ ์ง๋ฅํ ์์ด์ ํธ
FastAPI ๊ธฐ๋ฐ AI ์์ด์ ํธ ์๋ฒ
ํ๋ก์ ํธ ๊ธฐ๊ฐ: 2024.07.10 ~ 2025.06.04
๊ธ๋ณํ๋ ๊ธฐ์ ํ๊ฒฝ ์์์ ์ค์๊ฐ์ผ๋ก ์์์ง๋ ๋ฐฉ๋ํ ์ ๋ณด๋ค์ ํ๋์ ํ์ ํ๊ณ , ๋น์ฆ๋์ค ๋ณํ์ ์ ์ํ๊ฒ ๋์ํ๋ ๊ฒ์ ๋ชจ๋ ๊ธฐ์ ์ ์ค์ํ ๊ณผ์ ์ ๋๋ค. TRENDB๋ ์ด๋ฌํ ํ์์ฑ์ ๋ฐ๋ผ ์์ง์๋ค์ด ์ต์ IT ํธ๋ ๋๋ฅผ ๋์น์ง ์๊ณ , ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํ์ฌ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ฑ์ ์ค์ ํ ์ ์๋๋ก ์ง์ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
TRENDB๋ ๊ธฐ์กด ๊ฑฐ๋ ์ธ์ด ๋ชจ๋ธ(LLM)์ ํ๊ณ์ธ ํ๊ฐ ํ์์ ์ค์ด๊ณ , ์ ๋ขฐํ ์ ์๋ ์ต์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ํต์ฌ ๋ชฉํ๋ก ์ผ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ฐ์ดํฐ ์์ง ํ์ดํ๋ผ์ธ, AI ์์ด์ ํธ ์๋ฒ, ๋ฉ์ธ API ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ ๊ตฌ์กฐ๋ก ์๋น์ค ์ ๋ฐ์ ์ค๊ณํ์ต๋๋ค.
์ด ์ค langchain-trend-agent ๋ ํฌ๋ FastAPI ๊ธฐ๋ฐ์ AI ์์ด์ ํธ ์๋ฒ๋ก์, ์ฌ์ฉ์์ ์ง๋ฌธ์ ๋ถ์ํ๊ณ ์ ์ ํ ๋๊ตฌ๋ฅผ ์ ํํด ์คํํ ๋ค, ๊ฒฐ๊ณผ๋ฅผ ์ข
ํฉํ์ฌ ์คํธ๋ฆฌ๋ฐ ์๋ต๊ณผ ์ถ์ฒ๋ฅผ ์์ฑํฉ๋๋ค. ๋ํ ํ ๋ฌธ์ ๊ธฐ๋ฐ ์ง์์๋ต๊ณผ ํ์ผ ์ฒจ๋ถ ๊ธฐ๋ฐ ์ปจํ
์คํธ ํ์ฅ ๊ธฐ๋ฅ์ ํจ๊ป ์ ๊ณตํ์ฌ, ๊ฒ์, ๋ถ์, ์์ฑ, ๊ฒ์ฆ์ด ํ๋์ ํ๋ฆ ์์์ ์ด์ด์ง๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ตฌํํฉ๋๋ค.
์ฌ์ฉ์๋ ์ด ์๋ฒ๋ฅผ ํตํด ํ๋์ ์๋น์ค ์์์ ๋ค์ ํ๋ฆ์ ์์ฐ์ค๋ฝ๊ฒ ์ด์ด๊ฐ ์ ์์ต๋๋ค.
- ๊ตญ๋ด์ธ ๋ด์ค, ์น, ์ปค๋ฎค๋ํฐ, ๋ ผ๋ฌธ, ์์ ์ ๋ณด๋ฅผ ํตํฉ์ ์ผ๋ก ํ์
- ๊ธฐ๊ฐ๋ณ ํธ๋ ๋, ๊ฒฝ์์ฌ ๋ํฅ, ์ฃผ์ ๋ฐ์ดํฐ ๋ฑ ๋ถ์ ๊ฒฐ๊ณผ ํ์ธ
- AI ์ฑ๋ด๊ณผ์ ์คํธ๋ฆฌ๋ฐ ๋ํ ๋ฐ ํ๋ฅด์๋ ๊ธฐ๋ฐ ์๋ต ์ด์ฉ
- ํ ๋ฌธ์ ์ ๋ก๋ ํ ๋ฌธ์ ๊ธฐ๋ฐ ์ง์์๋ต ์ํ
langchain-trend-agent๋ ํฌ๋ FastAPI ๊ธฐ๋ฐ์ AI ์์ด์ ํธ ์๋ฒ์ ๋๋ค.- LangChain ๊ธฐ๋ฐ ์์ด์ ํธ๊ฐ 15๊ฐ์ ๋๊ตฌ๋ฅผ ์กฐํฉํด ๊ฒ์, ๋ถ์, ์์ฑ ์์ ์ ์ํํฉ๋๋ค.
- ๋ด์ค ๊ฒ์, ์น ๊ฒ์, ์ปค๋ฎค๋ํฐ ํ์, ๋ ผ๋ฌธ ๊ฒ์, ์ฃผ์ ๋ถ์, ์ด๋ฏธ์ง ์์ฑ, ๋ฌธ์ ๊ธฐ๋ฐ ์ง์์๋ต์ ๋ด๋นํฉ๋๋ค.
- ๋ฉ์ธ API ์๋ฒ์ ๋ฐ์ดํฐ ์์ง ํ์ดํ๋ผ์ธ์ด ์ฐ๊ฒฐ๋ ์ํ์์, ์ต์ข ์ฌ์ฉ์์๊ฒ ๊ทผ๊ฑฐ ๊ธฐ๋ฐ ์๋ต๊ณผ ์คํธ๋ฆฌ๋ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
TRENDB์ ํต์ฌ์ LangChain ๊ธฐ๋ฐ ์์จํ ์์ด์ ํธ๊ฐ ์ฌ์ฉ์์ ์ง๋ฌธ์ ๋ถ์ํ๊ณ , ๋ฑ๋ก๋ 15๊ฐ์ ๋๊ตฌ๋ฅผ ์กฐํฉํด ํ๋์ ์๋ต์ผ๋ก ์ ๋ฆฌํ๋ ๋ฐ ์์ต๋๋ค. ์์ด์ ํธ๋ ๋ด์ค ๊ฒ์, ์น ๊ฒ์, ์ปค๋ฎค๋ํฐ ํ์, ์๊ณ์ด ๋ถ์, ๋ฌธ์ ๊ธฐ๋ฐ ์ง์์๋ต, ์ด๋ฏธ์ง ์์ฑ, ๋ฆฌํฌํธ ์์ฑ์ ์ํฉ์ ๋ง๊ฒ ์กฐํฉํ๋ฉฐ, ์ด ๊ณผ์ ์์ ์์ฑ๋ ์๊ฐํ ์๋ฃ๋ S3์ ์ ๋ก๋๋์ด ์ด๋ฏธ์ง ํํ๋ก ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
- ํธ๋ ๋ ํค์๋ ๋ถ์: ๊ตญ๋ด ๋ด์ค ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๊ฐ๋ณ(์ผ/์ฃผ/์) ํธ๋ ๋ ํค์๋๋ฅผ ์ถ์ถํ๊ณ , ์ธ๊ธ๋๊ณผ ๊ธ๋ถ์ ๋ถํฌ๋ฅผ ์ฐจํธ๋ก ์๊ฐํํ์ฌ ๊ธฐ์ฌ ๋ณธ๋ฌธ ์์ฝ๊ณผ ํจ๊ป ์ ๊ณตํฉ๋๋ค.
- ๊ฒฝ์์ฌ ๋ํฅ ๋ถ์: ์ง์ ๋ ๊ฒฝ์์ฌ๋ค์ ๋ด์ค ์ธ๊ธ๋ ๋ฐ ๊ธ๋ถ์ ์ถ์ด๋ฅผ ๋ถ์ํ๊ณ , ๊ด๋ จ ๋ํ ๊ธฐ์ฌ๋ฅผ ํจ๊ป ์ ์ํ์ฌ ๋น๊ต ๋ถ์์ ์ง์ํฉ๋๋ค.
- ๊ตฌ๊ธ ํธ๋ ๋ ๋ถ์:
pytrends๋ฅผ ํ์ฉํ์ฌ ํน์ ํค์๋์ ๊ด์ฌ๋ ๋ณํ๋ฅผ ์๊ณ์ด ๊ทธ๋ํ๋ก ์๊ฐํํด ๋์ค์ ๊ด์ฌ๋ ์ถ์ด๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. - ๊ตญ๋ด์ธ ์ฃผ์ ๋ถ์:
FinanceDataReader์yfinance๋ฅผ ํตํด ๊ตญ๋ด์ธ ์ฃผ์์ OHLCV ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ , ์ข ๊ฐ ๋ฐ ๊ฑฐ๋๋ ์ฐจํธ๋ฅผ ์์ฑํ์ฌ ์์ฅ ๋ฐ์์ ๋ถ์ํฉ๋๋ค.
๊ธฐ๊ฐ๋ณ ์์ ํค์๋ ํธ๋ ๋ ๋ถ์(์ข) ๋ฐ ํน์ ํค์๋ ์ฌ์ธต ๋ถ์(์ฐ)
๊ฒฝ์์ฌ๋ณ ๋ด์ค ์ธ๊ธ๋ ๋ฐ ๊ธ๋ถ์ ๋ถํฌ ๋ถ์
์ฃผ๊ฐ ๋ฐ ๊ฑฐ๋๋ ๋ณ๋ ์ถ์ด ์๊ฐํ
- ๊ตญ๋ด์ธ ๋ด์ค ๊ฒ์: ์์ฒด ๊ตฌ์ถํ Elasticsearch ๋ด์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ตญ๋ด์ธ ๊ธฐ์ฌ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ฒ์ํ๊ณ , ํต์ฌ ๋ด์ฉ์ ์์ฝํ์ฌ ์ ๊ณตํฉ๋๋ค.
- ์น ๋ฐ ์ปค๋ฎค๋ํฐ ๊ฒ์: Tavily ์น ๊ฒ์, ๋ค์ด๋ฒ/๋ค์ ๋ธ๋ก๊ทธ, Reddit, X(Twitter) ๋ฑ ๋ค์ํ ์ฑ๋์ ๋ณ๋ ฌ๋ก ํ์ํ์ฌ ์ต์ ์ ๋ณด์ ์ฌ๋ก ์ ์ข ํฉ์ ์ผ๋ก ์์งํฉ๋๋ค.
- ์ ๋ฌธ ์ ๋ณด ๊ฒ์: Wikipedia, ๋๋ฌด์ํค, OpenAlex(ํ์ ๋ ผ๋ฌธ), YouTube ๋ฑ ํน์ ๋๋ฉ์ธ์ ํนํ๋ ๊ฒ์์ ์ํํ์ฌ ์ ๋ณด์ ๊น์ด์ ์ ๋ขฐ๋๋ฅผ ๋์ ๋๋ค.
- ์น/๋ฌธ์ ๋ด์ฉ ์ถ์ถ: ์ฌ์ฉ์๊ฐ ์ ๊ณตํ URL(์นํ์ด์ง, PDF)์ ํ ์คํธ๋ฅผ ์ง์ ์ถ์ถํ๊ณ ๋ถ์ํ์ฌ ๋ณ๋์ ๊ฒ์ ์์ด ์ํ๋ ์ ๋ณด์ ๋ฐ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ค์ค ์ปค๋ฎค๋ํฐ ๋์ ๊ฒ์ ๊ฒฐ๊ณผ
๋
ผ๋ฌธ ๊ฒ์(์ข) ๋ฐ ์ ํ๋ธ ์์ ๊ฒ์(์ฐ)
URL ๊ธฐ๋ฐ ์นํ์ด์ง ๋ด์ฉ ์ถ์ถ ๋ฐ ์์ฝ
- ์๋ ๋ฆฌํฌํธ ์์ฑ: ์ฌ๋ฌ ๋ถ์ ๋๊ตฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํ๊ณ , LLM์ด ์์ ํ ๋ถ์๊น์ง ๋ํ ์ ๋ฌธ์ ์ธ ํธ๋ ๋ ๋ฆฌํฌํธ(DOCX)๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
- AI ์ด๋ฏธ์ง ์์ฑ: DALL-E 3๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์์ ์์ด๋์ด๋ฅผ ์ฆ์ ์๊ฐ์ ์ธ ์ด๋ฏธ์ง๋ก ๊ตฌ์ฒดํํฉ๋๋ค.
- ํ ๋ฌธ์ ๊ธฐ๋ฐ RAG: ํ ์ ์ฉ ํด๋ผ์ฐ๋์ ๋ฌธ์(PDF, DOCX, TXT)๋ฅผ ์ ๋ก๋ํ๋ฉด ์์คํ ์ด ์๋์ผ๋ก ํ ์คํธ๋ฅผ ์ถ์ถํ๊ณ ์๋ฏธ ๋จ์๋ก ๋ถํ ํ ๋ค ๋ฒกํฐ ์๋ฒ ๋ฉ์ผ๋ก ๋ณํํ์ฌ Milvus์ ์ ์ฅํฉ๋๋ค. ์ดํ ์ฌ์ฉ์๊ฐ ํ ๋ฌธ์์ ๋ํด ์ง๋ฌธํ๋ฉด, ์ ์ฌ๋๊ฐ ๋์ ๋ฌธ์ ๋ด์ฉ์ ์ฐพ์ ๋ต๋ณ์ ๊ทผ๊ฑฐ๋ก ํ์ฉํฉ๋๋ค.
- ๋ฌธ์ ํ์ผ ์ฒจ๋ถ: ๋ํ ์ ๋ฌธ์ ํ์ผ(PDF, DOCX, HWP, TXT)์ ์ฒจ๋ถํ๋ฉด, ํด๋น ํ์ผ์์ ํ ์คํธ๋ฅผ ์ถ์ถํด ํ์ฌ ๋ํ์ ๋ฌธ๋งฅ์ ๋ฐ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด AI ์์ด์ ํธ๋ ์ฒจ๋ถ๋ ํ์ผ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณด๋ค ์ ํํ ์๋ต์ ์์ฑํ ์ ์์ต๋๋ค.
์๋ ์์ฑ๋ ํธ๋ ๋ ๋ฆฌํฌํธ(DOCX) ๋ค์ด๋ก๋
DALL-E 3๋ฅผ ํ์ฉํ ์ด๋ฏธ์ง ์์ฑ
์
๋ก๋๋ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ง์์๋ต
- ์ ์ฐํ LLM ๋ชจ๋ธ ์ ํ: GPT-4.1, GPT-4o-mini, Claude Sonnet, Grok-3 ๋ฑ ์ฌ๋ฌ LLM์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ํํ์ฌ ๋ชฉ์ ์ ๋ง๋ ์๋ต ์ ๋ต์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๋ง์ถคํ ํ๋ฅด์๋: ์์คํ ์์ ์ ๊ณตํ๋ ํ๋ฆฌ์ ์ ์ฌ์ฉํ๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ์ง์ ์ฑ๋ด์ ๋งํฌ, ์ด์กฐ, ์ญํ ์ ์ ์ํ๋ ์ปค์คํ ํ๋ฅด์๋๋ฅผ ์์ฑํ์ฌ ๊ฐ์ธํ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ์ค์๊ฐ ๋๊ตฌ ์คํ ์ํ ์ ๊ณต: ์์ด์ ํธ๊ฐ ๋ต๋ณ์ ์์ฑํ๊ธฐ ์ํด ์ด๋ค ์์ ์ ์ํํ๊ณ ์๋์ง ์ค์๊ฐ์ผ๋ก ์คํธ๋ฆฌ๋ฐํ์ฌ, ์ฌ์ฉ์๊ฐ ์๋ต ์์ฑ ๊ณผ์ ์ ํฌ๋ช ํ๊ฒ ํ์ธํ ์ ์๋๋ก ํ์ต๋๋ค.
- ์ฑํ ๋ฐฉ ์ ๋ชฉ ์๋ ์์ฑ: ์ฑํ ๋ฐฉ์ ์ฒซ ๋ฒ์งธ ์ง๋ฌธ์ด ์ ๋ ฅ๋๋ฉด, LLM์ด ํด๋น ์ง๋ฌธ์ ํต์ฌ ๋ด์ฉ์ ์์ฝํ์ฌ ์ฑํ ๋ฐฉ ์ ๋ชฉ์ผ๋ก ์ค์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๊ฐ ๋ํ์ ์ฃผ์ ๋ฅผ ์ฝ๊ฒ ์๋ณํ ์ ์์ต๋๋ค.
LLM ๋ชจ๋ธ ์ ํ ๋ฐ ์ฌ์ฉ์ ๋ง์ถคํ ํ๋ฅด์๋ ์ค์
- ์ค์๊ฐ ์ถ์ฒ ์ ๊ณต ๋ฐ ๊ฒ์ฆ: ์์ด์ ํธ๋ ๋ต๋ณ์ ์์ฑํ ๋ ํ์ฉํ ๋ด์ค ๊ธฐ์ฌ, ์นํ์ด์ง, ๋ ผ๋ฌธ, ์์ ๋ฑ์ ์ถ์ฒ๋ฅผ ํจ๊ป ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๊ฒฐ๊ณผ์ ๊ทผ๊ฑฐ๋ฅผ ๋ฐ๋ก ํ์ธํ๊ณ ์ง์ ๊ฒ์ฆํ ์ ์์ด ๋ต๋ณ์ ์ ๋ขฐ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
์ค์๊ฐ์ผ๋ก ์ ๊ณต๋๋ ๋ต๋ณ ๋ฐ ์ถ์ฒ ์ ๋ณด
| ๊ตฌ๋ถ | ๊ธฐ์ | ์์ธ ์ค๋ช |
|---|---|---|
| Backend | FastAPI, Python 3.10 |
๋น๋๊ธฐ ๊ธฐ๋ฐ AI ์์ด์ ํธ API ์๋ฒ ๊ตฌ์ถ |
| LLM & AI | LangChain, OpenAI GPT-4.1, GPT-4o-mini, Claude Sonnet, Grok-3, DALL-E 3 |
์์ด์ ํธ, ์ฒด์ธ, ๋ฉ๋ชจ๋ฆฌ, ๋๊ตฌ ํธ์ถํ ์๋ต ์์ฑ ๋ฐ ์ด๋ฏธ์ง ์์ฑ |
| Database | PostgreSQL, Milvus, Elasticsearch, Redis |
์ฑํ /์ฌ์ฉ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ, ๋ฒกํฐ ์๋ฒ ๋ฉ ์ ์ฅ, ๋ด์ค ๋ฐ์ดํฐ ๊ฒ์, ์บ์ ์ฒ๋ฆฌ |
| Infrastructure | AWS (EC2, S3), Google Compute Engine, Docker |
์๋ฒ ์ด์, ์๊ฐํ ๊ฒฐ๊ณผ ์ ์ฅ, ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์คํ ํ๊ฒฝ ๊ตฌ์ฑ |
| Monitoring & Mgt. | LangSmith, Kibana, Attu, DBeaver |
์์ด์ ํธ ์ถ์ , ๋ฐ์ดํฐ ํ์, ๋ฒกํฐ DB ๋ฐ ๊ด๊ณํ DB ๊ด๋ฆฌ |
| DevOps | GitHub Actions, Jenkins |
FastAPI ๋ฐฐํฌ ์๋ํ, ๋ฐ์ดํฐ ์์ง ๋ฐ ์ด์ ์๋ํ ์ฐ๊ณ |
| Core Libraries | Pandas, NumPy, Pydantic, Plotly, TavilySearch, BeautifulSoup, FinanceDataReader, yfinance, pytrends, python-docx, PyMuPDF |
๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ ํจ์ฑ ๊ฒ์ฆ, ์๊ฐํ, ๊ฒ์, ๋ฆฌํฌํธ ์์ฑ, ๋ฌธ์ ํ์ฑ |
TRENDB๋ ์ญํ ์ ๋ถ๋ฆฌํ ์ ์ฅ์๋ค์ด ํจ๊ป ๋์ํ๋ ๊ตฌ์กฐ์ ๋๋ค.
- AI ์์ด์ ํธ ์๋ฒ (FastAPI): ํ์ฌ ์ ์ฅ์. LangChain ๊ธฐ๋ฐ ์์ด์ ํธ์ 15๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด ์ฌ์ฉ์์ ์ง๋ฌธ์ ํด์ํ๊ณ , ๊ฒ์ยท๋ถ์ยท์์ฑ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํ์ฌ ์คํธ๋ฆฌ๋ฐ ์๋ต์ ์์ฑํฉ๋๋ค.
- ๋ฉ์ธ API ์๋ฒ (Spring Boot): server - ์ฌ์ฉ์ ์ธ์ฆ(JWT), ํ์ ๊ด๋ฆฌ, ํ ์์ฑ ๋ฐ ๊ด๋ฆฌ, ํ ํ์ผ ํด๋ผ์ฐ๋, ์ธ์ฌ์ดํธ ๋์๋ณด๋ API ๋ฑ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ํ์ดํ๋ผ์ธ (Python Scripts & Jenkins): global-it-news-analysis - ๊ตญ๋ด์ธ IT ๋ด์ค๋ฅผ ์์งํ๊ณ ํค์๋, ์ฐ๊ด ํค์๋, ๊ธ๋ถ์ ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ Elasticsearch์ PostgreSQL์ ์ ์ฌํฉ๋๋ค.
TRENDB๊ฐ ์ฌ์ฉํ๋ ํต์ฌ ๋ด์ค ๋ฐ์ดํฐ๋ ๋ณ๋์ ์๋ํ๋ ํ์ดํ๋ผ์ธ์ ํตํด ๊ตฌ์ถ๋ฉ๋๋ค. Jenkins๋ฅผ ์ฌ์ฉํด ๋งค์ผ ๊ตญ๋ด์ธ IT ๋ด์ค๋ฅผ ์์งํ๊ณ , ๊ธฐ์ฌ ์๋ฌธ๊ณผ ๊ธ๋ถ์ ๊ฒฐ๊ณผ, confidence๋ Elasticsearch์ ์ ์ฅํ๋ฉฐ, ํค์๋์ ์ฐ๊ด ํค์๋ ์ง๊ณ ๊ฒฐ๊ณผ๋ PostgreSQL์ ์ ์ฅํฉ๋๋ค. AI ์์ด์ ํธ ์๋ฒ๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ํธ๋ ๋ ๋ถ์๊ณผ ๊ทผ๊ฑฐ ์ค์ฌ ์๋ต์ ์์ฑํฉ๋๋ค.
- API ์์ฒญ (
/agent/query): ์ฌ์ฉ์๊ฐ ์ง๋ฌธ๊ณผ ํจ๊ป ํ์ผ, ํ๋ฅด์๋ ID, ์ฑํ ๋ฐฉ ์ ๋ณด ๋ฑ์ FastAPI ์๋ฒ๋ก ์ ์กํฉ๋๋ค. - ์ปจํ
์คํธ ์ค๋น (
AgentChatService):get_session_history: PostgreSQL์์ ์ด์ ๋ํ ๊ธฐ๋ก์ ๋ถ๋ฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์ ํฉ๋๋ค.get_user_persona: ์ฌ์ฉ์๊ฐ ์ ํํ ํ๋ฅด์๋ ์ ๋ณด๋ฅผ ์กฐํํฉ๋๋ค.extract_text_by_filename: ์ ๋ก๋๋ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ํ ์คํธ๋ฅผ ์ถ์ถํด ํ์ฌ ๋ํ ๋ฌธ๋งฅ์ ๋ฐ์ํฉ๋๋ค.
- ์์ด์ ํธ ์ด๊ธฐํ: ์์คํ
ํ๋กฌํํธ, ๋ฉ๋ชจ๋ฆฌ, 15๊ฐ์ ๋๊ตฌ๋ฅผ ๊ฒฐํฉํ์ฌ
AgentExecutor๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. LLM์ ์ฌ์ฉ์๊ฐ ์ ํํ ๋ชจ๋ธ๋ก ๋์ ์ผ๋ก ์ด๊ธฐํ๋ฉ๋๋ค. - ์์จ์ ๋๊ตฌ ์คํ:
- ์์ด์ ํธ๊ฐ ์ง๋ฌธ์ ๋ถ์ํด ๊ตญ๋ด์ธ ๋ด์ค ๊ฒ์, ํธ๋ ๋ ๋ถ์, ์ปค๋ฎค๋ํฐ ํ์, ๋ ผ๋ฌธ ๊ฒ์, ์ฃผ์ ๋ถ์, ์ด๋ฏธ์ง ์์ฑ ๋ฑ ํ์ํ ๋๊ตฌ๋ฅผ ์ ํํ์ฌ ์คํํฉ๋๋ค.
- ๋๊ตฌ ์คํ ๋ก๊ทธ์ ์ค๊ฐ ์ํ๋ SSE(Server-Sent Events)๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์คํธ๋ฆฌ๋ฐ๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ ์ข
ํฉ ๋ฐ ์ต์ข
์๋ต ์์ฑ:
- ๋๊ตฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํด ์ต์ข ๋ต๋ณ์ ์์ฑํฉ๋๋ค.
- ๋ต๋ณ๊ณผ ํจ๊ป ๊ด๋ จ ๋งํฌ ๋ฐ ์ถ์ฒ ์ ๋ณด๋ ํจ๊ป ์คํธ๋ฆฌ๋ฐ๋ฉ๋๋ค.
- DB ์ ์ฅ: ์๋ต ์์ฑ์ด ์๋ฃ๋๋ฉด ๋ํ ๋ด์ฉ์ PostgreSQL์ ์ ์ฅํ๊ณ , ์ฒซ ์ง๋ฌธ์ธ ๊ฒฝ์ฐ ์ฑํ ๋ฐฉ ์ ๋ชฉ๋ ์๋์ผ๋ก ๊ฐฑ์ ํฉ๋๋ค.
| HTTP Method | ๊ฒฝ๋ก | ์ค๋ช |
|---|---|---|
POST |
/agent/query |
AI ์์ด์ ํธ์๊ฒ ์ง๋ฌธํ๊ณ ์คํธ๋ฆฌ๋ฐ ์๋ต์ ๋ฐ์ต๋๋ค. |
POST |
/team-files |
ํ ํ์ผ์ ์ ๋ก๋ํ๊ณ Milvus์ ๋ฒกํฐ ์๋ฒ ๋ฉ์ ์ ์ฅํฉ๋๋ค. |
DELETE |
/team-files/{team_id}/{file_id} |
ํน์ ํ ํ์ผ๊ณผ ๊ด๋ จ๋ ๋ฒกํฐ ์๋ฒ ๋ฉ์ ์ญ์ ํฉ๋๋ค. |
POST |
/team-file/query |
ํ ํ์ผ ๊ธฐ๋ฐ์ผ๋ก RAG ์ง์์๋ต์ ์ํํฉ๋๋ค. |
main: ์์ ํ๋ ์ต์ข ๋ฒ์ ์ด ๊ด๋ฆฌ๋๋ ๋ธ๋์น์ ๋๋ค. GitHub Actions์ ์ฐ๋๋์ดmain๋ธ๋์น ๋ฐ์ ์ ์๋ ๋ฐฐํฌ๊ฐ ์งํ๋ฉ๋๋ค.develop: ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น์ ๋๋ค. ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉดfeature๋ธ๋์น์์develop์ผ๋ก ๋ณํฉ๋ฉ๋๋ค.feature/*: ์ ๊ท ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ๋ฒ๊ทธ ์์ ์ ์ํ ๋ธ๋์น์ ๋๋ค.develop์์ ๋ถ๊ธฐํ๋ฉฐ, ๊ฐ๋ฐ ์๋ฃ ํ ๋ค์develop์ผ๋ก Pull Request๋ฅผ ๋ณด๋ ๋๋ค.

