(langchain-aws) 매우 복잡한 구조화된 출력(structured outputs)을 어떻게 처리하시나요?
(langchain-aws) How do you deal with very complex structured outputs
핵심 요약
AWS Bedrock 환경에서 복잡한 Pydantic 스키마 기반의 구조화된 출력을 생성하는 데 어려움을 겪는 사용자의 고민입니다.
- 구조화된 출력 — 30개 이상의 Pydantic 모델과 복잡한 중첩 객체를 포함하는 데이터 명세 처리
- AWS Bedrock 한계 — JSON Schema 지원 부족 및 모델의 복잡한 구조 처리 능력 저하
- 비용 문제 — AWS 스타트업 크레딧 사용을 위해 OpenAI API 대신 Bedrock 모델 선호
- 성능 요구사항 — 분산 부하 환경에서 40~70초 내외의 응답 속도 유지 필요
여러분, LangGraph 시스템을 구축했습니다. 노드 끝단에 구조화된 출력을 생성하는 합성기(synthesizer) 노드가 있습니다. 문제는 제가 주로 AWS Bedrock을 사용하고 있어서 선택지가 많지 않다는 점입니다.
비용 절감을 위해 중국 모델들을 사용하고 싶었지만, AWS Bedrock에 있는 대부분의 중국 모델은 현재 시점 기준으로 너무 구형입니다. 가장 큰 걸림돌은 대다수가 JSON Schema를 지원하지 않는다는 점이고, 다른 방식인 함수 호출(function calling)을 사용하면 작동하지 않고 유효성 검사 오류가 발생합니다.
참고로 제 스키마는 다음과 같습니다: "출력 계약은 30개 이상의 Pydantic 모델, 7개의 주요 보고서 섹션, 여러 공유 타입 정의, 수십 개의 중첩 객체, 다중 열거형(enum) 타입, 그리고 리스트 제한과 구조적 제약을 강제하는 필드 검증기로 구성되어 있습니다. 이건 단순한 JSON 응답이라기보다 타입이 지정된 문서 명세에 가깝습니다."
그나마 올바른 json_schema를 출력해 주는 모델들은 다음과 같습니다:
- Haiku 4.5 이후의 대부분의 Anthropic 모델
- gpt-oss와 같은 OpenAI 모델들은 JSON Schema로 구조화된 출력을 줄 수 있지만, 아주 복잡한 구조는 힘듦
- MiniMax M2; 하지만 종종 유효성 검사 오류로 끝남 (객체가 너무 많음)
그 외에 OpenAI로 공급자를 전환해서 gpt-5.4-mini 같은 모델을 사용하면, 아주 훌륭하게 작동하고 정확한 출력을 줍니다. 출력 품질 저하도 거의 없으면서 앞서 언급한 모델들보다 훨씬 빠릅니다. 참고로 이건 평가 작업입니다.
그래서 커뮤니티에 질문드립니다. 여러분은 구조화된 출력이 조금 더 복잡해질 때 어떻게 처리하시나요? 이게 AWS Bedrock만의 문제인가요?
P.S. 저는 AWS 스타트업 크레딧을 가지고 있습니다(저희는 여전히 부트스트랩 단계입니다). 그래서 "platform.openai.com"에서 OpenAI 모델을 직접 사용하는 건 비용 부담이 너무 큽니다. 그래서 이 점도 고려 요소입니다.
여기서 구조화된 출력 작업을 해보신 분들의 의견을 기다립니다. 감사합니다.


