AI VIDEO BRIEFING

Langflow RAG 챗봇 만들기 — 코드 없이 PDF 기반 LLM 앱 구축 가이드

비주얼 도구 Langflow로 코드 없이 RAG 챗봇을 만드는 과정. PDF를 벡터 DB에 임베딩하고, 프롬프트·채팅 메모리·LLM을 연결해 문서 기반 응답을 구현하는 방법을 단계별로 정리했다.

코드 한 줄 없이 만드는 RAG 챗봇: Langflow로 PDF 기반 LLM 앱 구축하기 영상 대표 이미지

핵심 메시지

  • Langflow는 컴포넌트를 시각적으로 연결해 코드를 거의 작성하지 않고 LLM 애플리케이션을 만드는 도구다.
  • RAG(검색 증강 생성)는 PDF 같은 외부 문서를 벡터로 변환해 저장해 두고, 질문과 관련된 부분을 찾아 프롬프트에 함께 넣어 LLM이 답하게 하는 방식이다.
  • 예제는 식당 Q&A PDF를 근거로 영업시간·메뉴·예약 등을 답하는 챗봇으로, 사용자 이름을 세션 ID로 삼아 대화 기록을 따로 보관한다.
  • 벡터 저장은 DataStax의 Astra DB, 임베딩과 LLM은 OpenAI를 쓰지만 Ollama·Hugging Face 등 다른 모델로 교체할 수 있다.
  • 완성된 플로우는 JSON으로 내보내고 불러올 수 있어 공유와 재사용이 쉽다.

쉽게 이해하기

발표자는 코드를 한 줄도 쓰지 않고 RAG(retrieval augmented generation, 검색 증강 생성) 기반 AI 앱을 만드는 방법을 보여준다. 핵심 도구는 Langflow로, 미리 만들어진 컴포넌트를 화면에서 끌어와 직관적으로 연결하고 그 자리에서 바로 실행할 수 있는 비주얼 플랫폼이다. Langflow는 무료이며 파이썬 3.10 이상 환경에서 pip로 설치해 로컬에서 구동한다.

시연 앱은 식당용 챗봇이다. 자주 받는 질문(영업시간, 위치, 결제 수단 등)을 담은 PDF 문서를 LLM에 전달하면, 모델이 그 문서를 근거로 답한다. 사용자가 "몇 시에 여나요? 예약이 필요한가요?"라고 물으면 PDF 속 정보를 조합해 영업시간과 예약 안내를 응답한다. 또한 대화 기록을 저장해 직전에 무엇을 물었는지 기억한다.

기본 파이프라인은 텍스트 입력(사용자 이름) → 채팅 입력(질문) → 프롬프트 템플릿 → 채팅 메모리 → LLM → 채팅 출력으로 구성된다. 프롬프트 템플릿에는 중괄호로 context·question·history 변수를 넣어 "주어진 맥락을 바탕으로 사용자의 질문에 답하라"는 식으로 구조를 짠다. 채팅 메모리는 사용자 이름을 세션 ID로 사용하므로, 이름을 Tim에서 Sarah로 바꾸면 그 사람의 대화 기록만 따로 불러온다.

RAG의 핵심인 문서 검색은 벡터 데이터베이스로 구현한다. 영상에서는 DataStax의 Astra DB(서버리스 벡터 DB, Google Cloud)를 무료로 만들어 연결한다. 파일 로더로 PDF를 불러와 텍스트를 작은 청크로 분할하고, OpenAI 임베딩으로 벡터화해 DB에 저장한다. 사용자가 질문하면 같은 임베딩으로 질문을 벡터화해 DB에서 관련 청크를 찾아 프롬프트의 context로 주입한다.

LLM은 OpenAI를 사용하며 API 키가 필요하다(최근에는 계정에 소액을 충전해야 정상 동작한다). 다만 모델 컴포넌트만 바꾸면 Ollama 같은 로컬 모델이나 Hugging Face 등 다른 모델로 교체할 수 있다. 한 가지 주의점은 벡터 스토어가 처음 만들어지기 전 첫 질문에는 제대로 답하지 못하고, 두 번째 질문부터 정상 응답이 나온다는 것이다. 완성된 플로우는 JSON으로 내보내고 드래그로 다시 불러올 수 있다.

주요 인사이트

  • RAG는 모델을 재학습시키지 않고도 특정 문서·도메인 지식을 답변에 반영하는 실용적인 방법으로, 식당뿐 아니라 어떤 업종의 FAQ 챗봇에도 같은 구조를 적용할 수 있다.
  • 비주얼 로우코드 도구는 임베딩·벡터 검색·프롬프트·메모리 같은 RAG의 구성 요소를 블록으로 보여줘, 파이프라인의 데이터 흐름을 이해하는 학습 도구로도 유용하다.
  • 세션 ID로 사용자별 대화 기록을 분리하는 설계는 여러 사용자가 같은 챗봇을 쓸 때 맥락이 섞이지 않게 하는 기본 패턴이다.
  • 문서를 통째로 넣지 않고 청크로 쪼개 임베딩하는 이유는, 질문과 가장 관련 있는 일부만 정확히 찾아 프롬프트에 넣기 위해서다.
  • OpenAI에 종속되지 않고 모델을 자유롭게 교체할 수 있다는 점은, 비용이나 데이터 보안 요건에 따라 로컬 LLM으로 전환할 여지를 남긴다.

자주 묻는 질문

RAG(검색 증강 생성)란 무엇인가요?

PDF 같은 외부 문서를 벡터로 변환해 데이터베이스에 저장해 두고, 사용자의 질문과 관련된 부분을 검색해 프롬프트에 함께 넣어 LLM이 그 정보를 근거로 답하게 하는 방식입니다.

Langflow를 쓰려면 무엇이 필요한가요?

파이썬 3.10 이상 환경에서 pip로 Langflow를 설치하면 로컬에서 무료로 실행됩니다. 예제에서는 벡터 저장에 DataStax Astra DB, 임베딩과 LLM에 OpenAI API 키를 사용합니다.

반드시 OpenAI를 써야 하나요?

아닙니다. 영상에서는 가장 간단해서 OpenAI를 쓰지만, 모델 컴포넌트를 Ollama 같은 로컬 모델이나 Hugging Face 등 다른 모델로 바꿀 수 있습니다.

대화 기록은 어떻게 사용자별로 구분되나요?

채팅 메모리 컴포넌트가 사용자 이름을 세션 ID로 사용합니다. 이름을 바꾸면 해당 사용자의 대화 기록만 불러오므로 사용자마다 별도의 맥락이 유지됩니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식