推理提供商文档

推理服务提供商

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

推理提供商

Hugging Face 的推理提供商为开发人员提供数百种机器学习模型的访问权限,这些模型由世界一流的推理提供商提供支持。它们还集成到我们的客户端 SDK(适用于 JS 和 Python),使您可以在您喜欢的提供商上轻松探索模型的无服务器推理。

合作伙伴

我们的平台集成了领先的 AI 基础设施提供商,通过一个统一且一致的 API,让您可以使用他们的专业能力。以下是每个合作伙伴支持的功能:

提供商 聊天补全 (LLM) 聊天补全 (VLM) 特征提取 文本到图像 文本到视频 语音到文本
Cerebras
Cohere
Fal AI
Featherless AI
Fireworks
Groq
HF 推理
Hyperbolic
Nebius
Novita
Nscale
Replicate
SambaNova
Together

为何选择推理提供商?

当您构建 AI 应用程序时,管理多个提供商 API、比较模型性能以及处理不同可靠性非常困难。推理提供商通过提供以下功能解决了这些挑战:

即时访问尖端模型:超越主流提供商,访问数千个针对多种 AI 任务的专业模型。无论您需要最新的语言模型、最先进的图像生成器还是特定领域的嵌入,您都可以在这里找到它们。

零供应商锁定:与受单个提供商模型目录的限制不同,您可以通过一个统一的接口访问 Cerebras、Groq、Together AI、Replicate 等提供商的模型。

生产就绪性能:专为企业工作负载而构建,具有您的应用程序所需的可靠性。

您可以构建以下内容:

  • 文本生成:使用具有工具调用功能的大型语言模型,用于聊天机器人、内容生成和代码辅助。
  • 图像和视频生成:创建自定义图像和视频,包括对 LoRA 和样式自定义的支持。
  • 搜索与检索:最先进的嵌入,用于语义搜索、RAG 系统和推荐引擎。
  • 传统机器学习任务:用于分类、命名实体识别 (NER)、摘要和语音识别的即用型模型。

免费开始:推理提供商提供慷慨的免费套餐,并为专业版用户企业版 Hub 组织提供额外额度。

主要功能

  • 🎯 一体化 API:一个 API 即可实现文本生成、图像生成、文档嵌入、命名实体识别、摘要、图像分类等功能。
  • 🔀 多提供商支持:轻松运行来自 Fal、Replicate、Sambanova、Together AI 等顶级提供商的模型。
  • 🚀 可扩展且可靠:专为生产环境中的高可用性和低延迟性能而构建。
  • 🔧 开发人员友好:简单的请求、快速的响应,以及在 Python 和 JavaScript 客户端中一致的开发人员体验。
  • 👷 易于集成:可替代 OpenAI 聊天补全 API。
  • 💰 成本效益高:不对提供商费率加价。

入门

推理提供商与您现有的开发工作流协同工作。无论您喜欢 Python、JavaScript 还是直接 HTTP 调用,我们都提供原生 SDK 和兼容 OpenAI 的 API,让您快速启动和运行。

我们将通过一个实际示例,使用最先进的开源对话模型deepseek-ai/DeepSeek-V3-0324

推理演练场

在深入集成之前,请使用我们的推理演练场互动探索模型。使用您的提示测试不同的聊天补全模型,并比较响应以找到最适合您的用例的模型。

Inference Playground thumbnail

身份验证

您需要一个 Hugging Face 令牌来验证您的请求。通过访问您的令牌设置并生成一个具有“调用推理提供商”权限的细粒度令牌来创建它。

有关完整的令牌管理详细信息,请参阅我们的安全令牌指南

快速入门 - LLM

让我们从最常见的用例开始:使用大型语言模型的对话式 AI。本节演示如何使用 DeepSeek V3 执行聊天补全,展示了将推理提供商集成到您的应用程序中的不同方法。

无论您喜欢我们的原生客户端、需要 OpenAI 兼容性,还是需要直接 HTTP 访问,我们都将向您展示如何仅用几行代码即可启动和运行。

Python

以下是将推理提供商集成到您的 Python 应用程序中的三种方法,从高级便利性到低级控制:

huggingface_hub
openai
requests

为方便起见,`huggingface_hub` 库提供了一个`InferenceClient`,它自动处理提供商选择和请求路由。

在您的终端中,安装 Hugging Face Hub Python 客户端并登录:

pip install huggingface_hub
hf auth login # get a read token from hf.co/settings/tokens

您现在可以使用 Python 解释器使用客户端:

import os
from huggingface_hub import InferenceClient

client = InferenceClient()

completion = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V3-0324",
    messages=[
        {
            "role": "user",
            "content": "How many 'G's in 'huggingface'?"
        }
    ],
)

print(completion.choices[0].message)

JavaScript

使用这些灵活的方法将推理提供商集成到您的 JavaScript 应用程序中:

huggingface.js
openai
fetch

我们的 JavaScript SDK 提供了一个方便的接口,具有自动提供商选择和 TypeScript 支持。

使用 NPM 安装

npm install @huggingface/inference

然后使用客户端与 JavaScript 交互

import { InferenceClient } from "@huggingface/inference";

const client = new InferenceClient(process.env.HF_TOKEN);

const chatCompletion = await client.chatCompletion({
  model: "deepseek-ai/DeepSeek-V3-0324",
  messages: [
    {
      role: "user",
      content: "How many 'G's in 'huggingface'?",
    },
  ],
});

console.log(chatCompletion.choices[0].message);

HTTP / cURL

为了测试、调试或与任何 HTTP 客户端集成,这里是原始 REST API 格式。我们的路由系统会自动为您选择的模型选择最受欢迎的可用提供商。您也可以通过将提供商名称附加到模型 ID 来选择您选择的提供商(例如,`"deepseek-ai/DeepSeek-V3-0324:fireworks-ai"`)。

curl https://router.huggingface.co/v1/chat/completions \
    -H "Authorization: Bearer $HF_TOKEN" \
    -H 'Content-Type: application/json' \
    -d '{
        "messages": [
            {
                "role": "user",
                "content": "How many G in huggingface?"
            }
        ],
        "model": "deepseek-ai/DeepSeek-V3-0324",
        "stream": false
    }'

快速入门 - 文本到图像生成

让我们探讨如何使用推理提供商从文本提示生成图像。我们将使用black-forest-labs/FLUX.1-dev,这是一个最先进的扩散模型,可生成高度详细的逼真图像。

Python

使用 `huggingface_hub` 库,享受最简单的图像生成体验,并支持自动提供商选择。

import os
from huggingface_hub import InferenceClient

client = InferenceClient(api_key=os.environ["HF_TOKEN"])

image = client.text_to_image(
    prompt="A serene lake surrounded by mountains at sunset, photorealistic style",
    model="black-forest-labs/FLUX.1-dev"
)

# Save the generated image
image.save("generated_image.png")

JavaScript

使用我们的 JavaScript SDK 实现简化的图像生成,并支持 TypeScript。

import { InferenceClient } from "@huggingface/inference";
import fs from "fs";

const client = new InferenceClient(process.env.HF_TOKEN);

const imageBlob = await client.textToImage({
  model: "black-forest-labs/FLUX.1-dev",
  inputs:
    "A serene lake surrounded by mountains at sunset, photorealistic style",
});

// Save the image
const buffer = Buffer.from(await imageBlob.arrayBuffer());
fs.writeFileSync("generated_image.png", buffer);

提供商选择

推理提供商 API 充当统一代理层,位于您的应用程序和多个 AI 提供商之间。了解提供商选择的工作原理对于优化应用程序的性能、成本和可靠性至关重要。

API 作为代理服务

使用推理提供商时,您的请求会通过 Hugging Face 的代理基础设施,这提供了几个关键优势:

  • 统一身份验证和计费:所有提供商均使用单个 Hugging Face 令牌。
  • 自动故障转移:当使用自动提供商选择(`provider="auto"`)时,如果主要提供商被我们的验证系统标记为不可用,请求将自动路由到替代提供商。
  • 通过客户端库实现一致的接口:使用我们的客户端库时,相同的请求格式适用于不同的提供商。

由于 API 充当代理,因此每个提供商都有其自己的 API 要求和响应格式,因此 HTTP 请求在提供商之间可能有所不同。**使用我们的官方客户端库时**(JavaScript 或 Python),无论您使用 `provider="auto"` 还是指定特定提供商,这些提供商特定的差异都会自动处理。

客户端提供商选择(推理客户端)

使用 Hugging Face 推理客户端(JavaScript 或 Python)时,您可以明确指定提供商,或让系统自动选择。然后,客户端会根据所选提供商的 API 要求格式化 HTTP 请求。

javascript
python
import { InferenceClient } from "@huggingface/inference";

const client = new InferenceClient(process.env.HF_TOKEN);

// Explicit provider selection
await client.chatCompletion({
  model: "meta-llama/Llama-3.1-8B-Instruct",
  provider: "sambanova", // Specific provider
  messages: [{ role: "user", content: "Hello!" }],
});

// Automatic provider selection (default: "auto")
await client.chatCompletion({
  model: "meta-llama/Llama-3.1-8B-Instruct",
  // Defaults to "auto" selection of the provider
  // provider="auto",
  messages: [{ role: "user", content: "Hello!" }],
});

提供商选择策略

  • provider: "auto"(默认):选择模型的第一个可用提供商,按您在推理提供商设置中的偏好顺序排序。
  • provider: "specific-provider":强制使用特定提供商(例如,“together”、“replicate”、“fal-ai”等)。

备选方案:兼容 OpenAI 的聊天补全端点(仅限聊天)

如果您更喜欢使用熟悉的 OpenAI API,或者想以最少的更改迁移现有的聊天补全代码,我们提供一个即插即用的兼容端点,该端点在服务器端自动处理所有提供商选择。

注意:此兼容 OpenAI 的端点目前仅适用于聊天补全任务。对于其他任务,如文本到图像、嵌入或语音处理,请使用上面显示的 Hugging Face 推理客户端。

javascript
python
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: "meta-llama/Llama-3.1-8B-Instruct",
  messages: [{ role: "user", content: "Hello!" }],
});

此端点也可以通过直接 HTTP 访问请求,使其适用于与各种 HTTP 客户端和需要直接与聊天完成服务交互的应用程序集成。

curl https://router.huggingface.co/v1/chat/completions \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.1-8B-Instruct",
    "messages": [
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'

主要功能

  • 服务器端提供商选择:服务器自动选择最佳可用提供商。
  • 模型列表:GET /v1/models 返回所有提供商的可用模型。
  • OpenAI SDK 兼容性:与现有 OpenAI 客户端库兼容。
  • 仅限聊天任务:限于对话式工作负载。

选择正确的方法

在以下情况下使用推理客户端:

  • 您需要支持所有任务类型(文本到图像、语音、嵌入等)。
  • 您希望明确控制提供商选择。
  • 您正在构建使用多个 AI 任务的应用程序。

在以下情况下使用兼容 OpenAI 的端点:

  • 您只进行聊天补全。
  • 您希望以最少的更改迁移现有基于 OpenAI 的代码。
  • 您更喜欢服务器端提供商管理。

在以下情况下使用直接 HTTP:

  • 您正在实施自定义请求逻辑。
  • 您需要对请求/响应周期进行细粒度控制。
  • 您正在没有可用客户端库的环境中工作。

后续步骤

现在您已了解基础知识,请探索以下资源以充分利用推理提供商:

< > 在 GitHub 上更新