사내 정보보호/교육 챗봇의 품질을 지속적으로 개선하기 위해,
어떤 로그를 남기고,
어떻게 모니터링하며,
어떤 루프(Feedback Loop)로 개선할지
를 한 장에 정리한다.
최종 목표:
timestamp : 처리 완료 시각user_id, user_role, department_codechannel : WEB / DESKTOP / MOBILE 등raw_query : 원본 질문 (필요 시 암호화/토큰화)masked_query : PII 마스킹 후 질문domain : POLICY / INCIDENT / EDU / GENERALintent_type : POLICY_QA / INCIDENT_REPORT / EDU_STATUS / EDUCATION_QA / GENERAL_CHAT …nlu_intent : 세부 의도 (예: TRAINING_REQUIRED_LIST, QUIZ_START 등)route_type : RAG_INTERNAL / BACKEND_API / MIXED_BACKEND_RAG / LLM_ONLYhas_pii_input : 입력에 PII 존재 여부has_pii_output : 출력에 PII 존재 여부(마스킹 전 기준)pii_types : PERSON / PHONE_NUMBER / SSN 등 리스트pii_log_stage_masked : 로그 저장 시 적용된 마스킹 레벨(INPUT/OUTPUT/LOG)rag_used : RAG 사용 여부rag_source_count : 사용된 문서 수rag_max_score : Top-1 스코어rag_doc_ids : 사용된 문서 ID 리스트rag_article_paths : “제X장 > 제Y조 > 제Z항” 경로 리스트rag_gap_candidate : RAG Gap 후보 여부 (POLICY/EDU + 검색 실패/저스코어)total_latency_ms : 전체 응답 시간rag_latency_ms / llm_latency_ms / backend_latency_mserror_type : UPSTREAM_TIMEOUT / VALIDATION_ERROR / LLM_ERROR …