Dataset Uploader
CLI-утилита для загрузки PDF, MP3 и OGG файлов как датасетов в организацию Anamavajra-Labs на HuggingFace.
Возможности
- Поддержка форматов: PDF, MP3, OGG
- Загрузка одного файла или целой директории (рекурсивно)
- Автоматическое создание датасет-репозитория в организации
- Датасеты приватные по умолчанию
- Файлы сохраняются в
data/внутри репозитория
Установка
1. Установка Python (Ubuntu)
Способ 1: из системного репозитория (самый простой)
sudo apt update
sudo apt install python3 python3-pip python3-venv
Проверка:
python3 --version
Способ 2: через deadsnakes PPA (конкретная версия)
Позволяет установить любую версию Python, даже если её нет в стандартных репозиториях:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev
Проверка:
python3.12 --version
Способ 3: через pyenv (управление несколькими версиями)
Установка pyenv:
curl https://pyenv.run | bash
Добавьте в ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Перезагрузите shell и установите Python:
source ~/.bashrc
pyenv install 3.12
pyenv global 3.12
Проверка:
python --version
2. Клонирование
git clone https://huggingface.co/Anamavajra-Labs/pdf-dataset-uploader
cd pdf-dataset-uploader
3. Зависимости
pip install -r requirements.txt
4. Настройка токена
Скопируйте файл-пример и вставьте свой токен:
cp .env.example .env
Откройте .env и замените значение на ваш токен:
HF_TOKEN=hf_ваш_токен_с_правами_записи
Где взять токен? Перейдите в Settings → Access Tokens на HuggingFace. Создайте токен с правами Write (или Fine-grained с доступом к репозиториям организации).
Использование
Загрузить один PDF
python upload_pdfs.py tantraloka-vol1 /home/user/books/tantraloka_vol1.pdf
Загрузить аудиофайлы
# Один MP3
python upload_pdfs.py mantras ~/audio/om_mani_padme_hum.mp3
# Один OGG
python upload_pdfs.py chanting ~/audio/heart_sutra.ogg
Загрузить все файлы из папки
python upload_pdfs.py sanskrit-corpus ~/Documents/collection/
Утилита найдёт все .pdf, .mp3 и .ogg файлы рекурсивно (включая вложенные папки).
Результат:
Repository: https://huggingface.co/datasets/Anamavajra-Labs/sanskrit-corpus
Uploading tantraloka_ch1.pdf → data/tantraloka_ch1.pdf
Uploading tantraloka_ch2.pdf → data/tantraloka_ch2.pdf
Uploading mantra_108.mp3 → data/mantra_108.mp3
Uploading recitation.ogg → data/recitation.ogg
Done. 4 file(s) uploaded to https://huggingface.co/datasets/Anamavajra-Labs/sanskrit-corpus
Сделать датасет публичным
По умолчанию датасеты создаются приватными. Чтобы сделать публичным:
python upload_pdfs.py public-texts ~/pdfs/ --public
Добавить файлы в существующий датасет
Просто укажите то же имя — новые файлы добавятся, существующие перезапишутся:
python upload_pdfs.py tantraloka-vol1 /home/user/books/additional_chapter.pdf
Структура датасета
После загрузки репозиторий будет выглядеть так:
Anamavajra-Labs/my-dataset/
├── .gitattributes
└── data/
├── document.pdf
├── chapter2.pdf
├── mantra.mp3
└── recitation.ogg
Совместимость
| ОС | Статус | Примечание |
|---|---|---|
| Ubuntu 24.04 LTS | Проверено | Python 3.12 |
| Ubuntu 22.04 / 20.04 | Должно работать | Python 3.10+ |
| Debian 12+ | Должно работать | Python 3.10+ |
| Fedora / RHEL 9+ | Должно работать | Python 3.10+ |
| macOS 13+ | Должно работать | Python 3.10+ |
| Windows 10/11 | Должно работать | Python 3.10+, пути через \ или raw-строки |
Требования: Python 3.10+, доступ в интернет.
Справка
python upload_pdfs.py --help
usage: upload_pdfs.py [-h] [--public] dataset_name source
Upload PDF/MP3/OGG files as a HuggingFace dataset
positional arguments:
dataset_name Name for the dataset (will be created under Anamavajra-Labs)
source File or directory containing PDF/MP3/OGG files
options:
--public Make dataset public (default: private)