默认配置帮你起步。需要看清接线时,请看本页。
hb.LLM(preset="chat") 与默认 OpenAI 兼容入口 (Gateway)。当你经 Portkey 路由、缓存确定性调用、导出 SDK client 或生成图像时,同一解析模型仍然适用——preset、model、provider、gateway。
1. 入口 (Gateway) 详解 (Gateways in Depth)
默认入口 (Gateway) 为openai。它用 OpenAI Python SDK 访问 provider 的 OpenAI 兼容端点 (Endpoint),因此无需 Portkey、LiteLLM、Bifrost 或原生 Anthropic SDK 进程。
需要入口 (Gateway) 级路由、可观测性、缓存或策略控制时使用 Portkey:
litellm发送 provider 前缀模型 ID,例如deepseek/deepseek-v4-flash。bifrost发送 provider 前缀模型 ID,并使用BIFROST_BASE_URL,默认为http://localhost:8080/v1。mock保持离线并使用内置 mock 适配器。
base_url 配置的载荷族策略,否则将端点切换保留在这些层。
上游临时限制会明确抛出:
gateway="portkey"搭配provider="openrouter"的嵌入在 Portkey 入口 (Gateway) 支持落地前被阻止。- Bifrost 图像生成在上游图像支持未解决前被阻止。
- 原生
anthropic入口 (Gateway) 对嵌入与图像生成抛出异常,因为 Claude Messages 不提供这些操作。
hb.LLM 回退到 openai 入口 (Gateway)。
分步入入口 (Gateway) 配置见 First LLM §5.2 与 LLM providers。
2. 响应缓存 (Response Caching)
HeavenBase 在由 SQLite 实体支撑的专用llm-cache 工作区中缓存归一化 LLM 响应。三个命名空间:text 用于 chat 补全,embedding 用于向量,image 用于生成图像。
缓存默认启用(heavenbase.llm.cache.enabled: true)。需要全新 provider 调用时禁用:
cache=False、cache=True 或自定义 cache config 字典。Chat 缓存自动跳过 tool 循环——可执行工具会禁用该次调用的 text 缓存。
默认策略为 deterministic。Text 与 image 缓存写入要求确定性请求参数:temperature=0(或未设置且固定 seed)、默认 top_p/top_k,图像还需设置 seed。无 seed 的随机调用绕过缓存读写。
在 heavenbase.llm.cache.namespaces 下配置命名空间:
3. Client 复用与 SDK 导出 (Client Reuse and SDK Exports)
每个解析后的LLMSpec 可产生确定性哈希键:
hash_key() 包含解析后的 model、provider、gateway 模式、请求默认与物化解析值。client_key() 仅包含入口 (Gateway) client 构造字段:gateway、API key、base URL、headers、timeout 与 retries。
openai、portkey、bifrost 与 anthropic 的 SDK 适配器以 client_key() 为键保留内存缓存,因此重复的 LLM 实例复用同一 SDK client。
OpenAI 兼容 LLM 实例可在外部库拥有调用循环时导出原始 SDK client:
to_client()、to_aclient() 与 to_args() 适用于 OpenAI 兼容入口 (Gateway):openai、portkey 或 bifrost。对 litellm、anthropic 与 mock 抛出 ValueError。
对原生 Anthropic 入口 (Gateway):
4. 图像生成 (Image Generation)
用imagen 获取图像生成响应:
gpt-5-image-mini 与 gpt-5.4-image-2:
LLMImage 对象;原始 provider 载荷仍可通过 include="raw" 获取。
imagen 接受与 chat 相同的 images= 输入格式作为参考图像:
5. LLMImage API
LLMImage 是 chat 输入、参考图像与生成输出的共享图像类型。
工厂方法归一化常见来源:
LLMImage 仅在转换为 bytes、base64、data URL 或保存时才惰性拉取。拉取超时由 heavenbase.llm.image_url_timeout 配置。
6. Tool-Call 修复 (Tool-Call Repair)
LLMToolCallRepair 在执行前修复畸形的 OpenAI 风格 tool-call 参数字符串。它剥离 markdown 围栏、平衡 JSON 括号、填充缺失必填 schema 字段,并重新序列化为紧凑 JSON。
全局 config 位于 heavenbase.llm.tool_call_repair:
hb.LLM(...) 传入 tool_call_repair={...},或在单次 chat 调用上传 repair_tool_calls=True。实例启用修复时,默认应用 repair_tool_calls=True。
strict: true 时,参数无法解析则抛出 ValueError,而非返回原始字符串。
7. 自定义 OpenAI 兼容提供商 (Custom OpenAI-Compatible Providers)
对实现 OpenAI API 但不在捆绑模型目录中的 provider,使用custom preset:
base_url 与具体 model。
8. 异步 API (Async APIs)
每个同步方法都有异步对应物:achat——当 tool callable 为 async 时,同步 chat 会抛出异常。

