그래프 DB(KuzuDB)에 캐릭터·사용자·세계·이벤트·감정·기억 등을 온톨로지 스키마로 저장하고, LLM 대화 중 이 지식 그래프를 조회·갱신하는 캐릭터 챗봇 패키지다. FastAPI 백엔드와 Vue 3/Vite 프론트로 구성되며, 대화 오케스트레이션·정보 추출·SHACL 기반 그래프 편집 검증을 갖췄다. 감정(Ekman 6대·PAD)·성격(Big Five) 모델과 한국어 형태소 분석을 포함하고, 구조는 ROAD 온톨로지에서 영감을 받았다. · 성과: 패키지화 1단계 완료·검증(11개 파일 import 전환 + __init__.py 1개, 잔존 bare 내부 import 0건, compileall exit 0, 전 스모크 통과); 동작 보존 확인(validate.py 결과가 베이스라인과 동일 — Characters 2/Users 1/World·Loc 1·1/Event 1/EmotionalState 1/KNOWS 2); import 성능 측정(engine 0.9s, backend.runtime 0.8s, backend.chatlog 1.5s, ConversationRuntime 인스턴스화 0.0s); SHACL 무결성(shapes.ttl 파싱 OK, 103 트리플); 런타임 이슈 원인 규명(import backend.app 45s+ 행 → google.generativeai 워밍업의 GIL 점유로 국소화, ONTO_SKIP_WARMUP 가드로 회피); 대형 모듈 진단(runtime.py 995줄/chat.py 933줄/extraction.py 683줄 식별 및 분리 계획 수립)
온톨로지KuzuDBSHACL캐릭터 챗봇
Python 3.13FastAPIuvicornPydantic v2KuzuDBOpenAIAnthropicGoogle Generative AIrdflibpyshacl(SHACL)TTLTurtlekiwipiepyVue 3Vite