libras_processing / utils /huggingface_utils.py
cngsm's picture
Update utils/huggingface_utils.py
6af6f3b verified
from huggingface_hub import HfApi, Repository
import os
import json
class HuggingFaceUploader:
def __init__(self, config):
self.config = config.get('huggingface', {})
self.api = HfApi()
self.repo_id = self.config.get('repo_id')
self.token = self.config.get('token')
def upload_directory(self, directory_path):
"""Faz upload de um diretório para o Hugging Face"""
if not self.repo_id:
raise ValueError("repo_id não configurado")
try:
repo = Repository(
local_dir=directory_path,
clone_from=self.repo_id,
use_auth_token=self.token
)
repo.push_to_hub(commit_message="Add processed LIBRAS video data")
return f"https://huggingface.co/spaces/{self.repo_id}"
except Exception as e:
print(f"Erro no upload: {e}")
return None
def create_dataset_card(self, directory_path, metadata):
"""Cria um dataset card para o Hugging Face"""
card_content = f"""---
language:
- pt
- libras
tags:
- computer-vision
- sign-language
- libras
- mediapipe
- keypoints
datasets:
- libras-processing
---
# Dataset de Vídeos em LIBRAS Processados
## Descrição
Vídeos em LIBRAS processados com extração de keypoints usando MediaPipe.
## Metadados
{json.dumps(metadata, indent=2)}
## Estrutura
- *.mp4: Vídeo normalizado
- *_keypoints.json: Keypoints extraídos
- metadata.json: Metadados do processamento
"""
readme_path = os.path.join(directory_path, 'README.md')
with open(readme_path, 'w', encoding='utf-8') as f:
f.write(card_content)