llama_index
무엇인가
LlamaIndex OSS는 사설 데이터를 LLM 애플리케이션에 연결하는 Python 데이터 프레임워크다. 원본 데이터 소스와 LLM 애플리케이션 사이에서 수집·구조화·검색 계층을 담당한다. 같은 저장소가 배포하는 상용 플랫폼 LlamaParse와는 별개로, 오픈소스 툴킷으로 계속 공개되어 있다.
어떻게 동작하나
동작은 세 단계로 나뉜다. 데이터 커넥터가 API, PDF, 문서, SQL 같은 기존 소스를 읽어 들이고, 인덱스와 그래프로 데이터를 구조화한 뒤, 검색·질의 인터페이스가 입력 프롬프트에 대해 검색된 컨텍스트와 지식 증강 출력을 돌려준다. 기본 저장소는 메모리이며, 디스크에 남기려면 `./storage` 아래로 영속화하고 다시 로드하는 호출을 쓴다. 패키지 이름공간은 import에 `core`가 들어가면 코어 패키지, 없으면 통합 패키지를 뜻한다.
무엇과 다른가
LangChain 같은 범용 오케스트레이션 프레임워크와 달리 데이터 수집과 인덱싱, 검색을 중심에 둔다. 외부 애플리케이션 프레임워크와 배타적이지 않아 LangChain, Flask, Docker, ChatGPT 등과 함께 쓸 수 있다. LlamaParse는 파싱·추출·인덱싱을 맡는 호스팅 플랫폼이고, 이 프레임워크는 그 위에 앱을 짓는 오픈소스 계층이다.
어떻게 쓰나
설치는 스타터 패키지 `llama-index`로 코어와 선별된 통합을 한 번에 받거나, `llama-index-core`만 설치하고 LlamaHub에서 필요한 통합 패키지를 고르는 두 갈래다. 이후 벡터 스토어 인덱스를 만들어 OpenAI나 Ollama 같은 LLM으로 질의하고, 필요하면 `./storage`에 저장하고 다시 로드한다.
전제와 한계
Python 라이브러리이며 LLM과 임베딩 제공자가 있어야 질의가 동작한다. 통합 패키지는 코어와 별도로 설치해야 하고, 새 통합은 기존 컴포넌트와 실질적으로 맞물려야 하며 유지관리자 판단으로 거절될 수 있다. `llama-index-core`에는 nltk와 tiktoken 캐시가 `_static` 폴더로 동봉되어 디스크 접근이 제한된 환경에서도 실행된다. README는 문서보다 갱신이 느리다.
관련 논문 3
유사 도구
- langchainLLM 애플리케이션과 에이전트를 조립하는 Python 프레임워크다. 모델·임베딩·벡터 스토어·툴을 표준 인터페이스로 감싸 제공자 교체를 코드 수정 없이 처리한다.
- haystack검색·라우팅·메모리·생성을 명시적 파이프라인과 에이전트 워크플로로 조립하는 Python LLM 오케스트레이션 프레임워크다.
- PageIndex벡터 DB와 청킹 없이 문서를 계층적 트리 인덱스로 만들고, LLM이 그 트리를 추론으로 탐색해 근거 위치를 찾는 RAG 엔진이다.
- onyxLLM 애플리케이션 계층으로, RAG·웹 검색·코드 실행·에이전트를 갖춘 셀프호스팅 AI 채팅 플랫폼이다. 50개 이상 커넥터로 사내 데이터를 색인한다.
- crewAI역할 기반 자율 AI 에이전트를 Crews로 묶고, 이벤트 기반 Flows로 실행을 제어하는 Python 멀티에이전트 오케스트레이션 프레임워크다.
- autogen여러 AI 에이전트를 계층형 API로 조립해 대화·코드 실행·분산 런타임을 구성하는 Python 멀티에이전트 프레임워크다.