AI Briefing

LlamaIndex v0.10

·2024.02.13 04:11

코어와 통합 패키지를 분리하고 ServiceContext를 폐기한 대형 개편.

LlamaIndex가 v0.10.0으로 올라가며 Python 패키지 구조를 대대적으로 재편했다. 핵심은 **llama-index-core**를 새로 만들고, 수백 개의 통합 기능과 템플릿을 별도 패키지로 분리한 것이다.

기존의 거대한 단일 패키지 구조에서 벗어나, 각 통합은 독립적인 PyPI 패키지로 버전 관리된다. 다만 namespace import는 유지돼 from llama_index.llms.openai import OpenAI 같은 방식으로 계속 사용할 수 있다.

변경의 배경은 명확하다.

  • 150+ data loaders, 35+ agent tools, 50+ LlamaPack templates, 50+ LLMs, 25+ embeddings, 40+ vector stores가 한꺼번에 커지면서 의존성과 테스트 관리가 어려워졌다.
  • 새 구조에서는 핵심 추상화만 llama-index-core에 남기고, 나머지는 개별 패키지로 분리했다.
  • llama-index 패키지는 기본적으로 OpenAI 관련 패키지SimpleDirectoryReader 정도만 포함한다.

폴더 구조 재편

llama-index-core는 핵심 추상화를 담고, llama-index-integrations는 LLMs, embeddings, vector stores, readers, tools 등 19개 카테고리의 통합을 포함한다. llama-index-packs50+ LlamaPacks를 담는 영역으로 정리됐다.

LlamaHub의 역할 확장

기존의 LlamaHub는 이제 단순한 loader hub를 넘어, LlamaIndex의 모든 통합을 모으는 중앙 허브로 확장된다. 다만 이 작업은 아직 진행 중이며, 당장은 새 Notion 패키지 레지스트리와 GitHub repo에서 전체 패키지를 확인할 수 있다.

breaking changes와 마이그레이션

가장 큰 호환성 변화는 import 경로다. 더 이상 from llama_index.llms import OpenAI 같은 상위 패키지 import나 llama_hub import는 지원되지 않는다. 대신 각 통합의 실제 패키지 경로를 직접 써야 하며, 이를 돕기 위한 migration guide와 자동화 스크립트도 제공된다.

ServiceContext 폐기

마지막으로 ServiceContext는 deprecated 된다. LLM, embeddings, chunk size, callbacks 등을 한 객체로 묶던 방식 대신, 이제는 필요한 인자를 직접 지정하거나 기본값을 설정하는 방향으로 단순화된다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.