๐ ๋ฐฐ๊ฒฝ
processing job ๊ฒฐ๊ณผ์ LLM ๊ธฐ๋ฐ ์ถ์ถ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
์ต์ข
์ ์ผ๋ก๋ ์ธ์คํ๊ทธ๋จ ๊ฒ์๊ธ/๋ฆด์ค caption์์ ๊ฐ๊ฒ๋ช
, ์ฃผ์, ๊ทผ๊ฑฐ ๋ฌธ์ฅ, confidence ์ฑ๊ฒฉ์ certainty ๋ฑ์ ์ถ์ถํ๊ณ , ์ดํ HF endpoint ํธ์ถ, fallback ๋ชจ๋ธ, DB ์ ์ฅ, API ์๋ต๊น์ง ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
๊ทธ ์ ์ API ์๋ต ํ๋์ ๋ด๋ถ ๋๋ฉ์ธ ๋ชจ๋ธ, worker ํ์ดํ๋ผ์ธ์ ์ถ์ถ ๋จ๊ณ ์ธํฐํ์ด์ค๋ฅผ ๋จผ์ ์ ๋ฆฌํด ๋์ด์ผ ์ค์ LLM endpoint ์์ด๋ ํ
์คํธ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๊ฐ๋ฐ์ ์ด์ด๊ฐ ์ ์์ต๋๋ค.
๐ฏ ๋ชฉํ
job result ์๋ต์ extraction_result๊ฐ ํฌํจ๋ ์ ์๋๋ก schema์ ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.
worker ํ์ดํ๋ผ์ธ์๋ mock ๊ฐ๋ฅํ extraction client ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํด, ์ค์ HF endpoint ์ฐ๊ฒฐ ์ ์๋ ์ถ์ถ ๋จ๊ณ์ ํ๋ฆ์ ํ
์คํธํ ์ ์๊ฒ ํฉ๋๋ค.
๐ ๏ธ ๊ตฌํ ๋ด์ฉ
- API result ์๋ต schema์
extraction_result ํ๋ ์ถ๊ฐ
- ์ถ์ถ ๊ฒฐ๊ณผ ๋๋ฉ์ธ ๋ชจ๋ธ ์ถ๊ฐ
ExtractionResult
ExtractionCertainty
- LLM ์๋ต ํ์ฑ์ฉ schema ์ถ๊ฐ
- worker processor์ extraction client ์ธํฐํ์ด์ค ์ถ๊ฐ
- caption์ด ์๋ ๊ฒฝ์ฐ extraction client ํธ์ถ
- ์ถ์ถ ์คํจ ์ job ์ ์ฒด ์คํจ๋ก ์ฒ๋ฆฌํ์ง ์๊ณ ๊ธฐ์กด crawl ๊ฒฐ๊ณผ๋ ์ ์ฅ ๊ฐ๋ฅํ๋๋ก ์ฒ๋ฆฌ
- HF extraction client ์ด์ ์ถ๊ฐ
- endpoint URL/token ๊ธฐ๋ฐ ํธ์ถ ๊ตฌ์กฐ
- HF ์๋ต payload์์ generated text ์ถ์ถ
- generated text์์ JSON object ํ์ฑ
- schema validation ํ domain model๋ก ๋ณํ
- ์ค์ ๊ฐ ์ถ๊ฐ
HF_EXTRACTION_ENDPOINT_URL
HF_EXTRACTION_API_TOKEN
HF_EXTRACTION_MODEL_NAME
HF_EXTRACTION_TIMEOUT_SECONDS
HF_EXTRACTION_MAX_NEW_TOKENS
- ๊ด๋ จ ํ
์คํธ ์ถ๊ฐ ๋ฐ ๊ธฐ์กด ํ
์คํธ ์์
- extraction schema validation
- HF extraction client ์๋ต ํ์ฑ
- worker processor๊ฐ caption์ extraction client์ ์ ๋ฌํ๋์ง ๊ฒ์ฆ
- job result response๊ฐ
extraction_result๋ฅผ ํฌํจํ ์ ์๋์ง ๊ฒ์ฆ
โ ๏ธ ๊ณ ๋ ค์ฌํญ
- ์ด๋ฒ ์ด์์์๋ ์ค์ HF endpoint ์ด์ ์ฐ๊ฒฐ์ ์ ์ธํฉ๋๋ค.
- ์ด๋ฒ ์ด์์์๋ DB ์ปฌ๋ผ ์ถ๊ฐ ๋ฐ migration์ ์ ์ธํฉ๋๋ค.
- ์ค์ endpoint ์ฅ์ ๊ฐ job ์ ์ฒด ์คํจ๋ก ๋ฒ์ง์ง ์๋๋ก, extraction ์คํจ ์
extraction_result๋ ๋น์๋๊ณ crawl ๊ฒฐ๊ณผ ์ ์ฅ์ ๊ณ์ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
- ์ธ๋ถ API ํ๋๋ช
์ ํ์ฅ์ฑ์ ๊ณ ๋ คํด
extraction_result๋ก ํต์ผํฉ๋๋ค.
.env๋ ๋ก์ปฌ ๊ฐ๋ฐ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ๋ฉฐ Git์ ํฌํจํ์ง ์์ต๋๋ค.
โ
์๋ฃ ์กฐ๊ฑด
JobResultResponse์์ extraction_result ํ๋๋ฅผ ๋ฐ์ ์ ์๋ค.
- worker processor๊ฐ caption์ extraction client์ ์ ๋ฌํ ์ ์๋ค.
- extraction client๋ mock/fake๋ก ๋์ฒด ๊ฐ๋ฅํด ์ค์ HF endpoint ์์ด ํ
์คํธํ ์ ์๋ค.
- HF extraction client ์ด์์ด generated text/JSON/schema validation ํ๋ฆ์ ์ฒ๋ฆฌํ๋ค.
- ๊ด๋ จ ํ
์คํธ๊ฐ ์ถ๊ฐ๋์ด ์ ์ฒด pytest๊ฐ ํต๊ณผํ๋ค.
ํ
์คํธ ๋ช
๋ น:
.\.venv\Scripts\python.exe -m pytest
๐ ๋ฐฐ๊ฒฝ
processing job ๊ฒฐ๊ณผ์ LLM ๊ธฐ๋ฐ ์ถ์ถ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก๋ ์ธ์คํ๊ทธ๋จ ๊ฒ์๊ธ/๋ฆด์ค caption์์ ๊ฐ๊ฒ๋ช , ์ฃผ์, ๊ทผ๊ฑฐ ๋ฌธ์ฅ, confidence ์ฑ๊ฒฉ์ certainty ๋ฑ์ ์ถ์ถํ๊ณ , ์ดํ HF endpoint ํธ์ถ, fallback ๋ชจ๋ธ, DB ์ ์ฅ, API ์๋ต๊น์ง ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
๊ทธ ์ ์ API ์๋ต ํ๋์ ๋ด๋ถ ๋๋ฉ์ธ ๋ชจ๋ธ, worker ํ์ดํ๋ผ์ธ์ ์ถ์ถ ๋จ๊ณ ์ธํฐํ์ด์ค๋ฅผ ๋จผ์ ์ ๋ฆฌํด ๋์ด์ผ ์ค์ LLM endpoint ์์ด๋ ํ ์คํธ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๊ฐ๋ฐ์ ์ด์ด๊ฐ ์ ์์ต๋๋ค.
๐ฏ ๋ชฉํ
job result ์๋ต์
extraction_result๊ฐ ํฌํจ๋ ์ ์๋๋ก schema์ ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.worker ํ์ดํ๋ผ์ธ์๋ mock ๊ฐ๋ฅํ extraction client ์ธํฐํ์ด์ค๋ฅผ ์ถ๊ฐํด, ์ค์ HF endpoint ์ฐ๊ฒฐ ์ ์๋ ์ถ์ถ ๋จ๊ณ์ ํ๋ฆ์ ํ ์คํธํ ์ ์๊ฒ ํฉ๋๋ค.
๐ ๏ธ ๊ตฌํ ๋ด์ฉ
extraction_resultํ๋ ์ถ๊ฐExtractionResultExtractionCertaintyExtractionLLMResponseHF_EXTRACTION_ENDPOINT_URLHF_EXTRACTION_API_TOKENHF_EXTRACTION_MODEL_NAMEHF_EXTRACTION_TIMEOUT_SECONDSHF_EXTRACTION_MAX_NEW_TOKENSextraction_result๋ฅผ ํฌํจํ ์ ์๋์ง ๊ฒ์ฆextraction_result๋ ๋น์๋๊ณ crawl ๊ฒฐ๊ณผ ์ ์ฅ์ ๊ณ์ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.extraction_result๋ก ํต์ผํฉ๋๋ค..env๋ ๋ก์ปฌ ๊ฐ๋ฐ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ๋ฉฐ Git์ ํฌํจํ์ง ์์ต๋๋ค.โ ์๋ฃ ์กฐ๊ฑด
JobResultResponse์์extraction_resultํ๋๋ฅผ ๋ฐ์ ์ ์๋ค.ํ ์คํธ ๋ช ๋ น:
.\.venv\Scripts\python.exe -m pytest