altair823
24ec86c515
feat(rag): rag-v4 — RAG provenance 라벨 (source/trust + 신뢰도 우선 지시)
RAG 프롬프트의 각 [근거] 청크 머리에 출처/trust 라벨을 붙이고
(`[#n] source=jira trust=secondary doc=…`), system prompt 에 "저신뢰 출처를 권위
출처와 충돌 시 discount 하고 [#번호]로 귀속" 2규칙을 더한다. 출처 필터
(`--source`/`--trust-min`)가 못 잡는 생성 측 실패 — 저신뢰(jira) 청크가 권위(wiki)
청크를 답변에서 덮어쓰는 것 — 를 다룬다.
- SearchHit 에 source_id/trust_level(additive optional). lexical/vector build_hit
가 documents 조인에서 채움(both 동일: trust_level lowercase TEXT →
serde lowercase round-trip, doc_summary read-back 과 동형). hybrid fusion 전파.
- pack_context 라벨 렌더(버전 무관 항상). SYSTEM_PROMPT_RAG_V4 = rag-v3 8규칙
verbatim + 2규칙. config 기본 rag-v3→rag-v4. multi-hop synth 도 2규칙 →
rag-multi-hop-v1→v2(prompt 변경 = 버전 bump, design §9).
- wire: search_hit.v1 에 두 필드 optional additive(required 아님,
skip_serializing_if=None → 구 소비자 무영향, v2 bump 아님).
- source_id 는 RAG 헤더에 렌더되므로 validate_sources 에 [A-Za-z0-9._-] char 검증.
- opt-out: rag-v3 핀 = v3 system prompt 선택(discount 지시 빠짐, 라벨은 무해히 잔존).
검증: kebab-core/search/rag/config/eval 전 테스트 green(25 바이너리), clippy 0.
독립 코드 리뷰 APPROVE(7위험 PASS — trust round-trip 실 DB 확인; MEDIUM rag-v3
opt-out doc + multi-hop 버전 / LOW source_id 검증 반영). 도그푸딩: 라벨 메커니즘
end-to-end 검증(search --json 이 competing 쿼리에 wiki/primary + jira/secondary 둘
다 정확 라벨로 노출). LLM-judge(답변 비교)는 instruction LLM 부재로 보류(.2/.47
다운 + lemonade /api/generate it-model template 미적용) — 인프라, .2 복구 시 측정.
버전 bump 은 follow-up 들과 배치 릴리스에서 일괄.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Mc6W1fgsrbFKTsqA6P8La
2026-06-24 05:48:34 +00:00
..
2026-05-02 04:01:55 +00:00
2026-05-02 18:01:14 +00:00
2026-05-03 12:57:38 +00:00
2026-05-04 17:34:30 +00:00
2026-05-04 16:34:51 +00:00
2026-05-05 11:28:11 +00:00
2026-05-07 19:18:27 +09:00
2026-05-07 11:12:05 +09:00
2026-05-07 14:54:43 +09:00
2026-05-07 17:49:04 +09:00
2026-05-09 00:40:46 +09:00
2026-05-09 14:16:42 +09:00
2026-05-09 17:43:26 +09:00
2026-05-09 23:31:29 +09:00
2026-05-10 03:34:39 +09:00
2026-05-10 12:14:26 +09:00
2026-05-10 17:45:57 +09:00
2026-05-10 22:19:44 +09:00
2026-05-10 23:02:37 +09:00
2026-05-10 18:58:35 +09:00
2026-05-10 20:10:39 +09:00
2026-05-15 14:31:22 +09:00
2026-05-19 15:36:08 +00:00
2026-05-20 00:26:58 +00:00
2026-05-20 08:58:45 +00:00
2026-05-20 10:27:13 +00:00
2026-05-20 12:55:36 +00:00
2026-05-21 13:15:22 +00:00
2026-05-21 11:16:55 +00:00
2026-05-23 00:57:37 +00:00
2026-05-26 05:18:08 +00:00
2026-05-25 07:15:01 +00:00
2026-05-26 23:34:17 +00:00
2026-05-26 06:52:04 +00:00
2026-05-26 15:00:59 +00:00
2026-05-26 09:12:21 +00:00
2026-05-26 12:19:32 +00:00
2026-05-27 11:03:44 +00:00
2026-05-28 01:21:34 +00:00
2026-05-28 01:21:34 +00:00
2026-05-28 01:21:34 +00:00
2026-05-28 04:18:40 +00:00
2026-05-28 21:09:39 +00:00
2026-05-28 12:53:31 +00:00
2026-05-28 13:34:33 +00:00
2026-05-28 08:04:32 +00:00
2026-05-30 00:53:24 +00:00
2026-05-30 13:25:45 +00:00
2026-05-30 02:04:58 +00:00
2026-05-31 11:39:31 +00:00
2026-06-03 04:14:26 +00:00
2026-06-03 13:40:02 +00:00
2026-06-03 09:14:15 +00:00
2026-06-02 20:13:12 +00:00
2026-06-04 12:25:49 +00:00
2026-06-04 07:31:03 +00:00
2026-06-24 01:10:53 +00:00
2026-06-24 05:47:09 +00:00
2026-06-24 05:48:34 +00:00