基于LlamaIndex的RAG进阶(附代码)

背景

基于前面实现 RAG demo 进行可用性调整,满足更多定制化需求。

需求描述

  • 索引数据的持久化:默认情况下,向量索引数据全部保存在内存当中,可以把这些数据存储到硬盘上避免丢失;
  • 打印查询和事件日志:用于研发阶段的观察和分析,以及 debug;
  • 嵌入模型支持的参数:设置并发度等,机器资源充足的话加快嵌入的速度;
  • 大模型支持哪些参数:怎么修改 Ollama 地址或端口、模型温度等等;
  • 分块或者检索:有什么直接可用的优化方式吗?

本文将逐个说明上述需求的实现方式,最后提供完整的可执行代码。

需求实现

1. 索引数据持久化

# 存储,默认storage目录,可以修改
PERSIST_DIR = "./storage"
index.storage_context.persist()
# 加载
storage_context = StorageContext.from_defaults(persist_dir=PERSIST_DIR) 
index = load_index_from_storage(storage_context)

2. 打印日志

import logging
import sys

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

以下是 logging 模块中可用的日志级别简要列表:

  • NOTSET (0)
  • DEBUG (10)
  • INFO (20)
  • WARNING (30)
  • ERROR (40)
  • CRITICAL (50)

3.嵌入模型支持的参数

基类:BaseEmbedding

HuggingFace 文本嵌入类, 支持使用本地的模型文件。

参数:

名称 类型 描述 默认值
model_name str 如果是磁盘上的文件路径,则从该路径加载模型。如果不是路径,则首先尝试下载预训练的SentenceTransformer模型。如果失败,则尝试使用Hugging Face Hub上的该名称构建模型。 DEFAULT_HUGGINGFACE_EMBEDDING_MODEL
max_length Optional[int] 在模型配置中设置的最大序列长度。如果为None,将使用模型的默认max_seq_length。默认为None。 None
query_instruction Optional[str] 添加到查询文本的指令。默认为None。 None
text_instruction Optional[str] 添加到文本的指令。默认为None。 None
normalize bool 是否归一化返回的向量。默认为True。 True
embed_batch_size int 用于计算的批处理大小。默认为DEFAULT_EMBED_BATCH_SIZE。 DEFAULT_EMBED_BATCH_SIZE
cache_folder Optional[str] 存储模型的路径。默认为None。 None
trust_remote_code bool 是否允许在Hub上定义并使用自己的模型文件。仅应将此选项设置为True,用于您信任的存储库,并且您已经阅读了代码,因为它将在您的本地机器上执行Hub上的代码。默认为False。 False
device Optional[str] 应该用于计算的设备(如"cuda"、“cpu”、“mps”、"npu"等)。如果为None,则检查是否可以使用GPU。默认为None。 None
callback_manager Optional[CallbackManager] 回调管理器。默认为None。 None
parallel_process bool 如果为True,将启动多进程池,使用多个独立进程处理编码。适用于大量文本。默认为False。 False
target_devices Optional[List[str]] PyTorch目标设备,例如[“cuda: 0”、“cuda: 1”、…]、[“npu: 0”、“npu: 1”、…]或[“cpu”、“cpu”、“cpu”、“cpu”]。如果target_devices为None且CUDA/NPU可用,则将使用所有可用的CUDA/NPU设备。如果target_devices为None且CUDA/NPU不可用,则将使用4个CPU设备。此参数仅在p
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024点线面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值