什么是LlamaIndex?
无抓取抓取浏览器可以向数据管道提供渲染的公共网络内容,以准备外部知识用于LlamaIndex应用。
简而言之
- LlamaIndex是一个针对私人或外部数据的上下文增强应用程序的框架。 它专注于摄取、索引、检索、查询、代理和工作流。
- 文档在检索之前变成更小的节点。 文本、元数据、关系和嵌入决定了查询能够恢复的上下文。
- 索引不一定是源的副本。 它是一个使源内容可搜索或可查询的结构。
- 查询引擎和聊天引擎提供不同的交互模式。 一个针对数据回答查询;另一个维持对话交流。
- 检索质量取决于摄取选择。 解析、元数据、块边界和评估往往比提示修饰更重要。
LlamaIndex定义
LlamaIndex是一个用于构建语言模型应用程序的框架,针对基础模型尚未包含的数据。官方 LlamaIndex文档 将上下文增强描述为通过连接器、索引、查询接口、代理和工作流使私人或特定问题的数据可用于模型。
该框架最初聚焦于检索增强生成和数据索引。其当前范围更广。开发者可以摄取文件和API,解析文档,构建检索系统,公开查询和聊天引擎,创建工具使用代理,并协调事件驱动工作流。管理的LlamaCloud服务与开源框架并存,但不是同一件事。
当数据访问是应用的中心时,LlamaIndex非常有用。一个模型可能对语言理解很好,但缺乏公司政策、产品目录、研究档案或新发布的网页。LlamaIndex提供将这些来源移动到可搜索上下文路径的结构。
LlamaIndex数据路径
一个典型的LlamaIndex管道以文档源开始,以对模型选择的上下文结束。阅读器或连接器加载源内容。解析器将文档转换为节点。嵌入模型或其他索引方法使这些节点可搜索。检索器选择候选者,选择性的后处理器过滤或重新排序它们,响应合成器从选定的证据中请求模型作答。
每个阶段都可能改变最终答案。一个丢弃表头的解析器可能会使值失去含义。块边界可以将规则与其例外分开。弱元数据可能会混合管辖区或文档版本。因此,检索评估通常应接近于摄取,在团队花时间调整最终提示之前。
核心LlamaIndex组件
| 组件 | 目的 | 设计问题 |
|---|---|---|
| 读取器或连接器 | 从文件、API、数据库或其他源加载数据。 | 必须保留哪些权限和源元数据? |
| 文档和节点 | 代表源内容和可检索单位。 | 边界应该在哪里落下而不失去上下文? |
| 索引 | 组织节点以实现高效访问。 | 哪个表示适合查询模式? |
| 检索器 | 选择与输入相关的节点。 | 如何测量召回率和准确率? |
| 查询或聊天引擎 | 将检索与响应生成相结合。 | 应用程序需要一次性还是对话行为? |
| 代理和工作流 | 使用工具并协调多步骤执行。 | 哪些步骤需要模型判断与固定代码? |
组件是可组合的,这有助于实验。但这种灵活性也可能掩盖糟糕答案的真正原因。保持解析节点、检索分数、后处理、提示和引用源ID的追踪,以便每一层都可以独立检查。
常见的 LlamaIndex 用例
知识助手
员工查询受控的政策、手册和内部文件集合,并获取带有源链接的答案。
文档研究
研究人员搜索长报告,比较段落,并合成答案,同时保留来源。
结构化提取
解析和基于模式的提取将复杂文件转换为下游系统可以验证的记录。
数据感知代理
代理将查询引擎、数据库和外部 API 视为更大工作流程中的工具。
Web内容可以进入相同的路径。当页面使用JavaScript渲染其主要文本时,支持浏览器的收集器可以在LlamaIndex解析之前捕获可见内容。Scrapeless负责浏览器执行;LlamaIndex应用程序负责表示、检索和答案合成。
设计摄取管道
摄取应保持含义,优先于速度优化。首先识别读者实际引用的单位:章节、条款、表格行、产品记录或对话轮次。标准化明显的噪音,但不要删除检索或引用稍后所需的标题、标签、时间戳和来源标识符。
- 库存来源类型、所有权、更新频率和访问规则。
- 选择保留问题和引文所需结构的解析器。
- 为版本、节、日期和管辖区创建具有稳定源 ID 和元数据的节点。
- 根据文档结构选择切块边界,然后与基线进行比较。
- 在添加生成之前,请构建索引并定义检索过滤器。
- 测试检索,使用真实问题和已知相关段落。
- 在证据路径表现良好后再进行响应合成。
该订单防止流利模型答案掩盖检索问题。如果正确的节点从未到达提示,则更好的生成器无法可靠地恢复缺失的事实。
索引、检索器和查询引擎
索引组织节点,以便能够找到它们。向量索引使用嵌入来匹配语义相似性,而其他结构可能使用关键字、文档、列表或属性图。检索器将查询转换为候选节点。后处理器可能应用元数据过滤器、相似性阈值、重新排序或上下文扩展。
查询引擎将检索连接到响应合成。聊天引擎添加会话状态,并可能在检索之前重写后续问题。会话历史记录不应默默覆盖源证据。存储每次回合的已解决问题和检索到的节点,以便审阅者可以了解答案为何发生变化。
评估应该将检索与生成分开。衡量预期源是否出现在候选集中,然后衡量最终答案与该源的忠诚度。结合的端到端分数是有用的,但它们并没有揭示哪个阶段需要修复。原始 检索增强生成论文 提供了关于结合参数化知识和检索知识的有用背景。
LlamaIndex 代理和工作流程
LlamaIndex 代理使用模型来选择工具,包括查询引擎、函数和外部服务。工作流程在多个步骤之间协调事件和状态。在路径依赖于请求的地方使用代理;将确定性解析、授权、验证和副作用保留在普通代码或显式工作流程节点中。
工具需要明确的描述和架构。一个“搜索所有”工具会产生模糊的选择,而针对政策收集、产品数据库和当前公共网络的独立工具则使源边界清晰。权限应随每个工具一起流动。模型指令不能替代访问控制。
规范: 1. 仅输出翻译文本 — 不要解释,也不添加额外的包装代码框。 2. 精确保留Markdown/HTML结构(标题、列表、链接、表格)。 3. 保持任何占位符令牌如@@CODEBLOCK_0@@或@@INLINECODE_0@@完全不变;绝不要翻译、重新排序、合并或重新格式化它们。 4. 不要添加或删除```代码框,并且不要将普通文本包装在代码块中。 LlamaCloud 组件概述 区分托管解析、提取、索引、分类和代理服务。比较开源和托管路径的团队应评估数据驻留、成本、操作所有权以及每个工作负载所需的自定义级别。
权衡与评估
LlamaIndex 提供了许多扩展点,这可能会增加团队必须拥有的选择数量。默认值对于原型设计很有用,但应被视为假设。文档结构、查询风格、语言和领域词汇都可能改变最佳解析器、块大小、嵌入或检索方法。
在扩展摄取之前构建一个小的评估集。包括精确的查找问题、多段落问题、模糊措辞、缺失答案的情况和版本冲突。审查来源引用和弃权,而不仅仅是自然语言相似性。目标是建立一个能够检索治理证据的系统,并明确说明在集合无法回答时。
结论
LlamaIndex 是一个通过摄取、节点、索引、检索、查询引擎、代理和工作流将语言模型与外部数据连接的框架。其最佳适用场景是数据质量和证据访问驱动设计的应用。以源结构和检索评估为起点,保留来源信息,并仅在模型导向的工具选择能带来可测量价值的地方添加代理行为。
准备好构建一个网络驱动的LlamaIndex管道了吗?
使用管理的浏览器收集渲染的公共内容,然后将索引和检索保留在应用程序控制之下。
今天注册并获得 $5 免费信用 — 无需信用卡.
领取您的$5信用 →常见问题解答
LlamaIndex 是一个向量数据库吗?
不,LlamaIndex可以连接到向量数据库并构建基于向量的索引,但它是一个更广泛的框架,用于摄取、解析、检索、响应合成、代理和工作流程。数据库仍然是一个单独的存储和搜索组件。
LlamaIndex仅用于RAG吗?
没有,增强检索生成是一个核心用例,但 LlamaIndex 还支持文档解析、结构化提取、查询和聊天引擎、工具使用代理以及基于数据的事件驱动工作流程。
文档和节点之间有什么区别?
文档代表加载到系统中的源材料。节点是从该材料中派生出的小单位,用于索引和检索。好的管道保留元数据,以便将每个节点连接回其源文档和位置。
LlamaIndex 可以摄取网页吗?
可以。连接器或自定义加载程序可以提供页面内容,基于浏览器的集合层可以在摄取前呈现依赖于 JavaScript 的页面。应用程序应在提取的文本中保留规范 URL、时间戳、标题和访问规则。
团队应该如何评估 LlamaIndex 应用程序?
分别评估检索和生成。检查已知相关节点是否出现在代表性问题中,引用是否支持答案,系统是否处理缺失证据,以及对解析、分块、嵌入或提示的更改是否改善了预期指标。