PDFParser: PDF 문서 로드 및 파싱HTMLParser: HTML 문서 로드 및 파싱WordParser: WORD 문서 로드 및 파싱
RecursiveChunker: 계층적 구분자 기반SemanticChunker: 의미 기반 경계 감지 (OpenAI 임베딩 사용)TokenChunker: 간단한 고정 구분자TextTilingChunker: 주제 변화 감지TFIDFChunker: TF-IDF 유사도 기반
SentenceTransformer: 로컬, 빠르고 무료 (기본: 한국어 최적화 모델)OpenAI Embeddings: 최첨단 성능, API 기반EmbeddingProcessor: 자동 캐싱, 배치 처리
ChromaDB: 로컬 우선, 경량화 (개발/프로토타이핑)Milvus: 엔터프라이즈급, 수십억 벡터 확장Elasticsearch: 전문 검색 + 벡터 검색
DenseRetriever: 표준 시맨틱 검색MultiQueryRetriever: LLM으로 쿼리 변형 생성EnsembleRetriever: 여러 검색기 결합 (RRF)Rerankers: CrossEncoder, LLM 기반
doc = parser.parse("path/to/document.pdf")
chunks = chunker.chunk(doc["text"], metadata=doc["metadata"])indexing_pipeline = IndexingPipeline(
embedding_model=embedding_model,
vector_store=vector_store
)
texts = [chunk["text"] for chunk in chunks]
metadatas = [chunk["metadata"] for chunk in chunks]
ids = indexing_pipeline.run(texts=texts, metadatas=metadatas)from retreivers.dense_retriever import DenseRetriever
from pipeline.retrieval import RetrievalPipeline
retriever = DenseRetriever(
vector_store=vector_store,
embedding_model=embedding_model
)
retrieval_pipeline = RetrievalPipeline(retriever=retriever)
results = retrieval_pipeline.run(query="질문", top_k=5)from retreivers.advanced.multi_query_retriever import MultiQueryRetriever
from retreivers.rerankers.cross_encoder_reranker import CrossEncoderReranker
multi_query_retriever = MultiQueryRetriever(
base_retriever=retriever,
api_key=settings.OPENAI_API_KEY,
num_queries=3
)
reranker = CrossEncoderReranker()
advanced_pipeline = RetrievalPipeline(
retriever=multi_query_retriever,
reranker=reranker
)
results = advanced_pipeline.run(query="질문", top_k=5)