Skip to content
LlamaIndex 文档版本 跟随上游 源快照 8e0b9684 更新于 2026-10-15

默认情况下,LlamaIndex 的教程在 LLM 生成和嵌入两方面都使用 OpenAI 的托管 API,这意味着你的文档和查询会离开本机。对很多项目这没问题:OpenAI、Anthropic、Cohere 这类服务商都公布了数据处理政策,并提供数据保护条款更强的企业协议。但对于数据不能离开自有基础设施的项目,LlamaIndex 可以完全在本地跑通整条 RAG 流水线。

完全本地运行 LlamaIndex

一套全本地化的组合大致是这样:

  • LLM:本地运行时,如 llama.cpp、vLLM、Hugging Face Transformers 或 Ollama。
  • 嵌入:HuggingFaceEmbedding,在你自己的硬件上运行任意 Sentence Transformers 模型。
  • 重排器(可选但推荐):SentenceTransformerRerank,一个本地运行的 cross-encoder,无需 API key。
  • 向量库:默认的内存 SimpleVectorStore(可通过 StorageContext.persist() 落盘),或 Chroma、Qdrant、Postgres/pgvector、Milvus 这类自托管存储。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama
from llama_index.core.postprocessor import SentenceTransformerRerank

Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)
Settings.llm = Ollama(model="llama3.1", request_timeout=360.0)

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

reranker = SentenceTransformerRerank(
    model="cross-encoder/ms-marco-MiniLM-L6-v2", top_n=3
)
query_engine = index.as_query_engine(
    similarity_top_k=10, node_postprocessors=[reranker]
)

没有 API key,嵌入、重排与检索环节也不会发出任何对外网络请求。

接下来看哪里

使用托管 API 时的数据隐私

如果你使用托管的 LLM 或嵌入服务商,数据隐私由该服务商的条款约束。OpenAI、Anthropic、Cohere、Voyage 等都各自公布了政策并提供企业协议。LlamaIndex 本身不存储你的数据,但它会把请求发往你配置的各个服务商。

在还没有完全本地化之前,常见的缓解手段有:

  • 使用 Azure OpenAI、AWS Bedrock、Google Vertex AI 或类似的云服务,你往往已经在这些地方签有数据保护协议。
  • 自托管嵌入与重排这两步(它们很轻量),只把 LLM 调用留在云端。通常这是单位投入能换来最大风险降低的做法。
  • 在索引之前用 PIINodePostprocessor 清除文档中的个人身份信息。

向量库的隐私

LlamaIndex 集成了许多向量库,各家都有自己的数据处理政策。自托管选项(SimpleVectorStore、Chroma、Qdrant、Postgres/pgvector、Milvus,以及本地运行的 Weaviate)会把嵌入留在你的基础设施上。托管选项(Pinecone、托管版 Weaviate、Zilliz 等)则按服务商自己的条款把嵌入存在服务商侧。完整清单见向量库指南。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。