跳到内容

欢迎来到 LlamaIndex 🦙 !#

LlamaIndex 是使用 LLMs工作流程 构建基于 LLM 的数据代理的领先框架。

  • 介绍

    什么是上下文增强?什么是代理和工作流程?LlamaIndex 如何帮助构建它们?

  • 使用案例

    您可以使用 LlamaIndex 构建什么样的应用?谁应该使用它?

  • 入门

    只需 5 行代码即可在 Python 或 TypeScript 中开始使用!

  • LlamaCloud

    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 社区

获取库#

贡献#

我们是开源项目,始终欢迎对项目做出贡献!请查看我们的贡献指南,了解如何扩展核心库或添加与第三方(如 LLM、向量存储、代理工具等)集成的完整详细信息。

LlamaIndex 生态系统#

LlamaIndex 生态不仅仅如此!查看我们的一些其他项目

  • llama_deploy | 将您的代理工作流部署为生产微服务
  • LlamaHub | 大量(且不断增长!)的自定义数据连接器集合
  • SEC Insights | 一个由 LlamaIndex 提供支持的财务研究应用程序
  • create-llama | 一个用于快速搭建 LlamaIndex 项目的 CLI 工具