DOCS/workflow/03_rag/companyx_grounding_pipeline.md
happybell80 60a892e5ab fix: DOCS 내 0_VALUE 참조를 GitHub URL → 로컬 상대경로로 전환, 02_Governance → 20_Governance 수정 #33 #34
SSOT는 로컬 0_VALUE/. GitHub URL은 복사본 참조로 SSOT 원칙 위반.
02_Governance는 존재하지 않는 구 경로로 전부 깨진 링크.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 14:00:21 +09:00

3.9 KiB

tags, type, last_updated
tags type last_updated
workflow
rag
companyx
grounding
answer
workflow 2026-03-23

Company X Grounding 파이프라인

목적

  • Company X 소속 사용자의 내부 문서 질문에 대해 로빙이 근거를 붙여 답하게 한다.
  • 직접 답과 근거 문서를 함께 반환하는 기준을 고정한다.

상위 원칙

입력

  • 사용자 질문
  • 사용자 ID
  • 검색된 근거 문서 목록
  • 근거 문서 메타데이터

출력

  • 직접 답
  • 근거 문서명
  • 근거 문단 요약
  • 필요 시 위치 정보
  • 근거 부족 시 명시적 실패 응답

처리 순서

  1. team_id == COMPANYX_TEAM_ID이고 질문이 마커(intent/domain)에 매칭되면 grounding 경로로 진입한다. team_id만으로는 진입하지 않는다. 마커 미매칭 시 일반 스킬 경로(캘린더/이메일/뉴스 등)로 fallback한다. (260323 P1-5 롤백, 전원 동의)
  2. 질문 유형을 분류한다 (설명형/사실확인형/수치확인형/재정리형).
  3. 멀티쿼리를 생성한다 (_build_query_candidates(), 7~9개 변형).
  4. 하이브리드 검색(벡터+키워드 RRF, search_mode=hybrid)으로 상위 결과를 수집한다.
  5. 검색 결과를 LLM에 컨텍스트로 전달하고, LLM이 질문 적합도를 판단해 답변한다.
  6. LLM 응답을 Pydantic(CompanyXRAGOutput)으로 검증한다.
  7. 근거가 부족하면 LLM이 failure_reason을 명시하고, 추정 답변 대신 실패 응답으로 끝낸다.

검색 모드

  • 기본 검색 모드는 hybrid이다 (벡터+키워드 RRF 합산).
  • 벡터 검색: PGVector cosine similarity (Gemini Embedding 2, 768d).
  • 키워드 검색: PostgreSQL tsvector + GIN 인덱스, prefix 매칭(:*).
  • 점수 합산: RRF (Reciprocal Rank Fusion, k=60), 정규화하여 0~1 범위로 반환.
  • Apache AGE 그래프 점수는 hook으로 가산 가능 (현재 보조적 위치).

근거 선별 원칙

  • 키워드 기반 룰로 검색 결과를 필터링하지 않는다 (룰베이스 절제 원칙 — 헌장.md §B.6).
  • 하이브리드 검색이 반환한 RRF 정규화 점수 순서를 신뢰하고, LLM이 컨텍스트를 보고 적합도를 재판단한다.
  • 근거 선별 책임은 LLM에 있으며, 코드 레벨에서는 점수 상위 결과를 문서 다양성 기준으로 선택만 한다.

실패 분기

  • 검색 결과가 0건이면 try_companyx_grounding()None을 반환하고, message_service가 일반 의도 분류 경로로 fallback한다. (260323 fallback 복구)
  • LLM이 컨텍스트만으로 답변 불가로 판단하면 failure_reason을 채우고, 성공처럼 반환하지 않는다.
  • 수치형 질문에서 값이 없으면 추정하지 않는다.
  • 내부 규정이나 최신 집계가 없으면 문서 없음, 미확인, 불일치 중 하나로 명시한다.
  • 메타 대화로 회피하지 않는다.

현재 기준

  • 이 흐름은 rb8001 답변 합성 규칙과 연결된다.
  • 검색 결과를 그대로 붙이는 방식은 허용하지 않는다.
  • 질문 유형 분류는 LLM 프롬프트 톤 조절용으로만 사용한다.
  • SKILL.md의 Trigger 설명은 운영 의도 요약이고, 실제 진입 조건 판단은 현재 코드 기준을 우선합니다.

검증 기준

  • 오늘전통/옐로펀치 같은 기준 질문에서 직접 답 + 근거 문서가 함께 나와야 한다.
  • 투자사 수, 휴가 규정 같은 근거 부족 질문은 추정 없이 실패해야 한다.
  • Slack 실응답과 테스트 응답이 같은 기준을 따라야 한다.

관련 문서