LlamaIndex는 **언어 모델(LLM)**과 **외부 데이터(문서, DB 등)**를 연결해주는 데이터 프레임워크입니다.

 

• LlamaIndex = LLM + 외부 데이터 연결을 쉽게 만들어주는 도구

 

LLM은 자체적으로 인터넷이나 PDF, 데이터베이스 같은 구조화되지 않은 데이터에 접근할 수 없습니다. LlamaIndex는 이런 데이터들을 정리하고 쪼개고 인덱싱해서, LLM이 쉽게 "질문-답변", "요약", "검색 기반 생성(RAG)" 등을 할 수 있게 도와주는 라이브러리입니다.

 

• LlamaIndex가 할 수 있는 작업

    ◦ 문서 로딩 : PDF, Word, HTML, Notion, Airtable 등 다양한 형식의 문서를 읽어옴

    ◦ Chunking : 문서를 적절한 크기로 나눔 (LLM이 다루기 쉽게)

    ◦ Embedding + Indexing : 문서를 벡터화하고 검색 가능한 인덱스를 만듦

    ◦ Query Engine : 사용자 질문을 받아서 적절한 문서 찾고 답변 생성

 

• 주요 예시

from llama_index import VectorStoreIndex, SimpleDirectoryReader

# 문서 로딩
documents = SimpleDirectoryReader("data/").load_data()

# 인덱스 생성 (벡터화 포함)
index = VectorStoreIndex.from_documents(documents)

# 질의 엔진 생성
query_engine = index.as_query_engine()

# 질의
response = query_engine.query("이 회사의 수익 모델은 무엇인가요?")
print(response)

 

• 핵심 구성 요소

    ◦ Document : 원본 텍스트 데이터
    ◦ Node : 문서에서 쪼갠 텍스트 블록 (보통 하나의 파라그래프 단위)
    ◦ Index : 벡터 기반 검색 인덱스 (FAISS, Chroma 등 지원)
    ◦ Query Engine : 질의 → 검색 → 응답 생성 파이프라인
    ◦ Retriever : 관련 문서를 찾는 부분
    ◦ Response Synthesizer : 관련 문서들을 종합해서 답변 생성

 

• 사용 목적

    ◦ 내 회사 문서를 기반으로 GPT 질의 응답
    ◦ PDF 논문 요약
    ◦ SQLite, Notion, Airtable 등 다양한 데이터 연결
    ◦ RAG (Retrieval-Augmented Generation)

+ Recent posts