Skip to main content
本地与托管 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:命名快捷方式,例如 systemchatreasoncoderembedimagenmockcustom
  • model:规范模型键或别名,例如 ds-flashsonnetgptgpt-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_urlgateway.base_url 或调用时 base_url=... 覆盖。
未知关键字参数会成为 provider 请求默认值,因此调参留在调用处,而不是包一层 wrapper:

3. 预设 (Presets)

Preset 使用可持久化的模型别名,使用户配置保持紧凑可读。多数生产 preset 不固定 provider;更改 heavenbase.llm.default_provider 会一并切换它们。localworker-localembed-localimagen-localocr-localmockcustom 等本地与特殊 preset 保留各自的 provider,因为它们需要专用配置。 Preset 思考默认值使用规范 think 选项。HeavenBase 通过 extra_body.reasoning 在 OpenAI 兼容入口 (Gateway)(openaiportkeybifrostlitellm)上对 think=Truethink=False 施加 gateway 级控制。GPT-5.6 目录默认让 Luna 与 Terra 使用 high 推理强度,让 Sol 使用 mediumreason-pro 会把 Sol 覆盖为 maxanthropic 入口 (Gateway) 将 think=True 映射为 Claude Messages 自适应思考并摘要展示,将 reasoning_effort 映射为 Anthropic effort,并将原生思考块归一化回 think include 字段。每次调用的思考控制见 LLM 对话

4. 精选模型目录 (Curated Model Catalog)

在线内置模型包含 OpenRouter 标识符,并在可用时包含直连 provider 标识符。根级 default_provider 选择使用哪个标识符,除非调用或 preset 固定了其他 provider。仅本地条目(如 embeddinggemmaz-image-turboglm-ocr)只列出本地 provider。 mockcustom 是离线测试与调用方提供的 OpenAI 兼容 provider 的工具型模型条目。embed-v4.0voyage-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 对话chatstream、消息输入、多模态图像、响应投影与推理控制。
  • 嵌入embed、批处理、去重、缓存与本地嵌入 provider。
  • 工具调用 — 仅 schema 与可执行工具、MCP 工具集 (Toolkit)、结构化输出与 CLI 工具循环。
  • 会话 — 无状态设计、LLMSession、CLI 会话与已解析 spec 检查。
  • 高级 LLM — 入口 (Gateway)、响应缓存、客户端导出、图像生成、LLMImage、工具调用修复与异步 API。

总结

  • Preset 提供可读意图;Provider 决定模型在哪里运行;Gateway 决定传输方式。
  • 一个解析后的客户端覆盖聊天、嵌入、图像生成、本地模型与确定性 Mock。
  • 配置让模型路由保持可见,而不是把它埋进应用 wrapper。

Further Exploration

Related resources:
  • First LLM - 安装、配置 API 密钥,并从 CLI 运行首次 chat、embed 与会话。
  • LLM providers - 完整 provider 目录与逐项配置。
  • Configuration - preset、provider 与 gateway 背后的 heavenbase.llm 配置树。