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)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support