中心 API 端点
我们提供了一些开放的端点,您可以使用它们从中心检索信息,以及执行某些操作,例如创建模型、数据集或空间仓库。我们提供了一个 Python 包装库,huggingface_hub
,可以轻松访问这些端点。我们还提供webhook,以便您接收有关仓库的实时增量信息。尽情享受吧!
以下这些端点的基本 URL 是 https://huggingface.co
。例如,要构建下面的 /api/models
调用,可以调用 URL https://huggingface.co/api/models
中心 API 试用场
想试试我们的 API 吗?现在就在我们的试用场上试用吧!
仓库列表 API
以下端点可帮助获取有关存储在 Hub 上的模型、数据集和 Space 的信息。
createdAt
属性指示创建相应存储库的时间。请务必注意,有一个唯一值 2022-03-02T23:29:04.000Z
分配给在我们开始存储创建日期之前创建的所有存储库。GET /api/models
获取 Hub 中所有模型的信息。响应已分页,使用 Link
标头 获取下一页。您可以指定其他参数以获得更具体的结果。
search
:根据存储库及其用户名的子字符串进行过滤,例如resnet
或microsoft
author
:按作者或组织过滤模型,例如huggingface
或microsoft
filter
:根据标签进行过滤,例如text-classification
或spacy
。sort
:排序时使用的属性,例如downloads
或author
。direction
:排序方向,例如-1
表示降序,其他任何值表示升序。limit
:限制获取的模型数量。full
:是否获取大多数模型数据,例如所有标签、文件等。config
:是否同时获取存储库配置。
有效载荷
params = {
"search":"search",
"author":"author",
"filter":"filter",
"sort":"sort",
"direction":"direction",
"limit":"limit",
"full":"full",
"config":"config"
}
这等效于 huggingface_hub.list_models()
。
GET /api/models/{repo_id} 或 /api/models/{repo_id}/revision/{revision}
获取特定模型的所有信息。
这等效于 huggingface_hub.model_info(repo_id, revision)
。
GET /api/models-tags-by-type
获取 Hub 中托管的所有可用模型标签。
这等效于 huggingface_hub.get_model_tags()
。
GET /api/datasets
获取 Hub 中所有数据集的信息。响应已分页,使用 Link
标头 获取下一页。您可以指定其他参数以获得更具体的结果。
search
:根据存储库及其用户名的子字符串进行过滤,例如pets
或microsoft
author
:按作者或组织过滤数据集,例如huggingface
或microsoft
filter
:根据标签进行过滤,例如task_categories:text-classification
或languages:en
。sort
:排序时使用的属性,例如downloads
或author
。direction
:排序方向,例如-1
表示降序,其他任何值表示升序。limit
:限制获取的数据集数量。full
:是否获取大多数数据集数据,例如所有标签、文件等。
有效载荷
params = {
"search":"search",
"author":"author",
"filter":"filter",
"sort":"sort",
"direction":"direction",
"limit":"limit",
"full":"full",
"config":"config"
}
这等效于 huggingface_hub.list_datasets()
。
GET /api/datasets/{repo_id} 或 /api/datasets/{repo_id}/revision/{revision}
获取特定数据集的所有信息。
full
:是否获取大多数数据集数据,例如所有标签、文件等。
有效载荷
params = {"full": "full"}
这等效于 huggingface_hub.dataset_info(repo_id, revision)
。
GET /api/datasets/{repo_id}/parquet
获取自动转换的 Parquet 文件列表。
将子集和拆分附加到 URL 以获取特定子集和拆分的的文件列表
GET /api/datasets/{repo_id}/parquet/{subset}
GET /api/datasets/{repo_id}/parquet/{subset}/{split}
GET /api/datasets/{repo_id}/parquet/{subset}/{split}/{n}.parquet
获取特定子集(也称为“配置”)和切片的自动转换的 Parquet 文件的第 n 个分片。
GET /api/datasets/{repo_id}/croissant
获取 Croissant 元数据。更多详细信息请访问 https://huggingface.co/docs/datasets-server/croissant。
GET /api/datasets-tags-by-type
获取托管在 Hub 上的所有可用数据集标签。
这等效于 huggingface_hub.get_dataset_tags()
。
GET /api/spaces
从 Hub 中获取所有空间的信息。响应已分页,请使用Link
标头获取下一页。您可以指定其他参数以获得更具体的结果。
search
:根据存储库及其用户名的子字符串进行过滤,例如resnet
或microsoft
author
:按作者或组织过滤模型,例如huggingface
或microsoft
filter
:根据标签进行过滤,例如text-classification
或spacy
。sort
:排序时使用的属性,例如downloads
或author
。direction
:排序方向,例如-1
表示降序,其他任何值表示升序。limit
:限制获取的模型数量。full
:是否获取大多数模型数据,例如所有标签、文件等。
有效载荷
params = {
"search":"search",
"author":"author",
"filter":"filter",
"sort":"sort",
"direction":"direction",
"limit":"limit",
"full":"full",
"config":"config"
}
这等效于 huggingface_hub.list_spaces()
。
GET /api/spaces/{repo_id} or /api/spaces/{repo_id}/revision/{revision}
获取特定模型的所有信息。
这等效于 huggingface_hub.space_info(repo_id, revision)
。
仓库 API
以下端点管理仓库设置,例如创建和删除仓库。
POST /api/repos/create
创建一个仓库。默认情况下,它是一个模型仓库。
参数
type
:仓库类型(数据集或空间;默认为模型)。name
:仓库名称。organization
:组织名称(可选)。private
:仓库是否为私有。sdk
:当类型为space
时(streamlit、gradio、docker 或 static)
有效载荷
payload = {
"type":"model",
"name":"name",
"organization": "organization",
"private":"private",
"sdk": "sdk"
}
这等效于 huggingface_hub.create_repo()
。
DELETE /api/repos/delete
删除存储库。默认情况下,它是一个模型存储库。
参数
type
:仓库类型(数据集或空间;默认为模型)。name
:仓库名称。organization
:组织名称(可选)。
有效载荷
payload = {
"type": "model",
"name": "name",
"organization": "organization",
}
这等效于 huggingface_hub.delete_repo()
。
PUT /api/repos/{repo_type}/{repo_id}/settings
更新存储库可见性。
有效载荷
payload = {
"private": "private",
}
这等效于 huggingface_hub.update_repo_visibility()
。
POST /api/repos/move
移动存储库(在同一命名空间内重命名或从用户转移到组织)。
参数
fromRepo
:要重命名的存储库。toRepo
:存储库的新名称。type
:仓库类型(数据集或空间;默认为模型)。
有效载荷
payload = {
"fromRepo" : "namespace/repo_name",
"toRepo" : "namespace2/repo_name2",
"type": "model",
}
这等效于 huggingface_hub.move_repo()
。
用户 API
以下端点获取有关用户的信息。
GET /api/whoami-v2
获取用户名和用户所属的组织。
有效载荷
headers = { "authorization" : "Bearer $token" }
这等效于 huggingface_hub.whoami()
。
组织 API
以下端点获取组织成员列表。
GET /api/organizations/{organization_name}/members
获取组织成员。
有效载荷
headers = { "authorization" : "Bearer $token" }
这等效于 huggingface_hub.list_organization_members()
。
论文页面 API
以下端点获取有关论文的信息。
GET /api/papers/{arxiv_id}
获取与论文页面等效的 API,即作者、摘要和讨论评论等元数据。
GET /api/arxiv/{arxiv_id}/repos
获取引用一篇论文的所有模型、数据集和空间。
GET /api/daily_papers
获取由 AK 和社区策划的每日论文。它相当于 https://huggingface.co/papers。
收藏 API
使用收藏集可以在专用页面上对来自 Hub 的仓库(模型、数据集、空间和论文)进行分组。
您可以在收藏集指南中了解更多信息。收藏集也可以使用 Python 客户端进行管理(请参阅指南)。
POST /api/collections
在 Hub 上创建一个新的收藏集,包括标题、描述(可选)和第一个项目(可选)。项目由类型(model
、dataset
、space
或 paper
)和 ID(Hub 上的 repo_id 或 paper_id)定义。
有效载荷
payload = {
"title": "My cool models",
"namespace": "username_or_org",
"description": "Here is a shortlist of models I've trained.",
"item" : {
"type": "model",
"id": "username/cool-model",
}
"private": false,
}
这等效于 huggingface_hub.create_collection()
。
GET /api/collections/{namespace}/{slug}-{id}
返回有关收藏集的信息。
这等效于 huggingface_hub.get_collection()
。
GET /api/collections
根据某些条件列出 Hub 中的收藏集。支持的参数有
owner
(字符串):筛选特定用户或组织创建的收藏集。item
(字符串):筛选包含特定项目的收藏集。值必须是连接在一起的 item_type 和 item_id。例如:"models/teknium/OpenHermes-2.5-Mistral-7B"
、"datasets/rajpurkar/squad"
或"papers/2311.12983"
。sort
(字符串):对返回的收藏集进行排序。支持的值有"lastModified"
、"trending"
(默认值)和"upvotes"
。limit
(整数):每页的最大收藏集数(100)。q
(字符串):根据标题和描述的子字符串进行筛选。
如果未设置任何参数,则返回所有收藏集。
响应是分页的。要获取所有收藏集,您必须按照 Link
标头进行操作。
列出收藏时,每个收藏的项目列表最多被截断为 4 个项目。要检索收藏中的所有项目,您需要使用其收藏标识符进行额外的调用。
有效载荷
params = {
"owner": "TheBloke",
"item": "models/teknium/OpenHermes-2.5-Mistral-7B",
"sort": "lastModified",
"limit" : 1,
}
这等效于 huggingface_hub.list_collections()
。
PATCH /api/collections/{namespace}/{slug}-{id}
更新 Hub 上收藏的元数据。您不能使用此方法添加或修改收藏中的项目。有效负载的所有字段都是可选的。
有效载荷
payload = {
"title": "My cool models",
"description": "Here is a shortlist of models I've trained.",
"private": false,
"position": 0, // position of the collection on your profile
"theme": "green",
}
这等效于 huggingface_hub.update_collection_metadata()
。
DELETE /api/collections/{namespace}/{slug}-{id}
返回一个收藏。这是一个不可逆转的操作。删除的收藏无法恢复。
这等效于 huggingface_hub.delete_collection()
。
POST /api/collections/{namespace}/{slug}-{id}/item
将项目添加到收藏。项目由类型(model
、dataset
、space
或 paper
)和 ID(Hub 上的 repo_id 或 paper_id)定义。还可以向项目添加注释(可选)。
有效载荷
payload = {
"item" : {
"type": "model",
"id": "username/cool-model",
}
"note": "Here is the model I trained on ...",
}
这等效于 huggingface_hub.add_collection_item()
。
PATCH /api/collections/{namespace}/{slug}-{id}/items/{item_id}
更新收藏中的项目。您必须知道项目对象 ID,该 ID 与将项目添加到收藏时提供的 repo_id/paper_id 不同。可以通过获取收藏来检索 item_id
。
您可以更新附加到项目的注释或项目在收藏中的位置。这两个字段都是可选的。
payload = {
"position": 0,
"note": "Here is the model I trained on ...",
}
这等效于 huggingface_hub.update_collection_item()
。
DELETE /api/collections/{namespace}/{slug}-{id}/items/{item_id}
从收藏中移除项目。您必须知道项目对象 ID,该 ID 与将项目添加到收藏时提供的 repo_id/paper_id 不同。可以通过获取收藏来检索 item_id
。
这等效于 huggingface_hub.delete_collection_item()
。