Hub Python 庫文件
與討論和拉取請求互動
並獲得增強的文件體驗
開始使用
與討論和拉取請求互動
huggingface_hub
庫提供了與 Hub 上的拉取請求和討論進行互動的 Python 介面。有關 Hub 上討論和拉取請求的更深入檢視以及它們在底層的工作原理,請訪問專用文件頁面。
從 Hub 中檢索討論和拉取請求
HfApi
類允許您檢索給定倉庫上的討論和拉取請求
>>> from huggingface_hub import get_repo_discussions
>>> for discussion in get_repo_discussions(repo_id="bigscience/bloom"):
... print(f"{discussion.num} - {discussion.title}, pr: {discussion.is_pull_request}")
# 11 - Add Flax weights, pr: True
# 10 - Update README.md, pr: True
# 9 - Training languages in the model card, pr: True
# 8 - Update tokenizer_config.json, pr: True
# 7 - Slurm training script, pr: False
[...]
HfApi.get_repo_discussions
支援按作者、型別(拉取請求或討論)和狀態(open
或 closed
)進行篩選
>>> from huggingface_hub import get_repo_discussions
>>> for discussion in get_repo_discussions(
... repo_id="bigscience/bloom",
... author="ArthurZ",
... discussion_type="pull_request",
... discussion_status="open",
... ):
... print(f"{discussion.num} - {discussion.title} by {discussion.author}, pr: {discussion.is_pull_request}")
# 19 - Add Flax weights by ArthurZ, pr: True
HfApi.get_repo_discussions
返回一個生成器,它生成Discussion 物件。要將所有討論放入一個列表中,請執行
>>> from huggingface_hub import get_repo_discussions
>>> discussions_list = list(get_repo_discussions(repo_id="bert-base-uncased"))
HfApi.get_repo_discussions() 返回的Discussion 物件包含討論或拉取請求的高階概述。您還可以使用HfApi.get_discussion_details() 獲取更詳細的資訊
>>> from huggingface_hub import get_discussion_details
>>> get_discussion_details(
... repo_id="bigscience/bloom-1b3",
... discussion_num=2
... )
DiscussionWithDetails(
num=2,
author='cakiki',
title='Update VRAM memory for the V100s',
status='open',
is_pull_request=True,
events=[
DiscussionComment(type='comment', author='cakiki', ...),
DiscussionCommit(type='commit', author='cakiki', summary='Update VRAM memory for the V100s', oid='1256f9d9a33fa8887e1c1bf0e09b4713da96773a', ...),
],
conflicting_files=[],
target_branch='refs/heads/main',
merge_commit_oid=None,
diff='diff --git a/README.md b/README.md\nindex a6ae3b9294edf8d0eda0d67c7780a10241242a7e..3a1814f212bc3f0d3cc8f74bdbd316de4ae7b9e3 100644\n--- a/README.md\n+++ b/README.md\n@@ -132,7 +132,7 [...]',
)
HfApi.get_discussion_details() 返回一個 DiscussionWithDetails 物件,它是 Discussion 的子類,包含關於討論或拉取請求的更詳細資訊。資訊包括透過 DiscussionWithDetails.events
獲取的所有評論、狀態更改和討論重新命名。
如果是拉取請求,您可以使用 DiscussionWithDetails.diff
檢索原始 git diff。拉取請求的所有提交都列在 DiscussionWithDetails.events
中。
透過程式設計方式建立和編輯討論或拉取請求
The HfApi 類還提供了建立和編輯討論和拉取請求的方法。您需要一個訪問令牌才能建立和編輯討論或拉取請求。
在 Hub 上提出更改的最簡單方法是透過 create_commit() API:只需將 create_pr
引數設定為 True
。此引數也適用於包裝 create_commit() 的其他方法
>>> from huggingface_hub import metadata_update
>>> metadata_update(
... repo_id="username/repo_name",
... metadata={"tags": ["computer-vision", "awesome-model"]},
... create_pr=True,
... )
您還可以使用 HfApi.create_discussion()(或 HfApi.create_pull_request())在倉庫上建立討論(或拉取請求)。以這種方式開啟拉取請求在您需要本地處理更改時非常有用。以這種方式開啟的拉取請求將處於 "draft"
模式。
>>> from huggingface_hub import create_discussion, create_pull_request
>>> create_discussion(
... repo_id="username/repo-name",
... title="Hi from the huggingface_hub library!",
... token="<insert your access token here>",
... )
DiscussionWithDetails(...)
>>> create_pull_request(
... repo_id="username/repo-name",
... title="Hi from the huggingface_hub library!",
... token="<insert your access token here>",
... )
DiscussionWithDetails(..., is_pull_request=True)
拉取請求和討論的管理可以完全透過 HfApi 類完成。例如
- comment_discussion() 用於新增評論
- edit_discussion_comment() 用於編輯評論
- rename_discussion() 用於重新命名討論或拉取請求
- change_discussion_status() 用於開啟或關閉討論/拉取請求
- merge_pull_request() 用於合併拉取請求
訪問 HfApi 文件頁面,獲取所有可用方法的詳盡參考。
將更改推送到拉取請求
即將推出!
另請參閱
有關更詳細的參考,請訪問討論和拉取請求以及hf_api文件頁面。
< > 在 GitHub 上更新