
Node.js 后端開(kāi)發(fā)指南:搭建、優(yōu)化與部署
LlamaIndex 中的 SummaryIndex 提供了三種不同的檢索器模式:default
、embedding
和 llm
。每種模式都有其獨(dú)特的技術(shù)依賴和應(yīng)用場(chǎng)景。
SummaryIndexRetriever
是默認(rèn)的檢索器模式,它主要依賴于預(yù)先計(jì)算的摘要信息來(lái)檢索數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是速度快,但缺點(diǎn)是可能無(wú)法捕捉到最新的數(shù)據(jù)變化。
summary_retriever_default = summary_index.as_retriever(retriever_mode="default")
SummaryIndexEmbeddingRetriever
使用嵌入技術(shù)來(lái)進(jìn)行檢索。這種方式的優(yōu)點(diǎn)是可以捕捉到語(yǔ)義上的相似性,但缺點(diǎn)是計(jì)算開(kāi)銷較大。
summary_retriever_embedding = summary_index.as_retriever(retriever_mode="embedding")
SummaryIndexLLMRetriever
使用大型語(yǔ)言模型來(lái)進(jìn)行檢索。這種方式的優(yōu)點(diǎn)是可以處理復(fù)雜的查詢和文檔,捕捉到更深層次的語(yǔ)義關(guān)系,但缺點(diǎn)是計(jì)算開(kāi)銷非常大。
summary_retriever_llm = summary_index.as_retriever(retriever_mode="llm")
根據(jù)不同的應(yīng)用需求,選擇合適的檢索器模式至關(guān)重要。以下是一些場(chǎng)景和建議:
default
模式。embedding
模式。llm
模式。以下是如何在 Python 中使用 LlamaIndex 構(gòu)建 SummaryIndex 并執(zhí)行檢索的示例代碼。
from llama_index.core import SimpleDirectoryReader, get_response_synthesizer
from llama_index.core import DocumentSummaryIndex
from llama_index.llms.openai import OpenAI
from llama_index.core.node_parser import SentenceSplitter
chatgpt = OpenAI(temperature=0, model="gpt-3.5-turbo")
splitter = SentenceSplitter(chunk_size=1024)
response_synthesizer = get_response_synthesizer(response_mode="tree_summarize", use_async=True)
doc_summary_index = DocumentSummaryIndex.from_documents(
city_docs,
llm=chatgpt,
transformations=[splitter],
response_synthesizer=response_synthesizer,
show_progress=True,
)
default
模式;需要捕捉語(yǔ)義相似性,選擇 embedding
模式;需要處理復(fù)雜查詢,選擇 llm
模式。通過(guò)本文的介紹和示例代碼,相信你對(duì) SummaryIndex 有了更深入的理解。希望這些信息能幫助你在實(shí)際項(xiàng)目中更好地應(yīng)用 LlamaIndex。
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)