跳转到主要内容

Documentation Index

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

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

hb.LLM 是 HeavenBase 的 Python LLM 客户端,覆盖聊天、流式输出、Embedding、图像生成、Mock 和网关路由。它会从 heavenbase.llm 配置中解析 preset、model、provider 和 gateway,然后在调用时生成具体运行时参数。 默认配置是 preset="system"provider="openrouter"gateway="openai"
export OPENROUTER_API_KEY="..."
import heavenbase as hb

llm = hb.LLM()
text = llm.chat("Reply with exactly: hb-ok")

解析模型

  • preset:命名快捷方式,例如 systemchatreasoncoderembedimagenmockcustom
  • model:规范模型名或别名,例如 ds-flashsonnetgptgpt-image-mini
  • provider:模型由谁提供。内置生产模型默认使用 openrouter
  • gateway:请求如何发送。默认 openai 网关使用 OpenAI Python SDK 访问 OpenAI-compatible endpoint。
hb.LLM()                         # preset="system"
hb.LLM(model="ds-flash")
hb.LLM(model="ds-flash", provider="deepseek")
hb.LLM(preset="reason")
hb.LLM(preset="mock")
未知关键字会成为 provider 请求参数:
llm = hb.LLM(model="ds-flash", max_tokens=256, temperature=0)

内置 Preset

Preset 使用可持久化的模型别名,便于用户配置保持简洁。
Preset模型别名默认 Thinking说明
systemds-flash关闭轻量系统调用默认模型。
tinygemma关闭低延迟小模型。
chatds-flash关闭通用非思考聊天模型。
chat-prods-pro关闭更强的默认非思考聊天模型。
reasonds-pro开启面向困难任务的推理 preset。
reason-progpt开启使用默认 GPT 别名的高能力推理 preset。
workerds-flash关闭后台确定性工具调用 preset。
codersonnet开启面向多步实现的编码 preset。
coder-proopus开启面向深度实现和评审的最高端编码 preset。
embedgpt-embedding-small不适用默认 embedding preset。
embed-localembeddinggemma不适用本地 embedding preset。
imagengpt-image-mini不适用默认图像生成 preset。
mockmock离线测试和 demo 使用的确定性 mock。
customcustom运行时提供运行时传入的 OpenAI-compatible provider。
reasonreason-procodercoder-pro 会通过统一的 think 参数默认开启思考;systemtinychatchat-proworker 默认关闭。调用时 HeavenBase 会对 OpenAI-compatible gateways(openaiportkeybifrostlitellm)统一写入 gateway-level extra_body.reasoning;本地服务需要的 provider-specific 参数可以通过 extra_body 显式传入。

内置模型

在线内置模型以 OpenRouter 为默认 provider,并且 identifiers 中 OpenRouter 标识排在第一位。embeddinggemma 这类本地-only 条目只保留本地 provider。
规范模型别名
deepseek-v4-flashds-flash, deepseek-flash, deepseek-chat
deepseek-reasonerds-flash-thinking, deepseek-flash-thinking
deepseek-v4-prods, ds-pro, dsv4, dsv4-pro, deepseek, deepseek-v4, deepseek-pro
gpt-5.4-nanogpt-nano, 5.4-nano
gpt-5.5gpt, 5.5
gpt-5.5-progpt-pro, 5.5-pro
claude-haiku-4.5haiku, haiku-4.5
claude-sonnet-4.6sonnet, sonnet-4.6
claude-opus-4.7opus, opus-4.7
gemini-3.1-flash-litegemini-flash-lite, gemini-lite
gemini-3-flash-previewgemini-flash
gemini-3.1-pro-previewgemini-pro
kimi-k2.6kimi, k2.6
glm-5.1glm
gemma-4-26b-a4b-itgemma4, gemma4-26b, gemma4-26b-a4b, gemma4-26b-a4b-it, gemma, gemma-26b, gemma-26b-a4b, gemma-26b-a4b-it
qwen3.6-flashqwen3.6, qwen3.6-flash, qwen3.6-35b, qwen3.6-35b-a3b, qwen, qwen-flash, qwen-35b, qwen-35b-a3b
embeddinggemmaembeddinggemma-300m
text-embedding-3-smallgpt-embedding, gpt-embedding-small, text-embedding-small
gpt-5-image-minigpt-image-mini, image-mini
gpt-5.4-image-2gpt-image, gpt-image-2, image-2
mockcustom 是工具型模型条目,分别用于离线测试和运行时传入的 OpenAI-compatible provider。内置 provider 配置包括 OpenRouter、OpenAI、Anthropic、Gemini、Grok、DeepSeek、Moonshot、Z.ai、Minimax、DashScope、Ollama、LM Studio、vLLM、mock 和 custom。

图像输入

chatstreamimagen 都支持统一的 images= 参数。HeavenBase 会把输入归一化为 LLMImage,在聊天请求里追加为 OpenAI-compatible image_url 内容块,在图像生成请求里作为 reference images 传入。
answer = hb.LLM(model="qwen3.6", provider="openrouter").chat(
    "这张图里有什么?",
    images=["./sample.png"],
)

image = hb.LLM(preset="imagen").imagen("按参考图风格生成 HB 标记", images=hb.LLMImage.from_any("./sample.png"))
images= 接受 LLMImage、URL、data URL、base64 字符串、本地文件路径、bytes-like 对象、二进制文件对象、provider-style dict、Pillow image 和 numpy-compatible ndarray。

临时网关限制

HeavenBase 会对已知上游暂不支持的组合抛出明确异常:gateway="portkey" + provider="openrouter" 的 embedding 路径会等待 Portkey Gateway 支持落地;Bifrost image generation 会等待上游 image 支持修复。Portkey + OpenRouter image generation 当前 live 测试返回空 image payload,可用 scripts/repro_portkey_openrouter_image.py 复现并提交给 Portkey Gateway。

Include 投影

include 参数用于选择返回字段。常用字段包括:
  • text:最终可见回答文本。
  • think:provider 单独暴露的 reasoning/thinking 文本。
  • content:用 <think> 包裹 think 后再接 text
  • message:OpenAI 格式 assistant response dict,包含 rolecontent 和可选 tool_calls;它不是完整历史。
  • delta:本次推理新增的 OpenAI 格式消息列表,通常是 [message];未来接入工具执行后,tool result messages 会追加在 assistant message 后面。
  • messages:完整对话历史,也就是归一化后的输入 messages 加上 delta
  • tool_calls:assistant response 里的标准 OpenAI tool_calls
  • usage:本次调用的 provider usage counters,常见键包括 prompt_tokenscompletion_tokenstotal_tokens;streaming usage chunk 会合并数值字段。
  • raw:原始 provider payload。
  • elapsed:HeavenBase 测得的请求耗时秒数。
  • created_at:本地响应创建时间戳。
  • structured:可解析时的结构化 JSON/object 输出,否则为 None
detail = llm.chat(
    "Reply with exactly: hb-ok",
    include=["text", "usage", "elapsed"],
    reduce=False,
    max_tokens=8,
)
stream include 里包含 deltamessages 时,内容 chunk 仍会渐进返回;流结束时还会有一个最终 metadata chunk,其中 text/think 为空,delta 含完整 assistant message。

Hash key 与客户端复用

每个解析后的 LLMSpec 都可以生成稳定 hash key:
llm = hb.LLM(model="ds-flash", provider="deepseek")

spec_key = llm.spec.hash_key()
litellm_key = llm.spec.hash_key("litellm")
client_key = llm.spec.client_key()
hash_key() 包含解析后的模型、provider、gateway mode、请求默认值和运行时参数。client_key() 只包含 SDK client 构造相关字段:gateway、API key、base URL、headers、timeout 和 retry。 openaiportkeybifrost 这些 OpenAI-compatible adapter 会用 client_key() 做内存缓存,因此重复创建的 LLM 实例和重复调用不会反复创建 SDK client。LiteLLM 在这一层不创建 SDK client 对象,但模块导入和 runtime key 路径与同一套解析模型兼容。