← 목록
기타 2026-06-28 4KB 읽기 3분

SLM 파이프라인 글루 G2·G3·G4 검증/완성 (2026-06-28)

개요

차세대 크라우니 SLM의 LLM↔크라우니 의미어코드 파이프라인(영혼=크라우니 규칙코어, 육체=LLM 인코더/디코더)의 빠진 글루를 검증·완성했다. 파이프라인 구조:

자연어 → [LLM 인코더] → 의미어패킷(JSON) → [크라우니 규칙코어 디스패처] → 코어패킷 → [LLM 디코더] → 자연어
                          (비결정·정직한정)     (인과100%·결정론 구간)              (비결정·정직한정)

빠진 4글루 G1~G4 중 G2·G3·G4를 컴파일+E2E 실측으로 완성했다.

무엇을 했나

G2 의미어패킷.한선 (단계간 계약 포맷) — 검증

  • 인코더/코어/음경로 패킷 빌더 + 간이 JSON 파서(패킷필드) 컴파일·동작 확인.

G4 크라우니코어_디스패처.한선 — 검증 + 버그수정

  • 4상 라우팅 동작 확인: 티(learn_HIT)·음(감정도메인)·타(위반거부)·옴(MISS).
  • 버그수정 — 인과ID date %3N: macOS BSD date는 GNU 전용 %3N(밀리초) 미지원 →
매 ID에 리터럴 "3N" + 초해상도 충돌. perl Time::HiRes 합성으로 교체 (POSIX::strftime + sprintf 밀리초, q()·단일따옴표만 사용 → 체계() 문자열 안전). → 클린 17자리 밀리초 ID, 충돌 없음.

G3 프로토콜검증.한선 (3단 게이트) — 신규 구현

LLM 인코더 출력이 코어에 들어가기 전 방어 게이트. "어휘=닫힌집합, LLM은 선택만 → 환각 차단"의 집행 지점.
  • 1단 구문(syntax): 필수필드(의미어/원문해시) 누락 → HARD REJECT(타), 코어 미진입.
  • 2단 어휘(vocab): 닫힌집합(의미어_index) 부재 → 음강등(거부 아님, LLM 브릿지). 디스패처 grep이 수행.
  • 3단 타입(type): 품사 ∈ {동작·명사·수식} 아니면 정규화("동작")로 복구.
  • 디스패처 스텝0에 인라인 통합(이중 import 회피).

테스트 + 학습

  • 크라우니코어_디스패처_테스트.한선9/9 PASS(구문위반2·위반거부·음·옴·품사정규화).
  • 전체 E2E(e2e파이프라인.js :9955 폴백모드) POST /pipeline 실동작 201ms, 인과체인 로그가
티/음/타 3경로 클린 ID 실행 증명.
  • 3함수 crownycode 학습(프로토콜검증_구문게이트·품사정규화_닫힌집합·인과ID생성_이식성밀리초).

관련 파일

  • /Users/ef/crowny-butler/libs/크라우니코어_디스패처.한선 (G4, 인과ID 수정 + G3 스텝0 통합)
  • /Users/ef/crowny-butler/libs/의미어패킷.한선 (G2)
  • /Users/ef/crowny-butler/libs/프로토콜검증.한선 (G3 신규)
  • /Users/ef/crowny-butler/libs/크라우니코어_디스패처_테스트.한선 (회귀 9/9)
  • /Users/ef/crowny-butler/e2e파이프라인.js (:9955 E2E 서버, LLM HTTP 전용)

함정 (재발 방지)

  1. tr -d '\012'\012가 한선씨 문자열 이스케이프에 먹혀 개행 아닌 숫자(1,2)를 삭제 → perl 단일 출력으로 회피.
  2. crownycode-learn.sh add intent = 단일토큰만(^[a-zA-Z0-9_가-힣]{3,}$, 공백 불가), 코드 ≥ 50자.
  3. 디스패처 import 시 top-level CLI 블록(입력())이 실행됨 — 테스트/드라이버에서 빈 stdin이면 오류 한 줄 출력(무해).

잔여 이슈

  • G1 임베딩 1603행 로더: 현재 디스패처가 의미어_index.dat를 grep 직조회로 기능 대체 중. 사전 로딩 캐시는 미구현.
  • /demo GET 한글 쿼리 URL 파싱 버그: new URL()이 공백 포함 한글 쿼리에서 실패 → 빈 응답. POST /pipeline은 정상.
  • 어휘 커버리지: 의미어_index 1603행 + 학습DB. 인코더 폴백은 키워드 7종 하드코딩(데모용).