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)
嵌入模型
Embedding
模型用于将文本转化为数值表示,用于计算相似度和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
转换
在摄取过程中将转换应用于文档。默认情况下,使用node_parser/text_splitter
,但可以进一步覆盖和定制。
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Settings
Settings.transformations = [SentenceSplitter(chunk_size=1024)]
标记器
标记器用于计数标记。应该将其设置为与您正在使用的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
的输入提示有足够的空间来生成一定数量的令牌。
通常,这些都是使用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
设置本地配置
使用设置的特定部分的接口也可以接受本地覆盖。
index = VectorStoreIndex.from_documents(
documents, embed_model=embed_model, transformations=transformations
)
query_engine = index.as_query_engine(llm=llm)
标签:index,LLM,Settings,LlamaIndex,llama,import,全局,core
From: https://blog.csdn.net/weixin_40986713/article/details/143713175