LlamaIndex中的文档定义与自定义
在LlamaIndex中,文档(Document)是一个核心概念,它允许我们以多种方式定义和自定义数据源。本文将详细介绍如何定义和自定义文档,以便更好地满足你的需求。
定义文档
文档可以通过数据加载器自动创建,也可以手动构造。
自动创建文档
默认情况下,所有数据加载器(包括LlamaHub提供的那些)通过load_data
函数返回文档对象。
from llama_index.core import SimpleDirectoryReader
documents = SimpleDirectoryReader("./data").load_data()
手动构造文档
你也可以选择手动构造文档。LlamaIndex提供了Document
结构体。
from llama_index.core import Document
text_list = [text1, text2, ...]
documents = [Document(text=t) for t in text_list]
为了加快原型设计和开发,你可以使用一些默认文本快速创建文档:
document = Document.example()
自定义文档
本节将介绍各种自定义文档对象的方法。由于文档对象是TextNode
对象的子类,所有这些设置和细节也适用于TextNode
对象类。
元数据(Metadata)
文档还提供了包含有用元数据的机会。使用每个文档上的元数据字典,可以包含额外的信息,以帮助响应查询并跟踪查询响应的来源。这些信息可以是任何内容,例如文件名或类别。如果你与向量数据库集成,请记住一些向量数据库要求键必须是字符串,值必须是平面的(字符串、浮点数或整数)。
在文档的元数据字典中设置的任何信息将显示在从文档创建的每个源节点的元数据中。此外,这些信息包含在节点中,使索引能够在查询和响应中利用它。默认情况下,元数据被注入到文本中,用