File size: 1,293 Bytes
cc17c6c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from pathlib import Path
from huggingface_hub import hf_hub_download

# Directorio del modelo
BASE_DIR = Path(__file__).resolve().parent
MODEL_DIR = BASE_DIR / "model"
MODEL_DIR.mkdir(exist_ok=True)

# Modelo recomendado: Qwen 2.5 0.5B Instruct (Habla español fluido, afinado para chat)
REPO_ID = "bartowski/Qwen2.5-0.5B-Instruct-GGUF"
FILENAME = "Qwen2.5-0.5B-Instruct-Q4_K_M.gguf"
DESTINATION = MODEL_DIR / FILENAME

def ensure_model() -> Path:
    """Verifica si el modelo existe localmente; si no, lo descarga desde Hugging Face."""
    if DESTINATION.exists():
        print(f"[OK] El modelo ya existe en: {DESTINATION} ({DESTINATION.stat().st_size / (1024 * 1024):.2f} MB)")
        return DESTINATION

    print(f"[DESCARGA] Bajando {FILENAME} desde Hugging Face ({REPO_ID})...")
    print("Esto se realiza una sola vez en el Build de Render o al arrancar localmente.")
    
    file_path = hf_hub_download(
        repo_id=REPO_ID,
        filename=FILENAME,
        local_dir=str(MODEL_DIR),
        local_dir_use_symlinks=False
    )
    
    downloaded_path = Path(file_path)
    print(f"[EXITO] Modelo descargado en: {downloaded_path} ({downloaded_path.stat().st_size / (1024 * 1024):.2f} MB)")
    return downloaded_path

if __name__ == "__main__":
    ensure_model()