
Ravi Theja • 2023-07-10
LlamaIndex 更新 — 2023年7月11日
LlamaIndex 社区的朋友们,再次问好!
欢迎回到 LlamaIndex 更新系列的第二期。为了持续地向您通报我们快速发展的开源项目的最新信息并保持您的参与,这篇博文将为您带来更多关于功能、网络研讨会、编程马拉松和社区活动的精彩更新。
在首篇博文的基础上,我们将继续努力让我们的长期贡献者和新成员都能跟上我们的进展。我们的目标不仅仅是告知,还要激励您参与到我们共同迈向成长和创新的旅程中来。
事不宜迟,让我们深入了解本期 LlamaIndex 更新中的最新动态。
功能与集成
- LlamaIndex 与 Anyscale 的合作利用 Ray 平台来提升性能和部署效率。它将 LlamaIndex 的操作速度提高了十倍,并简化了向生产服务器的部署流程。核心的 Ray 分布式工具包有助于高效的任务并行化,而 Ray Serve 则确保轻松将查询引擎部署到生产环境。博文, 推文
- LlamaIndex 增强了文档中的元数据表示。
extra_info
和node_info
字段现已被metadata
字典取代。这有助于精确控制数据,并允许用户在嵌入或 LLM 预测期间排除元数据键。这提升了 LLM 和检索性能,并提供可定制的元数据注入、格式化和模板创建。文档, 推文 - LlamaIndex 支持文本补全 API(涉及输出解析和输入提示修改)和结构化 API(需要输入函数签名和输出转换)。尽管结构化 API 更易使用,但其有限的可用性使得文本补全 API 仍然重要。这两种 API 都由 LlamaIndex 的
PydanticProgram
支持。文档, 推文 - LlamaIndex 现与 Chainlit.io 合作,促进快速构建任意 LLM 应用的高级聊天 UI。这项集成除了提供基本的聊天界面外,还记录中间结果和来源。博文, 推文
- LlamaIndex 现集成了 DePlot 模型,用于在问答/聊天机器人应用中解释图表。DePlot 主要适用于简单的图表,如柱状图和时间序列图,它将这些视觉信息转换为文本格式,以便于在下游应用中进行嵌入、索引和使用。此功能现可通过 LlamaHub 数据加载器访问,扩展了 LlamaIndex 在各种应用中的能力。文档, 推文
- LlamaIndex 现集成了 Github Issues 读取器,支持从任意 GitHub 仓库全面加载和查询议题。此外,Sitemap Loader 读取器使用户能够读取指定站点地图中的所有网页。推文
- LlamaIndex 引入了
ContextRetrieverOpenAIAgent
功能,通过整合更多来自用户消息的上下文来增强工具选择。它在调用 LLM 之前执行检索步骤,确保更高的可靠性,并能更好地将查询映射到正确的工具,特别是在存在领域特定术语的情况下。与“检索工具”不同,此功能保证在执行任何操作之前进行检索。文档, 推文 - LlamaIndex 提供了基于代码的提取功能,可以高效地从任意文本中提取数据。此功能包括一个“拟合(Fit)”步骤,根据训练数据生成函数;以及一个“推理(Inference)”步骤,在新数据上运行这些函数。它提供两个版本:DFEvaporateProgram 用于从文本中按字段提取一个值,而 MultiValueEvaporateProgram 用于按字段提取多个值。此功能可用于从原始 HTML 源中提取结构化数据,还提供了在给定主题的情况下识别文本中突出字段的能力。文档, 推文
- LlamaIndex 显著改进了其文本到 SQL 的能力,提供了一个“默认”SQL 查询引擎以及一个带对象索引的 SQL 查询引擎,用于处理大型表模式。这些升级简化了流程,默认引擎只需一个 SQL 数据库,而使用 ObjectIndex 则可以索引大型表模式。此外,LlamaIndex 现已与 duckdb 集成,进一步增强了 SQL 查询过程。SQL 文档, duckdb 文档, 推文
- LlamaIndex 0.7.0 增强了 LLM 应用开发的模块化。它包含针对 OpenAI 和 Hugging Face 等平台的原生 LLM 抽象、一个独立的响应合成模块以及改进的文档元数据管理。这些抽象可以独立使用,也可以集成到索引/查询引擎中。响应合成模块抽象了上下文窗口的限制,而文档元数据管理功能允许对元数据进行深度定制,从而可能提升检索性能。博文, 推文
- LlamaIndex 引入了递归检索(Recursive Retrieval)的概念,该概念利用了知识的分层特性。LlamaIndex 中的节点(Node)可以包含对其他检索器或查询引擎的引用。此过程始于一个检索器,并递归地探索指向其他实体的链接。例如,可以从 PDF 中提取结构化表格,每个表格表示为一个数据框。这些表格可以由嵌入其他节点的
IndexNode
对象引用。在查询期间,如果一个 IndexNode 属于 top-k 节点之一,它将触发另一个检索器或查询引擎,从而允许对所有数据进行复杂的查询。文档, 推文 - LlamaIndex 引入了 OpenAI 代理流式处理功能,以实现高效的函数调用,并通过在创建索引期间提供进度条来增强用户体验,从而实时了解过程持续时间。推文
- LlamaIndex 通过系统提示、SubQuestionQueryEngine 的回调事件以及简化的 Azure OpenAI 集成流程,引入了个性化数据交互功能。AOI 文档, 个性化 Notebook, 推文
- LlamaIndex 利用 LLM 自动提取元数据,显著提高了信息检索的相关性和精确度。这是通过五个关键的 MetadataExtractor 模块(SummaryExtractor, QuestionsAnsweredExtractor, TitleExtractor, MetadataFeatureExtractor)实现的,这些模块为文本增加了丰富的、与上下文相关的详细信息。文档, 推文
教程
- Anyscale 教程:“如何使用 LlamaIndex 在 10 分钟内构建一个 LLM 查询引擎。”
- Erika Cardenas 教程:如何将数据加载到 Weaviate 以及如何使用 LlamaIndex 连接到 Weaviate 实例。
- Wenqi Glantz 教程:使用 LlamaIndex 文档管理刷新私有数据源。
- Michael Hunger 教程:从 neo4j、NebulaGraph 加载数据,并使用 GraphDB Cypher 和 GraphQL 数据加载器通过 LlamaIndex 进行索引/查询。
- Pradip Nichite 视频教程 和 博文:精通 LlamaIndex:创建、保存和加载索引,定制 LLM、提示和嵌入。
网络研讨会和播客
- 与 Wey (NebulaGraph) 关于图数据库、知识图谱和 RAG 的网络研讨会。
- 与 Albus(用于企业搜索的综合性 Slackbot)、xpress.ai(用于构建 LLM 工作流 + 代理的低代码解决方案)和 ImmigrantFirst.ai(帮助移民更高效完成 EB-1A/O1 申请的助手)的网络研讨会。
- Ben Lorica 关于 LlamaIndex 的数据交换播客
活动
Ravi Theja 在印度的 Accel Partners 和 Together VC Fund 发表了题为“LlamaIndex:从基础到生产”的演讲。