LocalFilesystemMemory est une couche sur GPTSimpleVectorIndex de Llama Index qui résume les détails de la gestion des index enregistrés sur le disque. Il suppose/crée une structure de répertoires pour stocker les index et fournit une interface simple pour les gérer.
Un exemple utilisant certains fichiers Wikipédia que vous pouvez trouver dans ce dépôt :
from llama_index import SimpleDirectoryReader
from gpt_memory import LocalFilesystemMemory
phil = SimpleDirectoryReader ( "gpt_memory/examples/phil" )
animals = SimpleDirectoryReader ( "gpt_memory/examples/animals" )
phil_docs = phil . load_data ()
animal_docs = animals . load_data ()
memory = LocalFilesystemMemory ( "example" )
memory . create_index ( "phil" , phil_docs )
memory . create_index ( "animals" , animal_docs )
query = "What is a capybara?"
print ( memory . query ( query ))
Retours : A capybara is a giant cavy rodent native to South America, which is the largest living rodent and a member of the genus Hydrochoerus. It inhabits savannas and dense forests, lives near bodies of water, and is a highly social species that can be found in groups as large as 100 individuals. The capybara is hunted for its meat and hide and also for grease from its thick fatty skin, but it is not considered a threatened species.
memory.query(prompt)
: Le point d'entrée principal pour poser une question.memory.create_index(name, docs, description=None)
: Le principal moyen de créer un index. Les documents peuvent être des chaînes, des listes de chaînes ou des listes d'objets Document de GPTIndex.memory.update_index(name, docs)
: Mettre à jour un index avec de nouveaux documents.memory.delete_index(name)
: Supprime un index.Sous le capot, ces fonctions utilisent :
memory.get_index(name)
memory.query_index(name, prompt)
memory.find_most_relevant_index(prompt)
Sous le capot, la structure des répertoires est la suivante :
- index_folder/
- metadata.json
- indexes/
- index_1.json
- index_2.json
- ...
Le fichier metadata.json contient les informations suivantes :
{
"index_count": 2,
"index_descriptions": [
{
"name": "index_1",
"description": "Description of index generated by GPT Index.",
},
{
"name": "index_2",
"description": "Description of index generated by GPT Index.",
},
]
}