跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://ahvn.top/llms.txt

Use this file to discover all available pages before exploring further.

HeavenBase 的运行时默认值通过原生配置管理器 CM_HVNB 读取:
from heavenbase.utils import CM_HVNB

CM_HVNB.get("heavenbase.query.near.default_top_k", default=50)
CM_HVNB 提供作用域配置、持久化配置和高速读取。热路径使用不可变内存快照,因此重复读取配置不会每次运行 SQL,也不会每次重新合并整棵配置树。
需要共享运行时配置管理器或 dict path helper 时,从 heavenbase.utils 导入配置 API。

作用域

配置从宽作用域向窄作用域解析。例如 heavenbase.workspace.demo 会依次读取:
  1. heavenbase
  2. heavenbase.workspace
  3. heavenbase.workspace.demo
scoped(...) 可作为 context manager 或 decorator 使用:
with CM_HVNB.scoped("workspace.demo"):
    metric = CM_HVNB.get("heavenbase.query.near.default_metric")

快照

高频读取路径应保存并复用快照:
snap = CM_HVNB.snapshot()
top_k = snap.get("heavenbase.query.near.default_top_k")
metric = snap.get("heavenbase.query.near.default_metric")
快照是不可变的。热修改不会改变已经创建的快照;下一次快照刷新会根据 generation 策略看到新配置。

编辑和维护

配置写入会立即持久化。普通编辑使用 set(...)setdef(...)unset(...)
CM_HVNB.set("heavenbase.query.near.default_top_k", 25)
CM_HVNB.setdef("heavenbase.query.near.default_metric", "cosine")
CM_HVNB.unset("heavenbase.backends.vec")
列表编辑通过 path 语法完成:
  • items[0] 替换元素。
  • items[] 追加元素。
  • items[2+] 插入到下标 2 之前。
unset(...) 会写入 tombstone,使子作用域可以隐藏从父作用域继承的值。dict 可以使用 __HB_OVERWRITE__ 替换父级 dict,而不是递归合并。 load() 返回可修改的合并后配置字典,layer(scope, version=None) 返回某个 scope 中存储的原始 layer。history(...)versionversion_chainscopes()compact(...)remove(...) 用于查看和维护保留的配置版本。save() 是成功的 no-op,因为写操作已经即时持久化。 resource(...) 会在包可定位时解析 resources/ 下的文件路径。load_default() 返回用于初始化 scope 的内存默认配置模板。

持久化

配置层通过 bootstrap store 存入本地 SQLite。默认每个作用域保留最新 10 个版本,因此普通编辑不会积累大量历史行。 bootstrap store 会把 ConfigLayerConfigCompat 投影为系统实体,供后续 CLI 和工作区管理视图使用;但配置启动不依赖普通 HeavenBase workspace。

插值

OmegaConf 插值在编译快照时解析:
  • 默认允许 ${env:VAR}
  • ${oc.env:VAR,default} 通过 OmegaConf 支持。
  • ${cmd:...} 默认禁用,必须显式启用 policy。