Sider.ai
  • 聊天
  • Wisebase
  • 工具
  • 瀏覽器插件
  • 客户端
  • 定價
立即下載
登入

透過 Sider 更快學習、更深入思考、更聰明成長。

產品
應用程式
  • 擴充功能
  • iOS
  • Android
  • Mac OS
  • Windows
Wisebase
  • Wisebase
  • Deep Research
  • Scholar Research
  • Math Solver
  • Rec NoteNew
  • Audio To Text
  • Gamified Learning
  • Interactive Reading
  • ChatPDF
工具
  • 網站產生器New
  • AI 投影片New
  • AI 論文寫作
  • Nano Banana Pro
  • Nano Banana Infographic
  • AI 圖像生成器
  • 意大利腦洞
  • 背景移除器
  • 背景更換器
  • 照片橡皮擦
  • 文字移除器
  • 修補
  • 圖像升級器
  • 創建
  • AI 翻譯器
  • 圖像翻譯器
  • PDF 翻譯器
Sider
  • 聯絡我們
  • 幫助中心
  • 下載
  • 定價
  • 教育優惠
  • 最新消息
  • 部落格
  • 社群
  • 合作夥伴
  • 聯盟
  • 邀請
©2026 版權所有
使用條款
隱私政策
  • 首頁
  • 部落格
  • AI 工具
  • LlamaIndex 使用指南:從零到產品的實用指南

LlamaIndex 使用指南:從零到產品的實用指南

更新於 2025年9月23日

10 分鐘


如何使用LlamaIndex:從零到生產的實用指南

如果您曾經嘗試構建一個檢索增強生成(RAG)應用程序,並且覺得「為什麼連接嵌入(embeddings)、向量儲存(vector stores)和提示(prompts)如此繁瑣?」,那麼您並不孤單。LlamaIndex的存在就是為了使這個流程快速、合理且可投入生產。在本實用且以解決方案為導向的指南中,我們將逐步介紹如何端到端地使用LlamaIndex——數據攝取(data ingestion)、索引(indexing)、查詢(querying)、評估(evaluation)和部署(deployment)——以便您可以交付可靠的成果,而不會迷失在膠水代碼中。
我們將使用以問題為導向的結構,包含循序漸進的步驟、可運行的程式碼片段和真實世界的技巧。無論您是為內部文檔製作聊天機器人原型,還是為客戶部署知識助理,學習如何有效地使用LlamaIndex都將節省您大量的時間。
:LlamaIndex是一個框架,可幫助您通過索引、檢索和協調工具將您的數據連接到大型語言模型——非常適合RAG、代理(agents)和結構化輸出。

什麼是LlamaIndex,以及為什麼要使用它?

  • LlamaIndex是用於LLM應用程序的數據框架。它為以下方面提供了構建模塊:
  • 攝取(Ingestion):加載文件、網頁、數據庫和API。
  • 分塊和索引(Chunking & Indexing):將原始內容轉換為可查詢的結構(向量、關鍵字、圖索引)。
  • 檢索(Retrieval):使用靈活的策略(BM25、混合、重新排序)檢索上下文。
  • 查詢引擎和代理(Query Engines & Agents):將檢索、工具和提示組合成一個連貫的QA體驗。
  • 評估和監控(Evaluation & Monitoring):判斷檢索質量和答案相關性。
  • 何時使用LlamaIndex:
  • 您想要一個強大的RAG堆棧,而無需重新發明分塊、嵌入和檢索。
  • 您需要組合多個數據源(PDF + Notion + SQL)。
  • 您想嘗試混合檢索、重新排序或結構化輸出。
  • 學習如何使用LlamaIndex時的核心心智模型:
  • 數據 → 節點(Nodes)→ 索引 → 檢索器(Retriever)→ 查詢引擎(Query Engine)→ 應用程序(App)

快速入門:最小的RAG迴圈

這是通往工作原型的最快途徑。我們將加載文檔、構建向量索引並提出問題。
# 1) 安裝
# pip install llama-index llama-index-embeddings-openai llama-index-llms-openai
import os
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
# 2) 配置您的模型 + 嵌入
os.environ["OPENAI_API_KEY"] = "YOUR_KEY" # 或使用任何受支持的LLM/嵌入提供程序
llm = OpenAI(model="gpt-4o-mini")
embed_model = OpenAIEmbedding(model="text-embedding-3-small")
# 3) 加載文檔 (例如,./data/*.pdf, .md, .txt)
docs = SimpleDirectoryReader("./data").load_data
# 4) 構建索引
index = VectorStoreIndex.from_documents(docs, embed_model=embed_model)
# 5) 創建查詢引擎並提出問題
query_engine = index.as_query_engine(llm=llm)
response = query_engine.query("文檔中提到了哪些關鍵安全實踐?")
print(response)
這就是本質。從這裡開始,真正的應用程序會添加更好的分塊、重新排序、結構化提示和可觀察性。

攝取:以正確的方式攜帶您自己的數據(BYOD)

當您決定如何將LlamaIndex用於真實數據時,請選擇與您的來源匹配並保留結構的加載器。
  • 常見加載器:
  • 文件:SimpleDirectoryReader,PDF/HTML/Markdown閱讀器
  • 網絡:BeautifulSoupWebReader,網站地圖閱讀器
  • SaaS:Notion、Confluence、Slack、Google Drive(通過連接器)
  • 數據庫:SQL和向量數據庫(Pinecone、Weaviate、Chroma、Elasticsearch)
  • 提示:規範化元數據(標題、作者、URL、created_at)。良好的元數據可以在以後增強重新排序和過濾。
from llama_index.core import SimpleDirectoryReader
from llama_index.readers.web import SimpleWebPageReader
file_docs = SimpleDirectoryReader("./policies").load_data
web_docs = SimpleWebPageReader(html_to_text=True).load_data
all_docs = file_docs + web_docs

分塊和節點解析器:垃圾進,垃圾出

正確進行分塊是學習如何有效使用LlamaIndex的最重要步驟之一。
  • 為什麼分塊很重要:太大 → token膨脹和不相關的檢索。太小 → 上下文碎片化。
  • 默認值:對於許多情況來說是合理的,但要根據您的內容類型進行調整。
  • 啟發法:
  • 技術文檔:512–1024 token的塊,重疊10–20%。
  • 常見問題解答:較小的塊(256–512)以保持問答對的完整性。
  • 法律/政策:較大的塊(1024–1536)以保留定義+條款。
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Document
parser = SentenceSplitter(chunk_size=800, chunk_overlap=100)
nodes = []
for d in all_docs:
nodes.extend(parser.get_nodes_from_documents([Document(text=d.text, metadata=d.metadata)]))

索引策略:向量、關鍵字或混合?

選擇正確的索引至關重要。好消息是:LlamaIndex允許您將它們組合起來。
  • 向量索引:非常適合語義搜索。最適合「解釋X」或模糊查詢。
  • 關鍵字(BM25):對於精確術語、ID、錯誤代碼、日誌非常有效。
  • 混合:將兩者結合;使用LLM或交叉編碼器(cross‑encoder)對候選者進行重新排序。
from llama_index.core import VectorStoreIndex, SummaryIndex
from llama_index.core.retrievers import BM25Retriever
from llama_index.core.query_engine import RetrieverQueryEngine
# 來自預解析節點的向量索引
v_index = VectorStoreIndex(nodes)
# BM25關鍵字檢索器
bm25_retriever = BM25Retriever.from_defaults(nodes=nodes, similarity_top_k=6)
# 混合:合併候選者,然後重新排序
from llama_index.core.retrievers import RouterRetriever
from llama_index.retrievers.merge import MergerRetriever
v_retriever = v_index.as_retriever(similarity_top_k=6)
hybrid = MergerRetriever(retrievers=[v_retriever, bm25_retriever], top_k=8)
query_engine = RetrieverQueryEngine.from_args(retriever=hybrid)

重新排序和過濾器:提高精度而不需過度付費

重新排序通過根據相關性重新排列檢索到的塊來提高答案質量。
  • 何時重新排序:如果用戶報告了離題的引用或冗長、填充的上下文。
  • 方法:
  • 交叉編碼器(bi‑encoder嵌入搜索 → 交叉編碼器重新排序)
  • 基於LLM的重新排序(成本更高,有時在細微的文本上更智能)
  • 元數據過濾器(例如,source == 'handbook',created_at > 2024-01-01)
from llama_index.postprocessor.flag_embedding_reranker import FlagEmbeddingReranker
from llama_index.core.query_engine import RetrieverQueryEngine
reranker = FlagEmbeddingReranker(top_n=5, model="BAAI/bge-reranker-base")
query_engine = v_index.as_query_engine(
similarity_top_k=12,
node_postprocessors=[reranker]
)

提示和查詢引擎:從搜索到答案

查詢引擎是檢索與生成相遇的地方。要掌握如何在生產中使用LlamaIndex,請仔細設計提示和響應合成。
  • 答案合成策略:
  • 簡單的“stuff”(連接)用於小上下文
  • 樹或map‑reduce用於較長的上下文
  • 引用模式以顯示來源
from llama_index.core.response_synthesizers import get_response_synthesizer
from llama_index.core import ServiceContext
synth = get_response_synthesizer(response_mode="tree_summarize")
query_engine = v_index.as_query_engine(response_synthesizer=synth)
ans = query_engine.query("總結入職步驟並引用來源。")
print(ans)
  • 自定義提示:定制語氣、結構化輸出或護欄。
from llama_index.core.prompts import PromptTemplate
qa_tmpl = PromptTemplate(
"""
你是一個簡潔、以證據為先的助手。僅使用提供的上下文。
如果不確定,請說你不知道。返回帶有鍵的JSON:answer, sources。
問題:{query_str}
上下文:{context_str}
"""
)
query_engine = v_index.as_query_engine(text_qa_template=qa_tmpl)

代理和工具:當檢索不足時

有時答案需要操作:運行SQL、調用API或瀏覽。LlamaIndex代理將工具和推理與您的檢索流程協調起來。
  • 用例:KPI儀表板(SQL工具)、支持機器人(工單查找API)、研究代理(網絡+RAG)。
from llama_index.core.agent import ReActAgent
from llama_index.tools.sql import SQLQueryEngineTool
from sqlalchemy import create_engine
engine = create_engine("sqlite:///analytics.db")
sql_tool = SQLQueryEngineTool.from_engine(engine)
agent = ReActAgent.from_tools([sql_tool], llm=llm, verbose=True)
agent.chat("2025年第二季度的每月客戶流失率是多少?如果需要,查詢數據庫。")

評估:不要盲目發布

負責任地學習如何使用LlamaIndex意味著在推出之前驗證檢索和答案。
  • 離線評估:判斷標記集上的檢索召回率/精確度。
  • 在線評估:記錄用戶提示、衡量滿意度、轉移率和幻覺。
  • 內置:LlamaIndex為忠實度和答案相關性提供了評估助手。
from llama_index.core.evaluation import FaithfulnessEvaluator, RelevancyEvaluator
faith = FaithfulnessEvaluator(llm=llm)
rel = RelevancyEvaluator(llm=llm)
pred = query_engine.query("列出我們政策中的SOC 2控制系列。")
print("faithful?", faith.evaluate_response(pred))
print("relevant?", rel.evaluate_response(pred))
  • 實際標準:對於內部助手,在廣泛啟動之前,將頂級查詢的“有用”評級定為>80%。

持久性和向量儲存:使其可擴展

在內存中構建的索引不適用於實際工作負載。持久化到向量數據庫並啟用增量更新。
  • 流行的後端:Pinecone、Weaviate、Chroma、Elasticsearch/OpenSearch、Qdrant。
  • 提示:每個租戶或部門使用命名空間;保持元數據豐富。
# 示例:Chroma
# pip install chromadb llama-index-vector-stores-chroma
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext
import chromadb
chroma_client = chromadb.PersistentClient(path="./chroma_store")
collection = chroma_client.get_or_create_collection("company_knowledge")
vector_store = ChromaVectorStore(chroma_collection=collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(all_docs, storage_context=storage_context)

安全性和治理:每個人都忘記的部分

  • PII處理:在攝取期間編輯或哈希敏感字段。
  • 訪問控制:使用元數據約束按用戶角色進行過濾。
  • 內容新鮮度:安排重新攝取;標記版本。
  • 安全:在提示中添加拒絕策略和僅來源約束。
# 示例:查詢時基於元數據的過濾
retriever = index.as_retriever(similarity_top_k=8)
retriever.metadata_filters = {"department": ["legal", "security"], "published": [True]}

從原型到生產:部署模式

  • 服務器模式:公開一個/query端點;保持索引在內存中。
  • 無服務器陷阱:冷啟動+大型模型會損害延遲;考慮託管推理。
  • 緩存:緩存嵌入和頻繁的查詢結果;啟用部分更新。
  • 可觀察性:記錄檢索到的節點、token使用情況、答案長度和用戶反饋。
# 最小的FastAPI包裝器
# pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI
qe = index.as_query_engine(llm=llm)
@app.post("/query")
async def query(payload: dict):
q = payload.get("q", "")
resp = qe.query(q)
return {"answer": str(resp), "sources": [s.node.metadata for s in resp.source_nodes]}

真實世界的藍圖:選擇您的路徑

  1. 內部政策助理
  • 索引:帶有重新排序的混合(BM25 +向量)
  • 護欄:僅來源模式;“我不知道”後備
  • KPI:政策問題的解決率
  1. 客戶支持副駕駛
  • 索引:產品文檔+發布說明+工單
  • 代理:用於檢查訂單/工單狀態的API工具
  • KPI:首次聯繫解決、轉移、CSAT
  1. 研究分析師
  • 索引:網絡+PDF+筆記;強大的重複數據刪除
  • 重新排序:交叉編碼器;合成:map‑reduce
  • KPI:洞察時間;引用準確性
  1. BI的數據QA
  • 工具:SQL引擎+關於指標定義的RAG
  • 治理:行級策略;查詢審計
  • KPI:正確性與真實性

成本和延遲:保持快速(且便宜)

  • 嵌入:盡可能批量處理;使用較小的模型進行召回,有選擇地重新排序。
  • 上下文大小:目標是最相關塊的1–2k token。
  • 緩存:緩存熱門查詢的前K個檢索;使用哈希提示記憶LLM調用。
  • 並行性:扇出檢索 → 扇入重新排序以減少尾部延遲。

學習如何使用LlamaIndex時的常見陷阱

  • 過度分塊,導致淺薄、嘈雜的檢索
  • 沒有元數據過濾器,導致不相關的來源洩露
  • 依賴於單一索引類型來處理所有內容
  • 跳過評估;在沒有質量標準的情況下發布
  • 讓索引過時;沒有安排刷新

順便說一句:加速您在編輯器中的工作流程

當您迭代提示、分塊器和檢索設置時,值得注意的是,像Sider.ai這樣的人工智能編碼和研究側邊欄可以加速迴圈。您可以隨時掌握程式碼片段、提示和評估筆記,生成提示更改的差異,並快速測試變體,而無需離開瀏覽器。當您調整如何在不同檢索策略中使用LlamaIndex時,這尤其方便。

逐步檢查表:從零到生產

  • 攝取來源並規範化元數據
  • 按內容類型調整塊大小
  • 構建向量+BM25索引;啟用混合檢索
  • 添加重新排序和元數據過濾器
  • 自定義提示;啟用引用和拒絕策略
  • 在測試集上評估忠實度和相關性
  • 持久化到向量儲存;啟用增量更新
  • 添加可觀察性、緩存和RBAC過濾器
  • 包裝在API中並設置SLA;記錄故障模式

主要收穫

  • 如果您想要一個強大的RAG應用程序,學習如何使用LlamaIndex將節省數週的膠水工程。
  • 從簡單開始,然後分層混合檢索、重新排序和結構化提示。
  • 在擴展之前進行評估;持久化索引並監控生產中的質量。
  • 從第一天起就為治理而設計——安全性不是附加組件。

下一步

  • 在小型文檔集上製作快速入門原型。
  • 試驗混合檢索和重新排序器。
  • 添加評估和引用;跟踪質量指標。
  • 移動到持久向量儲存並部署API。

常見問題

Q1:在RAG應用程序中,LlamaIndex用於什麼? LlamaIndex通過攝取、索引和檢索組件幫助您將數據連接到LLM。它通過處理分塊、向量/關鍵字索引和查詢協調來簡化RAG系統的構建。
Q2:如何在LlamaIndex中選擇正確的索引類型? 使用向量索引進行語義查詢,使用BM25進行精確匹配,例如ID或代碼,並使用混合方法來獲得最佳的總體召回率和精度。許多團隊將兩者結合起來,並為前K個結果添加重新排序。
Q3:如何提高使用 LlamaIndex 時的準確性? 調整區塊大小、包含豐富的元數據、啟用混合檢索,並新增一個重新排序器。此外,實施對忠實性和相關性的評估,並使用引用模式來顯示來源。
Q4:LlamaIndex 可以與我現有的向量資料庫一起使用嗎? 可以。LlamaIndex 與流行的向量儲存庫整合,如 Pinecone、Weaviate、Chroma、Qdrant 和 Elasticsearch。持久化索引以實現可擴展性和增量更新。
Q5:如何將 LlamaIndex 應用程式部署到生產環境? 將您的查詢引擎封裝在 API 中(例如,FastAPI),將資料持久化到向量儲存庫中,新增快取和可觀察性,並持續評估品質。強制執行元數據篩選器和存取控制以確保安全性。

最新文章
如何精通 ChatPDF:從密集文件中更快獲取洞見

如何精通 ChatPDF:從密集文件中更快獲取洞見

快速且準確文件的最佳 X 自動翻譯替代方案

快速且準確文件的最佳 X 自動翻譯替代方案

三星 AI 翻譯在伊朗無法使用?實用解決方法

三星 AI 翻譯在伊朗無法使用?實用解決方法

波斯語翻譯工具:加速且精準工作的實用指南

波斯語翻譯工具:加速且精準工作的實用指南

深度且具引用的研究最佳Grok替代方案

深度且具引用的研究最佳Grok替代方案

您真正會用到的 AI 圖像生成器 15 大功能

您真正會用到的 AI 圖像生成器 15 大功能