LlamaIndex(GPT Index)는 LLM 지원을 위한 데이터 프레임워크입니다. LlamaIndex를 사용한 빌드에는 일반적으로 LlamaIndex 코어 및 선택한 통합 세트(또는 플러그인) 작업이 포함됩니다. Python에서 LlamaIndex를 사용하여 빌드를 시작하는 방법에는 두 가지가 있습니다.
스타터 : llama-index
. 핵심 LlamaIndex와 다양한 통합 기능이 포함된 스타터 Python 패키지입니다.
사용자 정의 : llama-index-core
. 핵심 LlamaIndex를 설치하고 애플리케이션에 필요한 LlamaHub에 선택한 LlamaIndex 통합 패키지를 추가하세요. 코어와 원활하게 작동하는 300개 이상의 LlamaIndex 통합 패키지가 있으므로 선호하는 LLM, 임베딩 및 벡터 저장소 공급자를 사용하여 구축할 수 있습니다.
LlamaIndex Python 라이브러리는 core
포함하는 import 문이 코어 패키지가 사용되고 있음을 암시하도록 네임스페이스가 지정되어 있습니다. 대조적으로, core
없는 이러한 설명은 통합 패키지가 사용되고 있음을 의미합니다.
# typical pattern
from llama_index . core . xxx import ClassABC # core submodule xxx
from llama_index . xxx . yyy import (
SubclassABC ,
) # integration yyy for submodule xxx
# concrete example
from llama_index . core . llms import LLM
from llama_index . llms . openai import OpenAI
LlamaIndex.TS(타입스크립트/자바스크립트)
선적 서류 비치
지저귀다
불화
참고 : 이 README는 설명서만큼 자주 업데이트되지 않습니다. 최신 업데이트는 위의 문서를 확인하세요!
LLM을 위한 데이터 확대를 수행하는 데 도움이 되는 포괄적인 툴킷이 필요합니다.
이것이 바로 LlamaIndex가 등장하는 이유입니다. LlamaIndex는 LLM 앱을 구축하는 데 도움이 되는 "데이터 프레임워크"입니다. 다음 도구를 제공합니다.
LlamaIndex는 초보자와 고급 사용자 모두를 위한 도구를 제공합니다. 우리의 고급 API를 통해 초보 사용자는 LlamaIndex를 사용하여 5줄의 코드로 데이터를 수집하고 쿼리할 수 있습니다. 당사의 하위 수준 API를 사용하면 고급 사용자는 모든 모듈(데이터 커넥터, 인덱스, 검색기, 쿼리 엔진, 순위 재지정 모듈)을 필요에 맞게 사용자 정의하고 확장할 수 있습니다.
기여하는 데 관심이 있으십니까? LlamaIndex 코어에 대한 기여와 코어를 기반으로 하는 통합 기여는 모두 허용되고 적극 권장됩니다! 자세한 내용은 기여 가이드를 참조하세요.
전체 문서는 여기에서 찾을 수 있습니다.
최신 튜토리얼, 사용법 가이드, 참고 자료 및 기타 리소스를 확인해보세요!
# custom selection of integrations to work with core
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-replicate
pip install llama-index-embeddings-huggingface
예제는 docs/examples
폴더에 있습니다. 색인은 indices
폴더에 있습니다(아래 색인 목록 참조).
OpenAI를 사용하여 간단한 벡터 저장소 인덱스를 구축하려면:
import os
os . environ [ "OPENAI_API_KEY" ] = "YOUR_OPENAI_API_KEY"
from llama_index . core import VectorStoreIndex , SimpleDirectoryReader
documents = SimpleDirectoryReader ( "YOUR_DATA_DIRECTORY" ). load_data ()
index = VectorStoreIndex . from_documents ( documents )
비OpenAI LLM(예: Replicate에서 호스팅되는 Llama 2)을 사용하여 간단한 벡터 저장소 인덱스를 구축하려면 무료 평가판 API 토큰을 쉽게 생성할 수 있습니다.
import os
os . environ [ "REPLICATE_API_TOKEN" ] = "YOUR_REPLICATE_API_TOKEN"
from llama_index . core import Settings , VectorStoreIndex , SimpleDirectoryReader
from llama_index . embeddings . huggingface import HuggingFaceEmbedding
from llama_index . llms . replicate import Replicate
from transformers import AutoTokenizer
# set the LLM
llama2_7b_chat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e"
Settings . llm = Replicate (
model = llama2_7b_chat ,
temperature = 0.01 ,
additional_kwargs = { "top_p" : 1 , "max_new_tokens" : 300 },
)
# set tokenizer to match LLM
Settings . tokenizer = AutoTokenizer . from_pretrained (
"NousResearch/Llama-2-7b-chat-hf"
)
# set the embed model
Settings . embed_model = HuggingFaceEmbedding (
model_name = "BAAI/bge-small-en-v1.5"
)
documents = SimpleDirectoryReader ( "YOUR_DATA_DIRECTORY" ). load_data ()
index = VectorStoreIndex . from_documents (
documents ,
)
쿼리하려면:
query_engine = index . as_query_engine ()
query_engine . query ( "YOUR_QUESTION" )
기본적으로 데이터는 메모리에 저장됩니다. 디스크에 유지하려면( ./storage
아래):
index . storage_context . persist ()
디스크에서 다시 로드하려면:
from llama_index . core import StorageContext , load_index_from_storage
# rebuild storage context
storage_context = StorageContext . from_defaults ( persist_dir = "./storage" )
# load index
index = load_index_from_storage ( storage_context )
우리는 모든 Python 패키지의 패키지 관리자로 시를 사용합니다. 결과적으로 각 패키지 폴더의 pyproject.toml
파일을 참조하여 각 Python 패키지의 종속성을 찾을 수 있습니다.
cd < desired-package-folder >
pip install poetry
poetry install --with dev
논문에서 LlamaIndex를 사용하는 경우 인용 참조:
@software{Liu_LlamaIndex_2022,
author = {Liu, Jerry},
doi = {10.5281/zenodo.1234},
month = {11},
title = {{LlamaIndex}},
url = {https://github.com/jerryjliu/llama_index},
year = {2022}
}