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)