# Tham khảo hệ thống bộ nhớ đệm

Hệ thống cache đã được cập nhật trong v0.8.0 để trở thành hệ thống cache trung tâm được chia sẻ giữa các thư viện phụ thuộc vào Hub. Đọc [hướng dẫn về hệ thống cache](../guides/manage-cache) để có trình bày chi tiết về việc cache tại HF.

## Trợ lý

### try_to_load_from_cache[[huggingface_hub.try_to_load_from_cache]]

#### huggingface_hub.try_to_load_from_cache[[huggingface_hub.try_to_load_from_cache]]

```python
huggingface_hub.try_to_load_from_cache(repo_id: str, filename: str, cache_dir: str | pathlib.Path | None = None, revision: str | None = None, repo_type: str | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/file_download.py#L1522)

**Tham số:**

cache_dir (`str` hoặc `os.PathLike`) : Thư mục chứa các tệp được lưu trong bộ nhớ đệm.

repo_id (`str`) : ID của kho trên huggingface.co.

filename (`str`) : Tên tệp cần tìm bên trong `repo_id`.

revision (`str`, *tùy chọn*) : Phiên bản mô hình cụ thể cần sử dụng. Mặc định sẽ là `"main"` nếu không được cung cấp và cũng không có `commit_hash`.

repo_type (`str`, *tùy chọn*) : Kiểu của kho. Mặc định là `"model"`.

**Trả về:** `Optional[str]` hoặc `_CACHED_NO_EXIST`

Sẽ trả về `None` nếu tệp không được lưu trong bộ nhớ đệm. Ngược lại:
- Đường dẫn chính xác đến tệp được lưu trong bộ nhớ đệm nếu tệp đó được tìm thấy trong bộ nhớ đệm
- Một giá trị đặc biệt `_CACHED_NO_EXIST` nếu tệp không tồn tại tại commit hash được chỉ định và sự thật này đã được lưu vào bộ nhớ đệm.

Khám phá bộ nhớ đệm để trả về tệp được lưu trong bộ nhớ đệm mới nhất cho một phiên bản nhất định nếu tìm thấy.

Hàm này sẽ không gây ra ngoại lệ nào nếu tệp không được lưu trong bộ nhớ đệm.

Ví dụ:

```python
from huggingface_hub import try_to_load_from_cache, _CACHED_NO_EXIST

filepath = try_to_load_from_cache()
if isinstance(filepath, str):
    # file exists and is cached
    ...
elif filepath is _CACHED_NO_EXIST:
    # non-existence of file is cached
    ...
else:
    # file is not cached
    ...
```

### cached_assets_path[[huggingface_hub.cached_assets_path]]

#### huggingface_hub.cached_assets_path[[huggingface_hub.cached_assets_path]]

```python
huggingface_hub.cached_assets_path(library_name: str, namespace: str = 'default', subfolder: str = 'default', assets_dir: str | pathlib.Path | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_assets.py#L19)

**Tham số:**

library_name (`str`) : Tên của thư viện sẽ quản lý thư mục cache. Ví dụ: `"dataset"`.

namespace (`str`, *tùy chọn*, mặc định là "default") : Không gian tên mà dữ liệu thuộc về. Ví dụ: `"SQuAD"`.

subfolder (`str`, *tùy chọn*, mặc định là "default") : Thư mục con mà dữ liệu sẽ được lưu trữ. Ví dụ: `extracted`.

assets_dir (`str`, `Path`, *tùy chọn*) : Đường dẫn đến thư mục nơi các tài sản được lưu đệm. Thư mục này không được trùng với thư mục lưu đệm các tệp Hub. Mặc định là `HF_HOME / "assets"` nếu không được cung cấp. Cũng có thể được đặt bằng biến môi trường `HF_ASSETS_CACHE`.

**Trả về:**

Đường dẫn đến thư mục cache (`Path`).

Trả về đường dẫn thư mục để lưu trữ các tệp tùy ý.

`huggingface_hub` cung cấp một đường dẫn thư mục chuẩn để lưu trữ tài sản. Đây là cách tích hợp bộ nhớ đệm được khuyến nghị trong một thư viện hạ nguồn, vì nó sẽ được hưởng lợi từ các công cụ tích hợp sẵn để quét và xóa bộ nhớ đệm một cách chính xác.

Sự phân biệt được thực hiện giữa các tệp được lưu trong bộ nhớ đệm từ Hub và các tài nguyên. Các tệp từ Hub được lưu trong bộ nhớ đệm theo cách nhận biết git và được quản lý hoàn toàn bởi `huggingface_hub`. Xem [tài liệu liên quan](https://huggingface.co/docs/huggingface_hub/how-to-cache). Tất cả các tệp khác mà một thư viện hạ nguồn lưu trong bộ nhớ đệm được coi là "tài nguyên" (các tệp được tải xuống từ các nguồn bên ngoài, được trích xuất từ một tệp .tar, được tiền xử lý cho việc huấn luyện,...).

Một khi đường dẫn thư mục được tạo ra, nó được đảm bảo là tồn tại và là một thư mục. Đường dẫn dựa trên 3 cấp độ chiều sâu: tên thư viện, một không gian tên và một thư mục con. Ba cấp độ này mang lại sự linh hoạt trong khi cho phép `huggingface_hub` kỳ vọng các thư mục khi quét/xóa các phần của bộ nhớ đệm tài sản. Trong một thư viện, các không gian tên được kỳ vọng là chia sẻ cùng một tập con các tên thư mục con, nhưng đây không phải là quy tắc bắt buộc. Thư viện hạ nguồn sau đó có toàn quyền kiểm soát cấu trúc tệp nào cần áp dụng trong bộ nhớ đệm của nó. Không gian tên và thư mục con là tùy chọn (sẽ mặc định là thư mục con `"default/"`) nhưng tên thư viện là bắt buộc vì chúng tôi muốn mỗi thư viện hạ nguồn tự quản lý bộ nhớ đệm của riêng mình.

Cây dự kiến:
```text
    assets/
    └── datasets/
    │   ├── SQuAD/
    │   │   ├── downloaded/
    │   │   ├── extracted/
    │   │   └── processed/
    │   ├── Helsinki-NLP--tatoeba_mt/
    │       ├── downloaded/
    │       ├── extracted/
    │       └── processed/
    └── transformers/
        ├── default/
        │   ├── something/
        ├── bert-base-cased/
        │   ├── default/
        │   └── training/
    hub/
    └── models--julien-c--EsperBERTo-small/
        ├── blobs/
        │   ├── (...)
        │   ├── (...)
        ├── refs/
        │   └── (...)
        └── [ 128]  snapshots/
            ├── 2439f60ef33a0d46d85da5001d52aeda5b00ce9f/
            │   ├── (...)
            └── bbc77c8132af1cc5cf678da3f1ddf2de43606d48/
                └── (...)
```

Ví dụ:
```py
>>> from huggingface_hub import cached_assets_path

>>> cached_assets_path(library_name="datasets", namespace="SQuAD", subfolder="download")
PosixPath('/home/wauplin/.cache/huggingface/extra/datasets/SQuAD/download')

>>> cached_assets_path(library_name="datasets", namespace="SQuAD", subfolder="extracted")
PosixPath('/home/wauplin/.cache/huggingface/extra/datasets/SQuAD/extracted')

>>> cached_assets_path(library_name="datasets", namespace="Helsinki-NLP/tatoeba_mt")
PosixPath('/home/wauplin/.cache/huggingface/extra/datasets/Helsinki-NLP--tatoeba_mt/default')

>>> cached_assets_path(library_name="datasets", assets_dir="/tmp/tmp123456")
PosixPath('/tmp/tmp123456/datasets/default/default')
```

### scan_cache_dir[[huggingface_hub.scan_cache_dir]]

#### huggingface_hub.scan_cache_dir[[huggingface_hub.scan_cache_dir]]

```python
huggingface_hub.scan_cache_dir(cache_dir: str | pathlib.Path | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L680)

**Tham số:**

cache_dir (`str` hoặc `Path`, `optional`) : Thư mục cache để lưu trữ. Mặc định là thư mục cache mặc định của HF.

Quét toàn bộ hệ thống cache HF và trả về cấu trúc [~HFCacheInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo).

Sử dụng `scan_cache_dir` để quét hệ thống cache của bạn theo cách lập trình. Cache sẽ được quét theo từng repo. Nếu một repo bị hỏng, một [~CorruptedCacheException](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CorruptedCacheException) sẽ được ném ra bên trong nhưng được bắt lại và trả về trong cấu trúc [~HFCacheInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo). Chỉ các repo hợp lệ mới nhận được báo cáo đầy đủ.

```py
>>> from huggingface_hub import scan_cache_dir

>>> hf_cache_info = scan_cache_dir()
HFCacheInfo(
    size_on_disk=3398085269,
    repos=frozenset({
        CachedRepoInfo(
            repo_id='t5-small',
            repo_type='model',
            repo_path=PosixPath(...),
            size_on_disk=970726914,
            nb_files=11,
            revisions=frozenset({
                CachedRevisionInfo(
                    commit_hash='d78aea13fa7ecd06c29e3e46195d6341255065d5',
                    size_on_disk=970726339,
                    snapshot_path=PosixPath(...),
                    files=frozenset({
                        CachedFileInfo(
                            file_name='config.json',
                            size_on_disk=1197
                            file_path=PosixPath(...),
                            blob_path=PosixPath(...),
                        ),
                        CachedFileInfo(...),
                        ...
                    }),
                ),
                CachedRevisionInfo(...),
                ...
            }),
        ),
        CachedRepoInfo(...),
        ...
    }),
    warnings=[
        CorruptedCacheException("Snapshots dir doesn't exist in cached repo: ..."),
        CorruptedCacheException(...),
        ...
    ],
)
```

Bạn cũng có thể in báo cáo chi tiết trực tiếp từ dòng lệnh `hf` bằng cách sử dụng:
```text
> hf cache ls
ID                          SIZE     LAST_ACCESSED LAST_MODIFIED REFS
--------------------------- -------- ------------- ------------- -----------
dataset/nyu-mll/glue          157.4M 2 days ago    2 days ago    main script
model/LiquidAI/LFM2-VL-1.6B     3.2G 4 days ago    4 days ago    main
model/microsoft/UserLM-8b      32.1G 4 days ago    4 days ago    main

Done in 0.0s. Scanned 6 repo(s) for a total of 3.4G.
Got 1 warning(s) while scanning. Use -vvv to print details.
```

> [!WARNING]
> Gây ra:
>
> `CacheNotFound` Nếu thư mục cache không tồn tại.
>
> [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) Nếu thư mục cache là một tệp, thay vì một thư mục.

Trả về: một đối tượng [~HFCacheInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo).

## Cấu trúc dữ liệu

Tất cả các cấu trúc đều được xây dựng và trả về bởi [scan_cache_dir()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.scan_cache_dir) và là bất biến.

### HFCacheInfo[[huggingface_hub.HFCacheInfo]]

#### huggingface_hub.HFCacheInfo[[huggingface_hub.HFCacheInfo]]

```python
huggingface_hub.HFCacheInfo(size_on_disk: int, repos: frozenset, incomplete_files: frozenset, warnings: list, cache_dir: pathlib.Path | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L384)

**Tham số:**

size_on_disk (`int`) : Kích thước vật lý của hệ thống cache tính bằng byte. Một blob được chia sẻ giữa các repo được tính một lần, và các blob chỉ dùng để lưu trữ được chia sẻ nhưng không còn được repo nào tham chiếu nữa cũng được bao gồm. Giá trị này có thể nhỏ hơn tổng kích thước của từng repo.

repos (`frozenset[CachedRepoInfo]`) : Tập hợp các [~CachedRepoInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CachedRepoInfo) mô tả tất cả các kho lưu trữ cache hợp lệ được tìm thấy trên hệ thống cache trong quá trình quét.

incomplete_files (`frozenset[CachedIncompleteFileInfo]`) : Tập hợp các [~CachedIncompleteFileInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CachedIncompleteFileInfo) mô tả các tệp `*.incomplete` bị bỏ lại do các lượt tải xuống bị gián đoạn.

warnings (`list[CorruptedCacheException]`) : Danh sách các [~CorruptedCacheException](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CorruptedCacheException) xảy ra trong quá trình quét cache. Các ngoại lệ này được ghi nhận để quá trình quét có thể tiếp tục. Các kho bị hỏng sẽ bị bỏ qua trong quá trình quét.

cache_dir (`Path` hoặc `None`) : Thư mục cache đã được quét.

Cấu trúc dữ liệu đóng băng chứa thông tin về toàn bộ hệ thống bộ nhớ đệm.

Cấu trúc dữ liệu này được trả về bởi [scan_cache_dir()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.scan_cache_dir) và không thể thay đổi.

> [!WARNING]
> `size_on_disk` chỉ tính đến các blob, và các kho bị hỏng sẽ được bỏ qua. Đây là kích thước vật lý: khác với `CachedRepoInfo.size_on_disk`, vốn gán một blob dùng chung cho mọi kho tham chiếu đến nó, một blob dùng chung ở đây chỉ được tính một lần.

#### delete_files[[huggingface_hub.HFCacheInfo.delete_files]]

```python
delete_files(*files: CachedFileInfo)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L536)

Chuẩn bị chiến lược để xóa các tệp được lưu trong bộ nhớ đệm riêng lẻ.

Chỉ các mục snapshot bị xóa. Một blob chỉ bị xóa nếu không có tệp cache nào khác tham chiếu đến nó, do đó các blob được chia sẻ với các phiên bản khác sẽ được giữ lại. Các refs và thư mục snapshot cũng được giữ lại, ngay cả khi một snapshot trở nên trống. Để xóa toàn bộ các phiên bản hoặc kho, hãy sử dụng [delete_revisions()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo.delete_revisions).

Ví dụ:
```py
>>> from huggingface_hub import scan_cache_dir
>>> cache_info = scan_cache_dir()
>>> files = [
...     file
...     for repo in cache_info.repos
...     if repo.repo_id == "org/model"
...     for revision in repo.revisions
...     for file in revision.files
...     if file.file_name == "model-Q4_K_M.gguf"
... ]
>>> delete_strategy = cache_info.delete_files(*files)
>>> print(f"Will free {delete_strategy.expected_freed_size_str}.")
Will free 4.9G.
>>> delete_strategy.execute()
```

#### delete_revisions[[huggingface_hub.HFCacheInfo.delete_revisions]]

```python
delete_revisions(*revisions: str)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L433)

Chuẩn bị chiến lược để xóa một hoặc nhiều bản sửa đổi đã được lưu cục bộ.

Các revision đầu vào có thể là bất kỳ hash revision nào. Nếu không tìm thấy hash revision trong bộ nhớ đệm cục bộ, một cảnh báo sẽ được phát ra nhưng không có lỗi nào được ném ra. Các revision có thể đến từ các kho đã được lưu trong bộ nhớ đệm khác nhau vì các hash là duy nhất giữa các kho,

Ví dụ:
```py
>>> from huggingface_hub import scan_cache_dir
>>> cache_info = scan_cache_dir()
>>> delete_strategy = cache_info.delete_revisions(
...     "81fd1d6e7847c99f5862c9fb81387956d99ec7aa"
... )
>>> print(f"Will free {delete_strategy.expected_freed_size_str}.")
Will free 7.9K.
>>> delete_strategy.execute()
```

```py
>>> from huggingface_hub import scan_cache_dir
>>> scan_cache_dir().delete_revisions(
...     "81fd1d6e7847c99f5862c9fb81387956d99ec7aa",
...     "e2983b237dccf3ab4937c97fa717319a9ca1a96d",
...     "6c0e6080953db56375760c0471a8c5f2929baf11",
... ).execute()
```

> [!WARNING]
> `delete_revisions` trả về một đối tượng [DeleteCacheStrategy](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.DeleteCacheStrategy) cần được thực thi. [DeleteCacheStrategy](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.DeleteCacheStrategy) không được thiết kế để chỉnh sửa nhưng cho phép chạy thử (dry run) trước khi thực sự thực hiện việc xóa.

#### export_as_table[[huggingface_hub.HFCacheInfo.export_as_table]]

```python
export_as_table(verbosity: int = 0)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L585)

**Tham số:**

verbosity (`int`, *tuỳ chọn*) : Mức độ chi tiết. Mặc định là 0.

**Trả về:** `str`

Bảng dưới dạng chuỗi.

Tạo bảng từ đối tượng [HFCacheInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo).

Truyền `verbosity=0` để nhận bảng có một dòng cho mỗi repo, với các cột "repo_id", "repo_type", "size_on_disk", "nb_files", "last_accessed", "last_modified", "refs", "local_path".

Truyền `verbosity=1` để nhận bảng có một hàng cho mỗi repo và revision (do đó có thể xuất hiện nhiều hàng cho một repo duy nhất), với các cột "repo_id", "repo_type", "revision", "size_on_disk", "nb_files", "last_modified", "refs", "local_path".

Ví dụ:
```py
>>> from huggingface_hub.utils import scan_cache_dir

>>> hf_cache_info = scan_cache_dir()
HFCacheInfo(...)

>>> print(hf_cache_info.export_as_table())
REPO ID                                             REPO TYPE SIZE ON DISK NB FILES LAST_ACCESSED LAST_MODIFIED REFS LOCAL PATH
--------------------------------------------------- --------- ------------ -------- ------------- ------------- ---- --------------------------------------------------------------------------------------------------
roberta-base                                        model             2.7M        5 1 day ago     1 week ago    main ~/.cache/huggingface/hub/models--roberta-base
suno/bark                                           model             8.8K        1 1 week ago    1 week ago    main ~/.cache/huggingface/hub/models--suno--bark
t5-base                                             model           893.8M        4 4 days ago    7 months ago  main ~/.cache/huggingface/hub/models--t5-base
t5-large                                            model             3.0G        4 5 weeks ago   5 months ago  main ~/.cache/huggingface/hub/models--t5-large

>>> print(hf_cache_info.export_as_table(verbosity=1))
REPO ID                                             REPO TYPE REVISION                                 SIZE ON DISK NB FILES LAST_MODIFIED REFS LOCAL PATH
--------------------------------------------------- --------- ---------------------------------------- ------------ -------- ------------- ---- -----------------------------------------------------------------------------------------------------------------------------------------------------
roberta-base                                        model     e2da8e2f811d1448a5b465c236feacd80ffbac7b         2.7M        5 1 week ago    main ~/.cache/huggingface/hub/models--roberta-base/snapshots/e2da8e2f811d1448a5b465c236feacd80ffbac7b
suno/bark                                           model     70a8a7d34168586dc5d028fa9666aceade177992         8.8K        1 1 week ago    main ~/.cache/huggingface/hub/models--suno--bark/snapshots/70a8a7d34168586dc5d028fa9666aceade177992
t5-base                                             model     a9723ea7f1b39c1eae772870f3b547bf6ef7e6c1       893.8M        4 7 months ago  main ~/.cache/huggingface/hub/models--t5-base/snapshots/a9723ea7f1b39c1eae772870f3b547bf6ef7e6c1
t5-large                                            model     150ebc2c4b72291e770f58e6057481c8d2ed331a         3.0G        4 5 months ago  main ~/.cache/huggingface/hub/models--t5-large/snapshots/150ebc2c4b72291e770f58e6057481c8d2ed331a
```

### CachedRepoInfo[[huggingface_hub.CachedRepoInfo]]

#### huggingface_hub.CachedRepoInfo[[huggingface_hub.CachedRepoInfo]]

```python
huggingface_hub.CachedRepoInfo(repo_id: str, repo_type: typing.Literal['model', 'dataset', 'space', 'kernel'], repo_path: Path, size_on_disk: int, nb_files: int, revisions: frozenset, last_accessed: float, last_modified: float)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L176)

**Tham số:**

repo_id (`str`) : Id của repo trên Hub. Ví dụ: `"google/fleurs"`.

repo_type (`Literal["dataset", "model", "space", "kernel"]`) : Kiểu của kho đã được lưu cache.

repo_path (`Path`) : Đường dẫn cục bộ đến kho đã được lưu đệm.

size_on_disk (`int`) : Tổng kích thước các tệp blob trong kho đã được lưu bộ nhớ đệm.

nb_files (`int`) : Tổng số tệp blob trong kho đã được lưu bộ nhớ đệm.

revisions (`frozenset[CachedRevisionInfo]`) : Tập hợp các [~CachedRevisionInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CachedRevisionInfo) mô tả tất cả các phiên bản được lưu trong bộ nhớ đệm của kho.

last_accessed (`float`) : Thời điểm cuối cùng tệp blob của kho được truy cập.

last_modified (`float`) : Thời điểm lần cuối tệp blob của kho được sửa đổi/tạo.

Cấu trúc dữ liệu đóng băng chứa thông tin về một kho lưu trữ đã được lưu bộ nhớ đệm.

> [!WARNING]
> `size_on_disk` không nhất thiết là tổng kích thước của tất cả các phiên bản do có các tệp bị trùng lặp. Ngoài ra, chỉ các blob được tính đến, không tính đến kích thước (không đáng kể) của các thư mục và liên kết mềm.

> [!WARNING]
> Độ tin cậy của `last_accessed` và `last_modified` có thể phụ thuộc vào hệ điều hành bạn đang sử dụng. Xem [tài liệu python](https://docs.python.org/3/library/os.html#os.stat_result) để biết thêm chi tiết.

#### size_on_disk_str[[huggingface_hub.CachedRepoInfo.size_on_disk_str]]

```python
size_on_disk_str()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L238)

(property) Tổng kích thước các tệp blob dưới dạng chuỗi dễ đọc.

Ví dụ: "42.2K".

#### refs[[huggingface_hub.CachedRepoInfo.refs]]

```python
refs()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L252)

(property) Ánh xạ giữa `refs` và các cấu trúc dữ liệu phiên bản.

### CachedRevisionInfo[[huggingface_hub.CachedRevisionInfo]]

#### huggingface_hub.CachedRevisionInfo[[huggingface_hub.CachedRevisionInfo]]

```python
huggingface_hub.CachedRevisionInfo(commit_hash: str, snapshot_path: Path, size_on_disk: int, files: frozenset, refs: frozenset, last_modified: float)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L105)

**Tham số:**

commit_hash (`str`) : Hash của revision (duy nhất). Ví dụ: `"9338f7b671827df886678df2bdd7cc7b4f36dffd"`.

snapshot_path (`Path`) : Đường dẫn đến thư mục phiên bản trong thư mục `snapshots`. Nó chứa cấu trúc cây chính xác như kho trên Hub.

files : (`frozenset[CachedFileInfo]`): Tập hợp các [~CachedFileInfo](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.CachedFileInfo) mô tả tất cả các tệp chứa trong bản chụp.

refs (`frozenset[str]`) : Tập hợp các `refs` trỏ đến bản sửa đổi này. Nếu bản sửa đổi không có `refs`, nó được coi là ở trạng thái tách rời. Ví dụ: `{"main", "2.4.0"}` hoặc `{"refs/pr/1"}`.

size_on_disk (`int`) : Tổng kích thước các tệp blob được liên kết bằng symlink bởi phiên bản.

last_modified (`float`) : Thời điểm cuối cùng bản sửa đổi được tạo/thay đổi.

Cấu trúc dữ liệu đóng băng chứa thông tin về một bản sửa đổi.

Một revision tương ứng với một thư mục trong thư mục `snapshots` và được lấp đầy với cấu trúc cây chính xác như repo trên Hub nhưng chỉ chứa các symlink. Một revision có thể được tham chiếu bởi 1 hoặc nhiều `refs` hoặc ở trạng thái "detached" (không có refs).

> [!WARNING]
> `last_accessed` không thể được xác định chính xác trên một revision đơn lẻ vì các tệp blob được chia sẻ giữa các revision.

> [!WARNING]
> `size_on_disk` không nhất thiết là tổng kích thước của tất cả các tệp do có thể tồn tại các tệp trùng lặp. Ngoài ra, chỉ các blob được tính đến, không tính đến kích thước (không đáng kể) của các thư mục và liên kết mềm.

#### size_on_disk_str[[huggingface_hub.CachedRevisionInfo.size_on_disk_str]]

```python
size_on_disk_str()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L158)

(property) Tổng kích thước các tệp blob dưới dạng chuỗi dễ đọc.

Ví dụ: "42.2K".

#### nb_files[[huggingface_hub.CachedRevisionInfo.nb_files]]

```python
nb_files()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L167)

(property) Tổng số tệp trong bản sửa đổi.

### CachedFileInfo[[huggingface_hub.CachedFileInfo]]

#### huggingface_hub.CachedFileInfo[[huggingface_hub.CachedFileInfo]]

```python
huggingface_hub.CachedFileInfo(file_name: str, file_path: Path, blob_path: Path, size_on_disk: int, blob_last_accessed: float, blob_last_modified: float)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L40)

**Tham số:**

file_name (`str`) : Tên của tệp. Ví dụ: `config.json`.

file_path (`Path`) : Đường dẫn của tệp trong thư mục `snapshots`. Đường dẫn tệp là một symlink trỏ đến một blob trong thư mục `blobs`.

blob_path (`Path`) : Đường dẫn của mục blob cục bộ trong repo được tham chiếu bởi `file_path`. Mục blob này có thể là một symlink trỏ đến kho blob dùng chung trên toàn bộ cache.

size_on_disk (`int`) : Kích thước của tệp blob tính bằng byte.

blob_last_accessed (`float`) : Thời điểm cuối cùng tệp blob được truy cập (từ bất kỳ phiên bản nào).

blob_last_modified (`float`) : Thời điểm lần cuối tệp blob được sửa đổi/tạo.

Cấu trúc dữ liệu bất biến chứa thông tin về một tệp được lưu trong bộ nhớ đệm.

> [!WARNING]
> Độ tin cậy của `blob_last_accessed` và `blob_last_modified` có thể phụ thuộc vào hệ điều hành bạn đang sử dụng. Xem [tài liệu python](https://docs.python.org/3/library/os.html#os.stat_result) để biết thêm chi tiết.

#### size_on_disk_str[[huggingface_hub.CachedFileInfo.size_on_disk_str]]

```python
size_on_disk_str()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L94)

(property) Kích thước của tệp blob dưới dạng chuỗi dễ đọc.

Ví dụ: "42.2K".

### CachedIncompleteFileInfo[[huggingface_hub.CachedIncompleteFileInfo]]

#### huggingface_hub.CachedIncompleteFileInfo[[huggingface_hub.CachedIncompleteFileInfo]]

```python
huggingface_hub.CachedIncompleteFileInfo(file_path: Path, size_on_disk: int)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L365)

**Tham số:**

file_path (`Path`) : Đường dẫn của tệp `.incomplete` trong thư mục `blobs`.

size_on_disk (`int`) : Kích thước của tệp đã tải xuống một phần, tính bằng byte.

Cấu trúc dữ liệu đóng băng chứa thông tin về một lượt tải xuống chưa hoàn tất.

Tải xuống bị gián đoạn sẽ để lại các tệp `<cache>/<repo>/blobs/<etag>.incomplete`. Những tệp này không thuộc bất kỳ bản sửa đổi nào đã được cam kết, do đó chúng được hiển thị riêng biệt bởi [scan_cache_dir()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.scan_cache_dir).

### DeleteCacheStrategy[[huggingface_hub.DeleteCacheStrategy]]

#### huggingface_hub.DeleteCacheStrategy[[huggingface_hub.DeleteCacheStrategy]]

```python
huggingface_hub.DeleteCacheStrategy(expected_freed_size: int, blobs: frozenset, refs: frozenset, repos: frozenset, snapshots: frozenset, files: frozenset = frozenset(), cache_dir: pathlib.Path | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L261)

**Tham số:**

expected_freed_size (`float`) : Kích thước được giải phóng dự kiến sau khi chiến lược được thực thi.

blobs (`frozenset[Path]`) : Tập các đường dẫn tệp blob cần xóa.

refs (`frozenset[Path]`) : Tập hợp các đường dẫn tệp tham chiếu sẽ bị xóa.

repos (`frozenset[Path]`) : Tập hợp các đường dẫn repo hoàn chỉnh cần được xóa.

snapshots (`frozenset[Path]`) : Tập các bản sao chụp sẽ bị xóa (thư mục của các liên kết mềm).

files (`frozenset[Path]`, *tùy chọn*) : Tập hợp các mục snapshot riêng lẻ cần được xóa. Blob của chúng chỉ bị xóa nếu được liệt kê trong `blobs`.

cache_dir (`Path` hoặc `None`) : Thư mục cache mà chiến lược được tính toán từ đó. Được sử dụng để thu thập các blob dùng chung được tham chiếu bởi các symlink cục bộ của repo đã bị xóa.

Cấu trúc dữ liệu đóng băng chứa chiến lược để xóa các phiên bản hoặc tệp được lưu trong bộ nhớ đệm.

Đối tượng này không được thiết kế để khởi tạo bằng lập trình mà để được trả về bởi [delete_revisions()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo.delete_revisions) hoặc [delete_files()](/docs/huggingface_hub/v2.4.0/vi/package_reference/cache#huggingface_hub.HFCacheInfo.delete_files). Xem tài liệu để có ví dụ sử dụng.

#### expected_freed_size_str[[huggingface_hub.DeleteCacheStrategy.expected_freed_size_str]]

```python
expected_freed_size_str()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/utils/_cache_manager.py#L295)

(property) Kích thước dự kiến sẽ được giải phóng dưới dạng chuỗi có thể đọc được.

Ví dụ: "42.2K".

## Ngoại lệ

### CorruptedCacheException[[huggingface_hub.CorruptedCacheException]]

#### huggingface_hub.CorruptedCacheException[[huggingface_hub.CorruptedCacheException]]

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/errors.py#L22)

Ngoại lệ cho bất kỳ cấu trúc nào không mong đợi trong hệ thống cache của Huggingface.

