本地与托管 Provider、六个 Gateway、一个客户端。解析模型替你记住其余一切。
1. 动机
hb.LLM 是 HeavenBase 的 Python LLM 客户端,覆盖聊天、流式输出、嵌入、图像生成、Mock 与入口 (Gateway) 路由。它会从共享的 heavenbase.llm 配置中解析 preset、model、provider 与 gateway,然后物化由 gateway 选定的请求格式。
默认配置为 preset="system"、default_provider="openrouter" 与 gateway="openai"。一个 API 密钥即可开箱访问大多数主流模型。
2. 解析模型 (Resolution Model)
HeavenBase 不会要求你在代码里硬编码某家 provider 的 SDK 调用。相反,四个由配置支撑的概念解析每一次请求:preset:命名快捷方式,例如system、chat、reason、coder、embed、imagen、mock或custom。model:规范模型键或别名,例如ds-flash、sonnet、gpt或gpt-image-mini。provider:模型由谁提供。常规模型 preset 继承heavenbase.llm.default_provider;显式provider=与 preset 级 provider 固定会覆盖它。gateway:请求如何传输。默认openai入口 (Gateway) 通过 OpenAI Python SDK 访问 OpenAI 兼容端点 (Endpoint);anthropic使用官方 Anthropic SDK 与原生 Messages 载荷。
preset -> model -> provider -> gateway。最终 URL 来自 provider.base_url、gateway.base_url 或调用时 base_url=... 覆盖。
3. 预设 (Presets)
Preset 使用可持久化的模型别名,使用户配置保持紧凑可读。多数生产 preset 不固定 provider;更改heavenbase.llm.default_provider 会一并切换它们。local、worker-local、embed-local、imagen-local、ocr-local、mock 与 custom 等本地与特殊 preset 保留各自的 provider,因为它们需要专用配置。
Preset 思考默认值使用规范
think 选项。HeavenBase 通过 extra_body.reasoning 在 OpenAI 兼容入口 (Gateway)(openai、portkey、bifrost、litellm)上对 think=True 与 think=False 施加 gateway 级控制。GPT-5.6 目录默认让 Luna 与 Terra 使用 high 推理强度,让 Sol 使用 medium;reason-pro 会把 Sol 覆盖为 max。anthropic 入口 (Gateway) 将 think=True 映射为 Claude Messages 自适应思考并摘要展示,将 reasoning_effort 映射为 Anthropic effort,并将原生思考块归一化回 think include 字段。每次调用的思考控制见 LLM 对话。
4. 精选模型目录 (Curated Model Catalog)
在线内置模型包含 OpenRouter 标识符,并在可用时包含直连 provider 标识符。根级default_provider 选择使用哪个标识符,除非调用或 preset 固定了其他 provider。仅本地条目(如 embeddinggemma、z-image-turbo 与 glm-ocr)只列出本地 provider。
mock 与 custom 是离线测试与调用方提供的 OpenAI 兼容 provider 的工具型模型条目。embed-v4.0 与 voyage-4-lite 是由各自 provider 提供的仅嵌入目录条目(非 OpenRouter)。z-image-turbo 是仅限 Ollama 的本地条目,而 glm-ocr 可通过 Ollama 或 oMLX 解析。完整 provider 列表与逐项配置见 LLM 提供商。
5. 入口一览 (Gateways at a Glance)
入口 (Gateway) 是在 preset、model 与 provider 解析完成后,HeavenBase 使用的传输适配层。provider 决定模型由谁提供;gateway 决定请求如何发送。heavenbase.llm.default_gateway 默认为 openai,仅当调用、preset 或 provider 未固定 gateway 时使用。
若当前环境无法导入非默认 gateway,
hb.LLM 会回退到 openai gateway,避免缺少可选依赖导致解析失败。gateway 物化、思考控制、客户端导出及各 gateway 的临时上游限制见 高级 LLM。
6. 各页分工 (What Lives Where)
LLM 章节按能力逐层展开,每页只增加一层:- LLM 对话 —
chat、stream、消息输入、多模态图像、响应投影与推理控制。 - 嵌入 —
embed、批处理、去重、缓存与本地嵌入 provider。 - 工具调用 — 仅 schema 与可执行工具、MCP 工具集 (Toolkit)、结构化输出与 CLI 工具循环。
- 会话 — 无状态设计、
LLMSession、CLI 会话与已解析 spec 检查。 - 高级 LLM — 入口 (Gateway)、响应缓存、客户端导出、图像生成、
LLMImage、工具调用修复与异步 API。
总结
- Preset 提供可读意图;Provider 决定模型在哪里运行;Gateway 决定传输方式。
- 一个解析后的客户端覆盖聊天、嵌入、图像生成、本地模型与确定性 Mock。
- 配置让模型路由保持可见,而不是把它埋进应用 wrapper。

