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

Settings 打包了 LlamaIndex 工作流/应用在建索引与查询阶段常用的一组资源。

你可以用它设置全局配置。局部配置(变换、LLM、嵌入模型)可以直接传给用到它们的那些接口。

Settings 是一个简单的单例对象,贯穿你的整个应用。每当某个组件没有被提供时,就会用 Settings 对象作为全局默认值来补上。

Settings 对象上可以配置以下属性:

LLM

LLM 用于响应提示词与查询,负责撰写自然语言的回答。

from llama_index.llms.openai import OpenAI
from llama_index.core import Settings

Settings.llm = OpenAI(model="gpt-3.5-turbo", temperature=0.1)

嵌入模型

嵌入模型用于把文本转换成数值表示,以供计算相似度与 top-k 检索。

from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings

Settings.embed_model = OpenAIEmbedding(
    model="text-embedding-3-small", embed_batch_size=100
)

节点解析器 / 文本切分器

节点解析器/文本切分器用于把文档解析成更小的块,也就是节点。

from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Settings

Settings.text_splitter = SentenceSplitter(chunk_size=1024)

如果你只想调整块大小或块重叠、而不想更换默认的切分器,这也完全可以:

Settings.chunk_size = 512
Settings.chunk_overlap = 20

变换

变换会在摄取过程中作用于 Document。默认使用 node_parser/text_splitter,但可以被覆盖和进一步定制。

from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Settings

Settings.transformations = [SentenceSplitter(chunk_size=1024)]

分词器

分词器用于统计 token 数。它应当设置为与你所用 LLM 相匹配的那一个。

from llama_index.core import Settings

# openai
import tiktoken

Settings.tokenizer = tiktoken.encoding_for_model("gpt-3.5-turbo").encode

# open-source
from transformers import AutoTokenizer

Settings.tokenzier = AutoTokenizer.from_pretrained(
    "mistralai/Mixtral-8x7B-Instruct-v0.1"
)

回调

你可以设置一个全局回调管理器,用来观察并消费 llama-index 代码运行过程中产生的事件

from llama_index.core.callbacks import TokenCountingHandler, CallbackManager
from llama_index.core import Settings

token_counter = TokenCountingHandler()
Settings.callback_manager = CallbackManager([token_counter])

提示词辅助参数

查询过程中会用到若干特定的参数/取值,以确保送给 LLM 的输入提示词留有足够的空间来生成一定数量的 token。

通常这些值会依据 LLM 的属性自动配置,但特殊情况下也可以覆盖。

from llama_index.core import Settings

# maximum input size to the LLM
Settings.context_window = 4096

# number of tokens reserved for text generation.
Settings.num_output = 256

提示

学习如何配置具体模块:- LLM - 嵌入模型 - 节点解析器/文本切分器 - 回调

设置局部配置

会用到 settings 中某些部分的接口,也接受局部覆盖。

index = VectorStoreIndex.from_documents(
    documents, embed_model=embed_model, transformations=transformations
)

query_engine = index.as_query_engine(llm=llm)

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