[맘스맘 개발기] 260204 RAG(Retrieval-Augmented Generation)로 답변 수준 진짜 대박!!!! 올리기!!!! 대박임

■ 소개

목표: 419 (4업으로 1달러 벌기 시작해서 9달러까지 벌어보기)

https://www.gpters.org/dev/post/260202-improving-quality-answers-727Wn4suGCuE9XK

엊그제 이 글을 쓰고, 로즈님께 댓글로 RAG에 대해 (처음) 들었습니다.

RAG는 Retrieval-Augmented Generation의 줄인 말인데

AI 모델이 제공된 정보를 검색으로 찾아서, 그 내용이 보강된 답변을 만들어내는 방식이라고 합니다.

.

.

어차피 저같은 바이브 코더에게 이론적 배경은 중요하지 않죠.

무턱대고 적용해봅니다.

(물론 겁나니까 GIT 커밋 푸쉬 한번 하구요 ㅎㅎ)

.

컨택스트도 엄청 잡아먹고, 플랜 한도도 바닥나버렸지만,

그 결과물이 정말 대박!!!!!!!!!이었습니다.

.

■ 진행 및 결과

1.커서로 plan하기

오늘도 PLAN으로 시작합니다.

한국어 문자 메시지 스크린샷

.

실행계획을 짜줬는데,

혹시 앱이 너무 무거워질까 싶어서 뭔저 커서의 ASK기능으로 추가 질문을 합니다.

.

.

눈치를 보니 뭔가 사람 말하듯이 말안하고,

논문 쓰듯이 답변할 것 같아서 불안합니다.

.

그래서 출처를 사람말하듯이 제공하라고 했습니다.

.

.

최종적으로 완성된 MD파일입니다.

(업데이트) 필요할 때만 인용 + 사람 말투 출처로 RAG 답변 질 제고

목표(정확도·근거 + 로딩 체감)





전문성/신뢰: 핵심 주장(Claim)이 근거(Chunk)로 뒷받침되고, 사용자가 이해하기 쉬운 사람 말투 출처로 설명됨.



로딩 체감: 기본은 빠르게 답하고, 리스크/팩트 질문에만 retrieval·인용을 수행(2-path).



안전한 유보: 근거가 부족하거나 민감 주제면 단정 대신 추가 질문/유보/공식 출처 안내.

권장 KPI(초기 가이드):





TTFB(첫 토큰): p95 1초 내(스트리밍 기준)



p95 완성(짧은 답): 3–6초 내(grounded path는 더 길 수 있음)



인용 모드 비율: 토픽/정책에 따라 관리(불필요한 retrieval 최소화)

아키텍처 개요(2-path 라우팅)

flowchart LR
  userQuery[UserQuery] --> router[AnswerRouter]

  router -->|fast_path| fastGen[FastGenerator]
  fastGen --> fastAnswer[Answer]

  router -->|grounded_path| retriever[HybridRetriever]
  retriever --> reranker[Reranker_Conditional]
  reranker --> packer[ContextPacker]
  packer --> citeGen[NarrativeCiteGenerator]
  citeGen --> verifier[ClaimVerifier]
  verifier --> groundedAnswer[AnswerWithSources]

  groundedAnswer --> ux[UX_Render]
  fastAnswer --> ux

  ux -->|on_demand| evidence[EvidenceDrawer]
  evidence --> sourceView[QuotesAndLinks]





AnswerRouter(핵심 변경): 질의 유형/리스크/사용자 요구에 따라 fast vs grounded 분기.



FastGenerator: 짧은 답, 스트리밍 중심. ‘근거 보기’ CTA만 제공 가능.



Grounded pipeline: Hybrid retrieval + (필요 시) rerank + 내러티브 출처 생성 + Claim 검증.



EvidenceDrawer(온디맨드): 상세 발췌/원문 링크는 사용자 액션 시 로드(대화 흐름/로딩 최적화).

“필요할 때만 인용” 정책(AnswerRouter 룰)

1) grounded_path 트리거(권장)





팩트/수치/날짜/정책: “얼마/언제/가능/규정/근거/링크”



건강·안전·법/재무 등 고위험



사용자가 출처를 직접 요구



모호/불확실: 답을 내기 전 조건 질문이 필요한 케이스

2) fast_path 기본





일반 조언/정서적 공감/간단한 정리/앱 사용법 등



단, fast 답변에도 “필요하면 근거를 열람할 수 있다”는 근거 보기를 제공

출처(지식원) 전략: 검증 웹자료 + UGC





Tier A: 정부/공공기관/학회/대형 의료기관/공식 가이드



Tier B: 전문 매체/검증된 기관 블로그



Tier C(UGC): 경험담(사실 근거로 단정 금지)

운영 원칙:





의료/안전/정책/수치 관련 Claim은 Tier A/B 우선.



UGC는 반드시 “경험 공유”로 라벨링하고, 사실 주장 근거로 쓰지 않음.

‘사람 말투 출처’(내러티브 인용) UX

1) 기본 추천: 혼합(hybrid)





인라인(최대 1–2회): 중요한/민감/팩트 항목에만 1줄로 자연스럽게





예: “OO기관 안내에서 이렇게 설명해요.”



하단 출처 요약(1–3줄): 나머지 출처를 대화체로 묶어 제시





예: “참고로 위 내용은 보건복지부/OO병원 자료를 바탕으로 정리했어요.”



상세 근거는 온디맨드: ‘근거 보기’에서 발췌/원문 링크/문장 위치 제공

2) 내부 추적(중요)





겉은 내러티브지만, 내부적으로는 chunk-id/url/문장 위치 포인터를 유지해





ClaimVerifier



인용 정확도 평가



클릭/추적/캐시
를 가능하게 함.

검색/재랭킹/컨텍스트 구성(로딩 최적화 포함)





Hybrid retrieval 기본: BM25 + dense 후보 union



rerank는 조건부: (a) 검색 결과가 애매하거나 (b) 고위험/팩트 질문일 때만



top-k 최소화: 답변에 필요한 범위로만(컨텍스트 길이=LLM 지연의 핵심 요인)



ContextPacker: 중복 제거 + Tier 우선순위 + lost-in-the-middle 완화

생성 + 검증





NarrativeCiteGenerator: Claim마다 ‘사람 말투 출처’로 매핑(필요한 Claim에만)



ClaimVerifier: 근거 없는 Claim은 삭제/완화/유보 + 추가 질문 생성

평가/모니터링(인용이 “가끔”인 환경)





라우팅 지표: grounded_path 비율, 트리거별 성공/실패



Retrieval: precision@k, recall@k, nDCG@k(가능하면)



Groundedness: faithfulness, answer relevancy, context precision/recall



출처 품질: 내러티브 출처가 실제로 해당 Claim을 지지하는지(Claim→Evidence 매칭)



로딩 지표: TTFB, p95 응답시간, 스트리밍 시작까지

참고자료(근거)





RAG 모듈별 베스트 프랙티스 실험: Searching for Best Practices in Retrieval-Augmented Generation



RAG 평가 실무 가이드: Evidently AI: RAG evaluation guide



2단 검색+재랭킹 개념: OpenAI Cookbook: Search reranking with cross-encoders



인용/근거 기반 생성(내러티브/인라인/quote 등) 지형: Attribution, Citation, and Quotation survey

.

2.firebase remote config에 넣기

매개변수 추가를 눌러서 커서가 알려준 값을 넣어줍니다.

.

추가적으로,

답변 소스가 될 웹사이트들을 본인이 알아봐준다고 합니다. ㅎㅎ

.

커서는 정말 좋은 직원입니다.

.

.

한국어로 된 소스를 더 모아준다네요.

하지말라고 할 이유가 없죠.

.

이 과정에서 플랜이 엥꼬나버렷습니다 ㅎㅎ

.

다행히 JSON은 다 완성되었으니

REMOTE CONFIG에 넣고,

AUTO 모드로 바꿔서 GIT커밋과 APK 릴리스를 합니다.

.

3.결과물 확인하기

아 이제 진짜 소름돋게 대답을 잘해줍니다.

Rose 님 RAG 정말 대박입니다.

.

뭔가 소스가 다양해졌고, 대답하는 패턴이 틀에 박힌게 싹 사라졌습니다.

API 값이 얼마나 더 나올지가 함정일 수 있지만,

우선 매우 만족스럽습니다!!!

.

■ 느낀점 및 향후 계획

지피터스는 용어 배우는 맛에 다니고,

용어를 커서에 던지면,

정말 많은 변화가 있는 것 같습니다.

.

우선 내일 APK 파일을 스터디 내에 공유할까 싶습니다.

.

반응과 피드백 반영해서 지피터스 전체에도 공유해보겠습니다.

1
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요