LlamaIndex,也被稱為GPT Index,是一個為大語言模型(LLM)設計的數據框架,于2023年1月29日正式發布。LlamaIndex的出現為LLM應用程序提供了一個強大的平臺,通過連接到不同的數據源,幫助用戶攝取、構建和訪問私有或特定領域的數據。LlamaIndex在Python和Typescript中均可使用,為用戶提供了一種自然語言與數據交互的方式。雖然LLM已經在大量公開數據上進行了預訓練,但LlamaIndex通過將用戶的私有數據與現有的LLM相結合,實現了數據的增強處理和索引管理。

LlamaIndex有什么幫助?

LlamaIndex為用戶提供了多個關鍵工具:

通過這些工具,LlamaIndex不僅簡化了數據處理流程,還提升了LLM的適用性和效率。

核心原理

LlamaIndex的核心在于通過索引和搜索的方式實現數據的高效查詢和處理。首先,它為外部數據庫建立索引,然后在用戶提問時從這些數據庫中搜索相關信息,最后利用AI的語義理解能力生成答案。在索引和搜索階段,可以使用OpenAI的嵌入接口,也可以選擇其他大語言模型的嵌入方法。LlamaIndex的獨特之處在于,它不僅限于文本索引,還支持將圖片轉換為文本進行索引,實現多模態功能。

Core Principle

LlamaIndex的安裝

安裝

安裝LlamaIndex非常簡單,只需使用Pip命令即可完成安裝:

pip install llama-index
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple llama-index
pip install -i https://mirrors.aliyun.com/pypi/simple llama-index llama-index-core
pip install -i https://mirrors.aliyun.com/pypi/simple -qU llama-index llama-index-core

這些命令可以幫助用戶在不同的Python環境下快速安裝LlamaIndex及其核心組件。

Installation

使用方法

在Python中使用LlamaIndex有兩種主要方式:

LlamaIndex提供了豐富的集成選項,用戶可以根據應用需求選擇合適的插件和集成包。

使用 OpenAI 構建一個簡單的向量存儲索引

import os
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()
index = VectorStoreIndex.from_documents(documents)

上述代碼展示了如何使用OpenAI的API密鑰構建一個簡單的向量存儲索引,便于后續的數據查詢和處理。

使用非 OpenAI 的 LLM 構建索引

import os
os.environ["REPLICATE_API_TOKEN"] = "YOUR_REPLICATE_API_TOKEN"
from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.replicate import Replicate
from transformers import AutoTokenizer

llama2_7b_chat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e"
Settings.llm = Replicate(
    model=llama2_7b_chat,
    temperature=0.01,
    additional_kwargs={"top_p": 1, "max_new_tokens": 300},
)
Settings.tokenizer = AutoTokenizer.from_pretrained(
    "NousResearch/Llama-2-7b-chat-hf"
)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)
documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()
index = VectorStoreIndex.from_documents(
    documents,
)
query_engine = index.as_query_engine()
query_engine.query("YOUR_QUESTION")
index.storage_context.persist()

以上代碼演示了如何使用托管在Replicate上的Llama 2構建索引。

LlamaIndex的案例應用

基礎用法

5行代碼來高效地查詢指定文件內你所需的內容

  1. 第一步,下載數據:從指定網址下載Paul Graham的文本,并將其保存到數據文件夾中。

  2. 第二步,設置您的OpenAI API密鑰:將API密鑰設置為環境變量,以便代碼訪問。

  3. 第三步,加載數據并構建索引

from llama_index import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader('data').load_data()
index = VectorStoreIndex.from_documents(documents)
  1. 第四步,查詢您的數據:創建一個查詢引擎并詢問問題。
query_engine = index.as_query_engine()
response = query_engine.query("作者在成長過程中做了什么?")
print(response)
  1. 第五步,使用日志查看查詢和事件:通過添加日志代碼,可以跟蹤查詢過程。
import logging
import sys

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
  1. 第六步,存儲您的索引:將索引持久化到磁盤以避免重復計算。
index.storage_context.persist()

進階用法

使用LlamaIndex構建和查詢本地文檔索引

LlamaIndex不僅適用于簡單的查詢,還支持復雜的本地索引構建和查詢,通過與ChatGPT接口結合,用戶可以設計出功能強大的RAG系統,實現對本地文檔的高效索引和查詢。

Advanced Usage

FAQ

  1. 問:LlamaIndex是什么?

  2. 問:如何安裝LlamaIndex?

  3. 問:LlamaIndex的核心功能是什么?

  4. 問:LlamaIndex支持哪些編程語言?

  5. 問:LlamaIndex與OpenAI接口如何結合使用?

上一篇:

PayPal中國怎么用:美國PayPal賬戶的功能與區別

下一篇:

PID 是什么:工作原理及其應用
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費