ํ๊ตญํ๊ฒฝ๊ณต๋จ ์
์ฐฐ๊ณต๊ณ ๋ฌธ ์๋์์ฑ ์๋น์ค๋ ์
์ฐฐ ๊ด๋ จ ๋ฌธ์๋ฅผ ๋ค๋ฃจ๋ FastAPI ๊ธฐ๋ฐ ํ๋ก์ ํธ์
๋๋ค.
ํ์ฌ ์ ์ฅ์์๋ ๋ฌธ์ ์ถ์ถ, ๊ณต๊ณ ์ ํ ๋ถ๋ฅ, ํ ํ๋ฆฟ ๊ฒ์ฆ, ๋ฌธ์ ์์ฑ, ๋ฌธ์ ๋ณํ ๊ด๋ จ API์ ์๋น์ค ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์
์ฐฐ ๊ณต๊ณ ๋ฌธ ์์ฑ ๊ณผ์ ์๋ ๋ฐ๋ณต์ ์ธ ๋ฌธ์ ํ์ธ๊ณผ ํ
ํ๋ฆฟ ์์ ์์
์ด ํฌํจ๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ๊ทธ ๊ณผ์ ์ค ์ผ๋ถ๋ฅผ AI์ ๊ท์น ๊ธฐ๋ฐ ๋ก์ง์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ๋ก ์์ฑ๋์ด ์์ต๋๋ค.
์ฝ๋์์ผ๋ก๋ ๋ฐ์ฃผ ๋ฌธ์ ํ์ฑ, ์ถ์ถ ๊ฒฐ๊ณผ ๊ตฌ์กฐํ, ๋ถ๋ฅ, ํ ํ๋ฆฟ ๋น๊ต, ์ด์ ์์ฑ ํ๋ฆ์ด ๊ฐ๊ฐ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
- PDF, DOCX, HWP ๋ฌธ์์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๋ฐ๋ณต ์์
- ์ถ์ถ๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ๊ณต๊ณ ์ ํ์ ๋ถ๋ฅํ๋ ์์
- ์ต์ ๊ณต๊ณ ๋ฌธ๊ณผ ๊ธฐ์กด ํ ํ๋ฆฟ์ ์ฐจ์ด๋ฅผ ๋น๊ตํ๋ ์์
- ํ ํ๋ฆฟ๊ณผ ์ถ์ถ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํด ์ด์์ ๋ง๋๋ ์์
- ์์ฑ ๊ฒฐ๊ณผ๋ฅผ PDF, DOCX, HWP๋ก ๋ณํํ๋ ํ์ฒ๋ฆฌ ์์
- ์ ๋ ฅ ๋ฌธ์์์ ํต์ฌ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ค.
- ์ถ์ถ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณต๊ณ ์ ํ์ ๋ถ๋ฅํ๋ค.
- ํ ํ๋ฆฟ ๊ฒ์ฆ๊ณผ ๋ฌธ์ ์์ฑ ํ๋ฆ์ ๊ตฌ์ฑํ๋ค.
- ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ๋ฌธ์ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒฝ๋ก๋ฅผ ๋๋ค.
POST /api/v1/agent/extract- ์ ๋ก๋ ํ์ผ์ ๋ฐ์ ์ถ์ถ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
POST /api/v1/agent/classify- ์ถ์ถ๊ณผ ๋ถ๋ฅ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
POST /api/v1/agent/validate-template- ํ ํ๋ฆฟ ๊ฒ์ฆ ํ๋ฆ์ ์คํํฉ๋๋ค.
POST /api/v1/agent/upload- ์ถ์ถ ๋ฐ์ดํฐ์ ๋ถ๋ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
POST /api/v1/agent/generate- ์ถ์ถ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
POST /api/v1/agent/convert-html- HTML ๋ณํ์ ์ํํฉ๋๋ค.
- ํ
ํ๋ฆฟ ๊ด๋ จ ์๋ํฌ์ธํธ
/api/v1/agent/templates/,/latest,/retrieve,/{template_id}๋ผ์ฐํธ๊ฐ ์์ต๋๋ค.
ํ์ฌ ์ฝ๋ ๊ธฐ์ค ํต์ฌ ํ๋ฆ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๋ฌธ์๋ฅผ ์ ๋ก๋ํด ์ถ์ถ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
- ์ถ์ถ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๋ถ๋ฅ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
- ํ ํ๋ฆฟ ๊ฒ์ฆ ํ๋ฆ์ ๋ณ๋๋ก ์คํํ ์ ์์ต๋๋ค.
- ๋ถ๋ฅ ๊ฒฐ๊ณผ์ ํ ํ๋ฆฟ ID๋ฅผ ์ฌ์ฉํด ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
- HTML ๋๋ ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค.
์ธ์ ์ํ ์กฐํ, ์ฌ์คํ, ํผ๋๋ฐฑ ๋ฐ์์ฉ ์๋ํฌ์ธํธ๋ ๋ณ๋๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.
| ๊ตฌ๋ถ | ์ฌ์ฉ ๊ธฐ์ |
|---|---|
| Backend | FastAPI, Uvicorn |
| Language | Python 3.10 |
| AI Orchestration | CrewAI, crewai-tools |
| LLM ์ฐ๋ | OpenAI, Anthropic, langchain-openai, langchain-anthropic |
| ๋ฐ์ดํฐ ๋ชจ๋ธ | Pydantic, pydantic-settings |
| DB | SQLAlchemy, PostgreSQL |
| ๋ฌธ์ ํ์ฑ | pypdf, pdfplumber, python-docx, olefile, PyMuPDF |
| ๋ฌธ์ ๋ณํ | WeasyPrint, htmldocx, LibreOffice |
| ๋ฐฐํฌ/์คํ | Docker, Docker Compose |
์ฝ๋ ๊ธฐ์ค AI ํ์ฉ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Extractor Agent- ๋ฌธ์์์ ํต์ฌ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
Classifier Agent- ์ถ์ถ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๊ณต๊ณ ์ ํ ๋ถ๋ฅ๋ฅผ ์ํํฉ๋๋ค.
Generator Agent- ํ ํ๋ฆฟ ๊ธฐ๋ฐ ๋ฌธ์ ์์ฑ์ ๋ด๋นํฉ๋๋ค.
Validator Agent- ๊ฒํ ๋ฐ ๋ณด์กฐ ํ๋จ ์ญํ ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
crew_service.py์์๋ ์ถ์ถ, ๋ถ๋ฅ, ์์ฑ, ๊ฒ์ฆ ๋จ๊ณ๋ฅผ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ถ์ถ ๋จ๊ณ์์๋ Claude ๊ธฐ๋ฐ ์ถ์ถ์ ๋จผ์ ์ํํ๊ณ , ๋๋ฝ ํ๋๊ฐ ์์ผ๋ฉด OpenAI ๊ธฐ๋ฐ ์ถ์ถ์ ์ถ๊ฐ๋ก ์ํํ ๋ค ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ๋๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.