피드로 돌아가기
Running a Whole RAG Agent Offline: LangGraph + Ollama + Embedded Qdrant (Zero API Keys)
Dev.toDev.to
AI/ML

API Key 없이 Ollama와 Embedded Qdrant로 구현한 100% 오프라인 RAG 에이전트

Running a Whole RAG Agent Offline: LangGraph + Ollama + Embedded Qdrant (Zero API Keys)

duke2026년 6월 29일7intermediate

Context

대부분의 RAG 구현체가 외부 API 의존성으로 인해 보안 및 비용 제약이 발생하는 한계점 존재. 개발 단계부터 프로덕션까지 코드 수정 없이 인프라 환경을 전환할 수 있는 추상화된 Provider 구조의 필요성 대두.

Technical Solution

  • LangChain Interface 기반의 Factory 패턴을 적용하여 Ollama와 OpenAI 간의 Embedding/Chat Provider를 설정값으로 전환하는 구조 설계
  • Qdrant의 Embedded Mode를 활용하여 별도의 Docker 컨테이너 없이 로컬 디렉토리에 벡터 데이터를 직접 저장하는 구조 채택
  • embed_query("probe") 로직을 통한 런타임 차원의 Vector Dimension 자동 감지로 Provider 변경 시 Collection 크기 불일치 문제 해결
  • ReAct Loop 기반의 LangGraph 워크플로우를 구축하여 HumanMessage, AIMessage, ToolMessage로 이어지는 추론-검색-합성 사이클 구현
  • 로컬 LLM(qwen3.5:9b)과 Embedding 모델(bge-m3)의 결합을 통한 완전한 데이터 폐쇄망 환경 조성

- Embedding Provider 변경 시 Vector Dimension 불일치로 인한 검색 실패 가능성을 검토하고 데이터 재인덱싱 전략 수립 - Embedded Vector Store 사용 시 단일 프로세스 락(Lock) 제약으로 인한 인덱싱-서버 실행 순서 제어 로직 구현 - 로컬 LLM 도입 시 콜드 스타트(Cold Start)에 따른 초기 요청 지연 시간을 고려한 벤치마크 설계

원문 읽기