
llamindex文章
文章平均质量分 74
需要重新演唱
这个作者很懒,什么都没留下…
展开
-
多步骤查询引擎指南
我们有一个能够将复杂查询分解为顺序子问题的多步骤查询引擎。本指南将带您完成设置过程!如果在Colab上打开此Notebook,可能需要先安装LlamaIndex 🦙。!下载数据!!加载文档并构建向量存储索引import osos.environ[“OPENAI_API_KEY”] = “sk-…” # 设置您的OpenAI API密钥。原创 2025-02-27 10:26:54 · 921 阅读 · 0 评论 -
169 构建数据代理的核心:工具抽象与应用
在编程中,工具抽象是指将一组功能封装成一个接口,使得这些功能可以被其他程序或系统调用。与传统的API接口不同,工具抽象通常是为代理(Agent)或LLM设计的,而不是直接供人类使用。通过定义工具抽象,我们可以让代理或LLM更智能地选择和调用合适的工具,从而实现更高效的数据处理。__call__方法:用于定义工具的具体功能。元数据(Metadata):包括工具的名称、描述、函数模式(Function Schema)等。这些元数据对于LLM选择和调用工具至关重要。原创 2024-12-03 09:30:00 · 498 阅读 · 0 评论 -
168 深入探讨RAG管道基准测试:使用LabelledRagDataset
是一个用于评估RAG管道的数据集,类似于传统机器学习中的数据集,其中特征(X)用于预测真实标签(y)。在RAG管道中,查询(query)和检索到的上下文(retrieved contexts)作为特征,而查询的答案(reference_answer)作为真实标签。原创 2024-11-18 14:48:18 · 395 阅读 · 0 评论 -
167 构建多PDF代理:使用查询管道和HyDE
在本示例中,我们将展示如何构建一个多PDF代理,该代理可以跨多个工具进行推理,每个工具对应一个带有HyDE的RAG管道。作者:https://github.com/DoganK01下载数据和导入库设置可观测性设置多文档HyDE查询引擎/工具我们为多文档系统设置HyDE查询引擎及其工具。HyDE,即假设文档嵌入,是一种创新的检索技术,旨在增强文档检索过程的效率。该方法通过为传入查询创建一个假设文档,然后嵌入该文档来操作。生成的嵌入用于高效检索与假设文档相似的真实文档。设置ReAct代理管道什原创 2024-11-13 10:01:35 · 853 阅读 · 0 评论 -
166 添加其他工具
扩展代理能力的核心是可用的工具,我们有好消息:LlamaIndex的LlamaHub有数百个集成,包括数十个现有的代理工具,你可以立即使用。我们将向你展示如何使用其中一个现有工具,以及如何构建和贡献你自己的工具。在我们的示例中,我们将使用LlamaHub中的Yahoo Finance工具。为了展示自定义工具和LlamaHub工具如何一起工作,我们将包含之前示例中定义“乘法”工具的代码。一旦你有了一个工作的工具,请按照我们的贡献指南获取正确设置元数据和提交拉取请求的说明。我们喜欢开源的新工具贡献!原创 2024-11-06 14:27:55 · 348 阅读 · 0 评论 -
165 记忆功能
我们已经对代码进行了多次添加和删除。为了清楚地了解我们正在使用的内容,你可以在仓库中查看我们代理的当前代码。它使用OpenAI作为LLM,并使用LlamaParse来增强解析。代理记住了它已经从前面的提问中获得了预算分配,并且可以回答像“将这两个分配加在一起”这样的上下文问题,而不需要具体指定是哪些分配。它甚至正确地使用了其他加法工具来求和。这展示了LlamaIndex中代理的一个强大功能:记忆。通过展示记忆功能如何帮助,让我们为代理添加一些更复杂的工具。我们还连续添加了三个问题。原创 2024-11-06 14:26:05 · 289 阅读 · 0 评论 -
163 为代理添加RAG(检索增强生成)
你的代理现在可以使用任何任意高级的查询引擎来帮助回答问题。你还可以根据需要添加任意数量的不同RAG引擎,以查询不同的数据源。接下来,我们将看看如何使用LlamaParse回答更高级的问题。为了演示如何在代理中使用RAG引擎作为工具,我们将创建一个非常简单的RAG查询引擎。我们的源数据将是维基百科上关于2023年加拿大联邦预算的页面,我们将其打印为PDF。为了读取PDF并对其进行索引,我们需要一些新的依赖项。我们之前直接传递了LLM,但现在我们需要在多个地方使用它,因此我们将它添加到全局设置中。原创 2024-11-06 14:21:21 · 266 阅读 · 0 评论 -
161 构建一个基本代理
它被赋予一组工具,这些工具可以是任意函数,甚至是完整的LlamaIndex查询引擎,并且它会选择最适合完成每个步骤的工具。在LlamaIndex中,你可以选择使用我们预打包的代理/工具,或者从头开始构建自己的代理工作流程,这在“构建工作流程”部分有详细介绍。如你所见,这些是普通的Python函数。文档字符串注释为代理提供了关于工具功能的元数据:如果你的LLM在选择使用哪个工具时遇到困难,这些文档字符串是你应该首先调整的内容。在这个简单的示例中,我们将创建两个工具:一个用于将数字相乘,另一个用于将数字相加。原创 2024-11-06 14:12:56 · 549 阅读 · 0 评论 -
162 使用本地模型的代理
由于我们将进行代理工作,我们需要一个非常强大的模型,但最大的模型在笔记本电脑上很难运行。我们认为mixtral 8x7b是一个在性能和资源之间的良好平衡,但llama3也是一个很好的选择。如果你对使用OpenAI或其他远程模型感到满意,可以跳过这一部分,但许多人对使用自己运行的模型感兴趣。最简单的方法是通过我们的朋友在Ollama的出色工作,他们提供了一个易于使用的客户端,可以为你下载、安装并运行越来越多的模型。第一次运行时,它还会自动为你下载和安装模型,这可能需要一些时间。原创 2024-11-06 14:16:31 · 234 阅读 · 0 评论 -
160 Llama Index中的DynamicLLMPathExtractor:构建知识图谱的灵活方法
通过Llama Index的,我们可以在多样性和一致性之间取得平衡,构建灵活且结构化的知识图谱。的设计思路清晰,能够帮助程序员更好地理解和应用知识图谱技术。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 14:06:43 · 391 阅读 · 0 评论 -
159 比较LLM路径提取器:构建知识图谱的三种方法
通过Llama Index的三种LLM路径提取器,我们可以根据不同的需求构建知识图谱。适用于探索性分析,适用于具有明确领域的场景,而则在多样性和一致性之间取得了平衡。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 14:00:41 · 1125 阅读 · 0 评论 -
158 `PropertyGraphIndex`类的`_build_index_from_nodes`和`as_retriever`方法
通过Llama Index的,我们可以轻松地从节点构建索引并获取检索器。和方法的设计思路清晰,能够帮助程序员更好地理解和应用属性图技术。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 11:15:39 · 315 阅读 · 0 评论 -
157 `PropertyGraphIndex`类的`_insert_nodes_to_vector_index`方法
通过Llama Index的,我们可以轻松地将向量节点插入到向量索引中。方法的设计思路清晰,能够帮助程序员更好地理解和应用属性图技术。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 11:12:08 · 312 阅读 · 0 评论 -
156 `PropertyGraphIndex`类的`_insert_nodes`方法
通过Llama Index的,我们可以轻松地将节点插入到属性图索引结构中。方法的设计思路清晰,能够帮助程序员更好地理解和应用属性图技术。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 11:08:41 · 466 阅读 · 0 评论 -
155 `PropertyGraphIndex`类的`property_graph_store`和`vector_store`属性
通过Llama Index的,我们可以轻松地获取属性图存储和向量存储。和属性的设计思路清晰,能够帮助程序员更好地理解和应用属性图技术。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 11:05:27 · 347 阅读 · 0 评论 -
154 `PropertyGraphIndex`类的`from_existing`方法
通过Llama Index的,我们可以轻松地从现有属性图存储创建索引。方法的设计思路清晰,参数配置灵活,能够满足不同场景的需求。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 10:44:57 · 802 阅读 · 0 评论 -
153 PropertyGraphIndex 深入解析`__init__`方法
通过Llama Index的,我们可以轻松地构建和查询属性图。__init__方法的设计思路清晰,参数配置灵活,能够满足不同场景的需求。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 10:42:45 · 736 阅读 · 0 评论 -
152 PropertyGraphIndex使用
是Llama Index中的一个核心数据结构,用于构建和查询属性图。它通过提取三元组(triplets)并利用这些三元组在查询时构建属性图。通过Llama Index的,我们可以轻松地构建和查询属性图。无论是从现有属性图存储创建索引,还是获取检索器进行查询,Llama Index都提供了强大的工具来处理属性图任务。希望这篇博客能帮助你更好地理解和应用属性图技术。原创 2024-09-26 10:36:03 · 698 阅读 · 0 评论 -
152 KnowledgeGraphIndex(已被弃用)
类已被弃用,建议使用新的类。本文将详细介绍的工作原理,并提供代码示例和解释。通过Llama Index的,我们可以轻松地构建和查询知识图谱。无论是手动插入三元组和节点,还是获取图结构的networkx表示,Llama Index都提供了强大的工具来处理知识图谱任务。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 10:32:28 · 659 阅读 · 0 评论 -
151 深入探索Llama Index中的知识图谱数据结构
是Llama Index中的一个核心数据结构,用于构建和查询知识图谱。它通过提取三元组(triplets)并利用这些三元组在查询时构建知识图谱。通过Llama Index的,我们可以轻松地构建和查询知识图谱。无论是手动插入三元组和节点,还是获取图结构的networkx表示,Llama Index都提供了强大的工具来处理知识图谱任务。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 10:29:00 · 693 阅读 · 0 评论 -
150 使用Llama Index实现知识图谱RAG查询引擎:从入门到精通
通过Llama Index的,我们可以轻松地从现有知识图谱中检索信息,并使用自然语言进行查询。无论是使用Graph RAG还是结合nl2graphquery,Llama Index都提供了强大的工具来处理知识图谱任务。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 10:19:22 · 713 阅读 · 0 评论 -
149 使用Llama Index构建和查询知识图谱:从入门到精通
通过Llama Index的和,我们可以轻松地从非结构化数据源中构建知识图谱,并使用自然语言进行查询。无论是从Wikipedia加载数据,还是使用Cypher进行复杂查询,Llama Index都提供了强大的工具来处理知识图谱任务。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 10:15:35 · 393 阅读 · 0 评论 -
148 使用Llama Index构建和查询知识图谱:全面指南
通过Llama Index的,我们可以轻松地从非结构化文本中构建知识图谱,并进行高效的查询。无论是自动构建还是手动添加三元组,Llama Index都提供了强大的工具来处理复杂的知识图谱任务。希望这篇博客能帮助你更好地理解和应用知识图谱技术。原创 2024-09-26 10:10:22 · 757 阅读 · 0 评论 -
147 自定义属性图检索器:深入LlamaIndex的高级检索流程
接下来,我们定义默认的大语言模型(LLM)和嵌入模型。现在,我们定义一个自定义检索器,通过子类化来实现。def init(self,) -> None:llm=llm,"""# ...现在,我们初始化并测试自定义检索器。通过本篇博客,我们深入探讨了如何在LlamaIndex中定义一个自定义的属性图检索器,并通过详细的代码示例和技术解释,帮助程序员快速理解和应用这一技术。希望这篇博客能帮助你更好地掌握自定义检索器的构建和应用,提升数据检索的效率和准确性。原创 2024-09-25 10:43:08 · 1160 阅读 · 0 评论 -
146 深入探索LlamaIndex中的Property Graph Index:从入门到精通
如果需要,我们可以使用低级API进行相同的摄取过程,利用。documents,),],通过本篇博客,我们深入探讨了LlamaIndex中的Property Graph Index,从安装和设置到构建、查询和存储,详细解释了每个步骤的代码和原理。希望这篇博客能帮助你快速理解和应用Property Graph Index,提升数据管理和检索的效率。原创 2024-09-25 10:38:14 · 1109 阅读 · 0 评论 -
145 使用LlamaIndex中的PropertyGraphIndex:深入探索与实战指南
通过本文的详细介绍和代码示例,你应该已经掌握了如何在 LlamaIndex 中使用来构建和查询属性图。从基本的使用到高级的定制,LlamaIndex 提供了丰富的工具和灵活的接口,帮助你处理复杂的知识图谱任务。希望这篇文章能帮助你在实际项目中更好地应用 LlamaIndex 的,提升你的数据处理和知识管理能力。如果你有任何问题或建议,欢迎在评论区留言讨论!原创 2024-09-24 08:15:00 · 1750 阅读 · 0 评论 -
144 深入解析 `_build_sentence_groups`:构建句子组的魔法(buffersize控制)
函数的主要功能是将输入的句子列表组合成语义相关的句子组。初始化句子列表:将每个句子初始化为一个包含句子文本、索引、组合句子和组合句子嵌入的字典。构建句子组:根据缓冲区大小,将句子组合成语义相关的句子组。是一个强大的工具,可以帮助我们有效地将句子组合成语义相关的组。通过详细的代码解释和示例,我们深入探讨了其内部机制和工作原理。希望本文能够帮助你更好地理解和应用这一技术!如果你有任何问题或建议,欢迎在评论区留言!原创 2024-09-19 10:48:32 · 682 阅读 · 0 评论 -
143 深入解析 `_build_node_chunks`:构建语义块的艺术(语义分割从句子组构建语义块)
函数的主要功能是将输入的句子组合列表分割成语义相关的块。计算分割点:根据距离列表计算分割点。构建语义块:根据分割点将句子组合分组,形成语义相关的块。是一个强大的工具,可以帮助我们有效地将大段文本分割成语义相关的块。通过详细的代码解释和示例,我们深入探讨了其内部机制和工作原理。希望本文能够帮助你更好地理解和应用这一技术!如果你有任何问题或建议,欢迎在评论区留言!原创 2024-09-19 10:41:13 · 980 阅读 · 0 评论 -
142 深入解析 `build_semantic_nodes_from_documents`:构建语义节点的艺术(语义分割怎么构建节点)
函数的主要功能是将输入的文档列表分割成语义相关的节点。分割句子:将文档中的文本分割成句子。构建句子组:将句子分组,形成语义相关的句子组。计算嵌入:为每个句子组计算嵌入向量。计算距离:计算句子组之间的相似性距离。构建节点:根据相似性距离构建语义节点。是一个强大的工具,可以帮助我们有效地将大段文本分割成语义相关的块。通过详细的代码解释和示例,我们深入探讨了其内部机制和工作原理。希望本文能够帮助你更好地理解和应用这一技术!如果你有任何问题或建议,欢迎在评论区留言!原创 2024-09-19 10:37:47 · 858 阅读 · 0 评论 -
141 BM25Retriever 检索步骤详解
初始化:创建对象,传入节点列表或现有的 BM25 对象。构建 BM25 索引:如果没有传入 BM25 对象,则使用节点列表构建 BM25 索引。检索相关节点:对查询字符串进行分词和词干化处理,使用 BM25 算法检索相关节点,并将结果转换为对象列表。持久化和加载:支持将 BM25 索引和相关配置保存到磁盘,并在需要时加载。通过这些步骤,能够高效地检索与查询最相关的节点,适用于各种文本检索场景。原创 2024-09-11 15:51:02 · 1330 阅读 · 0 评论 -
140 深入探讨 SemanticSplitterNodeParser:文档语义分割的艺术
类的主要功能是将文档分割成语义相关的节点。Args:"""default=1,),),是一个强大的工具,它能够根据语义相似性将文档分割成多个节点。通过理解其工作原理,你可以更好地应用它来处理复杂的 NLP 任务。希望本文能帮助你深入理解这个类的实现细节,并在实际项目中发挥作用。如果你有任何问题或需要进一步的帮助,请随时在评论区留言!原创 2024-09-09 10:52:33 · 1058 阅读 · 0 评论 -
139 深入解析 RecursiveCharacterTextSplitter 类 langchain_text_splitters.charater.py
类继承自类,并提供了递归分割文本的功能。"""类通过递归地尝试不同的分隔符来分割文本,提供了灵活且强大的文本分割功能。通过本文的讲解和示例代码,希望你能够更好地理解和应用这个类,从而在文本处理任务中更加高效地工作。原创 2024-09-04 15:14:09 · 3540 阅读 · 0 评论 -
138 SentenceWindowNodeParser的使用
要使用Document。原创 2024-09-03 10:48:58 · 497 阅读 · 0 评论 -
137 句子窗口节点解析器的默认切割方式
这个方法的主要功能是将输入的文本分割成句子,并生成每个句子的起始和结束位置。通过可选的边界重新对齐步骤,可以提高分割的准确性。最终,该方法返回一个生成器,逐个生成每个句子的 span。这个方法的主要功能是将输入的文本分割成潜在的句子切片。通过遍历潜在的句子结束位置,并检查上下文是否包含句子分隔符,生成每个句子的slice对象。最终,该方法返回一个生成器,逐个生成每个句子的切片。这个方法的主要功能是在输入文本中找到潜在的句子结束位置的匹配对象,并返回这些匹配对象及其上下文。原创 2024-09-03 10:16:15 · 840 阅读 · 0 评论 -
136 深入解析 MetadataReplacementPostProcessor:一种高效的元数据替换后处理器 llamaindex.core.postprocessor.metadata_.py
现在,我们定义self,是一个高效的节点后处理器,它能够将节点的内容替换为目标元数据键的值,以便更好地匹配查询需求。通过这种方式,我们可以更好地理解节点的实际内容,从而提高NLP任务的准确性。希望这篇博客能够帮助你全面理解的工作原理及实际应用。原创 2024-09-02 10:52:56 · 1022 阅读 · 0 评论 -
135 深入解析 LLMRerank:一种基于LLM的节点重排序器 llamaindex.core.postprocessor.llm_rerank.py
现在,我们定义LLMRerankself,) -> None:llm=llm,self,return []LLMRerank是一个高效的节点重排序器,它利用大型语言模型(LLM)对节点进行重排序,以便更好地匹配查询需求。通过这种方式,我们可以更好地理解节点的相关性,从而提高NLP任务的准确性。希望这篇博客能够帮助你全面理解LLMRerank的工作原理及实际应用。原创 2024-09-02 10:49:11 · 615 阅读 · 0 评论 -
134 深入解析文本分割工具:utils.py llamaindex.core.node_parser.text.utils.py
+[,.;。utils.py是一个高效的文本分割工具,它提供了多种文本分割方法,包括按字符、按句子、按特定分隔符等。通过这种方式,我们可以更好地理解文本的结构和上下文,从而提高NLP任务的准确性。希望这篇博客能够帮助你全面理解utils.py的工作原理及实际应用。原创 2024-09-02 10:41:23 · 772 阅读 · 0 评论 -
133 深入解析 SentenceWindowNodeParser:一种高效的文本节点解析器 llamaindex.core.node_parser.text.sentence_window.py
现在,我们定义Args:"""gt=0,cls,self,doc,是一个高效的文本节点解析器,它能够将文档拆分成句子,并在每个节点中包含前后句子的窗口信息。通过这种方式,我们可以更好地理解文档的上下文,从而提高NLP任务的准确性。希望这篇博客能够帮助你全面理解的工作原理及实际应用。原创 2024-09-02 10:37:28 · 877 阅读 · 0 评论 -
132 llamaindex所有默认提示 prompt
【代码】132 llamaindex所有默认提示 prompt。原创 2024-09-01 06:45:00 · 258 阅读 · 0 评论 -
131 深入解析get_response_synthesizer函数:选择合适的响应合成器
通过本文的详细解析,我们深入理解了函数的工作原理及其在选择合适的响应合成器中的应用。通过提供必要的代码示例和解释,帮助程序员快速掌握并应用这一高效的响应合成技术。希望本文能为您的编程实践提供有益的参考和指导。原创 2024-08-31 13:00:00 · 774 阅读 · 0 评论