欢迎来到LlamaIndex 🦙 !#
LlamaIndex是领先的框架,用于通过LLMs和workflows在您的数据上构建由LLM驱动的智能体。
-
什么是上下文增强?什么是智能体和工作流?LlamaIndex如何帮助构建它们?
-
你可以用LlamaIndex构建哪些类型的应用?谁应该使用它?
-
只需5行代码即可开始使用Python或TypeScript!
-
LlamaIndex的托管服务,包括全球最佳文档解析器LlamaParse。
-
在Discord、Twitter、LinkedIn上获取帮助并结识协作者,了解如何为项目做出贡献。
-
查看我们在LlamaHub上的连接器、阅读器和其他集成库,以及演示和入门应用如create-llama。
介绍#
什么是智能体?#
Agents 是由大语言模型驱动的知识助手,能够利用工具执行研究、数据提取等任务。智能体的能力范围从简单的问答到能够感知、决策并采取行动以完成任务。
LlamaIndex提供了一个构建智能体的框架,包括使用RAG管道作为完成任务众多工具之一的能力。
什么是工作流?#
Workflows 是多步骤流程,结合了一个或多个智能体、数据连接器及其他工具来完成一项任务。它们是事件驱动的软件,允许您整合RAG数据源和多个智能体,创建能够执行广泛任务的复杂应用,具备反思、纠错等高级LLM应用的特征。随后您可以deploy these agentic workflows 作为生产级微服务。
什么是上下文增强?#
LLMs 提供了人类与数据之间的自然语言交互界面。LLMs 基于大量公开可用数据进行预训练,但它们并未针对您的数据进行训练。您的数据可能是私有的,或与您要解决的问题相关。这些数据可能隐藏在API接口之后、SQL数据库中,或被困在PDF文件和幻灯片文档里。
上下文增强使您的数据可供LLM使用,以解决当前问题。LlamaIndex提供从原型到生产环境构建任何上下文增强用例的工具。我们的工具允许您摄取、解析、索引和处理数据,并快速实现结合数据访问与LLM提示的复杂查询工作流。
上下文增强最流行的例子是检索增强生成或RAG,它在推理时将上下文与LLMs相结合。
LlamaIndex 是构建上下文增强型LLM应用的框架#
LlamaIndex 对您如何使用LLM没有任何限制。您可以将LLM用作自动补全、聊天机器人、智能体等。它只是让使用变得更简单。我们提供的工具包括:
- 数据连接器 从原始来源和格式中提取您现有的数据。这些数据可能来自API、PDF、SQL等(甚至更多)。
- 数据索引将您的数据组织成中间表示形式,便于大型语言模型高效使用。
- Engines provide natural language access to your data. For example:
- 查询引擎是用于问答的强大接口(例如RAG流程)。
- 聊天引擎是与您的数据进行多轮"来回"对话的交互式界面。
- 智能体是由LLM驱动的知识工作者,通过工具进行增强,从简单的辅助功能到API集成等。
- 可观测性/评估集成功能,让您能够在良性循环中严格实验、评估和监控您的应用。
- 工作流 允许你将上述所有功能整合到一个事件驱动系统中,其灵活性远超其他基于图的方法。
使用案例#
LlamaIndex 和上下文增强的一些常见应用场景包括:
- 问答系统 (检索增强生成,即RAG)
- 聊天机器人
- 文档理解与数据提取
- Autonomous Agents 能够进行研究并采取行动的智能体
- Multi-modal applications 结合文本、图像和其他数据类型的多模态应用
- Fine-tuning 在数据上微调模型以提高性能
查看我们的使用案例文档,获取更多示例和教程链接。
👨👩👧👦 LlamaIndex适合哪些人使用?#
LlamaIndex为初学者、高级用户以及介于两者之间的所有人提供了工具。
我们的高级API允许初学者用户仅用5行代码即可使用LlamaIndex来摄取和查询他们的数据。
对于更复杂的应用场景,我们的底层API允许高级用户根据需求自定义和扩展任何模块——包括数据连接器、索引、检索器、查询引擎以及重排序模块。
入门指南#
LlamaIndex提供Python版本(本文档)和Typescript版本。如果您不确定从何开始,我们建议阅读如何阅读这些文档,它将根据您的经验水平为您指明正确的方向。
30秒快速入门#
设置一个名为OPENAI_API_KEY
的环境变量,并填入OpenAI API密钥。安装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 Python Github
- Python Docs (您现在正在阅读的内容)
- LlamaIndex在PyPi上
- LlamaIndex.TS (Typescript/Javascript package):
贡献#
我们是开源的,并始终欢迎对本项目的贡献!查看我们的贡献指南了解完整详情,包括如何扩展核心库或添加与第三方(如LLM、向量数据库、智能体工具等)的集成。
LlamaIndex 生态系统#
LlamaIndex 的世界远不止于此!来看看我们的其他项目:
- llama_deploy | 将您的智能体工作流部署为生产级微服务
- LlamaHub | 一个庞大(且不断增长!)的自定义数据连接器集合
- SEC Insights | 一个由LlamaIndex驱动的金融研究应用
- create-llama | 一个快速搭建LlamaIndex项目的CLI工具