# Công cụ tiện ích

## Cấu hình ghi log[[huggingface_hub.utils.logging.get_verbosity]]

Gói `huggingface_hub` cung cấp tiện ích `logging` để kiểm soát mức độ ghi log của chính gói này. Bạn có thể import nó như sau:

```py
from huggingface_hub import logging
```

Sau đó, bạn có thể định nghĩa mức độ chi tiết để cập nhật số lượng nhật ký mà bạn sẽ thấy:

```python
from huggingface_hub import logging

logging.set_verbosity_error()
logging.set_verbosity_warning()
logging.set_verbosity_info()
logging.set_verbosity_debug()

logging.set_verbosity(...)
```

Các cấp độ nên được hiểu như sau:

- `error`: chỉ hiển thị các nhật ký quan trọng về việc sử dụng có thể dẫn đến lỗi hoặc hành vi không mong muốn.
- `warning`: hiển thị các nhật ký không quan trọng nhưng việc sử dụng có thể dẫn đến hành vi không mong muốn. Ngoài ra, các nhật ký thông tin quan trọng có thể được hiển thị.
- `info`: hiển thị hầu hết các nhật ký, bao gồm một số nhật ký chi tiết về những gì đang diễn ra bên trong. Nếu có điều gì đó hoạt động không như mong đợi, chúng tôi khuyến nghị chuyển mức độ chi tiết sang mức này để nhận thêm thông tin.
- `debug`: hiển thị tất cả các nhật ký, bao gồm một số nhật ký nội bộ có thể được sử dụng để theo dõi chính xác những gì đang diễn ra bên trong.

#### huggingface_hub.utils.logging.get_verbosity[[huggingface_hub.utils.logging.get_verbosity]]

```python
huggingface_hub.utils.logging.get_verbosity()
```

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

**Trả về:**

Mức ghi log, ví dụ `huggingface_hub.logging.DEBUG` và `huggingface_hub.logging.INFO`.

Trả về mức hiện tại cho trình ghi log gốc của HuggingFace Hub.

> [!TIP]
> HuggingFace Hub có các cấp độ ghi log sau:
>
> - `huggingface_hub.logging.CRITICAL`, `huggingface_hub.logging.FATAL` - `huggingface_hub.logging.ERROR` - `huggingface_hub.logging.WARNING`, `huggingface_hub.logging.WARN` - `huggingface_hub.logging.INFO` - `huggingface_hub.logging.DEBUG`

#### huggingface_hub.utils.logging.set_verbosity[[huggingface_hub.utils.logging.set_verbosity]]

```python
huggingface_hub.utils.logging.set_verbosity(verbosity: int)
```

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

**Tham số:**

verbosity (`int`) : Mức ghi log, ví dụ `huggingface_hub.logging.DEBUG` và `huggingface_hub.logging.INFO`.

Đặt cấp độ cho trình ghi log gốc của HuggingFace Hub.

#### huggingface_hub.utils.logging.set_verbosity_info[[huggingface_hub.utils.logging.set_verbosity_info]]

```python
huggingface_hub.utils.logging.set_verbosity_info()
```

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

Đặt mức độ chi tiết thành `logging.INFO`.

#### huggingface_hub.utils.logging.set_verbosity_debug[[huggingface_hub.utils.logging.set_verbosity_debug]]

```python
huggingface_hub.utils.logging.set_verbosity_debug()
```

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

Đặt mức độ chi tiết thành `logging.DEBUG`.

#### huggingface_hub.utils.logging.set_verbosity_warning[[huggingface_hub.utils.logging.set_verbosity_warning]]

```python
huggingface_hub.utils.logging.set_verbosity_warning()
```

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

Đặt mức độ chi tiết thành `logging.WARNING`.

#### huggingface_hub.utils.logging.set_verbosity_error[[huggingface_hub.utils.logging.set_verbosity_error]]

```python
huggingface_hub.utils.logging.set_verbosity_error()
```

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

Đặt mức độ chi tiết thành `logging.ERROR`.

#### huggingface_hub.utils.logging.disable_propagation[[huggingface_hub.utils.logging.disable_propagation]]

```python
huggingface_hub.utils.logging.disable_propagation()
```

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

Tắt việc lan truyền các đầu ra nhật ký của thư viện. Lưu ý rằng lan truyền nhật ký bị tắt theo mặc định.

#### huggingface_hub.utils.logging.enable_propagation[[huggingface_hub.utils.logging.enable_propagation]]

```python
huggingface_hub.utils.logging.enable_propagation()
```

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

Bật việc lan truyền các đầu ra nhật ký của thư viện. Vui lòng tắt trình xử lý mặc định của HuggingFace Hub để tránh ghi nhật ký trùng lặp nếu trình ghi nhật ký gốc đã được cấu hình.

### Các phương thức trợ giúp cụ thể cho kho[[huggingface_hub.utils.logging.get_logger]]

Các phương thức được liệt kê bên dưới có liên quan khi bạn sửa đổi các module từ chính thư viện `huggingface_hub`. Bạn không cần sử dụng chúng nếu bạn dùng `huggingface_hub` và không sửa đổi chúng.

#### huggingface_hub.utils.logging.get_logger[[huggingface_hub.utils.logging.get_logger]]

```python
huggingface_hub.utils.logging.get_logger(name: str | None = None)
```

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

**Tham số:**

name (`str`, *tùy chọn*) : Tên của logger cần lấy, thường là tên tệp

Trả về một logger với tên được chỉ định. Hàm này không được thiết kế để người dùng thư viện truy cập trực tiếp.

Ví dụ:

```python
>>> from huggingface_hub import logging

>>> logger = logging.get_logger(__name__)
>>> logging.set_verbosity_info()
```

## Cấu hình thanh tiến trình

Thanh tiến trình là công cụ hữu ích để hiển thị thông tin cho người dùng trong khi một tác vụ chạy lâu đang được thực thi (ví dụ: khi tải xuống hoặc tải lên tệp). `huggingface_hub` cung cấp một wrapper `tqdm` để hiển thị thanh tiến trình một cách nhất quán trong toàn bộ thư viện.

Mặc định, thanh tiến trình được bật. Bạn có thể tắt chúng toàn cục bằng cách đặt biến môi trường `HF_HUB_DISABLE_PROGRESS_BARS`. Bạn cũng có thể bật/tắt chúng bằng [enable_progress_bars()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.utils.enable_progress_bars) và [disable_progress_bars](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.utils.disable_progress_bars). Nếu được đặt, biến môi trường có ưu tiên cao hơn so với các hàm trợ giúp.

```py
>>> from huggingface_hub import snapshot_download
>>> from huggingface_hub.utils import are_progress_bars_disabled, disable_progress_bars, enable_progress_bars

>>> # Disable progress bars globally
>>> disable_progress_bars()

>>> # Progress bar will not be shown !
>>> snapshot_download("gpt2")

>>> are_progress_bars_disabled()
True

>>> # Re-enable progress bars globally
>>> enable_progress_bars()
```

### Kiểm soát thanh tiến trình theo nhóm

Bạn cũng có thể bật hoặc tắt thanh tiến trình cho các nhóm cụ thể. Điều này cho phép bạn quản lý khả năng hiển thị của thanh tiến trình một cách chi tiết hơn trong các phần khác nhau của ứng dụng hoặc thư viện của mình. Khi một thanh tiến trình bị tắt cho một nhóm, tất cả các nhóm con bên dưới nó cũng bị ảnh hưởng trừ khi được ghi đè một cách rõ ràng.

```py
# Disable progress bars for a specific group
>>> disable_progress_bars("peft.foo")
>>> assert not are_progress_bars_disabled("peft")
>>> assert not are_progress_bars_disabled("peft.something")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert are_progress_bars_disabled("peft.foo.bar")

# Re-enable progress bars for a subgroup
>>> enable_progress_bars("peft.foo.bar")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert not are_progress_bars_disabled("peft.foo.bar")

# Use groups with tqdm
# No progress bar for `name="peft.foo"`
>>> for _ in tqdm(range(5), name="peft.foo"):
...     pass

# Progress bar will be shown for `name="peft.foo.bar"`
>>> for _ in tqdm(range(5), name="peft.foo.bar"):
...     pass
100%|███████████████████████████████████████| 5/5 [00:00<00:00, 117817.53it/s]
```

### are_progress_bars_disabled[[huggingface_hub.utils.are_progress_bars_disabled]]

#### huggingface_hub.utils.are_progress_bars_disabled[[huggingface_hub.utils.are_progress_bars_disabled]]

```python
huggingface_hub.utils.are_progress_bars_disabled(name: str | None = None)
```

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

**Tham số:**

name (`str`, *tùy chọn*) : Tên nhóm cần kiểm tra; nếu là None, sẽ kiểm tra cài đặt toàn cục.

**Trả về:** `bool`

Đúng nếu thanh tiến trình bị vô hiệu hóa, Sai nếu không.

Kiểm tra xem thanh tiến trình có bị vô hiệu hóa toàn cục hay cho một nhóm cụ thể không.

Hàm này trả về trạng thái thanh tiến trình có bị vô hiệu hóa cho một nhóm cụ thể hoặc toàn cục hay không. Nó kiểm tra biến môi trường `HF_HUB_DISABLE_PROGRESS_BARS` trước, sau đó kiểm tra các cài đặt lập trình.

### disable_progress_bars[[huggingface_hub.utils.disable_progress_bars]]

#### huggingface_hub.utils.disable_progress_bars[[huggingface_hub.utils.disable_progress_bars]]

```python
huggingface_hub.utils.disable_progress_bars(name: str | None = None)
```

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

**Tham số:**

name (`str`, *tùy chọn*) : Tên của nhóm mà bạn muốn tắt thanh tiến trình. Nếu là None, các thanh tiến trình sẽ bị tắt toàn cục.

**Gây ra:** ``Warning``

- ``Warning`` -- Nếu biến môi trường ngăn chặn các thay đổi.

Tắt thanh tiến trình toàn cục hoặc cho một nhóm được chỉ định.

Hàm này cập nhật trạng thái của các thanh tiến trình dựa trên tên nhóm. Nếu không cung cấp tên nhóm, tất cả các thanh tiến trình sẽ bị vô hiệu hóa. Thao tác này tuân theo cài đặt của biến môi trường `HF_HUB_DISABLE_PROGRESS_BARS`.

Hoạt động như một lời gọi thông thường và như một trình quản lý ngữ cảnh: disable_progress_bars()           # tắt cho đến khi gọi enable_progress_bars() with disable_progress_bars():     # tắt trong khối, bật lại khi thoát ...

### enable_progress_bars[[huggingface_hub.utils.enable_progress_bars]]

#### huggingface_hub.utils.enable_progress_bars[[huggingface_hub.utils.enable_progress_bars]]

```python
huggingface_hub.utils.enable_progress_bars(name: str | None = None)
```

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

**Tham số:**

name (`str`, *tùy chọn*) : Tên của nhóm cần bật thanh tiến trình. Nếu là None, thanh tiến trình sẽ được bật toàn cục.

**Gây ra:** ``Warning``

- ``Warning`` -- Nếu biến môi trường ngăn chặn các thay đổi.

Bật thanh tiến trình toàn cục hoặc cho một nhóm được chỉ định.

Hàm này bật thanh tiến trình cho nhóm được chỉ định hoặc toàn cục nếu không có nhóm nào được chỉ định. Thao tác này phụ thuộc vào cài đặt biến môi trường `HF_HUB_DISABLE_PROGRESS_BARS`.

## Cấu hình Backend HTTP[[huggingface_hub.set_client_factory]]

> [!TIP]
> Trong `huggingface_hub` v0.x, các yêu cầu HTTP được xử lý bằng `requests` và cấu hình được thực hiện thông qua `configure_http_backend`. Vì hiện tại chúng tôi sử dụng `httpx2`, cách cấu hình hoạt động khác: bạn phải cung cấp một hàm factory không nhận đối số nào và trả về một `httpx2.Client`. Bạn có thể xem [cài đặt mặc định tại đây](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/utils/_http.py) để biết các tham số nào được sử dụng theo mặc định.

Trong một số cấu hình, bạn có thể cần kiểm soát cách các yêu cầu HTTP được thực hiện, chẳng hạn khi làm việc sau một proxy. Thư viện `huggingface_hub` cho phép bạn cấu hình điều này trên toàn cục bằng [set_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_client_factory). Sau khi cấu hình, tất cả các yêu cầu đến Hub sẽ sử dụng cài đặt tùy chỉnh của bạn. Vì `huggingface_hub` dựa vào `httpx2.Client` bên trong, bạn có thể xem [tài liệu của `httpx2`](https://httpx2.pydantic.dev/advanced/clients/) để biết chi tiết về các tham số khả dụng.

Nếu bạn đang xây dựng một thư viện bên thứ ba và cần thực hiện các yêu cầu trực tiếp đến Hub, hãy sử dụng [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session) để lấy một client `httpx2` được cấu hình đúng. Thay thế các lệnh gọi trực tiếp `httpx2.get(...)` bằng `get_session().get(...)` để đảm bảo hành vi chính xác.

#### huggingface_hub.set_client_factory[[huggingface_hub.set_client_factory]]

```python
huggingface_hub.set_client_factory(client_factory: Callable)
```

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

Đặt nhà máy client HTTP sẽ được sử dụng bởi `huggingface_hub`.

Client factory là một phương thức trả về một đối tượng `httpx2.Client`. Ở lần gọi đầu tiên của [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session), client factory sẽ được sử dụng để tạo một đối tượng `httpx2.Client` mới, đối tượng này sẽ được chia sẻ giữa tất cả các cuộc gọi do `huggingface_hub` thực hiện.

Điều này có thể hữu ích nếu bạn đang chạy các script trong một môi trường cụ thể yêu cầu cấu hình tùy chỉnh (ví dụ: proxy hoặc chứng chỉ tùy chỉnh).

Sử dụng [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session) để lấy một `httpx2.Client` được cấu hình chính xác.

#### huggingface_hub.get_session[[huggingface_hub.get_session]]

```python
huggingface_hub.get_session()
```

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

Lấy một đối tượng `httpx2.Client`, sử dụng nhà máy transport từ người dùng.

Client này được dùng chung cho tất cả các cuộc gọi do `huggingface_hub` thực hiện. Do đó, bạn không nên đóng nó thủ công.

Sử dụng [set_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_client_factory) để tùy chỉnh `httpx2.Client`.

Trong một số trường hợp hiếm, bạn có thể muốn đóng thủ công phiên hiện tại (ví dụ, sau một `SSLError` tạm thời). Bạn có thể thực hiện điều này bằng [close_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.close_session). Một phiên mới sẽ được tạo tự động ở lần gọi tiếp theo của [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session).

Các phiên luôn được đóng tự động khi tiến trình thoát.

#### huggingface_hub.close_session[[huggingface_hub.close_session]]

```python
huggingface_hub.close_session()
```

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

Đóng `httpx2.Client` toàn cục được sử dụng bởi `huggingface_hub`.

Nếu một Client bị đóng, nó sẽ được tạo lại vào lần gọi tiếp theo của [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session).

Có thể hữu ích nếu, ví dụ, chứng chỉ SSL đã được cập nhật.

Đối với mã bất đồng bộ, hãy sử dụng [set_async_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_async_client_factory) để cấu hình một `httpx2.AsyncClient` và [get_async_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_async_session) để lấy một phiên.

#### huggingface_hub.set_async_client_factory[[huggingface_hub.set_async_client_factory]]

```python
huggingface_hub.set_async_client_factory(async_client_factory: Callable)
```

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

Đặt nhà máy client HTTP async sẽ được sử dụng bởi `huggingface_hub`.

Nhà máy client bất đồng bộ là một phương thức trả về một đối tượng `httpx2.AsyncClient`. Điều này có thể hữu ích nếu bạn đang chạy các script trong một môi trường cụ thể yêu cầu cấu hình tùy chỉnh (ví dụ: proxy hoặc chứng chỉ tùy chỉnh). Sử dụng [get_async_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_async_session) để lấy một `httpx2.AsyncClient` được cấu hình chính xác.

> [!WARNING]
> Ngược lại với `httpx2.Client` được dùng chung cho tất cả các cuộc gọi do `huggingface_hub` thực hiện, `httpx2.AsyncClient` không được dùng chung. Khuyến nghị sử dụng async context manager để đảm bảo client được đóng đúng cách khi thoát khỏi ngữ cảnh.

#### huggingface_hub.get_async_session[[huggingface_hub.get_async_session]]

```python
huggingface_hub.get_async_session()
```

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

Trả về một đối tượng `httpx2.AsyncClient`, sử dụng nhà máy transport từ người dùng.

Sử dụng [set_async_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_async_client_factory) để tùy chỉnh `httpx2.AsyncClient`.

> [!WARNING]
> Ngược lại với `httpx2.Client` được dùng chung cho tất cả các cuộc gọi do `huggingface_hub` thực hiện, `httpx2.AsyncClient` không được dùng chung. Khuyến nghị sử dụng async context manager để đảm bảo client được đóng đúng cách khi thoát khỏi ngữ cảnh.

> [!TIP]
> Khác với client đồng bộ, vòng đời của client bất đồng bộ không được quản lý tự động. Hãy sử dụng async context manager để xử lý nó một cách phù hợp.

### Mô-đun `httpx`

`huggingface_hub` xuất lại thư viện HTTP mà nó sử dụng bên trong dưới tên `huggingface_hub.utils.httpx`:

```py
from huggingface_hub.utils import httpx

try:
    ...
except httpx.HTTPError:
    ...
```

Điều này chủ yếu hữu ích cho các thư viện bên thứ ba được xây dựng dựa trên `huggingface_hub`. `huggingface_hub` v1.x được xây dựng trên [`httpx`](https://www.python-httpx.org/), trong khi v2.x được xây dựng trên [`httpx2`](https://httpx2.pydantic.dev/) (phiên bản kế nhiệm, được phân phối dưới dạng một gói riêng biệt). Việc import module từ `huggingface_hub.utils` thay vì import trực tiếp `httpx` có nghĩa là bạn luôn nhận được phiên bản mà `huggingface_hub` thực sự đang sử dụng, và thư viện của bạn vẫn tương thích với cả hai phiên bản chính. Xem [vấn đề này](https://github.com/huggingface/huggingface_hub/issues/4802) để biết thêm chi tiết về kế hoạch chuyển đổi.

> [!WARNING]
> Chỉ sử dụng điều này khi bạn cần các kiểu hoặc ngoại lệ của `httpx` (ví dụ: để bắt lỗi). Để thực hiện các yêu cầu đến Hub, hãy sử dụng [get_session()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.get_session) như đã mô tả ở trên.

## Xử lý lỗi HTTP

`huggingface_hub` định nghĩa các lỗi HTTP riêng để bổ sung thông tin chi tiết cho `HTTPError` được ném ra bởi `httpx2`, dựa trên thông tin phản hồi từ máy chủ.

### Nâng cho trạng thái[[huggingface_hub.hf_raise_for_status]]

[hf_raise_for_status()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.hf_raise_for_status) được thiết kế là phương thức trung tâm để "raise for status" từ bất kỳ yêu cầu nào được gửi đến Hub. Nó bọc phương thức cơ sở `httpx2.Response.raise_for_status` để cung cấp thêm thông tin. Mọi `HTTPError` được ném ra sẽ được chuyển đổi thành `HfHubHTTPError`.

```py
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError

response = get_session().post(...)
try:
    hf_raise_for_status(response)
except HfHubHTTPError as e:
    print(str(e)) # formatted message
    e.request_id, e.server_message # details returned by server

    # Complete the error message with additional information once it's raised
    e.append_to_message("\n`create_commit` expects the repository to exist.")
    raise
```

#### huggingface_hub.hf_raise_for_status[[huggingface_hub.hf_raise_for_status]]

```python
huggingface_hub.hf_raise_for_status(response: Response, endpoint_name: str | None = None)
```

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

**Tham số:**

response (`Response`) : Phản hồi từ máy chủ.

endpoint_name (`str`, *tùy chọn*) : Tên của endpoint đã được gọi. Nếu được cung cấp, thông báo lỗi sẽ đầy đủ hơn.

Phiên bản nội bộ của `response.raise_for_status()` sẽ tinh chỉnh một HTTPError tiềm năng. Ngoại lệ được ném ra sẽ là một instance của [HfHubHTTPError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.HfHubHTTPError).

Trợ lý này được thiết kế để là phương thức duy nhất để gọi raise_for_status khi thực hiện một cuộc gọi đến Hugging Face Hub.

> [!WARNING]
> Gây ra khi yêu cầu thất bại:
>
> - [RepositoryNotFoundError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.RepositoryNotFoundError) Nếu không tìm thấy kho lưu trữ để tải xuống. Điều này có thể do kho không tồn tại, do `repo_type` không được đặt đúng, hoặc do kho là `private` và bạn không có quyền truy cập. - [GatedRepoError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.GatedRepoError) Nếu kho lưu trữ tồn tại nhưng được bảo vệ và người dùng không có trong danh sách được ủy quyền. - [RevisionNotFoundError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.RevisionNotFoundError) Nếu kho lưu trữ tồn tại nhưng không tìm thấy phiên bản. - [EntryNotFoundError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.EntryNotFoundError) Nếu kho lưu trữ tồn tại nhưng không tìm thấy mục (ví dụ: tệp được yêu cầu). - [BadRequestError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.BadRequestError) Nếu yêu cầu thất bại với lỗi HTTP 400 BadRequest. - [HfHubHTTPError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.HfHubHTTPError) Nếu yêu cầu thất bại vì một lý do không được liệt kê ở trên.

### Kiểm tra chế độ ngoại tuyến[[huggingface_hub.is_offline_mode]]

Bạn có thể kiểm tra theo chương trình xem chế độ ngoại tuyến có được bật hay không bằng cách sử dụng `is_offline_mode`. Chế độ ngoại tuyến được bật bằng cách đặt `HF_HUB_OFFLINE=1` dưới dạng biến môi trường.

#### huggingface_hub.is_offline_mode[[huggingface_hub.is_offline_mode]]

```python
huggingface_hub.is_offline_mode()
```

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

Trả về trạng thái chúng ta có đang ở chế độ ngoại tuyến cho Hub hay không.

Khi chế độ ngoại tuyến được bật, tất cả các yêu cầu HTTP được thực hiện bằng `get_session` sẽ gây ra ngoại lệ `OfflineModeIsEnabled`.

Ví dụ:
```py
from huggingface_hub import is_offline_mode

def list_files(repo_id: str):
    if is_offline_mode():
        ... # list files from local cache (degraded experience but still functional)
    else:
        ... # list files from Hub (complete experience)
```

### Lỗi HTTP

Dưới đây là danh sách các lỗi HTTP được ném ra trong `huggingface_hub`.

#### HfHubHTTPError[[huggingface_hub.errors.HfHubHTTPError]]

`HfHubHTTPError` là lớp cha của mọi lỗi HTTP trên HF Hub. Lớp này chịu trách nhiệm phân tích phản hồi từ máy chủ và định dạng thông báo lỗi để cung cấp cho người dùng nhiều thông tin nhất có thể.

#### huggingface_hub.errors.HfHubHTTPError[[huggingface_hub.errors.HfHubHTTPError]]

```python
huggingface_hub.errors.HfHubHTTPError(message: str, response: Response, server_message: str | None = None)
```

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

HTTPError để kế thừa cho bất kỳ lỗi HTTP tùy chỉnh nào được ném ra trong HF Hub.

Mọi HTTPError đều được chuyển đổi thành ít nhất là `HfHubHTTPError`. Nếu máy chủ gửi lại một số thông tin, chúng sẽ được thêm vào thông báo lỗi.

Chi tiết đã thêm:
- Request ID được lấy từ các header theo thứ tự ưu tiên: "X-Request-Id", "X-Amzn-Trace-Id", "X-Amz-Cf-Id".
- Thông báo lỗi máy chủ từ tiêu đề "X-Error-Message".
- Thông báo lỗi máy chủ nếu chúng tôi tìm thấy một thông báo trong phần thân phản hồi.

Ví dụ:
```py
    import httpx2
    from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError

    response = get_session().post(...)
    try:
        hf_raise_for_status(response)
    except HfHubHTTPError as e:
        print(str(e)) # formatted message
        e.request_id, e.server_message # details returned by server

        # Complete the error message with additional information once it's raised
        e.append_to_message("
ate_commit` expects the repository to exist.")
        raise
```

#### append_to_message[[huggingface_hub.errors.HfHubHTTPError.append_to_message]]

```python
append_to_message(additional_message: str)
```

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

Thêm thông tin bổ sung vào thông điệp ban đầu của `HfHubHTTPError`.

#### RepositoryNotFoundError[[huggingface_hub.errors.RepositoryNotFoundError]]

#### huggingface_hub.errors.RepositoryNotFoundError[[huggingface_hub.errors.RepositoryNotFoundError]]

```python
huggingface_hub.errors.RepositoryNotFoundError(message: str, response: Response, server_message: str | None = None)
```

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

**Tham số:**

repo_id (`str` hoặc `None`) : id của kho không được tìm thấy, nếu có thể xác định từ URL yêu cầu.

repo_type (`str` hoặc `None`) : Kiểu repo ("model", "dataset", hoặc "space"), nếu có thể xác định từ URL yêu cầu.

Được ném ra khi cố gắng truy cập một URL hf.co với tên kho không hợp lệ, hoặc với tên kho riêng tư mà người dùng không có quyền truy cập.

Ví dụ:

```py
>>> from huggingface_hub import model_info
>>> model_info("<non_existent_repository>")
(...)
huggingface_hub.errors.RepositoryNotFoundError: 401 Client Error. (Request ID: PvMw_VjBMjVdMz53WKIzP)

Repository Not Found for url: https://huggingface.co/api/models/%3Cnon_existent_repository%3E.
Please make sure you specified the correct `repo_id` and `repo_type`.
If the repo is private, make sure you are authenticated and your token has the required permissions.
Invalid username or password.
```

#### GatedRepoError[[huggingface_hub.errors.GatedRepoError]]

#### huggingface_hub.errors.GatedRepoError[[huggingface_hub.errors.GatedRepoError]]

```python
huggingface_hub.errors.GatedRepoError(message: str, response: Response, server_message: str | None = None)
```

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

Được ném ra khi cố gắng truy cập một kho lưu trữ có kiểm soát mà người dùng không có trong danh sách được cấp quyền.

Lưu ý: kế thừa từ `RepositoryNotFoundError` để đảm bảo tính tương thích ngược.

Ví dụ:

```py
>>> from huggingface_hub import model_info
>>> model_info("<gated_repository>")
(...)
huggingface_hub.errors.GatedRepoError: 403 Client Error. (Request ID: ViT1Bf7O_026LGSQuVqfa)

Cannot access gated repo for url https://huggingface.co/api/models/ardent-figment/gated-model.
Access to model ardent-figment/gated-model is restricted and you are not in the authorized list.
Visit https://huggingface.co/ardent-figment/gated-model to ask for access.
```

#### RevisionNotFoundError[[huggingface_hub.errors.RevisionNotFoundError]]

#### huggingface_hub.errors.RevisionNotFoundError[[huggingface_hub.errors.RevisionNotFoundError]]

```python
huggingface_hub.errors.RevisionNotFoundError(message: str, response: Response, server_message: str | None = None)
```

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

**Tham số:**

repo_id (`str` hoặc `None`) : id của repo, nếu có thể xác định từ URL yêu cầu.

repo_type (`str` hoặc `None`) : Kiểu repo ("model", "dataset", hoặc "space"), nếu có thể xác định từ URL yêu cầu.

Được ném ra khi cố gắng truy cập một URL hf.co có kho lưu trữ hợp lệ nhưng phiên bản không hợp lệ.

Ví dụ:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', 'config.json', revision='<non-existent-revision>')
(...)
huggingface_hub.errors.RevisionNotFoundError: 404 Client Error. (Request ID: Mwhe_c3Kt650GcdKEFomX)

Revision Not Found for url: https://huggingface.co/bert-base-cased/resolve/%3Cnon-existent-revision%3E/config.json.
```

#### RevisionResolutionError[[huggingface_hub.errors.RevisionResolutionError]]

#### huggingface_hub.errors.RevisionResolutionError[[huggingface_hub.errors.RevisionResolutionError]]

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

Được [HfApi.resolve_revision()](/docs/huggingface_hub/v2.4.0/vi/package_reference/hf_api#huggingface_hub.HfApi.resolve_revision) ném ra khi một revision không thể được phân giải thành một commit hash: không thể kết nối đến Hub (chế độ ngoại tuyến, lỗi kết nối, hết thời gian chờ, Hub đang ngừng hoạt động, ...) và không tìm thấy mục phù hợp trong bộ nhớ đệm cục bộ.

#### BadRequestError[[huggingface_hub.errors.BadRequestError]]

#### huggingface_hub.errors.BadRequestError[[huggingface_hub.errors.BadRequestError]]

```python
huggingface_hub.errors.BadRequestError(message: str, response: Response, server_message: str | None = None)
```

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

Được `hf_raise_for_status` ném ra khi máy chủ trả về lỗi HTTP 400.

Ví dụ:

```py
>>> resp = httpx2.post("hf.co/api/check", ...)
>>> hf_raise_for_status(resp, endpoint_name="check")
huggingface_hub.errors.BadRequestError: Bad request for check endpoint: {details} (Request ID: XXX)
```

#### EntryNotFoundError[[huggingface_hub.errors.EntryNotFoundError]]

#### huggingface_hub.errors.EntryNotFoundError[[huggingface_hub.errors.EntryNotFoundError]]

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

Được ném ra khi không tìm thấy mục, cả ở cục bộ lẫn từ xa.

Ví dụ:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.RemoteEntryNotFoundError (...)
>>> hf_hub_download('bert-base-cased', '<non-existent-file>', local_files_only=True)
(...)
huggingface_hub.utils.errors.LocalEntryNotFoundError (...)
```

#### RemoteEntryNotFoundError[[huggingface_hub.errors.RemoteEntryNotFoundError]]

#### huggingface_hub.errors.RemoteEntryNotFoundError[[huggingface_hub.errors.RemoteEntryNotFoundError]]

```python
huggingface_hub.errors.RemoteEntryNotFoundError(message: str, response: Response, server_message: str | None = None)
```

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

**Tham số:**

repo_id (`str` hoặc `None`) : id của repo, nếu có thể xác định từ URL yêu cầu.

repo_type (`str` hoặc `None`) : Kiểu repo ("model", "dataset", hoặc "space"), nếu có thể xác định từ URL yêu cầu.

Được ném ra khi cố gắng truy cập một URL hf.co có kho lưu trữ và phiên bản hợp lệ nhưng tên tệp không hợp lệ.

Ví dụ:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.EntryNotFoundError: 404 Client Error. (Request ID: 53pNl6M0MxsnG5Sw8JA6x)

Entry Not Found for url: https://huggingface.co/bert-base-cased/resolve/main/%3Cnon-existent-file%3E.
```

#### LocalEntryNotFoundError[[huggingface_hub.errors.LocalEntryNotFoundError]]

#### huggingface_hub.errors.LocalEntryNotFoundError[[huggingface_hub.errors.LocalEntryNotFoundError]]

```python
huggingface_hub.errors.LocalEntryNotFoundError(message: str)
```

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

Được ném ra khi cố gắng truy cập một tệp hoặc snapshot không có trên đĩa trong khi mạng bị tắt hoặc không khả dụng (vấn đề kết nối). Mục có thể tồn tại trên Hub.

Ví dụ:

```py
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-cached-file>',  local_files_only=True)
(...)
huggingface_hub.errors.LocalEntryNotFoundError: Cannot find the requested files in the disk cache and outgoing traffic has been disabled. To enable hf.co look-ups and downloads online, set 'local_files_only' to False.
```

#### IncompleteSnapshotError[[huggingface_hub.errors.IncompleteSnapshotError]]

#### huggingface_hub.errors.IncompleteSnapshotError[[huggingface_hub.errors.IncompleteSnapshotError]]

```python
huggingface_hub.errors.IncompleteSnapshotError(message: str, snapshot_path: str)
```

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

Được [snapshot_download()](/docs/huggingface_hub/v2.4.0/vi/package_reference/file_download#huggingface_hub.snapshot_download) ném ra khi không thể kết nối đến Hub (trạng thái ngoại tuyến, sự cố kết nối, hoặc `local_files_only=True`) và bản sao lưu (snapshot) được lưu trong bộ nhớ đệm (cache) được biết là không đầy đủ: một số tệp được liệt kê trong danh sách cây (tree listing) đã được lưu trong bộ nhớ đệm của kho (repository) bị thiếu trong bản sao lưu cục bộ.

Đây là một lớp con của `LocalEntryNotFoundError` để đảm bảo tính tương thích ngược.

Thuộc tính `snapshot_path` chứa đường dẫn đến bản snapshot cục bộ chưa hoàn chỉnh, nhờ đó thư viện hạ nguồn có thể xác định vị trí các tệp được cache gần nhất mặc dù chúng được biết là chưa hoàn chỉnh.

#### CachedRepoTreeNotFoundError[[huggingface_hub.errors.CachedRepoTreeNotFoundError]]

#### huggingface_hub.errors.CachedRepoTreeNotFoundError[[huggingface_hub.errors.CachedRepoTreeNotFoundError]]

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

Được [get_cached_repo_tree()](/docs/huggingface_hub/v2.4.0/vi/package_reference/file_download#huggingface_hub.get_cached_repo_tree) ném ra khi không có danh sách cây nào được lưu cache cho phiên bản được yêu cầu.

Danh sách cây được điền như một tác dụng phụ của [snapshot_download()](/docs/huggingface_hub/v2.4.0/vi/package_reference/file_download#huggingface_hub.snapshot_download).

#### OfflineModeIsEnabled[[huggingface_hub.errors.OfflineModeIsEnabled]]

#### huggingface_hub.errors.OfflineModeIsEnabled[[huggingface_hub.errors.OfflineModeIsEnabled]]

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

Được ném ra khi một yêu cầu được thực hiện nhưng biến môi trường `HF_HUB_OFFLINE=1` đã được đặt.

## Telemetry[[huggingface_hub.utils.send_telemetry]]

`huggingface_hub` bao gồm một hàm trợ giúp để gửi dữ liệu telemetry. Thông tin này giúp chúng tôi gỡ lỗi và ưu tiên các tính năng mới. Người dùng có thể tắt việc thu thập telemetry bất cứ lúc nào bằng cách đặt biến môi trường `HF_HUB_DISABLE_TELEMETRY=1`. Telemetry cũng bị tắt ở chế độ ngoại tuyến (tức là khi đặt HF_HUB_OFFLINE=1).

Nếu bạn là người duy trì một thư viện bên thứ ba, việc gửi dữ liệu telemetry đơn giản chỉ là thực hiện một cuộc gọi đến `send_telemetry`. Dữ liệu được gửi trên một thread riêng biệt nhằm giảm thiểu tối đa tác động đến người dùng.

#### huggingface_hub.utils.send_telemetry[[huggingface_hub.utils.send_telemetry]]

```python
huggingface_hub.utils.send_telemetry(topic: str, library_name: str | None = None, library_version: str | None = None, user_agent: dict | str | None = None)
```

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

**Tham số:**

topic (`str`) : Tên của chủ đề được theo dõi. Chủ đề được sử dụng trực tiếp để xây dựng URL. Nếu bạn muốn theo dõi các chủ đề con, chỉ cần sử dụng "/" để phân tách. Ví dụ: "gradio", "transformers/examples",...

library_name (`str`, *tùy chọn*) : Tên của thư viện đang thực hiện yêu cầu HTTP. Sẽ được thêm vào tiêu đề user-agent.

library_version (`str`, *tùy chọn*) : Phiên bản của thư viện đang thực hiện yêu cầu HTTP. Sẽ được thêm vào tiêu đề user-agent.

user_agent (`str`, `dict`, *tùy chọn*) : Thông tin user agent dưới dạng một từ điển hoặc một chuỗi duy nhất. Nó sẽ được bổ sung thông tin về các gói đã cài đặt.

Gửi dữ liệu đo lường giúp theo dõi việc sử dụng các thư viện HF khác nhau.

Dữ liệu sử dụng này giúp chúng tôi gỡ lỗi và ưu tiên phát triển các tính năng mới. Tuy nhiên, chúng tôi hiểu rằng không phải ai cũng muốn chia sẻ thêm thông tin và chúng tôi tôn trọng quyền riêng tư của bạn. Bạn có thể tắt việc thu thập dữ liệu đo lường bằng cách đặt biến môi trường `HF_HUB_DISABLE_TELEMETRY=1`. Dữ liệu đo lường cũng bị tắt ở chế độ ngoại tuyến (tức là khi đặt `HF_HUB_OFFLINE=1`).

Việc thu thập dữ liệu đo lường được thực hiện trong một luồng riêng biệt để giảm thiểu tác động đến người dùng.

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

# Send telemetry without library information
>>> send_telemetry("ping")

# Send telemetry to subtopic with library information
>>> send_telemetry("gradio/local_link", library_name="gradio", library_version="3.22.1")

# Send telemetry with additional data
>>> send_telemetry(
...     topic="examples",
...     library_name="transformers",
...     library_version="4.26.0",
...     user_agent={"pipeline": "text_classification", "framework": "flax"},
... )
```

## Validators

`huggingface_hub` bao gồm các bộ xác thực tùy chỉnh để tự động xác thực các đối số của phương thức. Việc xác thực được lấy cảm hứng từ công việc trong [Pydantic](https://pydantic-docs.helpmanual.io/) để xác thực các chú thích kiểu dữ liệu, nhưng với các tính năng hạn chế hơn.

### Trình trang trí tổng quát

[validate_hf_hub_args()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.utils.validate_hf_hub_args) là một decorator tổng quát để bao bọc các method có các argument tuân theo quy tắc đặt tên của `huggingface_hub`. Mặc định, tất cả các argument có validator được triển khai sẽ được kiểm tra.

Nếu một giá trị đầu vào không hợp lệ, một [HFValidationError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.HFValidationError) sẽ được ném ra. Chỉ giá trị không hợp lệ đầu tiên mới gây ra lỗi và dừng quá trình xác thực.

Cách sử dụng:

```py
>>> from huggingface_hub.utils import validate_hf_hub_args

>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
...     print(repo_id)

>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id

>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.

>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

#### validate_hf_hub_args[[huggingface_hub.utils.validate_hf_hub_args]]

#### huggingface_hub.utils.validate_hf_hub_args[[huggingface_hub.utils.validate_hf_hub_args]]

```python
huggingface_hub.utils.validate_hf_hub_args(fn: ~CallableT)
```

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

**Lỗi:** [HFValidationError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.HFValidationError)

- [HFValidationError](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.errors.HFValidationError) -- Nếu đầu vào không hợp lệ.

Xác thực các giá trị nhận được dưới dạng tham số cho bất kỳ phương thức công khai nào của `huggingface_hub`.

Mục tiêu của decorator này là thống nhất việc kiểm tra tính hợp lệ của các đối số được tái sử dụng ở mọi nơi. Mặc định, tất cả các bộ kiểm tra đã định nghĩa đều được chạy thử.

Trình xác thực:
- [validate_repo_id()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.utils.validate_repo_id): `repo_id` phải là `"repo_name"` hoặc `"namespace/repo_name"`. Namespace là tên người dùng hoặc một tổ chức.
- `~utils.smoothly_deprecate_legacy_arguments`: Bỏ qua `proxies` khi tải tệp (nên được đặt ở phạm vi toàn cục).

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

>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
...     print(repo_id)

>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id

>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.

>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

#### HFValidationError[[huggingface_hub.errors.HFValidationError]]

#### huggingface_hub.errors.HFValidationError[[huggingface_hub.errors.HFValidationError]]

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

Ngoại lệ chung được ném ra bởi các trình xác thực của `huggingface_hub`.

Kế thừa từ [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError).

### Trình xác thực đối số

Validators cũng có thể được sử dụng riêng lẻ. Dưới đây là danh sách tất cả các đối số có thể được kiểm tra.

#### repo_id[[huggingface_hub.utils.validate_repo_id]]

#### huggingface_hub.utils.validate_repo_id[[huggingface_hub.utils.validate_repo_id]]

```python
huggingface_hub.utils.validate_repo_id(repo_id: str | None)
```

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

Kiểm tra xem `repo_id` có hợp lệ không.

Điều này không nhằm thay thế cho việc kiểm tra hợp lệ được thực hiện trên Hub mà thay vào đó là để tránh các mâu thuẫn cục bộ bất cứ khi nào có thể (ví dụ: việc truyền `repo_type` trong `repo_id` là bị cấm).

Quy tắc:
- Từ 1 đến 96 ký tự.
- "repo_name" hoặc "namespace/repo_name"
- [a-zA-Z0-9] hoặc "-", "_", "."
- "--" và ".." bị cấm

Hợp lệ: `"foo"`, `"foo/bar"`, `"123"`, `"Foo-BAR_foo.bar123"`

Không hợp lệ: `"datasets/foo/bar"`, `".repo_id"`, `"foo--bar"`, `"foo.git"`

Ví dụ:
```py
>>> from huggingface_hub.utils import validate_repo_id
>>> validate_repo_id(repo_id="valid_repo_id")
>>> validate_repo_id(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
```

Đã thảo luận tại https://github.com/huggingface/huggingface_hub/issues/1008. Trong moon-landing (kho nội bộ):
- https://github.com/huggingface/moon-landing/blob/main/server/lib/Names.ts#L27
- https://github.com/huggingface/moon-landing/blob/main/server/views/components/NewRepoForm/NewRepoForm.svelte#L138

#### smoothly_deprecate_legacy_arguments[[huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments]]

Không hoàn toàn là một trình xác thực, nhưng vẫn chạy tốt.

#### huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments[[huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments]]

```python
huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments(fn_name: str, kwargs: dict)
```

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

Loại bỏ dần các đối số cũ trong mã nguồn `huggingface_hub` một cách suôn sẻ.

Hàm này bỏ qua một số đối số đã bị ngừng hỗ trợ trong kwargs và cảnh báo người dùng rằng chúng đã bị bỏ qua. Mục tiêu là tránh làm hỏng mã hiện có trong khi hướng dẫn người dùng sử dụng cách làm mới.

Danh sách các đối số đã bị ngừng hỗ trợ:
- `proxies`: Để thiết lập proxy, người dùng phải sử dụng biến môi trường HTTP_PROXY hoặc cấu hình thủ công `httpx2.Client` bằng cách sử dụng hàm [set_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_client_factory).

  Trong huggingface_hub 0.x, `proxies` là một từ điển được truyền trực tiếp vào `requests.request`. Kể từ huggingface_hub 1.x, `proxies` cho từng yêu cầu không còn được hỗ trợ nữa. Cụ thể, không thể cấu hình proxy ở mức từng yêu cầu. Giải pháp là cấu hình toàn cục bằng cách sử dụng hàm [set_client_factory()](/docs/huggingface_hub/v2.4.0/vi/package_reference/utilities#huggingface_hub.set_client_factory) hoặc biến môi trường HTTP_PROXY.

  Để biết thêm chi tiết, xem:
  - https://httpx2.pydantic.dev/advanced/proxies/

- `resume_download`: đã bị loại bỏ mà không có thay thế. `huggingface_hub` luôn tiếp tục tải xuống bất cứ khi nào có thể.
- `force_filename`: đã bị loại bỏ mà không có thay thế. Tên tệp luôn giống như trên Hub.
- `local_dir_use_symlinks`: đã bị loại bỏ mà không có thay thế. Việc tải xuống thư mục cục bộ không còn sử dụng liên kết mềm (symlinks) nữa.

