LocalFilesystemMemory — это слой над GPTSimpleVectorIndex индекса Llama, который абстрагирует детали управления индексами, сохраненными на диске. Он предполагает/создает структуру каталогов для хранения индексов и предоставляет простой интерфейс для управления ими.
Пример использования некоторых файлов Википедии, которые вы можете найти в этом репозитории:
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 ))
Возврат: 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)
: основная точка входа, где можно задать вопрос.memory.create_index(name, docs, description=None)
: основной способ создания индекса. Документы могут быть строками, списками строк или списками объектов Document GPTIndex.memory.update_index(name, docs)
: обновить индекс новыми документами.memory.delete_index(name)
: Удалить индекс.Под капотом эти функции используют:
memory.get_index(name)
memory.query_index(name, prompt)
memory.find_most_relevant_index(prompt)
Под капотом структура каталогов выглядит следующим образом:
- index_folder/
- metadata.json
- indexes/
- index_1.json
- index_2.json
- ...
Файл метаданных.json содержит следующую информацию:
{
"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.",
},
]
}