Hub Python 庫文件

與討論和拉取請求互動

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

與討論和拉取請求互動

huggingface_hub 庫提供了一個 Python 介面,用於與 Hub 上的拉取請求和討論進行互動。請訪問專門的文件頁面,深入瞭解 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 支援按作者、型別(拉取請求或討論)和狀態(openclosed)進行過濾

>>> 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中。

以程式設計方式建立和編輯討論或拉取請求

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類進行。例如

訪問HfApi文件頁面,獲取所有可用方法的詳盡參考。

將更改推送到拉取請求

敬請期待!

另請參閱

有關更詳細的參考,請訪問討論和拉取請求以及hf_api文件頁面。

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.