Skip to main content
이 문서는 RAG 섹션의 일부입니다.
이 장에서는 LangChain과 Databricks를 통합하여 검색-증강-생성 체인을 구축하는 방법을 다룹니다.

RAG 체인 아키텍처 이해

RAG 체인은 크게 세 가지 핵심 컴포넌트 로 구성됩니다. 각 컴포넌트의 역할과 연결 방식을 이해하면 체인 설계와 디버깅이 수월해집니다.
RAG 체인 아키텍처

RAG 체인 아키텍처 — Retriever(60%) → Augmenter(25%) → Generator(15%)

품질 영향도에서 Retriever가 60%를 차지하는 이유는, 아무리 뛰어난 LLM이라도 관련 없는 문서가 제공되면 정확한 답변을 생성할 수 없기 때문입니다. 반대로 검색 품질이 높으면, 상대적으로 작은 모델로도 충분한 답변을 생성할 수 있습니다.
참고 RAG 품질 문제의 대부분은 Retriever 단계 에서 발생합니다. 답변이 부정확하다면 LLM을 바꾸기 전에 검색 결과의 품질을 먼저 점검하세요. MLflow Tracing으로 각 단계의 입출력을 확인할 수 있습니다.

LCEL (LangChain Expression Language)이란?

LangChain Expression Language(LCEL)는 체인의 각 컴포넌트를 파이프(|) 연산자 로 연결하는 선언적 체인 구성 방식입니다. LCEL의 핵심 장점은 다음과 같습니다:
  • 스트리밍 지원: chain.stream()으로 토큰 단위 스트리밍이 자동 지원됩니다
  • 비동기 지원: chain.ainvoke()로 비동기 실행이 가능합니다
  • 배치 처리: chain.batch()로 여러 입력을 병렬 처리할 수 있습니다
  • 트레이싱 호환: MLflow Tracing과 자동으로 통합됩니다

Databricks Agent Framework와의 통합

Databricks Agent Framework는 RAG 체인을 프로덕션 서비스 로 전환하기 위한 표준 인터페이스를 제공합니다.
  • ChatAgent 인터페이스: predict() 메서드 하나로 Model Serving, Review App, MLflow Tracing과 호환
  • agents.deploy(): 한 줄의 코드로 서빙 엔드포인트 + Review App + 피드백 테이블 생성
  • 의존성 자동 관리: RAG 체인이 참조하는 Vector Search 인덱스, Model Serving 엔드포인트 등의 의존성을 자동 추적

1. 필수 패키지 설치

2. 핵심 구성 요소

ChatDatabricks (Foundation Model API)

DatabricksVectorSearch Retriever

Vector Search 인덱스를 LangChain Retriever로 래핑합니다.
참고 search_kwargs에서 k 값은 검색할 문서 수입니다. 너무 크면 컨텍스트가 길어져 비용이 증가하고, 너무 작으면 관련 정보를 놓칠 수 있습니다. 3~5개가 적절합니다.

3. Prompt Template 설계

RAG 체인에서 프롬프트 설계는 답변 품질에 직접적인 영향을 줍니다. 프롬프트는 LLM에게 “어떻게 행동해야 하는가” 를 지시하는 설계도입니다.

프롬프트 설계가 생성 품질에 미치는 영향

프롬프트의 각 요소가 RAG 답변 품질에 미치는 영향을 구체적으로 살펴봅니다.

프롬프트 안티 패턴

실전 프롬프트 설계

주의 프롬프트에 “컨텍스트에 없는 내용은 답변하지 마라”는 지시를 반드시 포함하세요. 이것이 LLM의 환각(Hallucination)을 줄이는 핵심 방법입니다.

4. RAG 체인 조립

LCEL (LangChain Expression Language) 방식

ChatAgent 클래스 방식 (배포용 권장)

5. MLflow로 체인 로깅

성공 ChatAgent 인터페이스를 사용하면 Model Serving, Review App, MLflow Tracing과 자동으로 호환됩니다.

6. RAG 체인 디버깅 팁

MLflow Tracing으로 병목 찾기

RAG 체인에서 문제가 발생하면, MLflow Tracing으로 각 단계의 입출력과 소요 시간을 확인할 수 있습니다.

일반적인 문제와 해결 방법

MLflow Tracing은 프로덕션 환경에서도 활성화하세요. 문제 발생 시 특정 요청의 전체 실행 경로를 재현할 수 있어 디버깅이 훨씬 수월해집니다.

다음 단계

체인이 구축되면 RAG 평가에서 품질을 측정하고 개선합니다.