vignette/docs/taxonomy.md
2026-07-15 21:31:30 +09:00

18 KiB

발화 라벨 Taxonomy v1.1 — 0615 파란색 라벨 정의서

SoT(라벨 정의). 코드 구현: apps/api/app/taxonomy.py. 예시 데이터: docs/golden_schema.jsonl. 근거: 데이터/README.md(파랑 #3057B9 = 3종 혼재), MASTERPLAN.md §3.1~§3.2(89개·77종, 3축 분리), MEMORY_KNOWLEDGE_PERSONA_DESIGN.md §3.6(kb.chunk.label_id FK). 버전 = 1.1.0 (TAXONOMY_VERSION). 라벨 코드는 불변, 추가는 append-only. v1.1.0(2026-07-15): 연구팀 태깅 축어록 4종(ch2_bps·ch3_gestalt·dbt_video·cbt_video) 정합을 위해 Technique 9종·ClientState 9종을 append-only 추가했다(§3.6, §4.1, §8 버전 이력).

0. 설계 원칙

0615 축어록의 파란색(#3057B9) 주석은 한 셀에 3종이 혼재한다(기법/내담자 상태/슈퍼바이저 논평). 학습 신호 오염을 막기 위해 3개의 독립 축으로 분리한다. 이것이 평가 AI 정답셋과 페르소나 상태전이 정답의 단일 원천이다.

  • 3축 분리: (A) 기법 태그(상담자 발화) · (B) 내담자 상태 태그(내담자 발화) · (C) 슈퍼바이저 논평(둘 다).
  • 위계: 기법은 5개 군집(category) 아래에 둔다 → 분포·과다/과소 집계·리뷰 게이지 축.
  • 복수 부착: 한 발화에 기법·상태·논평이 각각 여러 개 붙을 수 있다.
  • 부착 규칙: 기법은 상담자 발화에만, 상태는 내담자 발화에만(코드에서 강제, Annotation.__post_init__).
  • 원본 미적재: 0615 원문(미성년·자살사고)은 절대 적재하지 않는다. 예시는 합성 변형(source="0615_synthetic").

1. 회기 단계 (Stage)

결정론 상태머신이 소유(LLM 아님). 발화는 발화 시점의 단계를 단일 값으로 기록한다.

code 단계 정의
라포 라포 형성 안전감·관계 구축, 비밀보장 구조화, 비자발성 완화
탐색 탐색 호소문제·정서·인지·위험요인(자살/자해) 탐색
개입 개입 직면·해석·인지재구성·교정적 정서체험
정리 정리 요약·과제·다음 회기 연결·종결

2. 화자 (Speaker)

code 화자 0615 대응
counselor 상담자(수련생/상담사 AI) "상N"
client 내담자(가상내담자 AI) "내N"

3. (A) 기법 라벨 (Technique) — 상담자 발화

각 라벨: 조작적 정의(무엇을 했을 때 부착하는가) + 0615 예시(실제 파랑 라벨에서 정규화).

3.1 RELATIONAL (관계 형성)

code 한글 조작적 정의 0615 표면 라벨 예시
empathy 공감 내담자의 감정·입장을 정확히 알아차리고 그대로 되돌려, "이해받고 있다"를 전달 "공감" / "한숨이 무겁게 느껴지네요"
reflection 반영 내담자 발화·비언어의 핵심(정서/내용)을 거울처럼 재진술 "반영", "정서 반영", "내담자의 반응을 반영함"
validation 타당화 내담자의 감정·반응이 그 상황에서 자연스럽고 정당함을 인정 "타당화", "감정 노출의 타당화"
holding 홀딩 침묵·머뭇거림을 재촉 없이 견디며 안전한 공간을 유지(기다려 줌) "홀딩", "탐색과 홀딩"
self_disclosure 자기공개 상담자 자신의 정보·경험·마음을 라포 목적으로 적절히 개방 "라포형성을 위한 상담자의 자기 개방"
affect_conveyance 정서 전달 내담자를 향한 상담자 자신의 정서·태도를 명시적으로 전달 "상담자의 정서 전달"
humor 유머 무거운 분위기를 가볍게 만들어 참여를 촉진(상황·관계 고려) "유머"

3.2 EXPLORATORY (탐색)

code 한글 조작적 정의 0615 표면 라벨 예시
exploration 탐색 경험·맥락·의미를 더 드러내도록 묻거나 머무름 "탐색", "탐색질문"
facilitative_question 촉진질문 내담자가 더 말하도록 여는 개방형/참여 촉진 질문 "촉진", "참여 촉진 질문"
risk_assessment 위험사정 자살/자해/타해 위험 요인·경험·계획을 직접 탐색 "위험요인 탐색", "자해 위험 및 경험 탐색"
consent_motivation_check 동의·동기 확인 상담 동의·문제의식·변화 동기 수준을 확인 "동의확인, 동기수준 확인"
opinion_check 의견 확인 내담자의 생각·반응·주호소를 되짚어 확인 "내담자 의견 확인", "주호소 문제 재확인"

3.3 INTERVENTION (개입)

code 한글 조작적 정의 0615 표면 라벨 예시
confrontation 직면 내담자 발화·행동의 불일치/모순을 근거와 함께 마주하게 함 "기초자료를 활용하여 반응의 불일치에 직면시킴"
interpretation 해석 표면 너머의 의미·동기·패턴을 가설로 제시 "모순의 의미를 해석함", "비언어적 자극 해석", "행동의 재해석"

3.4 STABILIZING (안정/지지)

code 한글 조작적 정의 0615 표면 라벨 예시
stabilization 안정화 각성·정서를 진정시켜 안전 범위로 되돌림 "안정화"
hope_instillation 희망고취 변화 가능성·욕구를 비추어 희망을 불어넣음 "동기부여, 희망고취", "희망 고취, 욕구 반영"
reinforcement 강화 바람직한 개방·시도를 인정·격려해 지속을 촉진 "강화"
normalization 정상화 반응(감정 노출 등)을 보편적 경험으로 정상화 "감정 반응을 노출하는 것을 정상화함"

3.5 STRUCTURING (구조화)

code 한글 조작적 정의 0615 표면 라벨 예시
principle_explanation 상담원칙 설명 비밀보장·예외 등 상담 원칙·틀을 안내 "상담원칙에 대한 설명", "비밀보장 제외 원칙 설명"
psychoeducation 심리교육 보편적 교범·정보를 주관적 해석과 구별해 전달 "보편적 교범 전달, 주관적 해석과 구별"
homework 과제 부여 회기 간 실천 과제를 이해 가능하게 제시·확인 "다음 회기까지 해 와야 하는 과제 설명"

3.6 v1.1.0 추가 기법 (연구팀 태깅 자료 정합)

연구팀 태깅 축어록 4종에서 관찰됐으나 v1.0 enum에 없던 기법. 군집은 기존 5개 위계에 편입한다. 예시 발화는 모두 합성이며 원문 인용이 아니다. 출처는 어느 태깅 파일 계열에서 유래했는지를 표기한다 (ch2_bps=첫 회기 BPS 워크북, ch3_gestalt=게슈탈트 3회기 도서, dbt_video=자해 DBT 영상, cbt_video=우울 CBT 영상).

code 한글 군집 조작적 정의 예시 발화(합성, 상담자) 출처
clarification 명료화 EXPLORATORY 내담자 말의 뜻이 모호할 때 이해를 정확히 맞추기 위해 되묻거나 확인한다. 반영과 달리 되돌려 주기보다 '무엇을 뜻하는지'를 좁혀 묻는 데 목적이 있다. "방금 '견디기 힘들다'고 하셨는데, 그게 어떤 느낌에 더 가까운지 조금만 더 말해 줄 수 있을까요?" cbt_video, ch3_gestalt
scaling 수치화 질문 EXPLORATORY 감정·증상의 강도를 숫자 척도로 표현하게 해 상태와 변화를 가늠한다. 막연한 정서를 비교 가능한 수치로 옮겨 개입 전후를 확인하는 CBT 기법이다. "지금 그 불안이 0에서 10 중에 어느 정도인지 숫자로 말해 볼 수 있을까요?" cbt_video
chain_analysis 체인분석 EXPLORATORY 문제행동에 이르기까지의 촉발사건·감정·생각·행동을 사슬로 잘게 되짚어 개입 지점을 찾는다. 행동을 평가하지 않고 순서를 구체적으로 복원하는 것이 핵심이다. "그 충동이 올라오기 직전에 어떤 일이 있었고, 그때 무슨 감정이 먼저 지나갔는지 순서대로 같이 짚어 볼까요?" dbt_video
cognitive_restructuring 인지재구성 INTERVENTION 이분법·파국화·독심술 같은 인지 왜곡을 확인하고, 연속선 사고·핵심신념 검토를 통해 사고를 재구성한다. cbt 파일 55건의 최대 공백이던 핵심 개입이다. "'완벽하지 않으면 실패'라고 느껴진다고 하셨는데, 그 사이에 여러 단계가 있다면 오늘 일은 어디쯤 놓일까요?" cbt_video
behavioral_alternative 대안행동 탐색 INTERVENTION 부적응 행동 대신 시도해 볼 대안행동을 함께 탐색하고 실행을 계획한다. 지적이 아니라 선택지를 넓히는 방향으로 진행한다. "그 상황이 또 오면, 참는 것 말고 해 볼 수 있는 다른 행동으로 뭐가 있을지 같이 찾아볼까요?" cbt_video
commitment_strategy 전념 전략 INTERVENTION 변화 목표에 스스로 전념하도록 이끌고(악마의 옹호자 등), 실행을 막을 방해물을 미리 예상해 대처를 정한다. "이걸 해 보기로 마음먹었다면, 한 주 안에 그걸 가로막을 만한 게 뭘지 미리 같이 생각해 둘까요?" dbt_video
here_and_now_focus 지금-여기 초점화 INTERVENTION 과거 사실 캐내기보다 지금-여기에서 일어나는 알아차림·정서·신체 감각에 초점을 맞춘다(게슈탈트 현전·트래킹). "지금 그 말을 하면서 몸에서 뭐가 느껴지는지, 이 순간에 잠시 머물러 볼까요?" ch3_gestalt
restatement 재진술 RELATIONAL 내담자 발화의 내용을 압축해 되돌려 주고 이해가 맞는지 확인을 기다린다. 정서 중심의 반영과 구분해 '내용 확인'으로 태깅한다. "그러니까 학회 준비로 집을 자주 비우게 되면서, 혼자 감당한다는 느낌이 커졌다는 말씀이시죠?" cbt_video
skills_coaching 기술 코칭 STABILIZING 위기·고통 순간에 지금 쓸 수 있는 대처 기술을 하나 골라 단계적으로 실행하도록 짧게 안내한다(고통감내·위기전화 코칭). "지금 그 파도가 지나갈 때까지, 우선 찬물에 손을 담그는 것부터 같이 해 볼까요?" dbt_video

4. (B) 내담자 상태 태그 (ClientState) — 내담자 발화/비언어

페르소나 저항 엔진의 상태전이 정답 + 평가 AI '반응 읽기' 채점 근거.

code 한글 조작적 정의 0615 표면 라벨 예시
involuntary 비자발적 태도 단답·회피·거부 등 상담에 비자발적 신호 "(아니오)는 비자발적 태도", "(쓴웃음)은 비자발적 태도"
defensive 방어 주제 회피·차단·거리두기 "방어", "부모자녀 관계에 대한 방어적 태도"
suicidal_ideation_admit 자살사고 인정 자살/죽음 생각을 직간접 인정(★안전 핵심) "자살사고 인정"
negative_self_perception 부정적 자기인식 자기에 대한 부정·평가절하 표현 "부정적 자기인식"
conflicted 갈등 상태 양가·상충하는 욕구/감정 사이의 갈등 "갈등 상태"
lack_of_confidence 확신 부족 자신감/확신의 결여 표현 "확신의 부족"
affect_contact 정서 접촉/표현 자기 감정에 접촉하고 표현하기 시작 "정서와 접촉함", "정서와 사고의 표현"
thought_organizing 생각 정리 침묵 속에서 자기 생각을 정리 중 "생각을 정리함"
responds_to_exploration 탐색에 반응 상담자 탐색에 응답·협조 "상담자의 탐색에 반응함"
expresses_plan 계획/욕구 표현 자기 계획·욕구·바람을 표현 "자신의 계획을 표현함"
defense_loosening 방어 완화 누적된 반영/탐색으로 방어가 서서히 풀림(진전 신호) "방어가 서서히 풀어지고 있음"

4.1 v1.1.0 추가 상태 (연구팀 태깅 자료 정합)

예시 발화는 모두 합성이며 원문 인용이 아니다. 출처 표기는 §3.6과 동일하다 (ch2_bps / ch3_gestalt / dbt_video / cbt_video).

code 한글 조작적 정의 예시 발화(합성, 내담자) 출처
compliant_surface 표면 순응 겉으로는 상담자 말에 동의·수긍하지만 내면의 변화나 진짜 이해가 따르지 않는 상태. 빠른 동의를 진전으로 오해하지 않도록 구분한다. "네, 맞아요. 선생님 말씀이 다 맞죠. 그렇게 해야죠." (별다른 정서 없이) ch2_bps
externalizing 문제 외재화 문제의 원인·책임을 자신이 아닌 타인·상황에 돌려 자기 몫을 보지 않는 상태. "저는 문제없어요. 애가 학교만 제대로 가면 다 괜찮아질 거예요." ch2_bps, cbt_video
seeks_guidance 지시 요청 스스로 탐색하기보다 상담자의 판단·지시·정답을 직접 요구하는 상태. "그래서 제가 어떻게 하면 되는 거예요? 그냥 답을 좀 알려 주세요." cbt_video
apparent_competence 겉보기 유능함 회기 안에서는 유능하고 안정돼 보이지만 실제 위기 상황에서는 대처가 무너지는 괴리 상태. "저 괜찮아요. 회사에서도 다들 일 잘한다고 하고, 잘 지내고 있어요." (위기 직후임에도) dbt_video
active_passivity 적극적 수동성 스스로 문제를 해결하지 못하고 그 해결을 적극적으로 타인에게 넘기거나 무력하게 기다리는 상태. "저는 못 해요. 선생님이 대신 좀 해 주시면 안 돼요? 저 혼자서는 아무것도 안 돼요." dbt_video
self_harm_disclosure 자해 보고 자해 행동·충동을 보고하는 상태로, 자살사고 인정(suicidal_ideation_admit)과 구분해 사정한다. 방법·도구 묘사는 담지 않는다(★안전 핵심). "요즘 너무 힘들면… 저도 모르게 제 몸을 상하게 하게 돼요." dbt_video
somatic_complaint 신체증상 호소 감정을 직접 말하기 어려워 답답함·숨막힘·두근거림 같은 신체 감각으로 고통을 호소하는 상태. "그냥 가슴이 답답하고 숨이 안 쉬어져요. 자다가도 심장이 두근거려서 깨요." ch2_bps
affect_masking 감정 가림 무거운 내용을 웃음·무덤덤한 태도로 덮어 정서 표현을 가리는 상태. "뭐 별거 아니에요. (웃으며) 그냥 늘 있는 일인데요, 괜찮아요." ch3_gestalt
focus_drift_fusion 초점 이탈/융합 자기 이야기를 하다 자녀·타인 이야기로 초점이 흩어지며 자기와 타인의 경계가 흐려지는(융합) 상태. "제 얘기요? 아… 그게, 우리 애가요, 걔가 요즘 학교를 안 가서…" ch2_bps, ch3_gestalt

5. (C) 슈퍼바이저 논평 (SupervisorComment)

2종으로 분리한다. critique 는 intent_deviation(의도 vs 실제)을 구조화한다(윤찬: 1급 시민).

kind 정의 0615 예시
rationale 왜 이 반응이 적절한가 — 근거·의도 설명 "비자발적 내담자의 초기 상담에서는 상담자의 적극적인 안내가 필요함"
critique 개선점·주의 — 과도/부족/평가적 시각 등 "과도한 자기개방일 수 있음", "비언어적 반응의 반영이 더 되었으면 좋았을 것임", "평가적인 시각을 줄 수 있음"

critique 선택 필드: dimension(평가 차원) · expected(권장 의도) · actual(실제) · severity(minor/moderate/major) · author(ai/supervisor).

6. 발화 Annotation 스키마 (golden 단위)

docs/golden_schema.jsonl 한 줄 = Annotation 하나. README JSONL 스키마를 3축 분리로 격상.

{
  "utterance_id": "0615-C-001",   // 화자(C=상담자/K=내담자)+seq 인코딩
  "speaker": "counselor",          // counselor | client
  "stage": "라포",                  // 라포 | 탐색 | 개입 | 정리
  "seq": 0,                         // 회기 내 발화 순서(0-based)
  "text": "…",                      // 발화 텍스트(합성 변형, 원문 미적재)
  "techniques": ["self_disclosure"],        // (A) 상담자 발화만
  "client_states": [],                      // (B) 내담자 발화만
  "comments": [{"kind": "rationale", "text": "…", "author": "ai"}],  // (C)
  "nonverbal": ["(쓴웃음)"],         // 비언어 단서 원문 표기(상태판정 보조)
  "source": "0615_synthetic"        // provenance
}

7. DB 코드테이블 동기화

MASTERPLAN.md §3.2 코드테이블에 enum value(code)를 적재, 다대다 연결.

taxonomy 축 DB 코드테이블 다대다 연결 label_id 참조
Technique technique_label_def(code, category, ko) turn_technique(turn_id, label_id) kb.chunk.label_id
ClientState client_state_def(code, ko) turn_client_state(turn_id, label_id)
Stage stage_def(code) turns.stage
SupervisorComment supervisor_comment(turn_id, kind, text, intent_deviation JSONB) (1:N)

라벨 추가 시: enum 에 append → technique_label_def seed → TAXONOMY_VERSION minor++. 기존 code 변경 금지(골든셋 재현성).

8. 버전 이력

버전 날짜 변경
1.0.0 초기 0615 파란색 라벨 정규화 — Technique 21종·ClientState 11종·Stage 4·CommentKind 2.
1.1.0 2026-07-15 연구팀 태깅 축어록 4종(ch2_bps·ch3_gestalt·dbt_video·cbt_video) 정합. Technique 9종(clarification, scaling, chain_analysis, cognitive_restructuring, behavioral_alternative, commitment_strategy, here_and_now_focus, restatement, skills_coaching)·ClientState 9종(compliant_surface, externalizing, seeks_guidance, apparent_competence, active_passivity, self_harm_disclosure, somatic_complaint, affect_masking, focus_drift_fusion) append-only 추가(§3.6·§4.1). 기존 code 불변.