Обслуживание проектов на Hugging Face Hub теперь потребует рефакторинга: библиотека huggingface_hub обновилась до версии 2.0.0 с критическими изменениями. Разработчикам придётся переписать часть кода из-за перехода на новый HTTP-клиент httpx2 и удаления ряда устаревших API.
Ключевое изменение — замена HTTP-зависимости с httpx на httpx2. Этот шаг продиктован тем, что httpx больше не поддерживается активно, а httpx2 является его продолжением под эгидой Pydantic, что обеспечивает дальнейшую стабильность и безопасность. Миграция затронет несколько аспектов работы с библиотекой:
- Клиенты и исключения — теперь они исходят из
httpx2/httpcore2вместоhttpx/httpcore. - Пользовательские фабрики клиентов — методы
set_client_factoryиset_async_client_factoryдолжны использовать типыhttpx2. - Обработка ошибок — любые блоки
exceptдля ошибок транспорта необходимо обновить под новые типыhttpx2.HTTPError. - Логирование — конфигурация логирования теперь должна быть направлена на логгеры
httpx2иhttpcore2. - Зависимости — дополнительный компонент
oauthтребуетauthlib>=1.8.0. Для обеспечения совместимости с версиямиhuggingface_hub1.x и 2.x рекомендуется импортировать модуль HTTP черезfrom huggingface_hub.utils import get_session, httpx.
Помимо смены HTTP-клиента, версия 2.0.0 удаляет ряд устаревших API из версии 1.x. Это потребует прямой замены вызовов:
upload_large_folder/HfApi.upload_large_folderзаменены на upload_folder.duplicate_spaceзаменён на duplicate_repo.request_space_storage/delete_space_storageзаменены на API томов: set_space_volumes, delete_space_volumes.repo_type_and_id_from_hf_idзаменён на parse_hf_uri.InferenceEndpointType.PROTECTEDзаменён на AUTHENTICATED.
Также изменились параметры некоторых функций:
list_models(model_name=...)теперь list_models(search=...).create_repo/duplicate_repo(space_storage=...)теперь space_volumes.text_generation(stop_sequences=...)теперь stop.- Булево значение
InferenceClient(token=True)заменено на передачу строки токена илиNone.
Изменения затронули и командную строку (CLI):
- Удалён
huggingface-cli, используйте hf. - Удалены
hf repoиhf repo-files delete, используйте hf repos и hf repos delete-files. - Удалён
hf upload-large-folder, используйте hf upload. - Удалён
hf repos create/duplicate --storage, используйте --volume. - Удалены
hf jobs psиhf jobs scheduled ps -f/--filter, используйте --status / --label.
Выпуск huggingface_hub версии 2.0.0 означает неизбежный рефакторинг для всех, кто активно использует библиотеку. Переход на httpx2 обеспечит актуальность и безопасность HTTP-операций, но потребует тщательной адаптации, особенно в проектах, поддерживающих совместимость с предыдущими версиями. Для облегчения перехода доступно подробное руководство по миграции.