HirCoir's picture
Create download-model.py
9a82b00 verified
raw
history blame
1.53 kB
import os
import base64
from huggingface_hub import HfApi, hf_hub_download
# Obtener el token de la variable de entorno y descodificarlo
token_base64 = os.getenv("TOKEN")
token = base64.b64decode(token_base64).decode("utf-8")
# Obtener el repo_id de la variable de entorno
repo_id = os.getenv("REPO_ID")
# Crear una instancia de HfApi para listar los archivos del repositorio
api = HfApi()
archivos = api.list_repo_files(repo_id=repo_id, token=token)
# Filtrar archivos por formato ".ckpt"
archivos_ckpt = [archivo for archivo in archivos if archivo.endswith(".ckpt")]
if not archivos_ckpt:
print("No se encontraron archivos .ckpt en el repositorio.")
else:
# Función para extraer la época de un archivo
def get_epoch(archivo: str) -> int:
try:
epoch_str = archivo.split("-")[0].split("=")[1]
return int(epoch_str)
except (IndexError, ValueError):
print(f"El archivo {archivo} no tiene el formato esperado. Ignorando.")
return float('-inf')
# Obtener el archivo con la mayor "epoch"
archivo_con_mayor_epoch = max(archivos_ckpt, key=get_epoch)
# Descargar el archivo con la mayor "epoch" al directorio actual
ruta_archivo_descargado = hf_hub_download(
repo_id=repo_id,
filename=archivo_con_mayor_epoch,
token=token
)
# Renombrar el archivo descargado
os.rename(ruta_archivo_descargado, "model.ckpt")
print(f"Archivo {archivo_con_mayor_epoch} descargado y renombrado como model.ckpt.")