finance.crowny.org 셀코어 대화엔진
개요
크라우니파이낸스 한선씨 백엔드(src/크라우니파이낸스.한선, :9750)에 셀코어 상태기계+룰엔진+오케+셀슬롯 기반 8단계 고객여정 대화엔진 추가. 기존 접수/추적/메일 API 전부 보존.
무엇을 했는지
- 세션 1개 = 셀코어 셀 1개. 전역 세션DB/토큰맵/감사/오케 추가.
- 8단계 상태기계(greet→need→recommend→collect→received→track→upsell→referral→sharing). 조건슬롯=13(단계코드). 전이 그래프로 ad-hoc 단계 if-else 제거.
- 추천/업셀=오케결정(룰 4개: 렌탈→집사31, 솔루션→네트워크40, 집사→자산45, 하드웨어→관제20). 결정론적, 외부 LLM 불필요.
- 자유입력→키워드 룰로 소스/니즈 분류. 턴마다 증거넣기로 인식 승격.
- 접수는 received 단계 도달 시 기존 접수등록() 재사용(중복 구현 없음). 진행추적은 기존 추적JSON() 재사용.
- 소개(referral): 멱등 코드발급 CRF-base36(id), 맘/포네 양면보상 슬롯. 주주공유: 누적접수+10개 관계서비스+생태계 진입점.
셀 슬롯 매핑 (셀코어 27슬롯 0-5/6-12 예약 회피 — 13~26 사용)
13단계코드 14소스 15카테고리 16니즈 17이름 18연락처 19이메일 20메모 21접수번호 22진행단계 23업셀수락 24소개여부 25업셀상품코드 26입력버퍼
신규 라우트
- POST /api/chat/start {subject} → 새 세션 셀 + greet
- POST /api/chat {session, choice|message} → 상태기계 1틱, {session,stageCode,stage,bot,choices[],card?}
- GET /api/referral/:code, POST /api/referral {customerId,name,phone}
- GET /api/shareholder
관련 파일
- /Users/ef/crowny-finance/src/크라우니파이낸스.한선 (메인, 컴파일 2,785,524 bytes)
- libs 셀코어.한선 (상태기계/룰/오케 API)
함정/해결
- 슬롯 0-5는 셀코어 예약(주어/유형/목적/인식/신뢰/증거수). 처음 슬롯 1-14 사용 시 증거넣기가 슬롯5(증거수) 증가로 이름 오염("김철수11"). → 전 슬롯 13-26으로 remap.
- 슬롯 인덱스 27+ 배열범위초과(셀=27슬롯). 업셀상품코드 31→25.
- 예약어 선택 → 칩값으로 변경.
- 균형3진 자연반올림 회피: base36에 바닥나누기() 사용.
잔여 이슈
- 프로덕션 :9750은 기존 세션이 점유 중(PID 32729). 재시작 필요(게이트웨이 세션 담당).
- 세션 셀은 메모리 only(영속화 미적용). 서버 재시작 시 진행 중 대화 소실(접수는 receipts.dat 영속).