Advanced Structured Output Parser

Advanced Structured Output Parser ๋…ธ๋“œ๋Š” Zod ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LLM์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฐ€ํ•˜๊ฒŒ ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ JSON ํŒŒ์„œ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด, ์—ด๊ฑฐํ˜•(enum), ๋ฌธ์ž์—ด ๊ธธ์ด ์ œํ•œ ๋“ฑ ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Autofix ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ถœ๋ ฅ ์˜ค๋ฅ˜๋„ ๋ณด์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ๋Šฅ

  • Zod ๊ธฐ๋ฐ˜ ์Šคํ‚ค๋งˆ๋ฅผ ํ™œ์šฉํ•ด ๋ณต์žกํ•œ JSON ๊ตฌ์กฐ ์ •์˜

  • ๋ฌธ์ž์—ด ๊ธธ์ด, ์ˆซ์ž ํƒ€์ž…, enum ๋ชฉ๋ก ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์กฐ๊ฑด ์ง€์ • ๊ฐ€๋Šฅ

  • ๋‹ค์ค‘ ํ•ญ๋ชฉ ๋ฐฐ์—ด, ์ค‘์ฒฉ ๊ตฌ์กฐ ๋“ฑ ๊ณ ๊ธ‰ ์ถœ๋ ฅ ํฌ๋งท ์ œ์–ด ์ง€์›

  • Autofix ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์Šคํ‚ค๋งˆ ๋ถˆ์ผ์น˜ ์‹œ ์ž๋™ ์ˆ˜์ • ๊ฐ€๋Šฅ

WindyFlo Advanced Structured Output Parser

์ž…๋ ฅ๊ฐ’ (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