구조화 데이터(Structured Output)의 의의
AI 모델을 백엔드 파이프라인이나 서비스 코드에 연동할 때 가장 곤란한 순간은 AI가 텍스트 주석이나 마크다운 문구를 섞어서 답할 때입니다.
Gemini 1.5 모델은 response_mime_type="application/json" 옵션과 response_schema를 통해 100% 완벽한 JSON 출력을 보장합니다.
Python JSON Schema 강제 지정 예시
import google.generativeai as genai
from typing_extensions import TypedDict
# 1. 반환 타입 데이터 규격 정의
class MarketingResult(TypedDict):
campaign_title: str
target_audience: str
estimated_roas: float
keywords: list[str]
# 2. JSON Schema 강제 모델 세팅
model = genai.GenerativeModel(
model_name="gemini-1.5-flash",
generation_config={
"response_mime_type": "application/json",
"response_schema": MarketingResult,
}
)
prompt = "신규 모바일 앱 런칭을 위한 마케팅 기획안 구조를 생성해줘."
response = model.generate_content(prompt)
print(response.text) # 100% 검증된 JSON 출력
💡 핵심 Gemini AI 용어 사전 (Glossary)
- Structured Output (구조화 출력): LLM이 자유로운 텍스트 대신 지정된 JSON schema 규격에 맞춰 100% 기계 독해 가능한 데이터로 반환하는 기능.
- JSON Schema: JSON 데이터의 구조, 필수 키, 데이터 타입(String, Number, Array)을 명시하는 가이드라인 표준.
- TypedDict: 파이썬에서 키의 이름과 값의 타입을 명확하게 힌팅하는 딕셔너리 규격 클래스.
Structured Output 체크리스트
- [ ]
generation_config내에response_mime_type="application/json"이 명시되었는가? - [ ] 파이썬 또는 자바스크립트 측에서 타입 검증 예외 처리가 마련되었는가?