fix: grounding 용어를 650_용어집에 통합, 별도 01_Terminology 삭제

- 그라운딩, RAG, RRF, pg_trgm 용어 추가
- 중복 파일(01_Terminology/grounding_용어집.md) 삭제

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
happybell80 2026-03-22 15:36:34 +09:00
parent 8c2c6d0f81
commit f727f47b28
3 changed files with 116 additions and 64 deletions

View File

@ -1,64 +0,0 @@
---
type: governance
tags: [terminology, grounding, rag, companyx]
created_date: 2026-03-23
last_verified: 2026-03-23
scope: robeing 프로젝트 전체
upper_principle: /home/admin/0_VALUE/00_Foundations/global-principles.md
---
# Grounding 용어집
## Grounding (근거 기반 답변)
LLM이 답변할 때 **내부 문서에서 근거를 찾아 명시**하는 프로세스. 추측이나 외부 지식이 아니라 검색된 문서 내용만을 근거로 답변하고, 어떤 문서가 근거인지 함께 제시한다. 근거가 부족하면 "모른다"고 명시한다.
## RAG (Retrieval-Augmented Generation)
검색(Retrieval) + 생성(Generation)을 결합한 구조. 먼저 관련 문서를 검색하고, 검색 결과를 LLM 컨텍스트에 넣어 답변을 생성한다. Grounding은 RAG의 출력 원칙이다.
## 하이브리드 검색 (Hybrid Search)
여러 검색 방식을 결합하여 결과를 합산하는 검색 구조.
로빙의 현재 하이브리드 검색 축:
- **벡터 검색** (pgvector): 의미 유사도 기반
- **키워드 검색** (tsvector + pg_trgm): 텍스트 매칭 기반
- **파일명 검색** (ILIKE): 파일명 토큰 매칭
- **그래프 검색** (Apache AGE): 문서 관계 기반
## RRF (Reciprocal Rank Fusion)
여러 검색 결과의 순위를 합산하는 알고리즘. `score = 1/(k + rank)`. 로빙에서는 벡터·키워드·파일명·그래프 결과를 RRF로 합산 후 0~1 정규화.
## CompanyXRAGOutput
grounding 응답의 Pydantic 검증 모델.
| 필드 | 설명 |
|------|------|
| `direct_answer` | 1~3문장 답변. 근거 부족 시 빈 문자열 |
| `evidence_docs` | 근거 문서 파일명 목록 |
| `failure_reason` | 답변 불가 사유. 정상이면 null |
## Grounding 경로 진입 조건
| 조건 | 설명 |
|------|------|
| `team_id == COMPANYX_TEAM_ID` | Company X 팀 사용자면 자동 진입 |
| 검색 결과 0건 | failure 응답 반환 후 일반 경로로 fallback |
## 질문 유형 (Question Types)
| 유형 | 트리거 | 예시 |
|------|--------|------|
| `fact_check` | 기본값 | "근거 있어?", "협력 관계야?" |
| `explanatory` | "뭐야?", "설명해줘" | "X-COURSE가 뭐야?" |
| `quantitative` | "몇 개야?", "얼마나?" | "투자사 몇 개야?" |
| `recap` | "다시 정리해줘" | "근거 문서명만 다시" |
## 관련 문서
- [Company X Grounding 파이프라인](../workflow/03_rag/companyx_grounding_pipeline.md) — 워크플로우
- [companyx-rag SKILL.md](../skills/companyx-rag/SKILL.md) — 스킬 계약
- [RAG 검색·Grounding 요청](../workflow/03_rag/rag_search_grounding_request.md) — 검색 워크플로우

View File

@ -19,6 +19,12 @@ LLM 출력을 후처리하여 로빙의 고유한 성격과 윤리적 기준을
### 경험치 (Experience Points, XP) ### 경험치 (Experience Points, XP)
로빙이 작업을 수행하거나 사용자와 상호작용할 때 획득하는 포인트. 일정량 누적 시 레벨업이 발생함. 로빙이 작업을 수행하거나 사용자와 상호작용할 때 획득하는 포인트. 일정량 누적 시 레벨업이 발생함.
### 그라운딩 (Grounding)
LLM이 답변할 때 내부 문서에서 근거를 찾아 명시하는 프로세스. 추측이나 외부 지식이 아니라 검색된 문서 내용만을 근거로 답변하고, 어떤 문서가 근거인지 함께 제시한다. 근거가 부족하면 "모른다"고 명시한다. RAG의 출력 원칙.
관련 문서:
- [Company X Grounding 파이프라인](../../workflow/03_rag/companyx_grounding_pipeline.md)
- [companyx-rag SKILL.md](../../skills/companyx-rag/SKILL.md)
### 공통 계약 (Common Contract) ### 공통 계약 (Common Contract)
특정 기능 경로가 따라야 하는 공통 `입력-판단-출력` 약속. 질문별 예외 문장을 계속 추가하는 대신, 질문 유형 분류, 근거 채택 기준, 실패 조건 같은 규칙을 한 번 정의해 코드·프롬프트·테스트가 함께 따르도록 고정한 기준을 뜻한다. 특정 기능 경로가 따라야 하는 공통 `입력-판단-출력` 약속. 질문별 예외 문장을 계속 추가하는 대신, 질문 유형 분류, 근거 채택 기준, 실패 조건 같은 규칙을 한 번 정의해 코드·프롬프트·테스트가 함께 따르도록 고정한 기준을 뜻한다.
관련 문서: 관련 문서:
@ -195,9 +201,20 @@ GPT-4 등의 대규모 언어 모델. 로빙의 자연어 이해와 생성을
### NLP (Natural Language Processing) ### NLP (Natural Language Processing)
자연어 처리. 인간의 언어를 컴퓨터가 이해하고 처리하는 기술. 자연어 처리. 인간의 언어를 컴퓨터가 이해하고 처리하는 기술.
### pg_trgm
PostgreSQL 확장. 텍스트를 3글자(trigram) 단위로 쪼개 인덱싱하여 부분 문자열 매칭을 지원한다. 형태소 분석 없이 한국어 조사/복합어 문제를 보완하는 키워드 검색 축.
### PoC (Proof of Concept) ### PoC (Proof of Concept)
개념 증명. 아이디어의 실현 가능성을 검증하기 위한 프로토타입. 개념 증명. 아이디어의 실현 가능성을 검증하기 위한 프로토타입.
### RAG (Retrieval-Augmented Generation)
검색(Retrieval) + 생성(Generation) 결합 구조. 먼저 관련 문서를 검색하고, 검색 결과를 LLM 컨텍스트에 넣어 답변을 생성한다. 로빙의 Company X 내부 문서 답변에 사용.
관련 문서:
- [RAG 검색·Grounding 요청](../../workflow/03_rag/rag_search_grounding_request.md)
### RRF (Reciprocal Rank Fusion)
여러 검색 결과의 순위를 합산하는 알고리즘. `score = 1/(k + rank)`. 로빙에서는 벡터·키워드·파일명·그래프 결과를 RRF로 합산 후 0~1 정규화.
### Ralph Loop (랄프 루프) ### Ralph Loop (랄프 루프)
AI가 완성 기준 충족 시까지 코드 작성·테스트·수정을 자동 반복하는 기법. 2026년 AI 코딩 트렌드로 부상. AI가 완성 기준 충족 시까지 코드 작성·테스트·수정을 자동 반복하는 기법. 2026년 AI 코딩 트렌드로 부상.

View File

@ -0,0 +1,99 @@
---
tags: [ideas, companyx, rag, aggregation, entity-layer, grounding]
type: ideas
---
# 260322 Company X RAG 집계 레이어 아이디어
## 목적
- Company X RAG가 `문서 검색`은 되지만 `전체 조망·집계형 질문`에는 약한 이유를 정리한다.
- 청크 기반 검색 위에 어떤 집계 레이어가 있어야 `투자사 목록`, `전체 개수`, `프로그램 전체 구조` 같은 질문에 답할 수 있는지 방향을 연다.
## 문제 인식
- 현재 RAG는 `문서 청크 회수 -> 근거 답변`에는 강하지만, 여러 문서에 흩어진 사실을 하나의 목록이나 집계로 묶는 데는 약하다.
- 예를 들어 `컴퍼니엑스가 투자한 회사를 나열해줘` 질문에서 검색은 성공해도, 결과 문서가 `투자내역`, `계약서`, `투자회수실적`, `거래관리`처럼 분산돼 있으면 LLM은 전체를 단정하지 못한다.
- 즉 현재 병목은 `검색 0건`보다 `검색 결과를 전사 관점으로 합쳐서 답할 구조 부재`에 가깝다.
## 현재 상태 요약
- 24 서버 기준 `skill-rag-file` 하이브리드 검색과 `rb8001` grounding은 동작한다.
- `vector + keyword + graph` 검색으로 관련 문서는 가져오지만, 그 결과를 `엔티티`, `관계`, `기준일`, `확정성` 단위로 재구성하는 계층은 없다.
- 그래서 `계약서가 있는 회사`, `조합 투자내역에 나온 회사`, `회수실적에 나온 회사`를 하나의 `투자사 목록`으로 dedup·정규화하지 못한다.
## 왜 집계 레이어가 필요한가
- `나열해줘`, `몇 개야`, `전체`, `주요`, `비교해줘` 같은 질문은 청크 답변보다 집계 답변에 가깝다.
- 이런 질문은 문서 1개를 읽어 답하는 게 아니라, 여러 문서에서 같은 대상을 찾아 묶고 중복을 제거하고 기준일을 맞춰야 한다.
- 따라서 문서 검색 위에 `엔티티/팩트/집계`를 다루는 레이어가 없으면, RAG는 계속 `근거는 일부 있으나 전체 단정 불가`로 멈춘다.
## 내가 생각하는 최소 집계 레이어
### 1. 엔티티 추출
- 문서/청크에서 `투자사명`, `투자조합`, `문서유형`, `거래유형`, `기준일`을 뽑는다.
- 예:
- `회사명`: 아크로셀
- `조합`: 컴퍼니엑스 IP 투자조합 6호
- `문서유형`: 투자내역 / 투자계약서 / 회수실적
- `기준일`: 2025-12-31
### 2. 팩트 정규화
- 추출한 값을 문서 청크와 별도로 `정규화 테이블`에 저장한다.
- 예시 테이블:
- `companyx_investee_fact`
- `companyx_program_fact`
- `companyx_document_entity_link`
### 3. 집계 질의 경로
- `투자한 회사 나열`, `전체 투자사 수`, `주요 프로그램 목록` 같은 질문은 일반 grounding 전에 집계 질의로 분기한다.
- 이 경로는 청크를 바로 LLM에 주지 않고:
1. 관련 fact 조회
2. 회사명 dedup
3. 문서 근거 1개 이상 연결
4. 전체 확정 가능 여부 판단
순서로 답한다.
## 답변 형식도 바뀌어야 한다
- 현재는 `문서가 없거나 찾지 못함`으로 많이 떨어진다.
- 집계 레이어가 생기면 아래처럼 답할 수 있다:
- `현재 내부 문서 기준으로 투자 사실이 직접 확인되는 회사는 A, B, C입니다.`
- `근거 문서: 투자내역, 투자계약서, 투자회수실적`
- `다만 전사 최신 투자사 마스터 문서는 없어 전체 확정 목록이라고 단정할 수는 없습니다.`
## 팔란티어처럼 가야 하나
- 방향성은 비슷하다. `문서 -> 엔티티 -> 관계 -> 조망`으로 올라가야 한다.
- 다만 지금 단계에서 필요한 것은 거대한 플랫폼이 아니라, Company X 질문에 바로 효율이 나는 `소형 집계 레이어`다.
- 즉 `문서 레이크 전체 재설계`보다 `투자/프로그램/조직` 같은 핵심 주제부터 정규화하는 게 현실적이다.
## 이 문서가 제안하는 시작 순서
1. `투자` 문서군만 별도 분류한다.
2. 투자사명/조합명/문서유형/기준일 추출 규칙을 정한다.
3. `companyx_investee_fact` 같은 테이블에 적재한다.
4. `나열/집계형 질문`을 이 fact 테이블 우선 조회로 분기한다.
5. 답변에 `부분 집계``전체 확정 불가`를 구분해 넣는다.
## 기대 효과
- `투자한 회사 나열해줘` 같은 질문에 부분 목록이라도 안정적으로 답할 수 있다.
- `문서 검색은 됐는데 왜 전체 답을 못 하느냐`는 현재 한계를 구조적으로 줄일 수 있다.
- 이후 `프로그램 목록`, `협력 네트워크`, `팀 구조` 같은 조망형 질문에도 같은 레이어를 재사용할 수 있다.
## 검증이 필요한 이유
- 엔티티 추출 정확도가 낮으면 오히려 잘못된 집계가 생긴다.
- `부분 목록``전체 확정 목록`을 섞으면 신뢰를 잃는다.
- 따라서 이 아이디어는 바로 일반화하지 말고, 먼저 `투자사 목록` 질문 하나로 좁혀 검증하는 편이 맞다.
## 관련 문서
- [260320 다형식문서 자동지식화 RAG 파이프라인 아이디어](./260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md)
- [260320 다형식문서 RAG 2차 PGVector·JSONB 적재 계획](../plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md)
- [260320 PostgreSQL 그래프확장 설계 리서치](../research/rag/260320_PostgreSQL_그래프확장_설계_리서치.md)
- [260322 Company X RAG 문서 완벽도 평가](../../valuation/260322_companyx_rag_문서_완벽도_평가.md)