# Structured Output Parser

Structured Output Parser 노드는 LLM의 응답을 사용자가 정의한 JSON 구조에 맞춰 자동 파싱하는 출력 파서입니다. 사전 정의된 스키마에 따라 일관된 출력 구조를 확보할 수 있으며, 형식 오류 시에는 자동 수정 기능도 제공합니다.

***

### 주요 기능

* 응답을 미리 지정한 JSON 스키마에 따라 구조화
* `Property`, `Type`, `Description` 기반으로 명확한 출력 포맷 제어
* `Autofix` 기능을 통해 형식 오류 발생 시 모델을 재호출하여 수정 가능
* 후속 파이프라인 연결 시 데이터 정합성 확보에 유리

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-df146734b1506aae7d19f326480887174daea3c6%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-19%20181335.png?alt=media" alt=""><figcaption><p>WindyFlo Structured Output Parser</p></figcaption></figure>

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-ee59988bbd894bc30b1669d3c1174fb3019ba69a%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202025-05-19%20181344.png?alt=media" alt=""><figcaption><p>WindyFlo Structured Output Parser Parameters</p></figcaption></figure>

### 입력값 (Inputs)

| 항목      | 설명                                                 | 필수 여부 |
| ------- | -------------------------------------------------- | ----- |
| Autofix | 첫 호출 결과가 JSON 구조와 일치하지 않을 경우, 모델을 한 번 더 호출해 오류를 수정 | 선택    |

***

### 파라미터 (Parameters)

| 항목             | 설명                                                                                                       |
| -------------- | -------------------------------------------------------------------------------------------------------- |
| JSON Structure | <p>파싱 결과가 따라야 할 JSON 스키마 (속성명, 타입, 설명 포함)<br>예: <code>answer</code>, <code>source</code> 등의 필드 정의 가능</p> |

***

### 출력값 (Outputs)

| 출력 항목                  | 설명                         |
| ---------------------- | -------------------------- |
| StructuredOutputParser | 정의된 스키마에 맞춰 파싱된 JSON 객체 반환 |

***

### 활용 예시

* RAG 응답 결과를 `answer`, `source`, `confidence` 등으로 정리하여 출력
* 다양한 질문 유형에 대해 구조화된 응답 형식 확보 (예: {"question": ..., "answer": ...})
* 문서 요약, 정책 분류, 상품 정보 추출 등에서 정형 데이터 추출 처리
* 후속 파이프라인에서 조건 분기, 저장, 시각화 등에 활용할 수 있는 구조화된 데이터 생성

***

### 사용 팁

* 프롬프트에 JSON 형식을 예시로 명확히 지정하면 정확한 파싱 결과를 얻을 수 있습니다.
* 속성 설명은 간단하고 명확하게 작성할수록 LLM이 정확히 따를 가능성이 높습니다.
* `Autofix`는 출력 구조가 불안정하거나 잘못된 JSON 포맷이 자주 발생하는 경우 유용합니다.
* JSON Structure에서 필드 순서는 출력에도 영향을 줄 수 있으므로 설계 단계에서 일관성 유지가 중요합니다.

***

### 주의사항

* Autofix를 활성화할 경우, 모델을 재호출하게 되어 추가 비용이 발생할 수 있습니다.
* JSON 구조가 지나치게 복잡하거나 중첩된 경우 파싱 실패 확률이 증가합니다.
* 필드 이름과 설명이 일관되지 않으면 잘못된 JSON이 출력될 수 있습니다.
* 출력 구조에 맞지 않는 응답이 반복되면 파싱 실패 또는 무시될 수 있습니다.
