본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 26. 17:38

문의 본문을 AI로 분류할 때의 JSON 스키마 설계

요약

AI를 활용한 문의 분류 시스템 설계 시 프롬프트보다 JSON 스키마를 통한 구조화된 출력(Structured Output)이 중요함을 강조합니다. 데이터의 재사용성과 업무 시스템 연동을 위해 카테고리, 우선순위, 담당자 등을 분리하여 설계해야 합니다.

핵심 포인트

  • 프롬프트보다 JSON 스키마 설계를 우선하여 출력의 일관성 확보
  • 자유 텍스트 외에 주변 컨텍스트(메타데이터)를 함께 제공하여 정확도 향상
  • 분류 결과를 단일 텍스트가 아닌 개별 필드로 분리하여 시스템 재사용성 극대화
  • AI의 확신도(Confidence)를 자동 승인 기준으로 삼지 말고 리뷰 기준으로 활용
  • AI 초안(reply_draft)과 최종 발송(reply_final) 상태를 분리하여 관리

문의 본문을 AI로 분류할 때, 가장 먼저 만들어야 할 것은 프롬프트 (Prompt)가 아니라 JSON 스키마 (JSON Schema)입니다.

프롬프트만으로 시작하면 출력이 매번 조금씩 달라집니다.

카테고리만 반환됨
우선순위가 문장으로 반환됨
담당자 후보와 부서명이 섞임
...

이렇게 되면 AI 분류는 편리할지 몰라도 업무 시스템으로 되돌리기가 어려워집니다.

문의 대응에서는 AI에게 "정답을 결정하게 하는" 것보다, 다음 확인을 빠르게 하기 위한 구조화된 출력 (Structured Output)을 만드는 것이 다루기 쉽습니다.

문의 분류에서는 자유 기술(Free text)만 AI에게 전달하면 문맥이 부족합니다.

폼이나 접수 화면에서 수집할 수 있는 항목이 있다면, 본문과 함께 전달합니다.

{
"submitted_at": "2026-06-23T10:15:00+09:00",
"inquiry_type_hint": "요금에 대하여",
...

message만으로는 "요금 상담"이지만, planned_start가 있으면 우선순위 후보도 내기 쉬워집니다.

AI 분류는 본문만으로 하는 자연어 처리 (NLP)가 아니라, 주변 항목을 포함한 업무 판단의 보조로서 설계합니다.

최소 구성이라면 이 정도로 시작할 수 있습니다.

{
"summary": "요금 플랜 및 이번 달 내 도입 가능 여부에 관한 상담",
"category": "pricing",
...

중요한 것은 분류 결과를 하나의 텍스트로 만들지 않는 것입니다.

category, priority, owner_candidate, reply_draft, human_check_required를 분리합니다.

분리해 두면 화면, 알림, 집계, 담당자 확인에서 재사용할 수 있습니다.

구현 시에는 AI에게 자유 형식으로 반환하게 하지 않고, 허용하는 값을 결정합니다.

{
"type": "object",
"required": [
...

카테고리 명칭은 자사의 대응 단위에 맞춥니다.

중요한 것은 카테고리를 너무 세분화하지 않는 것입니다.

처음부터 20개의 카테고리를 만드는 것보다, 담당자나 다음 액션이 바뀌는 단위로 좁히는 것이 운용하기 좋습니다.

confidence는 편리하지만, 승인은 아닙니다.

confidence 가 0.9 이상이면 자동 회신한다

이러한 규칙은 피하는 것이 좋습니다.

문의에는 계약, 환불, 채용, 개인정보, 장애, 클레임이 섞여 있습니다.

AI가 높은 확신(Confidence)을 보이더라도, 외부로 전송해도 좋다는 허가는 아닙니다.

confidence는 리뷰 순서나 재확인의 기준으로 사용합니다.

confidence < 0.6 -> 확인 필요
priority = urgent -> 확인 필요
category = bug -> 확인 필요
...

판단의 확정은 별도의 상태로 둡니다.

ai_classification_status = done
human_review_status = unreviewed

AI에게 회신문을 작성하게 하는 것은 편리합니다.

단, 회신 초안과 실제 전송은 별개입니다.

reply_draft
reply_final
reply_sent_at
...

AI의 초안은 reply_draft에 넣습니다.

사람이 확인하고 수정한 것을 reply_final에 넣습니다.

전송했을 때만 reply_sent_at을 넣습니다.

이렇게 하면 AI가 만든 것뿐인지, 실제로 보낸 것인지 알 수 있습니다.

프롬프트는 너무 길게 만들지 말고, 출력 형식을 지키는 것에 집중합니다.

당신은 문의 대응의 1차 분류 담당자입니다.
다음 문의를 읽고, 지정된 JSON Schema와 일치하는 JSON만 반환해 주세요.
목적:
...

AI에게 기대하는 것은 대응의 확정이 아닙니다.

확인 전의 재료를 갖추는 것입니다.

[ ] 본문뿐만 아니라 주변 항목도 입력에 포함했다
[ ] category / priority / owner_candidate 를 분리했다
[ ] sales_or_legitimate 를 카테고리에서 분리했다
...

문의 AI 분류는 AI에게 맡길수록 좋은 것은 아닙니다.

AI가 후보를 제시하고, 사람이 확인하며, 상태로 남는 부분까지 설계하면 문의 대응 운용에 적용하기 쉬워집니다.

문의 대응 AI와 전송 후 워크플로우 (Workflow) 설계는 이곳에 정리되어 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0