0Pricing
AI Agents · 강의

출력 형식 지정(JSON, XML, Markdown)

JSON 모드, XML 태그 또는 엄격한 Markdown을 사용해 모델이 구문 분석 가능한 구조를 반환하도록 하여 출력을 기계가 읽을 수 있게 만들어보세요.

출력 형식 지정(JSON, XML, Markdown)은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

형식이 중요한 이유

에이전트는 모델의 출력을 코드로 전달합니다. 자유 형식의 산문은 파서를 망가뜨립니다. 구조화된 출력(JSON, XML 등)은 모든 프로덕션 에이전트에 필수입니다.

JSON 모드

OpenAI와 대부분의 제공업체는 파싱 가능한 출력을 보장하는 JSON 모드를 제공합니다.

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    response_format={'type': 'json_object'},
)
import json
data = json.loads(response.choices[0].message.content)

구조화된 출력(엄격한 스키마)

OpenAI의 구조화된 출력 기능은 JSON 스키마를 받아 출력이 해당 스키마와 일치하도록 보장합니다.

schema = {
    'name': 'extract_person',
    'schema': {
        'type': 'object',
        'properties': {
            'name': {'type': 'string'},
            'age': {'type': 'integer'}
        },
        'required': ['name', 'age'],
        'additionalProperties': False
    },
    'strict': True
}

response = client.chat.completions.create(
    model='gpt-4o-2024-08-06',
    messages=messages,
    response_format={'type': 'json_schema', 'json_schema': schema}
)

XML 태그(Anthropic 방식)

Anthropic은 Claude에서 가장 신뢰할 수 있는 형식으로 XML 태그를 권장합니다.

system = '''
Return your answer wrapped in XML tags:

<reasoning>Your step-by-step thinking</reasoning>
<answer>The final answer</answer>
'''

# Parse with a simple regex or BeautifulSoup
import re
ans = re.search(r'<answer>(.*?)</answer>', text, re.S).group(1)

사람을 위한 Markdown

출력이 사람에게 직접 전달되는 경우(채팅 UI, 문서)에는 Markdown을 사용하세요.

코드로 전달할 때는 Markdown을 피하세요. Markdown은 안정적으로 파싱하기 어렵습니다.

사용자에 맞는 형식 선택하기

  • JSON — 코드로 전달할 때
  • XML — 코드로 전달할 때, 특히 Claude에서
  • Markdown — 사람이 사용하는 UI로 전달할 때
  • 일반 텍스트 — 다른 LLM으로 전달할 때

말로만 설명하지 말고 보여 주기

프롬프트에는 원하는 출력의 실제 예시를 항상 포함하세요.

system = '''
Return a JSON object like:
{
  "action": "reply",
  "content": "Hi there!",
  "confidence": 0.95
}
'''
print(system.strip())

첫 번째 토큰 강제하기

Anthropic에서는 어시스턴트 응답을 { 또는 [로 미리 채워 JSON 출력을 강제할 수 있습니다.

messages = [
    {'role': 'user', 'content': 'Return JSON with name and age.'},
    {'role': 'assistant', 'content': '{'}
]
# Output will start at '{ "name": ...' guaranteed.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print('Output will start at \'{ "name": ...\' guaranteed.')

뒤에 붙는 불필요한 내용 처리하기

JSON 모드를 사용하더라도 모델이 "네! JSON은 다음과 같습니다:"와 같은 접두사를 추가하는 경우가 있습니다. 견고한 파서는 다음과 같이 처리합니다.

  1. 첫 번째 { 또는 [를 찾습니다
  2. 괄호의 개수를 세어 대응하는 닫는 괄호를 찾습니다
  3. 해당 부분만 파싱합니다

수정 프롬프트

파싱에 실패하면 잘못된 출력을 모델에 다시 보내 수정을 요청하세요.

repair_prompt = f'''
The previous output failed to parse with error: {error}.
Return ONLY a valid JSON object matching the schema. No prose.

Previous output:
{bad_output}
'''

검증에 Pydantic 사용하기

파싱한 딕셔너리를 Pydantic 모델로 검증하세요. 필드의 형식을 확인하고, 누락된 필드가 있으면 오류를 발생시키세요.

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

person = Person.model_validate_json(response_text)
print(person.name, person.age)

코드에 가장 적합한 형식

출력을 Python으로 전달하고 있습니다. 어떤 형식이 가장 신뢰할 수 있을까요?

복습

세 가지 규칙이 있습니다.

  1. 사용자에 맞는 형식을 선택하세요
  2. 단순히 설명하지 말고 예시를 보여 주세요
  3. 모든 응답을 검증하고 수정 경로를 마련하세요

자주 묻는 질문

“출력 형식 지정(JSON, XML, Markdown)” 강의는 무료인가요?

네 — “출력 형식 지정(JSON, XML, Markdown)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“출력 형식 지정(JSON, XML, Markdown)”에서 뭘 배우나요?

JSON 모드, XML 태그 또는 엄격한 Markdown을 사용해 모델이 구문 분석 가능한 구조를 반환하도록 하여 출력을 기계가 읽을 수 있게 만들어보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“출력 형식 지정(JSON, XML, Markdown)” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 제로샷, 퓨샷 및 사고 연쇄
  2. 시스템, 사용자, 어시스턴트 역할 비교
  3. 출력 형식 지정(JSON, XML, Markdown)
  4. 입력에서 프롬프트 주입 방지
← AI Agents(으)로 돌아가기