Advanced Structured Output Parser
Advanced Structured Output Parser ๋
ธ๋๋ Zod ์คํค๋ง๋ฅผ ์ฌ์ฉํ์ฌ LLM์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฐํ๊ฒ ๊ตฌ์กฐํํ ์ ์๋ ๊ณ ๊ธ JSON ํ์์
๋๋ค. ๋ฐฐ์ด, ์ด๊ฑฐํ(enum), ๋ฌธ์์ด ๊ธธ์ด ์ ํ ๋ฑ ๋ณต์กํ ์กฐ๊ฑด์ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, Autofix ๊ธฐ๋ฅ์ ํตํด ์ถ๋ ฅ ์ค๋ฅ๋ ๋ณด์ ํ ์ ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
Zod ๊ธฐ๋ฐ ์คํค๋ง๋ฅผ ํ์ฉํด ๋ณต์กํ JSON ๊ตฌ์กฐ ์ ์
๋ฌธ์์ด ๊ธธ์ด, ์ซ์ ํ์ , enum ๋ชฉ๋ก ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ์กฐ๊ฑด ์ง์ ๊ฐ๋ฅ
๋ค์ค ํญ๋ชฉ ๋ฐฐ์ด, ์ค์ฒฉ ๊ตฌ์กฐ ๋ฑ ๊ณ ๊ธ ์ถ๋ ฅ ํฌ๋งท ์ ์ด ์ง์
Autofix๊ธฐ๋ฅ์ ํตํด ์คํค๋ง ๋ถ์ผ์น ์ ์๋ ์์ ๊ฐ๋ฅ

์
๋ ฅ๊ฐ (Inputs)
Autofix
๋ชจ๋ธ ์ถ๋ ฅ์ด ์คํค๋ง ์กฐ๊ฑด๊ณผ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ, ํ ๋ฒ ๋ ๋ชจ๋ธ์ ํธ์ถํ์ฌ ์ค๋ฅ๋ฅผ ๋ณด์
์ ํ
Example JSON
์ถ๋ ฅ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ Zod ์คํค๋ง ํ์์ ์์ ์
๋ ฅ
์: z.object({ title: z.string(), ... })
ํ์
์ถ๋ ฅ๊ฐ (Outputs)
AdvancedStructuredOutputParser
์ ์๋ Zod ์คํค๋ง์ ๋ฐ๋ผ ํ์ฑ๋ JSON ๊ฐ์ฒด ๋ฐํ
ํ์ฉ ์์
์ํ ์ ๋ณด, ์ ํ ์คํ, ์ ์ฑ ํญ๋ชฉ ๋ฑ ๋ณต์กํ ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ์ฌ ์๋ต ๋ฐ์ ๋
๋ฌธ์์ด ์กฐ๊ฑด(
max(500)), ์ซ์(.int()), enum ๋ฐฐ์ด ๋ฑ ์ ๋ฐ ์ ์ด๊ฐ ํ์ํ ๊ฒฝ์ฐLLM์ด ์์ฑํ๋ ๊ฒฐ๊ณผ๋ฅผ ํน์ ํ์(JSON ์คํ)์ ๋ง์ถฐ ํ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ ์ฅํ๋ ๊ฒฝ์ฐ
JSON ์กฐ๊ฑด์ ์๊ฒฉํ๊ฒ ๋ง์ถฐ์ผ ํ๋ API ์ฐ๋, ์๋ ๋ณด๊ณ ์ ์์ฑ ๋ฑ์ ํ์ฉ ๊ฐ๋ฅ
์ฌ์ฉ ํ
Zod ์คํค๋ง๋
z.object({...})๊ตฌ์กฐ๋ก ์์ฑํ๋ฉฐ,string(),number(),enum([...]),array()๋ฑ ๋ค์ํ ์ ์ฝ์ ์ง์ ํ ์ ์์ต๋๋ค.Autofix์ต์ ์ ์คํค๋ง ๋ถ์ผ์น ์ ๋ชจ๋ธ์ ์ฌํธ์ถํ์ฌ ํฌ๋งท ์ค๋ฅ๋ฅผ ์๋์ผ๋ก ์์ ํฉ๋๋ค. ๋จ, ํ ํฐ์ด ์ถ๊ฐ ์๋ชจ๋ฉ๋๋ค.์์:
๊ตฌ์กฐ๊ฐ ๋๋ฌด ๋ณต์กํ๊ฑฐ๋ ์ค์ฒฉ์ด ๋ง์ ๊ฒฝ์ฐ, ๋ชจ๋ธ ์ถ๋ ฅ ์ ํ๋๊ฐ ๋ฎ์์ง ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฅํ ํ ๋จ์ํ ๊ตฌ์กฐ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
์ฃผ์์ฌํญ
์คํค๋ง ๊ตฌ์กฐ์ LLM ์ถ๋ ฅ์ด ์ผ์นํ์ง ์์ผ๋ฉด ํ์ฑ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, Autofix ์์ด ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋น ๊ฒฐ๊ณผ๋ ๋ฌด์๋ฉ๋๋ค.
enumํญ๋ชฉ์ ์ฌ์ ์ ์ ์ํ ๊ฐ ์ด์ธ์ ๋ฌธ์์ด์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก, ํ๋กฌํํธ์์ ๋ช ํํ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.์ถ๋ ฅ๊ฐ์ด ๋ฐฐ์ด์ผ ๊ฒฝ์ฐ
.array()์ค์ ์ ๋ฐ๋์ ํฌํจํด์ผ ํฉ๋๋ค.Autofix์ฌ์ฉ ์ ๋น์ฉ์ด 2๋ฐฐ๋ก ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ์ธ์.
Last updated