Skip to content

ooeunoo/rag_system

Repository files navigation

RAG System

주요 기능

Document Parser

  • PDFParser: PDF 문서 로드 및 파싱
  • HTMLParser: HTML 문서 로드 및 파싱
  • WordParser: WORD 문서 로드 및 파싱

Chunker

  • RecursiveChunker: 계층적 구분자 기반
  • SemanticChunker: 의미 기반 경계 감지 (OpenAI 임베딩 사용)
  • TokenChunker: 간단한 고정 구분자
  • TextTilingChunker: 주제 변화 감지
  • TFIDFChunker: TF-IDF 유사도 기반

Embedding

  • SentenceTransformer: 로컬, 빠르고 무료 (기본: 한국어 최적화 모델)
  • OpenAI Embeddings: 최첨단 성능, API 기반
  • EmbeddingProcessor: 자동 캐싱, 배치 처리

Vector Store

  • ChromaDB: 로컬 우선, 경량화 (개발/프로토타이핑)
  • Milvus: 엔터프라이즈급, 수십억 벡터 확장
  • Elasticsearch: 전문 검색 + 벡터 검색

Retriever

  • DenseRetriever: 표준 시맨틱 검색
  • MultiQueryRetriever: LLM으로 쿼리 변형 생성
  • EnsembleRetriever: 여러 검색기 결합 (RRF)
  • Rerankers: CrossEncoder, LLM 기반

1. 문서 파싱 및 청킹

doc = parser.parse("path/to/document.pdf")
chunks = chunker.chunk(doc["text"], metadata=doc["metadata"])

2. 인덱싱

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)

3. 간단한 검색

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)

4. 고급 검색 (Multi-Query + Reranking)

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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages