DOCS/journey/worklog/260317_companyx_grounding_코드검토_및_문서현행화.md
happybell80 c272340fd3 close: CompanyX RAG 계열 닫힌 문서 20건 프론트메타 일괄 반영
- 260312/260315/260316 계열 트러블/리서치/계획/시나리오/워크로그
- 본문에만 닫힘 표기되어 있던 문서에 status: closed 프론트메타 추가
- 열린 문서는 260320 다형식문서 RAG 체인 10개만 남음

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 07:59:29 +09:00

5.7 KiB

status, closed_date, closed_reason, tags
status closed_date closed_reason tags
closed 2026-03-21 260320 다형식문서 RAG 계획으로 흡수 또는 구현 완료
worklog
companyx
rag
code-review
docs

status: closed closed_date: 2026-03-21 closed_reason: 260320 다형식문서 RAG 계획으로 흡수 또는 구현 완료

Company X Grounding 코드 검토 및 문서 현행화

작성일: 2026-03-17 작업자: Claude Code (코드 수정 없음, 문서 업데이트만)

관련 문서

작업 목적

  • 계획 문서 상태가 planned인 채로 방치된 상황에서, 실제 코드를 직접 검토해 현재 구현 상태를 확인
  • 리서치 문서의 사실 섹션이 outdated된 부분을 문서에 반영

검토 대상 파일

  • rb8001/app/services/companyx_grounding_service.py (전체)
  • rb8001/app/services/message_service.py (grounding 진입 경로 확인)
  • DOCS/skills/companyx-rag/SKILL.md

코드 검토 결과

계획 대비 구현 완료 항목

계획 문서(260315)의 Phase 1~4 핵심이 이미 구현되어 있음.

Phase 2 (질문 유형 계약) - 구현됨

# _classify_question_type() 존재 (line 137)
# 4개 유형: QUESTION_EXPLANATORY, QUESTION_FACT, QUESTION_QUANTITATIVE, QUESTION_RECAP
QUESTION_EXPLANATORY = "explanatory"
QUESTION_FACT = "fact_check"
QUESTION_QUANTITATIVE = "quantitative"
QUESTION_RECAP = "recap"

재오픈 기준 질문 매핑 (코드 기준):

  • 컴퍼니엑스의 투자사는 몇개야?몇개 키워드 → QUESTION_QUANTITATIVE
  • 내부 규정 상 휴가는 얼마나 쓸 수 있어?휴가 키워드 → QUESTION_FACT
  • 오늘전통 프로그램을 옐로펀치랑 같이 운영한다는 근거 있어? → 기본값 → QUESTION_FACT

Phase 3 (근거 채택 판정) - 구현됨

# _score_result_relevance() 존재 (line 278)
# _select_relevant_results() 존재 (line 326): relevance_score <= 0이면 제외
# _supports_quantitative_focus() 존재 (line 251): count marker 패턴 판정
  • 투자사 질문에 투자/포트폴리오/실적 관련 없는 청크 → score=0으로 필터링됨
  • 휴가 질문에 휴가/연차/반차 없는 청크 → score=0으로 필터링됨
  • 수치형 질문은 _COUNT_MARKER_PATTERN으로 실제 숫자 존재 여부까지 판정

Phase 4 (direct/failure 응답 계약) - 구현됨

# _build_direct_answer(): 유형별 다른 응답 (line 398)
# _build_failure_answer(): 유형별 다른 실패 메시지 (line 376)
# _build_grounded_response(): relevant_results가 없으면 failure 경로 (line 425)

QUESTION_QUANTITATIVE 실패 경로 예시:

  • 관련 결과 있으나 count marker 없음 → 수치를 단정할 수 없습니다. ... 단정 불가
  • 관련 결과 자체 없음 → 뒷받침할 문서를 찾지 못했습니다

Phase 1 (구조 분리) - 구현됨

  • 함수 분리: _classify_question_type, _build_query_candidates, _search_companyx_documents, _score_result_relevance, _select_relevant_results, _select_evidence_results, _build_direct_answer, _build_failure_answer
  • 질문별 특례 분기 (if 오늘전통 in message) 제거됨

미완료 항목

Phase 5 (테스트 고정) - 미완료

  • 재오픈 기준 질문 3개에 대한 자동화 테스트 없음
  • 코드 경로 구현은 됐지만 실제 Slack 실응답 검증 미완료

문서 불일치

  • 트러블슈팅 문서 260312_companyx_rag_answer_composition_regression.md닫힘 표기
  • 종결 근거로 참조하는 260315_companyx_정확표기_slack_근거응답_경로종결.md가 존재하지 않음
  • 시나리오 문서는 여전히 재오픈 상태

SKILL.md vs 코드 정합성

  • SKILL.md 요구 형식: direct answer → evidence documents → short evidence summary
  • 현재 코드 출력 형식: direct answer\n\n근거 문서:\n- filename: chunk_summary (chunk N, score X.XX)
  • 대체로 일치하나, short evidence summary 부분이 chunk 앞부분 180자 잘라내기로 처리됨 (개선 가능)

진입 조건 현황 (변경 없음)

# _looks_like_companyx_grounding_question() (line 102)
# intent_markers: 근거, 내부 문서, 내부 자료, 자료 기준, 문서 기준, 근거 있어, 확인해줘, 같이 운영, 공동 운영, 협력, mou
# domain_markers: 오늘전통, 옐로펀치, yellowpunch, x-course, x course, 컴퍼니엑스, company x, companyx
  • 여전히 marker 기반. 컴퍼니엑스만 들어가도 grounding 경로 진입 가능

업데이트한 문서 목록

  1. DOCS/journey/plans/260315_companyx_rag_답변합성_시나리오동시종결_계획.md

    • 상태: planned구현완료_미검증
    • 검토일 추가
  2. DOCS/journey/research/260315_companyx_rag_답변합성_시나리오동시종결_리서치.md

    • 코드 검토 섹션 추가 (outdated 사실 목록, 여전히 사실인 항목, 미완료 항목)
  3. 본 문서 신규 작성

남은 작업 (이 worklog 범위 밖)

  • Phase 5: 재오픈 기준 질문 3개 자동화 테스트 작성
  • Slack 실응답 검증 후 시나리오/트러블슈팅 문서 종결
  • 종결 worklog 작성 (260315_companyx_정확표기_slack_근거응답_경로종결.md 또는 신규)