LocalFilesystemMemory é uma camada sobre GPTSimpleVectorIndex do Llama Index que abstrai os detalhes do gerenciamento de índices salvos no disco. Ele assume/cria uma estrutura de diretórios para armazenar índices e fornece uma interface simples para gerenciá-los.
Um exemplo usando alguns arquivos da Wikipedia que você pode encontrar neste repositório:
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 ))
Retorna: 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)
: O principal ponto de entrada para fazer uma pergunta.memory.create_index(name, docs, description=None)
: A principal forma de criar um índice. Os documentos podem ser strings, listas de strings ou listas de objetos Document do GPTIndex.memory.update_index(name, docs)
: Atualize um índice com novos documentos.memory.delete_index(name)
: Exclui um índice.Nos bastidores, essas funções usam:
memory.get_index(name)
memory.query_index(name, prompt)
memory.find_most_relevant_index(prompt)
Nos bastidores, a estrutura de diretórios é a seguinte:
- index_folder/
- metadata.json
- indexes/
- index_1.json
- index_2.json
- ...
O arquivo metadata.json contém as seguintes informações:
{
"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.",
},
]
}