본문 바로가기
C.W.K.
Stream
Lesson 04 of 06 · published

문서 크기와 조회 빈도로 RAG와 전체 삽입을 골라

~14 min · rag, retrieval, embeddings

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

전체를 넣거나 필요한 조각만 찾거나

관련 문서를 프롬프트에 통째로 넣을 수도 있고, 질문마다 검색해 상위 조각만 넣을 수도 있어. 전체 삽입은 단순하고 검색 누락이 없으며, RAG는 큰 지식 저장소에서 입력량을 줄여 줘. 어느 쪽도 무조건 우월하지 않아.

작고 안정되면 캐시와 함께 넣어

자료가 컨텍스트 안에 넉넉히 들어가고 대부분의 질문이 같은 내용을 쓴다면 프롬프트 캐싱과 전체 삽입이 잘 맞아. 자료가 창보다 훨씬 크거나 질문마다 필요한 구간이 크게 달라지면 검색해. cwkPippa는 약 30KB의 안정된 페르소나와 vault 색인은 넣어 두고, 특정 파일은 Read 도구로 필요할 때 가져와.

RAG는 출처까지 보존해야 완성돼

좋은 임베딩 모델을 골라 512~1024 토큰 조각과 겹침을 정하고, 후보가 많으면 재순위화를 써. SDK가 임베딩 모델을 제공하지 않으므로 Ollama bge-m3나 OpenAI text-embedding-3 같은 별도 구성과 연결해야 해. 답에서 인용할 수 있도록 검색 조각의 출처도 끝까지 들고 가.

원칙: 작고 안정된 자료에 RAG는 과하고, 크고 자주 달라지는 자료를 통째로 넣는 것도 과해. 데이터 모양에 맞춰.

Code

Prompt caching이랑 stuffing·python
STABLE_KB = open("product_kb.md").read()  # 30KB의 안정 docs

resp = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": f"Use the knowledge base to answer.\n\n<kb>\n{STABLE_KB}\n</kb>",
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[{"role": "user", "content": user_question}],
)
RAG: top-k chunks retrieve 후 묻기·python
# Pseudo: vector store로 top-3 chunks retrieve
hits = vector_store.query(user_question, k=3)
context = "\n\n".join(f"[doc {h.id}] {h.text}" for h in hits)

resp = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="Answer using ONLY the provided context. If the answer is not in context, say so.",
    messages=[{
        "role": "user",
        "content": f"<context>\n{context}\n</context>\n\nQuestion: {user_question}",
    }],
)

External links

Exercise

지식 기반 기능 하나를 캐시한 전체 삽입과 RAG 두 방식으로 만들어. 대표 질문 30개에서 지연·비용·답 품질을 재고 자료로 결정해.
Hint
전체 삽입은 캐시 창마다, RAG는 질문마다 비용을 내. 교차점은 보통 TTL당 10~50개 질문 사이에 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.