ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LlamaIndex] Storing
    카테고리 없음 2024. 1. 22. 16:24

    데이터를 로드하고 Indexing한 후에는 다시 Indexing하는 데 드는 시간과 비용을 피하기 위해 해당 데이터를 저장하는 것이 좋습니다. 기본적으로 Indexing된 데이터는 메모리에만 저장됩니다.

     

    ○ 특정 경로에 저장

    아래 코드는 지정된 경로에 Indexing 데이터를 저장하고 다시 불러오는 예시 입니다.

    from llama_index import StorageContext, load_index_from_storage
    
    # Indexing된 데이터를 특정 경로에 저장
    storage_context.persist(persist_dir="<persist_dir>")
    
    # rebuild storage context
    storage_context = StorageContext.from_defaults(persist_dir="<persist_dir>")
    
    # load index
    index = load_index_from_storage(storage_context)

     

     

    ○ 특정 Vector DB 사용

    특정 Vector DB인 Pinecone을 사용하는 예시는 아래와 같습니다.

    import pinecone
    from llama_index import VectorStoreIndex, SimpleDirectoryReader
    from llama_index.vector_stores import PineconeVectorStore
    
    # Creating a Pinecone index
    api_key = "api_key"
    pinecone.init(api_key=api_key, environment="us-west1-gcp")
    pinecone.create_index(
        "quickstart", dimension=1536, metric="euclidean", pod_type="p1"
    )
    index = pinecone.Index("quickstart")
    
    # construct vector store
    vector_store = PineconeVectorStore(pinecone_index=index)
    
    # create storage context
    storage_context = StorageContext.from_defaults(vector_store=vector_store)
    
    # load documents
    documents = SimpleDirectoryReader("./data").load_data()
    
    # create index, which will insert documents/vectors to pinecone
    index = VectorStoreIndex.from_documents(
        documents, storage_context=storage_context
    )

     

    데이터가 이미 로드된 기존 벡터 저장소가 있는 경우 여기에 연결하여 VectorStoreIndex다음과 같이 직접 생성할 수 있습니다.

    index = pinecone.Index("quickstart")
    vector_store = PineconeVectorStore(pinecone_index=index)
    loaded_index = VectorStoreIndex.from_vector_store(vector_store=vector_store)

     

Designed by Tistory.