File size: 1,527 Bytes
9a82b00
 
69569a0
9a82b00
69569a0
 
 
9a82b00
69569a0
 
9a82b00
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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.")