0Pricing
AI Agents · 강의

로더, 분할기 및 벡터 저장소

PDF/HTML에는 DocumentLoaders를, 청크 분할에는 TextSplitters를, 검색에는 VectorStores를 사용해보세요.

로더, 분할기 및 벡터 저장소은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

LangChain의 RAG 3가지 핵심 요소

  1. 문서 로더 — 원시 데이터를 문서로 읽습니다
  2. 텍스트 분할기 — 문서를 작은 단위로 나눕니다
  3. 벡터 저장소 — 작은 단위를 임베딩하고 색인합니다

문서 로더

LangChain에는 100개가 넘는 로더가 있습니다. 예시는 다음과 같습니다:

from langchain_community.document_loaders import PyPDFLoader, WebBaseLoader, TextLoader

pdf_docs = PyPDFLoader('handbook.pdf').load()
web_docs = WebBaseLoader('https://example.com').load()
md_docs = TextLoader('README.md').load()

문서 객체

모든 로더는 문서 목록을 반환합니다:

doc = pdf_docs[0]
print(doc.page_content)   # the text
print(doc.metadata)       # {'source': 'handbook.pdf', 'page': 1}

일반적인 로더

  • PyPDFLoader, UnstructuredFileLoader — PDF
  • WebBaseLoader, SitemapLoader — 웹 페이지
  • NotionLoader, GoogleDriveLoader — SaaS
  • GitLoader — 코드 저장소
  • SQL 데이터베이스 로더 — 데이터베이스 행

텍스트 분할기

문서를 더 작은 단위로 변환합니다:

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,
    chunk_overlap=100,
    separators=['\n\n', '\n', '. ', ' ']
)
chunks = splitter.split_documents(pdf_docs)

특수 분할기

  • MarkdownHeaderTextSplitter — 헤더를 기준으로 나눕니다
  • RecursiveCharacterTextSplitter — 문단과 문장을 인식합니다
  • HTML 헤더 텍스트 분할기 — HTML을 인식합니다
  • 언어별 분할기(파이썬, 마크다운, LaTeX)

토큰 인식 분할

모델의 토크나이저를 사용해 토큰 단위로 정확하게 나눕니다:

splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    encoding_name='cl100k_base',
    chunk_size=400,
    chunk_overlap=50
)

벡터 저장소

작은 단위를 임베딩하고 저장합니다:

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma

embeddings = OpenAIEmbeddings(model='text-embedding-3-small')
store = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory='./db'
)

Retrieval

retriever = store.as_retriever(search_kwargs={'k': 4})
results = retriever.invoke('What is our return policy?')
for d in results:
    print(d.page_content[:200])

영속성

persist_directory를 지정하면 Chroma가 디스크에 저장됩니다. 다시 불러오려면 다음과 같이 합니다:

store = Chroma(persist_directory='./db', embedding_function=embeddings)

기타 벡터 저장소

인터페이스는 같고 백엔드는 다릅니다:

from langchain_community.vectorstores import FAISS, Pinecone, Qdrant, Weaviate

store = FAISS.from_documents(chunks, embeddings)
store.save_local('./faiss_db')

MultiVectorRetriever

작은 단위를 색인하고 더 큰 상위 문서를 검색합니다:

from langchain.retrievers import MultiVectorRetriever
# Use the parent-child pattern automatically.

셀프 쿼리 검색기

LLM이 자연어에서 메타데이터 필터를 생성하도록 합니다:

from langchain.retrievers.self_query.base import SelfQueryRetriever
# 'What did Alice say in 2023?' -> filter={author: 'Alice', year: 2023}

검색기 출력

LangChain 검색기는 무엇을 반환합니까?

복습

로더 + 분할기 + 벡터 저장소 = 완전한 RAG 스택입니다. 다음에는 LCEL로 이들을 조합해 완전한 체인을 만듭니다.

자주 묻는 질문

“로더, 분할기 및 벡터 저장소” 강의는 무료인가요?

네 — “로더, 분할기 및 벡터 저장소” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“로더, 분할기 및 벡터 저장소”에서 뭘 배우나요?

PDF/HTML에는 DocumentLoaders를, 청크 분할에는 TextSplitters를, 검색에는 VectorStores를 사용해보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“로더, 분할기 및 벡터 저장소” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. LangChain 아키텍처: 모델, 프롬프트, 체인
  2. 로더, 분할기 및 벡터 저장소
  3. LCEL(LangChain 표현식 언어)
  4. 처음부터 끝까지 RAG 체인 구축
← AI Agents(으)로 돌아가기