m97j/symbolic-processor
0
⚙️ Symbolic Processor (symbolic/)
역할 & 데이터 흐름
- 게임 서버 요청 수신(`app.py`)
- 최소 입력만 와도 동작:
{ text, npc_id, player_id, ... } - 옵션: 상태/컨텍스트 부족 시
rag/docs/npc_config.json등에서 NPC 메타를 조회해 보강
- 전처리·프롬프트 구성(`pipeline/preprocess.py`, `utils/context_parser.py`, `manager/prompt_builder.py`)
- 태그/컨텍스트/플레이어 발화를 묶어
<SYS>,<CTX>,<PLAYER>,<NPC>포맷으로 구성
- 추론 요청(`utils/hf_client.py`, `models/fallback_model.py`, `pipeline/generator.py`)
- 조건 불충족 input →
fallback_model.py에서 대체 응답 생성 - 조건 충족 input →
generator.py에서 payload 구성 후 HF Space/predict_mainPOST
- 후처리(`pipeline/postprocess.py`)
- 모델 응답에서 대사 텍스트, delta, flag를 파싱·정규화
- flags → 시그모이드+threshold, delta → 범위 클램프·라운딩
- 게임 서버 응답(`schemas.py`)
- 표준 JSON으로 반환
{
"text": "NPC의 대답...",
"delta": {"trust": 0.10, "relationship": 0.08},
"flags": {"give_item": true, "npc_main_story": false},
"meta": {"npc_id": "mother_abandoned_factory"}
}📁 디렉토리 구조
symbolic/
├── app.py # FastAPI 엔트리포인트
├── config.py # 서버 설정 및 모델 경로 관리
├── schemas.py # 요청/응답 데이터 구조 정의
├── requirements.txt # 의존성 패키지 목록
├── pipeline/ # 대화 흐름 처리 모듈
│ ├── preprocess.py # 입력 전처리 및 프롬프트 구성
│ ├── postprocess.py # 모델 출력 후처리
│ └── generator.py # 모델 추론 요청 처리
├── rag/ # RAG 기반 flag 해석 모듈
│ ├── rag_manager.py
│ └── docs/npc_config.json
├── utils/ # 유틸리티 모듈
│ ├── hf_client.py # HF API 통신
│ └── context_parser.py # 대화 맥락 파싱
├── models/ # 모델 로딩 및 fallback 처리
│ ├── emotion_model.py # emotion model을 이용한 inference 진행
│ ├── fallback_model.py # fallback model을 이용한 inference 진행
│ └── model_loader.py
└── manager/
├── agent_manager.py
├── dialogue_manager.py # 전체 pipeline 모듈 관리
└── prompt_builder.py🧩 최신 RAG 타입별 매핑 (11종)
📌 데이터 흐름 요약
- preprocess_input()
- trigger_def → 메인 조건 판정
- forbiddentriggerlist + trigger_meta → 특수 fallback 감지
- fallback → 일반 fallback 스타일
- build_main_prompt()
- lore + description + npc_persona → 메인 prompt 컨텍스트 구성
- build_fallback_prompt()
- fallbackstyle + triggermeta → fallback prompt 구성
- postprocess_pipeline()
- flag_def → flag threshold/예시
- mainresvalidate → 응답 검증
- fallback_final_check()
- trigger_meta → delta/action 의미 일치 검증
🔗 테스트
업데이트 예정
<!-- app-tab:start -->
👀 CWIE Symbolic Processor
게임 내 환경과 상호작용하는 API 서버입니다. Neuro-Symbolic System에서 Symbolic Processing(Pre/Post Processing)을 담당합니다.
⚙️ 주요 기능
- 게임 서버 요청 수신 및 전처리
- 조건 판정 후 모델 추론 방식 결정 [delta, flag head 사용 여부 결정]
- Neuro Engine과 API 통신을 통해 Core 모델 추론 진행
- 모델 응답 후처리 및 JSON 표준 응답 반환
- 전, 후처리, 조건 검증시 RAG 기반 세계관·상황별 규칙·NPC 성격 반영 <!-- app-tab:end --> ---
