llama_index получает документ, на который ссылается node_sources

Я получаю хорошие результаты, когда llama_index индексирует PDF-файлы, однако мне не удается определить, в каком PDF-файле он нашел результаты, чтобы основывать свои ответы. result.node_sources использует идентификатор документа, который, по-видимому, генерируется внутри него. Как я могу получить ссылку на документ?

2 ответа

Получил этот ответ непосредственно от команды Llama -

Спасибо за вопросы и за вашу поддержку LlamaIndex. Есть несколько общих подходов, которые вы можете использовать:

  • Вставляйте метаданные в каждый документ, например имя файла, ссылку и т. д. Многие загрузчики LlamaHub уже должны автоматически добавлять метаданные в extra_info, но вы можете добавить/удалить extra_info самостоятельно, если хотите. Эта extra_info вводится в каждый Node. Когда вы получаете ответ от механизма запросов, вы можете сделатьresponse.source_nodesчтобы получить соответствующие источники.

Эти источники будут содержать как исходный текст, так и метаданные. Взгляните на этот документ:https://gpt-index.readthedocs.io/en/latest/how_to/customization/custom_documents.html#customizing-documents .

  • Предполагая, что вы добавите соответствующие метаданные в файлextra_infoполе, вы можете либо изменить строку запроса, либо подсказки по обеспечению качества/уточнения и сказать что-то вроде «Пожалуйста, укажите источники вместе с вашим ответом» в любом из них.

Строку запроса, к которой вы можете просто добавить, для настройки подсказок см. на https://gpt-index.readthedocs.io/en/latest/how_to/customization/custom_prompts.html .

Кажется, они изменили «extra_info» на «метаданные».

Я использовал этот код, и он работает отлично:

          if hasattr(response, 'metadata'):
        document_info = str(response.metadata)
        find = re.findall(r"'page_label': '[^']*', 'file_name': '[^']*'", document_info)

        print('\n'+'=' * 60+'\n')
        print('Context Information')
        print(str(find))
        print('\n'+'=' * 60+'\n')
Другие вопросы по тегам