
llamaindex
文章平均质量分 76
需要重新演唱
这个作者很懒,什么都没留下…
展开
-
llamaindex 摄取管道(Ingestion Pipeline)
你可以通过实现基类来实现任何转换。import re这些可以直接使用或在任何摄取管道中使用。# 在管道中使用],通过这些详细的解释和示例,希望你能更好地理解和使用 LlamaIndex 中的摄取管道功能。原创 2024-07-31 16:26:53 · 532 阅读 · 0 评论 -
节点解析器使用模式(Node Parser Usage Pattern)
节点解析器(Node Parser)是一个简单的抽象,它接受一组文档,并将它们分割成节点对象,每个节点是父文档的一个特定块。默认标签是:[“p”, “h1”, “h2”, “h3”, “h4”, “h5”, “h6”, “li”, “b”, “i”, “u”, “section”],自动为每种类型的内容使用最佳的节点解析器。然后,你可能希望将基于文件的节点解析器与基于文本的节点解析器链接起来,以考虑文本的实际长度。这意味着单个输入将被分割成几个层次的块大小,每个节点包含对其父节点的引用。原创 2024-07-31 16:22:07 · 603 阅读 · 0 评论 -
数据连接器(Data Connectors)
你可以创建自定义的数据连接器,以满足特定需求。# 假设我们从 URL 获取数据并返回文档# 使用自定义读取器# 构建索引# 创建查询引擎# 查询response = query_engine.query("你的查询问题")通过这些详细的解释和示例,希望你能更好地理解和使用 LlamaIndex 中的数据连接器功能。原创 2024-07-31 16:16:21 · 879 阅读 · 0 评论 -
llamaindex SimpleDirectoryReader的使用
如果从一个目录中加载许多文件,可以使用并行处理来加载文档。注意,在 Windows 和 Linux/MacOS 机器上使用多进程时存在差异,这在多进程文档中有解释(例如,参见这里)。最终,Windows 用户可能会看到较少或没有性能提升,而 Linux/MacOS 用户在加载相同的一组文件时会看到这些提升。注意,此映射将覆盖你指定的文件类型的默认文件提取器,因此如果你希望支持它们,需要将它们添加回来。你可以指定一个函数,该函数将读取每个文件并提取附加到每个文件的。对象的元数据,方法是将该函数作为。原创 2024-07-31 16:10:15 · 1324 阅读 · 0 评论 -
llamaindex 元数据提取使用模式(Metadata Extraction Usage Pattern)
这里我们定义元数据提取器。只包含包含和我们还展示了如何实例化和。),),原创 2024-07-31 16:04:10 · 714 阅读 · 0 评论 -
llamaindex 定义和自定义节点(Defining and Customizing Nodes)
节点(Nodes)表示源文档的“块”,无论是文本块、图像还是其他。它们还包含元数据和与其他节点及索引结构的关系信息。节点是 LlamaIndex 中的一等公民。你可以选择直接定义节点及其所有属性,也可以选择通过我们的NodeParser类将源文档解析为节点。每个节点都有一个node_id属性,如果未手动指定,则会自动生成。这个 ID 可以用于多种目的,包括能够在存储中更新节点、能够定义节点之间的关系(通过IndexNode)等。你也可以直接获取和设置任何TextNode的node_id。原创 2024-07-31 15:58:49 · 577 阅读 · 0 评论 -
定义和自定义文档(Defining and Customizing Documents)
文档可以通过数据加载器自动创建,也可以手动构造。默认情况下,我们所有的数据加载器(包括 LlamaHub 提供的那些)通过load_data函数返回Document对象。你也可以选择手动构造文档。LlamaIndex 暴露了Document结构体。text_list = [text1, text2, ...] # 假设 text1, text2 等是你的文本数据本节介绍各种自定义Document对象的方法。由于Document对象是TextNode对象的子类,所有这些设置和细节也适用于TextNode。原创 2024-07-31 15:54:42 · 460 阅读 · 0 评论 -
llamaindex 文档和节点(Documents / Nodes)
你可以创建自定义的节点解析器,以满足特定需求。nodes = []# 使用自定义解析器通过这些示例和拓展,希望你能更好地理解和使用 LlamaIndex 中的Document和Node抽象。原创 2024-07-31 15:50:18 · 1333 阅读 · 0 评论 -
llamaindex --- 流式响应(Streaming)
要启用流式响应,你需要使用支持流式处理的 LLM。流式响应是指在生成响应的过程中,逐步地将生成的部分结果返回给用户。这种方式允许用户在完整响应生成之前就开始处理或打印响应的开头部分,从而大大减少查询的感知延迟。:在查询引擎进行多次 LLM 调用的情况下,只有最后一次 LLM 调用会被流式处理,并且响应会在最后一次 LLM 调用开始时返回。通过这种方式,用户可以在完整响应生成之前就开始处理或打印部分结果,从而提高查询的响应速度和用户体验。接着,我们配置了查询引擎以使用流式响应,并进行了查询。原创 2024-07-31 15:43:06 · 1073 阅读 · 0 评论 -
llamaindex -- 响应模式(Response Modes)
概念解释树摘要模式使用提示尽可能多地查询 LLM,直到所有连接的文本块都被查询,生成多个答案,这些答案本身被视为文本块,递归地用于树摘要 LLM 调用,直到只剩下一个文本块和一个最终答案。详细过程尽可能多地连接文本块,使其适应上下文窗口大小,使用提示进行查询,并根据需要拆分(使用和一些文本重叠)。对每个生成的文本块/拆分进行查询(没有精炼查询!),并获取多个答案。如果只有一个答案(因为只有一个文本块),则它是最终答案。原创 2024-07-31 15:39:00 · 826 阅读 · 0 评论 -
Prompt ---- lamaIndex 中的提示功能 - 自定义prompt
定义自定义提示非常简单,只需创建一个格式化字符串即可。# 你可以创建文本提示(用于 completion API)prompt = qa_template.format(context_str="上下文信息", query_str="问题")# 或者轻松转换为消息提示(用于 chat API)messages = qa_template.format_messages(context_str="上下文信息", query_str="问题")),# 你可以创建消息提示(用于 chat API)原创 2024-07-31 15:16:11 · 697 阅读 · 0 评论 -
llamaindex 元数据提取
"\n"将自动在底层调用aextract(),以提供同步和异步入口点。在一个更高级的示例中,它还可以利用LLM从节点内容和现有元数据中提取特征。有关更多详细信息,请参阅提供的元数据提取器的源代码。原创 2024-07-30 16:37:17 · 629 阅读 · 0 评论 -
llamaindex 文档管理
然而,当设置为False时,这些节点在查询时不会被使用,因为它们将从索引的index_struct中删除,index_struct跟踪哪些节点可以用于查询。文档管理是LlamaIndex中非常重要的功能,它允许你对索引中的文档进行动态管理,包括插入、删除、更新和刷新操作。插入的底层机制取决于索引结构。如果一个文档已经存在于索引中,你可以使用相同的doc id更新文档(例如,如果文档中的信息发生了变化)。任何使用文档存储的索引(即除大多数向量存储集成之外的所有索引),你还可以查看已插入到文档存储中的文档。原创 2024-07-30 16:31:47 · 580 阅读 · 0 评论 -
llamaindex 使用向量存储索引(VectorStoreIndex)
在实际应用中,结合不同的向量存储和自定义节点处理,可以实现更复杂和精细的检索需求。向量存储(Vector Stores)是检索增强生成(RAG)的关键组件,因此你几乎会在使用LlamaIndex构建的每个应用程序中直接或间接地使用它们。有关如何使用持久向量存储的更多信息,请参阅下面的“使用向量存储”部分。时,你的文档会被分割成块并解析为节点对象,这些节点对象是文本字符串的轻量级抽象,用于跟踪元数据和关系。有关如何使用VectorStoreIndex与特定向量存储的示例,请查看存储部分下的向量存储。原创 2024-07-30 16:28:13 · 2662 阅读 · 0 评论 -
llamaindex 索引的工作原理
总结索引简单地将节点存储为一个顺序链。# 加载文档# 创建总结索引# 查询索引response = index.query("你的查询")原创 2024-08-05 07:45:00 · 653 阅读 · 0 评论 -
llamaindex -- 路由器(Routers)概念讲解
定义路由器的核心是定义一个选择器。原创 2024-07-30 14:59:13 · 551 阅读 · 0 评论 -
llamaindex 路由查询引擎
在本教程中,我们定义了一个自定义路由查询引擎,该引擎从多个候选查询引擎中选择一个来执行查询。我们为每个索引定义一个查询引擎。然后使用包装这些查询引擎。),),有几种选择器可用,每种都有一些独特的属性。LLM 选择器使用 LLM 输出一个解析的 JSON,并查询相应的索引。Pydantic 选择器(目前仅支持 gpt-4-0613 和 gpt-3.5-turbo-0613(默认))使用 OpenAI 函数调用 API 生成/解析 pydantic 选择对象,而不是解析原始 JSON。原创 2024-07-29 16:35:39 · 420 阅读 · 0 评论 -
llamaindex 检索器路由查询引擎
在本教程中,我们定义了一个基于检索器(retriever)的路由查询引擎。检索器将选择一组节点,然后我们选择正确的查询引擎(QueryEngine)。我们使用新的类来实现这一点!我们为每个索引定义一个查询引擎。然后使用包装这些查询引擎。),我们定义一个路由查询引擎,该引擎通过检索机制增强,以帮助处理选项集过大的情况。首先,我们在查询引擎工具集上定义一个。然后使用类,并传入一个对象。这个检索器可以在查询时动态检索相关的查询引擎。原创 2024-07-29 16:31:13 · 568 阅读 · 0 评论 -
llamaindex 自定义检索器的混合搜索
在本教程中,我们将展示如何定义一个非常简单的混合搜索版本!结合关键词查找检索和向量检索,使用“AND”和“OR”条件。我们定义一个自定义检索器类,可以实现基本的关键词查找和语义搜索的混合搜索。原创 2024-07-29 16:28:11 · 852 阅读 · 0 评论 -
llamaindex 集成查询引擎指南
在构建检索增强生成(RAG)应用程序时,通常需要尝试不同的查询管道(例如,top-k 检索、关键词搜索、知识图谱)。如果我们能够同时尝试多种策略,并让语言模型(LLM)评估每个查询的相关性并综合结果,那将会非常有用。本指南展示了如何在《了不起的盖茨比》上进行集成检索。我们通过不同的分块大小和不同的索引进行集成检索。原创 2024-07-29 16:21:36 · 554 阅读 · 0 评论 -
llamaindex 自定义查询引擎的定义与实现
在 LlamaIndex 中,您可以(并且应该)定义自定义查询引擎,以便将其集成到下游的 LlamaIndex 工作流中,无论是构建 RAG(检索增强生成)、代理还是其他应用程序。我们提供了一个,使定义您自己的查询变得容易。我们构建一个自定义查询引擎,模拟 RAG 管道。首先执行检索,然后进行合成。要定义一个,您只需定义一些初始化参数作为属性并实现函数。选项 1:返回一个Response对象(RAGQueryEngine)选项 2:返回一个字符串(使用原始 LLM 调用进行说明)"Answer: "原创 2024-07-29 16:07:43 · 566 阅读 · 0 评论 -
LlamaIndex-Recursive Retriever + Query Engine
通过本课程,我们详细讲解了Recursive Retriever和Query Engine的概念及其在LlamaIndex中的应用。我们介绍了如何加载文档和表格、创建Pandas查询引擎、构建向量索引,以及如何在RetrieverQueryEngine中使用RecursiveRetriever。这些内容将帮助学生更好地理解和应用LlamaIndex中的递归检索和查询功能。原创 2024-07-25 16:18:23 · 862 阅读 · 0 评论 -
LlamaIndex-Summarization-摘要索引
示例代码# 从文档创建摘要索引# 创建查询引擎,设置响应模式为 tree_summarize# 执行摘要查询在这个示例中,我们首先使用方法从文档创建摘要索引。然后,我们创建一个查询引擎,并将响应模式设置为,以获得更好的摘要结果。最后,我们执行摘要查询并获取响应。通过本课程,我们详细讲解了Summarization的概念及其在LlamaIndex中的应用。我们介绍了如何创建和使用摘要索引,以及如何设置响应模式以获得更好的摘要结果。这些内容将帮助学生更好地理解和应用LlamaIndex中的摘要功能。原创 2024-07-25 16:12:53 · 686 阅读 · 0 评论 -
LlamaIndex --- Evaluating
通过本课程,我们详细讲解了Evaluating的概念及其在LlamaIndex中的应用。我们介绍了响应评估和检索评估的基本步骤和示例代码。这些内容将帮助学生更好地理解和应用LlamaIndex中的评估功能。原创 2024-07-25 16:06:32 · 323 阅读 · 0 评论 -
LlamaIndex --- Storing
通过本课程,我们详细讲解了Storing的概念及其在LlamaIndex中的应用。我们介绍了如何将索引数据持久化到磁盘,以及如何使用向量存储来存储和加载嵌入。这些内容将帮助学生更好地理解和应用LlamaIndex中的数据存储功能。原创 2024-07-25 15:59:02 · 579 阅读 · 0 评论 -
LlamaIndex --- Indexing
通过本课程,我们详细讲解了Indexing的概念及其在LlamaIndex中的应用。我们介绍了Vector Store Index和Summary Index两种常见的索引类型,以及如何使用这些索引进行数据查询。原创 2024-07-25 15:55:25 · 505 阅读 · 0 评论 -
LlamaIndex --- Transformations
通过本课程,我们详细讲解了Loader的概念及其在LlamaIndex中的应用。我们介绍了如何使用从目录中加载数据,如何从 LlamaHub 下载并使用数据连接器,以及如何直接创建Document对象。这些内容将帮助学生更好地理解和应用LlamaIndex中的数据加载功能。原创 2024-07-25 15:49:49 · 491 阅读 · 0 评论 -
LlamaIndex --- Loader
通过本课程,我们详细讲解了Loader的概念及其在LlamaIndex中的应用。我们介绍了如何使用从目录中加载数据,如何从 LlamaHub 下载并使用数据连接器,以及如何直接创建Document对象。这些内容将帮助学生更好地理解和应用LlamaIndex中的数据加载功能。原创 2024-07-25 15:46:44 · 409 阅读 · 0 评论