Files
llm_macro/workspace/static/html/schema_file_guide.html
2025-10-30 10:32:31 +09:00

4.5 KiB

<html lang="ko"> <head> <style> body { font-family: 'Arial', sans-serif; margin: 40px; line-height: 1.6; } h1, h2 { color: #2c3e50; } code, pre { background: #f4f4f4; padding: 10px; display: block; white-space: pre-wrap; border-left: 4px solid #3498db; } .warn { color: #c0392b; font-weight: bold; } </style> </head>

🧾 JSON Schema file 작성 가이드

🔹 JSON Schema는 AI 모델이 생성해야 할 응답의 구조를 정의할 때 사용됩니다.
🔹 schema_file을 설정하면 문서에서 추출해야 할 항목과 각 항목의 데이터 형식을 명확하게 지정할 수 있습니다.

📌 사용 되는 API 종류

🔹 /extract/structed


Schema JSON 작성 예시

🔹 [예시] 공문 요약을 위한 JSON Schema 작성 예시입니다:

{
  "title": "DocumentSummary",
  "type": "object",
  "properties": {
    "공문번호": { "type": "string" },
    "공문일자": { "type": "string" },
    "수신체": { "type": "string" },
    "수신자": { "type": "string" },
    "수신자_약자": { "type": "string" },
    "발신체": { "type": "string" },
    "발신자": { "type": "string" },
    "발신자_약자": { "type": "string" },
    "공문제목": { "type": "string" },
    "공문제목요약": { "type": "string" },
    "공문내용요약": { "type": "string" },
    "공문간연계": { "type": "string" },
    "공문종류": {
      "type": "string",
      "enum": ["행정/일반", "기술/성과물", "회의/기타"]
    },
    "공문유형": {
      "type": "string",
      "enum": ["보고", "요청", "지시", "회신", "계약"]
    },
    "첨부문서제목": { "type": "string" },
    "첨부문서수": { "type": "integer" }
  },
  "required": [
    "공문번호", "공문일자", "수신체", "수신자", "수신자_약자",
    "발신체", "발신자", "발신자_약자", "공문제목", "공문제목요약",
    "공문내용요약", "공문종류", "공문유형", "첨부문서제목", "첨부문서수"
  ]
}

📌 주요 키 설명

🔹 위 JSON 예시는 Schema 구조를 정의하는 방식으로 작성되어 있으며, 각 키의 의미는 다음과 같습니다:

  • title: JSON 스키마의 이름 또는 제목을 정의합니다. 일반적으로 문서나 데이터 객체의 이름으로 사용됩니다.
  • type: 이 JSON 전체 구조가 어떤 데이터 형태인지 지정합니다. 예: object, array, string 등.
  • properties: 객체 내부에 포함된 각 항목(필드)을 정의하는 공간입니다. 각 항목에 대해 type이나 enum을 지정할 수 있습니다.
  • required: 필수로 입력되어야 할 항목을 배열 형태로 나열합니다. 이 항목들이 누락되면 JSON 유효성 검사에서 실패하게 됩니다.

📌 필드 속성 설명

🔹 각 항목에 정의되는 typeenum의 의미는 다음과 같습니다:

  • type: 해당 필드의 데이터 유형을 명시합니다. 주요 유형은 다음과 같습니다:
    • string: 문자열 값 (예: "서울특별시")
    • integer: 정수 값 (예: 3, 25)
    • boolean: 참/거짓 논리값 (예: true, false)
  • enum: 해당 항목이 가질 수 있는 값을 제한할 때 사용합니다. 배열로 허용 가능한 값을 정의하며, 그 외 값은 허용되지 않습니다.
    예: "공문종류"는 "행정/일반", "기술/성과물", "회의/기타" 중 하나여야 함

Tip. 프롬프트 작성 시 각 항목에 대한 지시문(description)을 따로 설정하면 AI 응답의 품질이 더욱 향상됩니다.

1. 공문번호: 문서 번호를 기입하세요. (예시: Ref. No. SYJV-250031) 2. 공문일자: 공문 발행일을 작성하세요. (예시: Mar / 28 / 2025) 3. 수신처: 수신 기관이나 부서명을 작성하세요. (예시: Department of Public Works and Highways) ... 16. 첨부문서수: 첨부문서제목을 바탕으로 문서의 개수를 작성하세요. </html>