欢迎来到 LlamaIndex 🦙 !#
LlamaIndex 是使用 LLMs 和 工作流程 构建基于 LLM 的数据代理的领先框架。
-
什么是上下文增强?什么是代理和工作流程?LlamaIndex 如何帮助构建它们?
-
您可以使用 LlamaIndex 构建什么样的应用?谁应该使用它?
-
只需 5 行代码即可在 Python 或 TypeScript 中开始使用!
-
LlamaIndex 的托管服务,包括 LlamaParse,世界上最好的文档解析器。
-
在 Discord、Twitter、LinkedIn 上获取帮助并结识合作者,并了解如何为项目做出贡献。
-
请访问 LlamaHub 查看我们的连接器、读取器及其他集成库,以及 create-llama 等演示和入门应用。
介绍#
什么是代理?#
代理 是由 LLM 提供支持的知识助手,它使用工具执行研究、数据提取等任务。代理的能力范围从简单的问答到能够感知、决策并采取行动来完成任务。
LlamaIndex 提供了一个构建代理的框架,其中包括使用 RAG 管道作为完成任务的众多工具之一的能力。
什么是工作流?#
工作流是多步骤过程,它结合了一个或多个代理、数据连接器和其他工具来完成任务。它们是事件驱动的软件,允许您结合 RAG 数据源和多个代理来创建一个复杂的应用程序,该应用程序能够执行各种各样的任务,并具备反思、错误校正以及其他高级 LLM 应用的特点。然后,您可以将这些代理工作流部署为生产微服务。
什么是上下文增强?#
LLM 提供了人类和数据之间的自然语言接口。LLM 在大量公开可用的数据上进行了预训练,但它们并未在您的数据上进行训练。您的数据可能是私有的,或特定于您正在尝试解决的问题。它可能隐藏在 API 之后、SQL 数据库中,或者困在 PDF 和幻灯片中。
上下文增强使您的数据可供 LLM 使用,以解决手头的问题。LlamaIndex 提供了构建任何上下文增强用例的工具,从原型到生产。我们的工具允许您摄取、解析、索引和处理您的数据,并快速实现结合数据访问和 LLM 提示的复杂查询工作流。
上下文增强最流行的例子是检索增强生成(Retrieval-Augmented Generation,简称 RAG),它在推理时将上下文与 LLM 结合。
LlamaIndex 是构建上下文增强 LLM 应用的框架#
LlamaIndex 对您如何使用 LLM 没有限制。您可以将 LLM 用作自动完成、聊天机器人、代理等等。它只是让使用它们变得更容易。我们提供的工具包括:
- 数据连接器从其原生源和格式摄取您的现有数据。这些可以是 API、PDF、SQL 以及(更多)其他来源。
- 数据索引以易于 LLM 消费且性能良好的中间表示形式来组织您的数据。
- 引擎提供对您数据的自然语言访问。例如
- 查询引擎是强大的问答界面(例如,一个 RAG 流程)。
- 聊天引擎是用于与您的数据进行多消息、“来回”交互的对话界面。
- 代理是 LLM 驱动的知识工作者,并通过工具进行增强,这些工具从简单的辅助函数到 API 集成等等。
- 可观测性/评估集成使您能够在良性循环中严格地实验、评估和监控您的应用程序。
- 工作流允许您将以上所有功能组合到一个事件驱动系统中,这比其他基于图的方法更加灵活。
用例#
LlamaIndex 和一般上下文增强的一些流行用例包括:
查看我们的用例文档,获取更多示例和教程链接。
👨👩👧👦 LlamaIndex 适合谁?#
LlamaIndex 为初学者、高级用户以及介于两者之间的所有人提供工具。
我们的高级 API 允许初学者用 5 行代码使用 LlamaIndex 摄取和查询他们的数据。
对于更复杂的应用程序,我们的低级 API 允许高级用户定制和扩展任何模块——数据连接器、索引、检索器、查询引擎和重排序模块——以满足他们的需求。
入门#
LlamaIndex 可用于 Python(即本文档)和 Typescript。如果您不确定从何开始,我们建议阅读如何阅读本文档,这将根据您的经验水平为您指明正确的方向。
30 秒快速入门#
使用 OpenAI API 密钥设置一个名为 OPENAI_API_KEY
的环境变量。安装 Python 库
pip install llama-index
将一些文档放入名为 data
的文件夹中,然后使用我们著名的 5 行入门代码提问。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("Some question about the data should go here")
print(response)
如果您在此过程中遇到任何困难,请不要担心!请查看我们更全面的入门教程,它们使用 像 OpenAI 这样的远程 API 或 任何可以在您的笔记本电脑上运行的模型。
LlamaCloud#
如果您是企业开发者,请查看 LlamaCloud。它是一个端到端的数据解析、摄取、索引和检索托管服务,使您能够为您的生产 LLM 应用程序获取生产质量的数据。它既可以托管在我们的服务器上,也可以作为自托管解决方案使用。
LlamaParse#
LlamaParse 是我们最先进的文档解析解决方案。它是 LlamaCloud 的一部分,也作为自助服务 API 提供。您可以注册,每天免费解析最多 1000 页,或者输入信用卡信息以进行无限解析。了解更多。
社区#
需要帮助?有功能建议?加入 LlamaIndex 社区
获取库#
- LlamaIndex Python
- LlamaIndex.TS (Typescript/Javascript 包)
贡献#
我们是开源项目,始终欢迎对项目做出贡献!请查看我们的贡献指南,了解如何扩展核心库或添加与第三方(如 LLM、向量存储、代理工具等)集成的完整详细信息。
LlamaIndex 生态系统#
LlamaIndex 生态不仅仅如此!查看我们的一些其他项目
- llama_deploy | 将您的代理工作流部署为生产微服务
- LlamaHub | 大量(且不断增长!)的自定义数据连接器集合
- SEC Insights | 一个由 LlamaIndex 提供支持的财务研究应用程序
- create-llama | 一个用于快速搭建 LlamaIndex 项目的 CLI 工具