Hub Python Library documentation
API Hệ thống tệp
API Hệ thống tệp
Lớp HfFileSystem cung cấp giao diện tệp theo phong cách Python cho Hugging Face Hub dựa trên fsspec.
HfFileSystem
HfFileSystem được xây dựng dựa trên fsspec, do đó nó tương thích với hầu hết các API mà thư viện này cung cấp. Để biết thêm chi tiết, hãy xem hướng dẫn của chúng tôi và Tham chiếu API của fsspec.
lớp huggingface_hub.HfFileSystem
< source >( *args**kwargs )
Tham số
- endpoint (
str, tùy chọn) — Endpoint của Hub. Mặc định là https://huggingface.co. - token (
boolhoặcstr, tùy chọn) — Một token truy cập người dùng hợp lệ (chuỗi). Mặc định là token được lưu cục bộ, đây là phương pháp xác thực được khuyến nghị (xem https://huggingface.co/docs/huggingface_hub/quick-start#authentication). Để tắt xác thực, truyềnFalse. - block_size (
int, tùy chọn) — Kích thước khối để đọc và ghi tệp. - expand_info (
bool, tùy chọn) — Có mở rộng thông tin của các tệp hay không. - max_workers (
int, tùy chọn) — Số lượng yêu cầu đồng thời tối đa được sử dụng để liệt kê các thư mục lớn song song (xem find()). Mặc định là 16. Đặt thành 1 để tắt việc liệt kê song song. - live_follow (
bool, tùy chọn) — Xác định có theo dõi các thay đổi tệp trong các bucket khi chúng xảy ra trên Hub hay không, để các danh sách được lưu trong bộ nhớ đệm luôn ở trạng thái mới nhất mà không cần gọi thủ công HfFileSystem.invalidate_cache(). Khi được bật, việc liệt kê một bucket sẽ mở một kết nối nền với luồng sự kiện của Hub cho bucket đó. Không có tác dụng đối với các kho lưu trữ model, dataset và space (Hub không cung cấp thông tin thay đổi cho những loại này). - **storage_options (
dict, tùy chọn) — Các tùy chọn bổ sung cho hệ thống tệp. Xem tài liệu fsspec.
Truy cập kho lưu trữ Hugging Face Hub từ xa như thể nó là một hệ thống tệp cục bộ.
HfFileSystem cung cấp khả năng tương thích với fsspec, hữu ích cho các thư viện yêu cầu điều này (ví dụ: đọc trực tiếp các bộ dữ liệu Hugging Face bằng
pandas). Tuy nhiên, lớp tương thích này gây ra thêm chi phí xử lý. Để đạt hiệu suất và độ tin cậy tốt hơn, nên sử dụng các phương thức củaHfApikhi có thể.
Hệ thống tệp hỗ trợ các đường dẫn cho giao thức hf://, tuân theo các lược đồ URL sau:
- Các kho lưu trữ Models, Datasets và Spaces:
hf://<repo-id>[@<revision>]/<path/in/repo>
hf://datasets/<repo-id>[@<revision>]/<path/in/repo>
hf://spaces/<repo-id>[@<revision>]/<path/in/repo>Lưu ý: khi sử dụng HfFileSystem trực tiếp, việc truyền tiền tố giao thức hf:// trong các đường dẫn là tùy chọn.
Cách sử dụng:
>>> from huggingface_hub import hffs
>>> # List files
>>> hffs.glob("my-username/my-model/*.bin")
['my-username/my-model/pytorch_model.bin']
>>> hffs.ls("datasets/my-username/my-dataset", detail=False)
['datasets/my-username/my-dataset/.gitattributes', 'datasets/my-username/my-dataset/README.md', 'datasets/my-username/my-dataset/data.json']
>>> # Read/write files
>>> with hffs.open("my-username/my-model/pytorch_model.bin") as f:
... data = f.read()
>>> with hffs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
... f.write(data)Chỉ định một token để xác thực:
>>> from huggingface_hub import HfFileSystem
>>> hffs = HfFileSystem(token=token)cp_file
< source >( path1: strpath2: strrevision: str | None = None**kwargs )
Sao chép tệp trong hoặc giữa các kho, hoặc vào một bucket.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.upload_file()để đạt hiệu suất tốt hơn.
tồn tại
< source >( path**kwargs ) → bool
Kiểm tra xem tệp có tồn tại hay không.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.file_exists()để đạt hiệu suất tốt hơn.
find
< source >( path: strmaxdepth: int | None = Nonewithdirs: bool = Falsedetail: bool = Falserefresh: bool = Falserevision: str | None = None**kwargs ) → Union[list[str], dict[str, dict[str, Any]]]
Tham số
- path (
str) — Đường dẫn gốc để liệt kê các tệp từ đó. - maxdepth (
int, tùy chọn) — Độ sâu tối đa để đi xuống các thư mục con. - withdirs (
bool, tùy chọn) — Bao gồm đường dẫn thư mục trong đầu ra. Mặc định là False. - detail (
bool, tùy chọn) — Nếu là True, trả về một dict ánh xạ các đường dẫn đến thông tin tệp. Mặc định là False. - refresh (
bool, tùy chọn) — Nếu là True, bỏ qua bộ nhớ đệm và lấy dữ liệu mới nhất. Mặc định là False. - revision (
str, tùy chọn) — Phiên bản git để liệt kê từ đó.
Trả về
Union[list[str], dict[str, dict[str, Any]]]
Danh sách các đường dẫn hoặc dict chứa thông tin tệp.
Liệt kê tất cả các tệp bên dưới đường dẫn.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
Các kho lớn được liệt kê theo từng thư mục, song song, để khắc phục phân trang dựa trên con trỏ của điểm cuối
treecủa Hub. Điều chỉnh điều này bằng đối sốmax_workerscủa HfFileSystem.
get_file
< source >( rpathlpath = Nonecallback = <fsspec.callbacks.NoOpCallback object at 0x7f9673955c90>outfile = None**kwargs )
Tham số
- rpath (
str) — Đường dẫn từ xa để tải xuống. - lpath (
str, tùy chọn) — Đường dẫn cục bộ để tải xuống. Có thể bỏ qua nếu đã cung cấpoutfile. - callback (
Callback, optional) — Optional callback to track download progress. Defaults to no callback. - outfile (
IO, tùy chọn) — Đối tượng dạng tệp tùy chọn để ghi. Nếu được cung cấp,lpathsẽ bị bỏ qua.
Sao chép một tệp từ xa đơn lẻ về cục bộ.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.hf_hub_download()hoặcHfApi.download_bucket_filesđể đạt hiệu suất tốt hơn.
glob
< source >( path: strmaxdepth: int | None = None**kwargs ) → list[str]
Tìm tệp bằng cách khớp glob.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
thông tin
< source >( path: strrefresh: bool = Falserevision: str | None = None**kwargs ) → dict[str, Any]
Tham số
- path (
str) — Đường dẫn để lấy thông tin. - refresh (
bool, tùy chọn) — Nếu là True, bỏ qua bộ nhớ đệm và lấy dữ liệu mới nhất. Mặc định là False. - revision (
str, tùy chọn) — Phiên bản git để lấy thông tin từ đó.
Trả về
dict[str, Any]
Từ điển chứa thông tin tệp (kiểu, kích thước, thông tin commit, v.v.).
Lấy thông tin về một tệp hoặc thư mục.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.get_paths_info()hoặcHfApi.repo_info()để đạt hiệu suất tốt hơn (hoặcHfApi.get_bucket_paths_info()hoặcHfApi.bucket_info()cho các bucket)
invalidate_cache
< source >( path: str | None = None )
Xóa bộ nhớ đệm cho một đường dẫn nhất định.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
isdir
< source >( path ) → bool
Kiểm tra xem một đường dẫn có phải là thư mục hay không.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
isfile
< source >( path ) → bool
Kiểm tra xem một đường dẫn có phải là tệp hay không.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
ls
< source >( path: strdetail: bool = Truerefresh: bool = Falserevision: str | None = None**kwargs ) → list[Union[str, dict[str, Any]]]
Tham số
- path (
str) — Đường dẫn đến thư mục. - detail (
bool, tùy chọn) — Nếu là True, trả về một danh sách các từ điển chứa thông tin tệp. Nếu là False, trả về một danh sách các đường dẫn tệp. Mặc định là True. - refresh (
bool, tùy chọn) — Nếu là True, bỏ qua bộ nhớ đệm và lấy dữ liệu mới nhất. Mặc định là False. - revision (
str, tùy chọn) — Phiên bản git để liệt kê từ đó.
Trả về
list[Union[str, dict[str, Any]]]
Danh sách đường dẫn tệp (nếu detail=False) hoặc danh sách các từ điển thông tin tệp (nếu detail=True).
Liệt kê nội dung của một thư mục.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.list_repo_tree()để đạt hiệu suất tốt hơn.
đã sửa đổi
< source >( path: str**kwargs ) → datetime
Lấy thời gian sửa đổi cuối cùng của một tệp.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
resolve_path
< source >( path: strrevision: str | None = None ) → HfFileSystemResolvedPath
Tham số
- path (
str) — Đường dẫn cần phân giải. - revision (
str, tùy chọn) — Phiên bản của kho cần phân giải. Mặc định là phiên bản được chỉ định trong đường dẫn.
Trả về
HfFileSystemResolvedPath
Thông tin đường dẫn đã được phân giải, bao gồm repo_type, repo_id, revision và path_in_repo.
Gây ra
ValueError hoặc NotImplementedError
ValueError— Nếu path chứa thông tin revision mâu thuẫn.NotImplementedError— Nếu cố gắng liệt kê các kho lưu trữ.
Phân tích đường dẫn hệ thống tệp Hugging Face thành các thành phần của nó.
rm
< source >( path: strrecursive: bool = Falsemaxdepth: int | None = Nonerevision: str | None = None**kwargs )
Xóa tệp khỏi kho.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.
Lưu ý: Khi có thể, hãy sử dụng
HfApi.delete_file()để đạt hiệu suất tốt hơn.
url
< source >( path: str ) → str
Lấy URL HTTP của đường dẫn đã cho.
đi bộ
< source >( path: str*args**kwargs ) → Iterator[tuple[str, list[str], list[str]]]
Trả về tất cả các tệp bên dưới đường dẫn đã cho.
Để biết thêm chi tiết, hãy tham khảo tài liệu fsspec.