You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将LlamaIndex的ObjectIndex存储到文件系统以重复使用?

如何持久化与复用LlamaIndex的ObjectIndex

1. 创建时指定存储上下文并完成持久化

创建ObjectIndex时,先初始化StorageContext并指定存储目录,再将其传入创建方法,最后执行持久化操作即可:

from llama_index import ObjectIndex, StorageContext
from llama_index.objects import SQLTableNodeMapping

# 初始化存储上下文,指定索引保存路径
storage_context = StorageContext.from_defaults(persist_dir="./object_index_storage")

# 假设你已准备好table_objects和sql_table_node_mapping
obj_index = ObjectIndex.from_objects(
    table_objects,
    sql_table_node_mapping,
    storage_context=storage_context,
)

# 执行持久化
storage_context.persist()

2. 加载已持久化的ObjectIndex

后续需要复用索引时,直接从指定目录加载存储上下文,再重建ObjectIndex:

from llama_index import ObjectIndex, StorageContext
from llama_index.objects import SQLTableNodeMapping

# 加载已保存的存储上下文
storage_context = StorageContext.from_defaults(persist_dir="./object_index_storage")

# 注意:节点映射配置必须和创建索引时完全一致
sql_table_node_mapping = SQLTableNodeMapping(...)  # 复用创建时的相同配置

# 加载ObjectIndex
obj_index = ObjectIndex.from_storage(
    storage_context,
    sql_table_node_mapping,
)

# 正常创建查询引擎使用即可
query_engine = obj_index.as_query_engine(...)

关键注意事项

  • 节点映射(如SQLTableNodeMapping)的配置必须与创建索引时完全一致,否则加载会失败
  • 确保每次加载时的persist_dir路径与持久化时的路径一致
  • 若索引使用了自定义LLM或嵌入模型,加载时需保持相同的模型配置

内容的提问来源于stack exchange,提问作者Twixen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:11:56