Hugging Face 在 2026-08-06 宣布 Baseten 接入 Inference Providers。接入后,可以在模型 ID 后加 :baseten,用 OpenAI 兼容端点把聊天补全请求固定交给 Baseten。Baseten 目前在合作伙伴表中支持两类聊天补全:LLM 对话和 VLM 视觉对话(来源:Inference Providers 文档);官方博客列出的首批可调用模型包括 Kimi K3、DeepSeek V4 Flash 与 GLM-5.2。
接入前先决定账单归属。想用一个 Hugging Face Token 统一调用和账单,就选 HF routed;已有 Baseten 合同、额度或密钥管理流程,就在 Hugging Face 账户设置里配置 Baseten API Key,让请求直接走 Baseten。无论选哪种,验收都要覆盖四个点:代码显式锁定 :baseten、测试环境返回预期结构、账单落在选定账户、失败时能切到预先验收过的备用提供商(provider)或模型。
本文写的是把 Baseten 接到 Hugging Face Inference Providers 的使用流程,不是 Baseten 独立平台(Model APIs / Truss)的部署教程。两类入口的鉴权和计费不同,不要混用。
先决定 HF routed 还是自带 Baseten Key
两种模式的调用入口都由 Hugging Face Inference Providers 管理,区别在鉴权、请求路径和账单归属。Hugging Face 官方公告和计费文档在 2026-08-06 给出的规则如下。
| 选择 | 鉴权与请求 | 账单 | 适用情况 |
|---|---|---|---|
| HF routed | 使用 Hugging Face Token,由 HF Router 转发到 Baseten | 费用记入 Hugging Face 账户,月度额度可用 | 想用一个 Token 调多个提供商,或先花月度额度做低成本验证 |
| 自带 Baseten Key | 在 Hugging Face 设置中保存 Baseten API Key,请求直接调用 Baseten | 费用记入 Baseten 账户,HF 月度额度不适用 | 已有 Baseten 额度、合同、权限或成本治理流程 |
按计费文档,免费用户每月有 $0.10 的推理额度,PRO 用户 $2.00,Team 或 Enterprise 按席位各 $2.00;routed 请求按提供商标准费率计费,Hugging Face 不加价。这些是动态商业条件,上线前应在账户计费页重新核对,不要写死在预算模型里。
Team 或 Enterprise 用户想用组织额度并统一计费时,routed 请求要在 HTTP 头里显式带 X-HF-Bill-To: <组织名>;否则费用记到个人 Token 名下,不会计入组织(来源:计费文档)。
如果团队还没有 Baseten 账户,先用 HF routed 消耗月度额度做技术验证,省去单独开户和配置密钥的步骤。若组织要求密钥归属、账单主体或采购合同必须在 Baseten,则一开始就选自带 Key,避免验证后再迁移鉴权路径。
用 HF Token 跑通最小调用
HF routed 模式只需要一个 Hugging Face Token。先创建带 Make calls to Inference Providers 权限的 fine-grained token(Token 设置),把 Token 放进环境变量,不要写进脚本、Notebook 或 Git 仓库:
pip install openai
export HF_TOKEN="<your-hugging-face-token>"
官方 Python 示例把 base_url 指向 HF Router 的 OpenAI 兼容入口,调用 chat.completions:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://router.huggingface.co/v1",
api_key=os.environ["HF_TOKEN"],
)
completion = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731:baseten",
messages=[{"role": "user", "content": "Write a Python function that returns the nth Fibonacci number using memoization."}],
)
print(completion.choices[0].message.content)
JavaScript 用同一个 Router、Token 和模型字符串,先安装 OpenAI SDK:
npm install openai
import { OpenAI } from "openai";
const client = new OpenAI({
baseURL: "https://router.huggingface.co/v1",
apiKey: process.env.HF_TOKEN,
});
const completion = await client.chat.completions.create({
model: "deepseek-ai/DeepSeek-V4-Flash-0731:baseten",
messages: [{ role: "user", content: "Write a Python function that returns the nth Fibonacci number using memoization." }],
});
console.log(completion.choices[0].message.content);
这两段代码基于 Hugging Face 2026-08-06 的官方示例。注意 OpenAI 兼容端点目前只支持聊天补全(chat completion)任务,图像、语音、嵌入等任务要用 Hugging Face 原生推理客户端(Inference Providers 文档)。示例里的模型版本、可用区域和提供商容量都可能变化;生产代码应通过配置注入完整模型 ID,不要散落在业务模块中。
用 :baseten 固定路由
deepseek-ai/DeepSeek-V4-Flash-0731:baseten 可以拆成两部分:冒号前是 Hugging Face 模型 ID,冒号后是目标提供商。保留 :baseten,路由才会固定到 Baseten。
不加后缀时,OpenAI 兼容端点默认选择当前最快可用的提供商(等价于 :fastest);:cheapest 选最便宜、:preferred 才按你在 Inference Provider 设置里的偏好顺序选择(来源:Provider Selection 文档)。所以不能靠"设置里把 Baseten 排第一"来锁定,必须显式带 :baseten。
建议把模型和提供商分开配置,再在调用层拼接:
export HF_MODEL_ID="deepseek-ai/DeepSeek-V4-Flash-0731"
export HF_INFERENCE_PROVIDER="baseten"
model = f"{os.environ['HF_MODEL_ID']}:{os.environ['HF_INFERENCE_PROVIDER']}"
启动时拒绝空提供商值,避免部署错误悄悄改变路由。切换备用提供商时,模型字符串可以只改配置;但目标模型一变,行为要用同一批业务样例重新验收。
不要假设所有模型都能通过 Baseten 调用。Hugging Face 2026-08-06 的官方公告只确认初期支持 LLM 对话和 VLM 视觉对话,其他任务会后续加入;模型是否可用应以调用时的 Hub 模型页和提供商列表为准。
自带 Baseten Key 时调整账户设置
Hugging Face 官方流程允许在用户设置中添加已注册提供商的 API Key,并调整偏好顺序。选自带 Key 后,调用费用由 Baseten 账户结算,HF 的月度推理额度不适用。
配置顺序:
- 在 Baseten 账户设置创建用途明确、可单独轮换的 API Key。Baseten 是否区分个人/团队密钥、以及各密钥的权限范围,以 Baseten 当前设置页为准;团队账户应先确认密钥归属和最小权限。
- 在 Hugging Face 的 Inference Providers 设置 区域保存该 Key。
- 确认代码仍保留
:baseten做显式锁定,不受偏好顺序影响。 - 在测试环境发起小额请求,分别检查 Hugging Face 与 Baseten 的用量记录。
- 轮换测试 Key,确认旧 Key 失效后应用会明确报错。旧 Key 是否静默回退到 HF routed 依赖当前路由实现,接入前要用实测确认,不能只凭文档假设。
迁移现有 OpenAI SDK 调用
已经使用 chat.completions.create 的应用,最小改动通常只有三处:base_url 改为 HF Router、鉴权改为 HF_TOKEN、模型改成带 :baseten 的 Hugging Face 模型 ID。消息数组和读取 choices[0].message.content 的代码可以保持不变。
迁移不能只验证"有文本返回"。至少用现有业务样例检查:
- 系统提示、用户提示和多轮上下文是否按预期生效
- 最大输出长度、停止条件和采样参数是否被目标模型支持
- 流式与非流式返回结构是否符合现有解析器契约
- 超时、限流、鉴权失败和提供商不可用时是否进入明确的重试或回退路径
- 输入、输出 token 与请求次数是否能在选定账单账户中核对
参数支持差异以目标模型和提供商的当前接口为准。旧提供商接受的扩展参数可能被忽略或拒绝;迁移前先删除未使用参数,再逐项加入并记录错误行为。
配置可控的回退路径
统一入口不等于自动容错。不要把所有错误都重试到另一家提供商,否则鉴权错误、参数错误和内容策略拒绝会被重复放大。
可以按错误类型制定最小策略:
| 情况 | 动作 |
|---|---|
| 网络超时或临时 5xx | 对同一提供商做有限次数退避重试,再切备用提供商 |
| 限流 | 尊重重试提示;超过延迟预算后切备用提供商或排队 |
| 401/403 | 停止自动重试,检查 Token、Key 和账户权限 |
| 400 或参数不支持 | 停止提供商切换,修正模型 ID、消息或参数 |
| 模型暂不可用 | 切换到预先验收过的备用模型,并记录实际模型 |
备用模型必须用同一批任务样例预先验收。模型切换可能改变输出格式、指令遵循和上下文处理,不能仅凭 HTTP 成功视为等价。
上线前验收清单
- 已选择 HF routed 或自带 Baseten Key,并记录账单归属
- 团队或企业账户已确认 routed 请求的
X-HF-Bill-To计费归属 - Token 和 API Key 只存在于密钥管理或部署环境变量中
- 完整模型 ID 通过配置注入,并保留
:baseten - 已确认目标模型当前支持文本对话或视觉对话任务
- Python 或 JavaScript 最小调用能返回并解析
message.content - 现有业务样例已覆盖上下文、输出结构、流式响应和参数兼容性
- 401/403、400、限流、超时和 5xx 都有不同处理路径
- 备用提供商或模型已经过同一套样例验收
- 测试请求的用量与费用出现在预期账户
- 上线前重新核对当前模型列表、费率、额度和区域可用性
Baseten 接入 Hugging Face Inference Providers 后,接入层的工作减少了——模型字符串、SDK 初始化和鉴权都统一到 HF 一套接口;但模型迁移本身的验证(参数、输出结构、回退行为)不会因为换了入口而变少。:baseten 只固定了路由,账单归属要单独核对,行为差异要靠业务样例复测。