Skip to main content
默认值会藏起接线;高级模式会在有人拿剪刀前给每根线贴好标签。

1. 动机

多数应用可以一直使用 hb.LLM(preset="chat")。 当传输、可复现性、SDK 互操作、图像处理或并发必须显式时,本页功能就很重要。 相同的解析顺序仍然适用:Preset、Model、Provider,最后是 Gateway。

2. 选择 Gateway

默认 openai Gateway 通过 OpenAI Python SDK 访问 OpenAI 兼容端点。
Gateway 限制会显式失败。 原生 Anthropic 不提供嵌入或图像生成,Portkey 与 OpenRouter 组合的嵌入仍被阻止,而 Bifrost 图像支持取决于其上游实现。 若可选的非默认 Gateway 无法导入,HeavenBase 会回退到 openai

3. 注册运行时形状

当现有 Gateway 已经能使用某 API 时,请在配置中添加 Provider。 只有运行时参数形状确实不同时才注册 LLMGateway
请在 heavenbase.llm.gateways 下声明相同标识符,以便 LLMEngine.resolve(...) 验证。 LLMEngine 解析策略,LLMSpec 携带结果,而 LLMGateway 物化传输。

4. 控制响应缓存

HeavenBase 把规范化的聊天、嵌入与图像响应存储在专用 llm-cache 工作区中。 缓存默认启用,并使用确定性策略。
每次调用的覆盖值接受 cache=Falsecache=True 或缓存映射。 可执行工具循环会自动跳过文本缓存。 确定性的文本与图像写入需要稳定的生成参数。 没有固定 seed 的随机请求会绕过缓存读写。

5. 复用并导出客户端

LLMSpec.hash_key() 标识完整的已解析请求默认值。 client_key() 只包含 Gateway 客户端构造字段,让兼容的 LLM 实例可以复用内存中的 SDK 客户端。
OpenAI 兼容 Gateway 可以导出原始 SDK 客户端:
to_client()to_aclient()to_args() 支持 openaiportkeybifrost。 原生 Anthropic 使用 to_anthropic_client()to_anthropic_aclient()

6. 生成并规范化图像

当 Ollama 提供 z-image-turbo 时,请使用 imagen-local。 参考图像接受与多模态聊天相同的规范化输入:
LLMImage 会规范化路径、字节、base64、URL、Provider item 与生成结果。
URL 支撑的值会惰性获取。 超时由 heavenbase.llm.image_url_timeout 配置。

7. 修复工具调用

LLMToolCallRepair 可以移除 Markdown fence、平衡 JSON 括号、填充缺失的必需 schema 字段,并压缩 OpenAI 风格工具参数。
请向 hb.LLM(...) 传入 tool_call_repair={...},或向单次 chat 调用传入 repair_tool_calls=True。 严格模式会在参数无法解析时抛出错误;非严格模式会返回原始字符串。

8. 使用自定义 Provider

custom Preset 用于未内置的 OpenAI 兼容端点:
base_url 与具体模型缺一不可。 若负载家族本身不同,请改用自定义 Gateway。

9. 异步运行

每个主要同步操作都有异步对应项。 异步可执行工具要求使用 achat;同步 chat 会拒绝异步 callable。

总结

  • Gateway 在 Model 与 Provider 解析后拥有传输形状。
  • 缓存可见、确定,并可按 namespace 独立配置。
  • SDK 导出在不复制解析逻辑的前提下支持互操作。
  • 图像与异步调用使用同一个已解析客户端模型。

进一步探索

相关资源:
  • LLM 概述 — Preset、Model、Provider 与 Gateway
  • First LLM — Provider 设置与客户端导出示例
  • LLM Provider — Provider 特定配置与路由检查