首页 > 其他分享 >LlamaIndex 中全局配置Settings的设置使用

LlamaIndex 中全局配置Settings的设置使用

时间:2024-11-12 14:17:29浏览次数:3  
标签:index LLM Settings LlamaIndex llama import 全局 core

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

相关文章

  • appsettings.json launchSettings.json 发布 配置
    默认的 JsonConfigurationProvider 会按以下顺序加载配置:appsettings.jsonappsettings.{Environment}.json:例如,appsettings.Production.json 和 appsettings.Development.json 文件。文件的环境版本是根据 IHostingEnvironment.EnvironmentName 加载的。有关详细信息,......
  • 由一个业务需求引发的对 ASP.NET 全局变量的调研及结果
    前言前段时间使用ASP.NETMVC+FormAuth做了一个单机小项目,当时对于采用什么方式来存储登录状态有些纠结,通常的做法是使用Cookie或者Session,但是我想有没有更好的方式来存储登录状态呢?于是花了点时间调研了ASP.NET的全局变量使用方式,希望能找到更好的方式来存储登录状......
  • nodejs 18.20.4 juice 库将html中的全局CSS格式, 转化为每个元素内联的CSS格式
    执行下面命令,安装nodejs和npmubuntu@ubuntu22:~$sudoaptupdateubuntu@ubuntu22:~$sudoaptinstallnpm#npm是Node.js的包管理工具ubuntu@ubuntu22:~$sudoaptinstall-ycurlubuntu@ubuntu22:~$curl-fsSLhttps://deb.nodesource.com/setup_18.x|sudo-Eb......
  • 2024 nature| 基于motif(模体)的药物相互作用预测——采用局部和全局自注意力机制
    【声明:本文是采用模体结构和注意力机制进药物作用预测,抽象到理论可以看作在复杂网络上进行模体和结构的链路预测。文章出处如下】论文出处:https://www.nature.com/articles/s42256-024-00888-61.摘要:药物-药物相互作用(DDIs)是制药研究和临床应用中的重要问题,因为它们可能......
  • (六)OpenPCDet当中Pointpillars之添加全局注意力机制 (Global Attention Mechanism)-深度
    1.什么是全局注意力机制?      全局注意力机制是一种在深度学习中广泛应用的技术,尤其在激光雷达目标检测中具有重要作用。它通过计算输入数据中各元素之间的相关性,动态地确定在进行目标检测时需要关注哪些部分。全局注意力机制的关键在于通过注意力得分对不同输入部分进......
  • 【typescript】什么是类型参数全局?如何使用它们?
    在TypeScript中,“类型参数全局”并不是一个标准术语,这里是指如何在全局范围内定义和使用类型参数,或者是如何处理全局类型的定义。不过,如果从全局类型的角度来看,我们可以讨论一下如何在TypeScript中定义和使用全局类型,以及如何通过类型参数在全局范围内传递类型信息。全局类......
  • 【Python】全面解析Python中的GIL(全局解释器锁):多线程与多进程的实战与抉择
    解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界Python中的GIL(全局解释器锁)对多线程并发执行的限制性影响是开发者在性能优化时需要特别关注的内容。本文将详细讨论GIL的工作机制及其对多线程性能的影响,深入分析Python多线程在CPU密集型和I/O密集型任......
  • 如何在Spring Boot应用中配置全局异常处理器?
    在SpringBoot应用中,可以通过以下步骤配置全局异常处理器:一、创建全局异常处理类创建一个类并添加@ControllerAdvice注解,这个注解表示该类是一个全局的控制器增强类,用于处理控制器中抛出的异常。importorg.springframework.http.HttpStatus;importorg.springframew......
  • 动态动态规划 & 全局平衡二叉树 小记
    估计这几天是正式学习ddp,所以特写笔记。DDP简介是这样一类技巧,利用广义的矩阵乘法实现单点修改权值,动态查询某个点的DP值关于矩阵乘法,广义矩阵乘法其核心思想是利用矩阵乘法具有结合律(可以使用数据结构维护)的优势序列上的Ddp先看一个例子:最大子段和,显然我们有\(f_......
  • C语言内幕--全局变量(结合内存分区、汇编视角看类型、连接器)
    前言学习资源:b站up主:底层技术栈学过C语言都知道,全局变量可以再全局中使用,其实全局变量内部还是涉及到不少知识,这里从内存分区、汇编视角看类型、连接器等角度看待全局变量;由于涉及到底层技术,如果有错误,请各位大佬指点......