当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > Hugging Face Catalog API 怎么创建推理端点

Hugging Face Catalog API 怎么创建推理端点

来源:17golang原创 2026-10-04 05:33:10 0浏览 收藏

要通过 Hugging Face Catalog API 创建推理端点,最稳妥的做法是先用 list_inference_catalog() 筛选目录模型和部署配方,再把确认过的 recipe_id 交给 create_inference_endpoint_from_catalog()。前者是只读发现,后者会正式创建计费资源。两步分开,既能避免手填一长串硬件参数,也能在创建前确认引擎、加速器和模型修订版本。

要点速览
  • Catalog 的核心不是单个模型列表,而是“模型 + 可部署配方”;一个模型可能对应多个 recipe。
  • 用 repo_id 创建会采用默认配方,用 recipe_id 创建则能锁定具体组合。
  • 目录查询可以公开读取,真正部署必须携带 Bearer Token,并满足付款方式、权限和配额条件。

Catalog API 的对象关系

Catalog API 的公开基础地址是 https://endpoints.huggingface.co,当前接口位于 /api/v1 下。目录模型通常包含 repo_id、任务、许可证等元数据,以及一个 recipes 集合。每个 recipe 都有公开的 recipe_id,并描述 accelerator、engine,有时还会包含 gguf_file 或 revision。

这意味着“选择模型”和“选择部署组合”是两个判断。只传 repo_id 适合接受目录默认方案的场景;需要复现同一套引擎与硬件组合时,应保存并使用 recipe_id。Catalog 配方减少了配置字段,却不会替你承担区域、权限、成本和容量决策。

Hugging Face Catalog Model、Recipe 与 InferenceEndpoint 对象关系静态图
图1:目录模型包含一个或多个配方;recipe_id 用于锁定具体部署组合,创建结果是 InferenceEndpoint。

官方参考入口是 https://huggingface.co/docs/inference-endpoints/en/api_reference,Python 客户端说明是 https://huggingface.co/docs/huggingface_hub/guides/inference_endpoints。Catalog API 目前仍标为实验性功能,生产代码应固定经过验证的 huggingface_hub 版本,并在升级前重新查看在线 Swagger 和变更说明。

创建前先准备账号、令牌和账单条件

创建端点前,账号需要配置有效付款方式,所用 Token 要具备相应权限,目标 namespace 也必须允许当前账号创建资源。不要把 Token 写进源码、笔记或共享命令。可以先升级客户端,再通过交互式命令登录:

# 升级到包含当前 Catalog API 封装的 huggingface_hub
python -m pip install -U huggingface_hub

# 交互式登录,避免把 Token 写进脚本或命令历史
hf auth login

公共目录的读取不要求鉴权,但部署路由需要 Authorization: Bearer 。如果查询成功、创建却返回权限错误,应优先检查 Token 范围、namespace、付款方式和账户配额,而不是反复更换模型。

先筛选目录,再锁定 recipe_id

list_inference_catalog() 支持按任务、加速器、引擎、许可证和关键词筛选。下面的例子只读取前五个文本生成候选,检查第一个候选是否存在配方,然后用配方 ID 发起正式创建:

from huggingface_hub import (
    list_inference_catalog,
    create_inference_endpoint_from_catalog,
)

# 先缩小目录范围,不要在未检查配方时直接创建资源。
models = list_inference_catalog(
    task="text-generation",
    accelerator="gpu",
    engine="vllm",
    search="Qwen",
    limit=5,
)
if not models:
    raise RuntimeError("没有找到符合筛选条件的目录模型")

model = models[0]
if not model.recipes:
    raise RuntimeError("该模型当前没有可部署配方")

# 生产代码应把许可证、模型版本和配方属性纳入人工或策略检查。
recipe = model.recipes[0]
print(model.repo_id, recipe.id, recipe.accelerator, recipe.engine)

# 这是正式创建动作,会产生云资源和费用;先确认 namespace、配方和账单设置。
endpoint = create_inference_endpoint_from_catalog(recipe_id=recipe.id)
print(endpoint.name, endpoint.status)

示例故意不写死某个会随目录变化的 recipe。实际系统可以把筛选结果展示给审核者,记录选中的 repo_id、recipe_id、引擎和加速器,再进入创建阶段。如果只想接受默认配方,也可以传入 repo_id;但默认配方以后可能调整,不适合作为严格复现凭据。

返回对象不等于端点已经可用

创建函数返回的是 InferenceEndpoint 对象,其中可以读取名称、状态和 URL 等属性。刚返回时资源可能仍在初始化,调用推理客户端之前要等待运行状态:

# 最多等待 20 分钟,每 10 秒刷新一次端点状态。
endpoint.wait(timeout=20 * 60, refresh_every=10)

# 只有状态就绪且 URL 可用后,才进入真实推理调用阶段。
print(endpoint.status, endpoint.url)

等待超时只代表客户端停止等待,并不表示云端资源被删除。此时应查看端点状态和错误信息,判断是容量不足、镜像启动、权限还是模型加载问题;不要立刻重复创建同名或同配置端点。需要停止资源时,再明确选择暂停、缩容到零或删除,并先确认业务是否允许中断。

创建、等待与成本边界

端点费用通常由计算资源和副本运行情况决定,因此成功创建后就要把生命周期管理纳入代码和运维。pause() 适合完全停止并在以后手动恢复;scale_to_zero() 可以在空闲时缩到零,并在请求到来时恢复,但会带来冷启动等待。具体能力仍应以当前端点类型和官方文档为准。

Hugging Face 推理端点访问前提、创建选择和生命周期成本边界静态图
图2:创建动作需要鉴权和付款条件;端点返回后还要等待状态就绪,并主动管理闲置资源。
选择适用场景主要风险
repo_id接受目录默认配方,快速验证默认配方变化会影响严格复现
recipe_id锁定已检查的引擎、加速器和修订组合配方失效时需要重新选择
wait()等待资源达到可用状态超时不会自动清理云端资源
暂停或缩到零控制闲置费用恢复方式和冷启动行为不同

上线前的最小检查清单

  • 保存目录筛选条件和最终 recipe_id,不要只记录模型名称。
  • 确认 Token 权限、namespace、付款方式和账户配额,再执行创建。
  • 对 wait() 设置明确超时,并为失败状态记录可追踪日志。
  • 创建后立即接入暂停、缩到零或删除策略,避免测试资源长期运行。
  • 由于 Catalog API 仍属实验性接口,升级 SDK 前重新核对签名和在线文档。

常见问题

为什么能列出 Catalog,却不能创建端点?

目录列表是公开读取接口,创建属于鉴权和计费动作。重点检查 Bearer Token 权限、账号付款方式、namespace 访问权和配额。

repo_id 和 recipe_id 应该选哪个?

探索阶段可以用 repo_id 接受默认配方;需要审计和复现时,优先使用经过确认的 recipe_id。

wait 超时后可以直接再创建一个吗?

不建议。超时不会清理原资源,应先刷新原端点状态并处理失败原因,否则可能产生重复资源和额外费用。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go zlib.Resetter 怎么连续解压多个数据块Go zlib.Resetter 怎么连续解压多个数据块
上一篇
Go zlib.Resetter 怎么连续解压多个数据块
GitHub 新 Dashboard 成为默认首页有哪些变化
下一篇
GitHub 新 Dashboard 成为默认首页有哪些变化
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    324次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    378次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    375次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    339次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    165次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码