Descriere & Utilizare
În mod implicit, VectorStoreIndex.from_documents() păstrează toți vectorii doar în memoria RAM. Când scriptul Python se termină, indexul dispare, iar la următoarea rulare ar trebui să plătești și să aștepți din nou calcularea embedding-urilor.
Apelul index.storage_context.persist(persist_dir='./stocare_index') serializează pe disc 4 fișiere JSON: docstore.json (textul nodurilor), vector_store.json (vectorii matematici), index_store.json (structura indexului) și graph_store.json.
La pornirile ulterioare ale aplicației, verifici dacă folderul există și încarci indexul în mai puțin de o secundă cu load_index_from_storage().
Cum să o reții ușor
💡 Ca înghețarea unor porții de mâncare gătită: gătești o singură dată duminică (indexarea documentelor), pui caserolele la congelator (`persist`), iar în timpul săptămânii doar le încălzești în 2 minute (`load_index_from_storage`).
Opțiuni și parametri tehnici
StorageContextreunește referințele către Document Store, Index Store și Vector Store.- Metoda
.persist()scrie structurile din memorie pe sistemul de fișiere local (sau într-un bucket S3 / GCS). load_index_from_storagereconstruiește obiectulVectorStoreIndexfără niciun apel către API-ul de embedding.
Exemple practice și cazuri de utilizare
- Tipar standard de producție:
import os
if not os.path.exists('./storage'):
docs = SimpleDirectoryReader('./data').load_data()
index = VectorStoreIndex.from_documents(docs)
index.storage_context.persist('./storage')
else:
ctx = StorageContext.from_defaults(persist_dir='./storage')
index = load_index_from_storage(ctx)
Sfaturi de configurare & capcane
Persistența în fișiere JSON locale este excelentă pentru până la 10.000 – 20.000 de noduri. Peste acest volum, fișierul vector_store.json devine prea mare și este recomandat să treci la ChromaVectorStore sau QdrantVectorStore.
Comenzi și ghiduri înrudite
vector-store-integrations: Resursă asociată din acest modul.vector-store-index: Resursă asociată din acest modul.simple-directory-reader: Resursă asociată din acest modul.