AI助手开源技术

llama_index

作者头像
项目作者run-llama

LlamaIndex is the leading framework for building LLM-powered agents over your data.

llama_index 预览图

llama_index 介绍

了解项目的详细信息和使用方法

🗂️ LlamaIndex 🦙 大语言模型数据框架

PyPI 下载量 GitHub 贡献者 Discord Reddit

LlamaIndex(原GPT Index)是为大语言模型应用量身打造的数据框架。使用LlamaIndex开发时,通常需要结合其核心模块与选定的扩展插件。在Python中,有两种方式开始使用LlamaIndex:

  1. 入门版llama-index 这个基础安装包已包含核心模块和精选扩展。

  2. 定制版llama-index-core 仅安装核心模块,再通过LlamaHub按需添加扩展。目前已有300+扩展包可与核心模块无缝配合,支持各类主流LLM、嵌入模型和向量数据库。

Python库采用命名空间设计,导入语句中的core表示使用核心模块,不带core则表示使用扩展模块。

python
1# 典型导入模式 2from llama_index.core.xxx import ClassABC # 核心子模块xxx 3from llama_index.xxx.yyy import ( 4 SubclassABC, 5) # 子模块xxx的扩展yyy 6 7# 具体示例 8from llama_index.core.llms import LLM # 核心LLM接口 9from llama_index.llms.openai import OpenAI # OpenAI扩展

重要链接

LlamaIndex.TS (TypeScript/JavaScript版)

官方文档

X(原Twitter)

领英

Reddit社区

Discord频道

生态体系

🚀 核心价值

注意:本文档更新可能滞后,请以官方文档为准!

背景洞察

  • 大语言模型在知识生成与推理方面表现卓越,但其训练仅基于公开数据
  • 如何将私有数据有效融入LLM?

我们需要一套完整的工具链来实现LLM的数据增强。

解决方案

LlamaIndex应运而生,作为构建LLM应用的数据框架,提供以下核心能力:

  • 多样化数据连接器:支持API、PDF、文档、SQL等各类数据源
  • 智能数据结构化:通过索引和图结构优化数据组织形式
  • 高级检索接口:输入任意提示词,获取经过知识增强的响应
  • 无缝系统集成:兼容LangChain、Flask、Docker、ChatGPT等框架

既提供5行代码快速上手的顶层API,也开放底层模块(数据连接器、索引、检索器等)的深度定制能力。

📄 文档资源

完整文档请访问官网,包含最新教程、指南和API参考。

💻 使用示例

sh
1# 自定义安装组合 2pip install llama-index-core 3pip install llama-index-llms-openai 4pip install llama-index-llms-replicate 5pip install llama-index-embeddings-huggingface

示例代码位于docs/examples目录,索引实现详见indices文件夹。

使用OpenAI构建向量索引:

python
1import os 2os.environ["OPENAI_API_KEY"] = "您的OpenAI密钥" 3 4from llama_index.core import VectorStoreIndex, SimpleDirectoryReader 5 6documents = SimpleDirectoryReader("数据目录").load_data() 7index = VectorStoreIndex.from_documents(documents)

使用Replicate平台的Llama 2模型:

python
1import os 2os.environ["REPLICATE_API_TOKEN"] = "您的Replicate令牌" 3 4from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader 5from llama_index.embeddings.huggingface import HuggingFaceEmbedding 6from llama_index.llms.replicate import Replicate 7from transformers import AutoTokenizer 8 9# 配置LLM 10llama2_7b_chat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e" 11Settings.llm = Replicate( 12 model=llama2_7b_chat, 13 temperature=0.01, 14 additional_kwargs={"top_p": 1, "max_new_tokens": 300} 15) 16 17# 配置Tokenizer 18Settings.tokenizer = AutoTokenizer.from_pretrained("NousResearch/Llama-2-7b-chat-hf") 19 20# 配置嵌入模型 21Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5") 22 23documents = SimpleDirectoryReader("数据目录").load_data() 24index = VectorStoreIndex.from_documents(documents)

执行查询:

python
1query_engine = index.as_query_engine() 2query_engine.query("您的问题")

默认数据存储在内存中,持久化到磁盘(./storage):

python
1index.storage_context.persist()

从磁盘加载:

python
1from llama_index.core import StorageContext, load_index_from_storage 2 3storage_context = StorageContext.from_defaults(persist_dir="./storage") 4index = load_index_from_storage(storage_context)

🔧 依赖管理

采用poetry管理Python包依赖,各包依赖项详见对应目录下的pyproject.toml文件。

bash
1cd <目标包目录> 2pip install poetry 3poetry install --with dev
Stars
43.3k
Forks
6.2k
Watch
261
版本 v0.12.52
MIT License
更新于 2025年7月25日
agents, application, data, fine-tuning, framework, llamaindex, llm, multi-agents, rag, vector-database
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。

相关项目

探索更多类似的开源项目