llama_index - LlamaIndex (GPT Index) 是一个提供中央接口以将您的 LLM 与外部数据连接起来的项目。

Created at: 2022-11-02 12:24:54
Language: Python
License: MIT

🗂️美洲驼指数(GPT指数🦙

⚠️ 注意:我们将GPT索引更名为LlamaIndex!我们将逐步进行这一过渡。

2023 年 2 月 25 日:默认情况下,我们的文档/笔记本/说明现在引用“美洲驼索引”而不是“GPT 索引”。

2023 年 2 月 19 日:默认情况下,我们的文档/笔记本/说明现在使用该软件包。但是,该软件包仍然作为副本存在!

llama-index
gpt-index

2023 年 2 月 16 日:我们有一个重复的点包。只需将所有导入的替换为 (如果选择)。

llama-index
gpt_index
llama_index
pip install llama-index

LlamaIndex(GPT索引)是一个项目,它提供了一个中央接口,将你的LLM与外部数据连接起来。

皮皮:

文档:https://gpt-index.readthedocs.io/en/latest/

推特:https://twitter.com/gpt_index

不和谐:https://discord.gg/dGcwcsnxhU

LlamaHub(数据加载器社区库):https://llamahub.ai

🚀概述

注意:本自述文件的更新频率不如文档。请查看上面的文档以获取最新更新!

上下文

  • LLM是用于知识生成和推理的现象级技术。他们根据大量公开可用的数据进行了预先训练。
  • 我们如何用自己的私有数据最好地增强LLM?
  • 已经出现的一种范式是上下文学习(另一种是微调),我们将上下文插入输入提示。这样,我们就利用LLM的推理能力来生成响应。

为了以高性能,高效和廉价的方式执行LLM的数据增强,我们需要解决两个组件:

  • 数据摄取
  • 数据索引

建议的解决方案

这就是LlamaIndex的用武之地。LlamaIndex是外部数据和LLM之间的简单,灵活的接口。它以易于使用的方式提供以下工具:

  • 提供现有数据源和数据格式(API、PDF、文档、SQL 等)的数据连接器
  • 提供非结构化和结构化数据的索引,以便与LLM一起使用。这些索引有助于抽象出上下文学习的常见样板和痛点:
    • 以易于访问的格式存储上下文,以便提示插入。
    • 当上下文太大时处理提示限制(例如达芬奇的 4096 个代币)。
    • 处理文本拆分。
  • 为用户提供一个接口来查询索引(输入提示中的源)并获得知识增强的输出。
  • 为你提供一个全面的工具集,权衡成本和性能。

💡贡献

对贡献感兴趣吗?有关更多详细信息,请参阅我们的贡献指南

📄文档

完整的文档可以在这里找到:https://gpt-index.readthedocs.io/en/latest/

请查看最新的教程、操作指南、参考资料和其他资源!

💻示例用法

pip install llama-index

示例位于文件夹中。索引位于文件夹中(请参阅下面的索引列表)。

examples
indices

要构建简单的向量存储索引,请执行以下操作:

import os
os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY'

from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader('data').load_data()
index = GPTSimpleVectorIndex(documents)

要保存到磁盘并从磁盘加载:

# save to disk
index.save_to_disk('index.json')
# load from disk
index = GPTSimpleVectorIndex.load_from_disk('index.json')

要查询:

index.query("<question_text>?")

🔧依赖

主要的第三方软件包要求是 、 和 。

tiktoken
openai
langchain

所有要求都应包含在文件中。要在本地运行包而不构建轮子,只需运行 .

setup.py
pip install -r requirements.txt

📖引文

如果你在论文中使用LlamaIndex,则引用引用:

@software{Liu_LlamaIndex_2022,
author = {Liu, Jerry},
doi = {10.5281/zenodo.1234},
month = {11},
title = {{LlamaIndex}},
url = {https://github.com/jerryjliu/gpt_index},
year = {2022}
}