Hub Python Library documentation
Interaksi dengan Diskusi dan Pull Request
Interaksi dengan Diskusi dan Pull Request
Perpustakaan huggingface_hub menyediakan antarmuka Python untuk berinteraksi dengan Pull Requests dan Discussions di Hub.
Kunjungi halaman dokumentasi khusus untuk melihat lebih dalam tentang apa itu Discussions dan Pull Requests di Hub, serta bagaimana cara kerjanya di balik layar.
Mengambil Diskusi dan Pull Request dari Hub
Kelas HfApi memungkinkan Anda untuk mengambil Discussions dan Pull Requests pada repo tertentu:
>>> 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 mendukung penyaringan berdasarkan penulis, tipe (Pull Request atau Discussion), dan status (open atau 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: TrueHfApi.get_repo_discussions mengembalikan generator yang menghasilkan objek Discussion. Untuk mendapatkan semua Discussion dalam satu list, jalankan:
>>> from huggingface_hub import get_repo_discussions
>>> discussions_list = list(get_repo_discussions(repo_id="bert-base-uncased"))Objek Discussion yang dikembalikan oleh HfApi.get_repo_discussions() berisi ringkasan tingkat tinggi dari Discussion atau Pull Request. Anda juga dapat memperoleh informasi yang lebih detail menggunakan 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() mengembalikan objek DiscussionWithDetails, yang merupakan subkelas dari Discussion dengan informasi lebih rinci tentang Discussion atau Pull Request. Informasi tersebut mencakup semua komentar, perubahan status, dan penggantian nama Discussion melalui DiscussionWithDetails.events.
Dalam kasus Pull Request, Anda dapat mengambil diff git mentah dengan DiscussionWithDetails.diff. Semua commit dari Pull Request terdaftar di DiscussionWithDetails.events.
Buat dan edit Discussion atau Pull Request secara programatik
Kelas HfApi juga menyediakan cara untuk membuat dan mengedit Discussions dan Pull Requests. Anda memerlukan access token untuk membuat dan mengedit Discussions atau Pull Requests.
Cara termudah untuk mengusulkan perubahan pada repo di Hub adalah melalui API create_commit(): cukup
setel parameter create_pr ke True. Parameter ini juga tersedia pada metode lain yang membungkus create_commit():
>>> from huggingface_hub import metadata_update
>>> metadata_update(
... repo_id="username/repo_name",
... metadata={"tags": ["computer-vision", "awesome-model"]},
... create_pr=True,
... )Anda juga dapat menggunakan HfApi.create_discussion() (atau HfApi.create_pull_request()) untuk membuat Discussion (atau Pull Request) pada sebuah repo.
Membuka Pull Request dengan cara ini dapat berguna jika Anda perlu mengerjakan perubahan secara lokal. Pull Request yang dibuka dengan cara ini akan berada dalam mode "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)Mengelola Pull Requests dan Discussions dapat dilakukan sepenuhnya dengan kelas HfApi. Sebagai contoh:
- comment_discussion() untuk menambahkan komentar
- edit_discussion_comment() untuk mengedit komentar
- rename_discussion() untuk mengubah nama Discussion atau Pull Request
- change_discussion_status() untuk membuka atau menutup Discussion / Pull Request
- merge_pull_request() untuk menggabungkan Pull Request
- upload_attachment() untuk mengunggah gambar atau video dan menyematkan URL-nya dalam deskripsi atau komentar
Kunjungi halaman dokumentasi HfApi untuk referensi lengkap semua metode yang tersedia.
Kelola Diskusi dan Pull Request dari CLI
Semua operasi di atas juga tersedia dari baris perintah melalui hf discussions. Ini berguna untuk
penulisan skrip, pipeline CI, atau interaksi cepat tanpa menulis kode Python.
# List open discussions and PRs on a repo
hf discussions list bigscience/bloom
# List discussions on a dataset repo
hf discussions list nebius/SWE-rebench-V2 --type dataset
# Get info for a specific discussion, including its comment thread
hf discussions info bigscience/bloom 2
# Create a new discussion
hf discussions create username/repo-name --title "Bug report" --body "Description here"
# Create a pull request
hf discussions create username/repo-name --title "Fix typo" --pull-request
# Comment on a discussion or PR
hf discussions comment username/repo-name 5 --body "LGTM!"
# Attach a screenshot to a comment
hf discussions comment username/repo-name 5 --body "Here is the fix:" --attach screenshot.png
# Merge a pull request
hf discussions merge username/repo-name 5 --yes
# Show the diff of a pull request
hf discussions diff username/repo-name 5Untuk daftar lengkap opsi, jalankan hf discussions --help atau lihat referensi CLI.
Push perubahan ke Pull Request
Segera hadir!
Lihat juga
Untuk referensi yang lebih detail, kunjungi Discussions and Pull Requests dan halaman dokumentasi hf_api.
Update on GitHub